Spaces:
Runtime error
Runtime error
File size: 1,561 Bytes
52c82e4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | """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()
|