Spaces:
Runtime error
Runtime error
| """Run all 6 fixed dispatch rules on every available benchmark instance. | |
| Output: results/baselines.csv with one row per (family, instance, rule). | |
| """ | |
| from __future__ import annotations | |
| import argparse | |
| from pathlib import Path | |
| from dash_jsp.benchmarks import taillard, lawrence, dmu | |
| from dash_jsp.eval.benchmark import MethodSpec, run_benchmark | |
| from dash_jsp.heuristics.rules import ALL_RULES | |
| def main() -> None: | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--data-dir", default="data") | |
| parser.add_argument("--out", default="results/baselines.csv") | |
| parser.add_argument( | |
| "--families", | |
| nargs="+", | |
| default=["taillard", "lawrence", "dmu"], | |
| choices=["taillard", "lawrence", "dmu"], | |
| ) | |
| args = parser.parse_args() | |
| data_dir = Path(args.data_dir) | |
| instances = [] | |
| if "taillard" in args.families: | |
| instances.extend(taillard.load_all(data_dir / "taillard")) | |
| if "lawrence" in args.families: | |
| instances.extend(lawrence.load_all(data_dir / "lawrence")) | |
| if "dmu" in args.families: | |
| instances.extend(dmu.load_all(data_dir / "dmu")) | |
| methods = [ | |
| MethodSpec.from_fixed_rule(name, rule) | |
| for name, rule in ALL_RULES.items() | |
| ] | |
| print(f"Running {len(methods)} methods on {len(instances)} instances") | |
| df = run_benchmark(methods, instances, seeds=[0]) | |
| out = Path(args.out) | |
| out.parent.mkdir(parents=True, exist_ok=True) | |
| df.to_csv(out, index=False) | |
| print(f"Wrote {out} ({len(df)} rows)") | |
| if __name__ == "__main__": | |
| main() | |