oracle7-deepspace / eval /eval_fresh.py
psiloceyeben's picture
Upload folder using huggingface_hub
3538060 verified
Raw History Blame Contribute Delete
1.95 kB
#!/usr/bin/env python3
"""FINAL confirmation run on a FRESH held-out set (seeds 5000-5049), after the two post-hoc fixes (compound-aware
handled facts; expiring waits). Nothing here was looked at before this run. Writes results/fresh_eval.json."""
import copy, json, os, sys
HERE = os.path.dirname(os.path.abspath(__file__)); ROOT = os.path.dirname(HERE)
sys.path.insert(0, ROOT); sys.path.insert(0, HERE)
os.environ["COMPOUND_START"] = "6000"
import eval_paper as E
from deepspace.fdir import FDIR
from deepspace.runtime import run, scenario
from deepspace.selfmaint import Rulebook, propose
from deepspace.sim import PROFILES
FRESH = range(5000, 5050)
out = {"seeds": {"fresh_single": "5000-5049", "fresh_compound": "6000-6019"}}
print("== FRESH single faults (1,700 scenarios)")
out["deepspace"] = E.evaluate(lambda s: FDIR(), "oracle7-deepspace", FRESH)
out["expert"] = E.evaluate(lambda s: E.ExpertTable(), "expert fault table", FRESH)
out["threshold"] = E.evaluate(lambda s: E.Threshold(), "limit -> safe mode", FRESH)
out["random"] = E.evaluate(lambda s: E.Random(s), "random admissible", FRESH)
out["noaction"] = E.evaluate(lambda s: E.NoAction(), "no action", FRESH)
traces = [run(scenario(f, s, p), FDIR().decide) for p, pr in PROFILES.items() for f in pr["faults"] for s in range(8)]
rb = Rulebook()
for r in propose(traces):
rb.consider(r)
out["learned_rules"] = len(rb.current)
out["deepspace_learned"] = E.evaluate(lambda s: FDIR(rulebook=copy.deepcopy(rb.current)), "deepspace + learned rules", FRESH)
print("== FRESH compound faults (240)")
out["compound_deepspace"] = E.compound(lambda s: FDIR(), "oracle7-deepspace")
out["compound_expert"] = E.compound(lambda s: E.ExpertTable(), "expert fault table")
out["compound_threshold"] = E.compound(lambda s: E.Threshold(), "limit -> safe mode")
json.dump(out, open(os.path.join(ROOT, "results", "fresh_eval.json"), "w"), indent=1, default=str)
print("written results/fresh_eval.json")