Complete POLYCODE-WP-0002 simulator v0.1 scaffold
This commit is contained in:
parent
6499e38504
commit
a8e4f03172
9 changed files with 268 additions and 5 deletions
47
experiments.py
Normal file
47
experiments.py
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Tiny parameter sweep for PolyCode Simulator v0.1."""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from copy import deepcopy
|
||||
from datetime import UTC, datetime
|
||||
from pathlib import Path
|
||||
|
||||
from simulator import load_params, run_simulation
|
||||
|
||||
|
||||
def sweep(thresholds: list[float] | None = None) -> list[dict]:
|
||||
thresholds = thresholds or [300.0, 400.0, 500.0]
|
||||
rows: list[dict] = []
|
||||
base = load_params()
|
||||
for threshold in thresholds:
|
||||
params = deepcopy(base)
|
||||
params["funding_threshold"] = threshold
|
||||
summary = run_simulation(params)
|
||||
rows.append(
|
||||
{
|
||||
"funding_threshold": threshold,
|
||||
"acceptance_rate": summary.acceptance_rate,
|
||||
"accepted": summary.accepted,
|
||||
"rejected": summary.rejected,
|
||||
"total_funded": summary.total_funded,
|
||||
}
|
||||
)
|
||||
return rows
|
||||
|
||||
|
||||
def main() -> None:
|
||||
rows = sweep()
|
||||
out_dir = Path("runs")
|
||||
out_dir.mkdir(exist_ok=True)
|
||||
stamp = datetime.now(UTC).strftime("%Y%m%dT%H%M%SZ")
|
||||
path = out_dir / f"sweep-{stamp}.json"
|
||||
path.write_text(json.dumps({"sweep": rows}, indent=2), encoding="utf-8")
|
||||
print("Sweep results:")
|
||||
for row in rows:
|
||||
print(row)
|
||||
print(f"output: {path}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue