Module synthetic
Expand description
Synthetic learning curves — the raw material of the scheduler oracle.
A scheduler (a pruner is the degenerate case, docs/design/03-architecture.md §3.2)
decides a running trial’s fate from the intermediate values it streams. To
test that decision without an actual training run, this module fabricates
those streams: a LearningCurve is a deterministic function of
(kind, seed, step), so a whole benchmark is reproducible from one study
seed (docs/design/09-implementation.md §5).
The families mirror the shapes RL curves actually take
(docs/design/04-rl-and-oniro.md §A.2):
- monotone-saturating —
floor + (asymptote − floor)·(1 − e^(−rate·t)), the archetypala − b·e^(−c·t)learning curve; - noisy around a trend — the same trend plus a bounded deterministic wobble, so a set of curves can differ only by their noise;
- deceptive — rises fast to a low plateau (best early, mediocre late);
- slow starter — rises slowly to a high asymptote (worst early, best late).
Everything is a maximization-friendly return curve by construction (values
climb toward the asymptote), but the numbers carry no direction of their own —
the Direction lives on the study the
scheduler_bench driver builds, and the same curves
serve a minimizing study unchanged.
Structs§
- Labeled
Curve - A curve tagged with the role it plays in a scenario, for readable assertions.
Enums§
- Learning
Curve - A synthetic learning curve: a deterministic value at each resource step.
Functions§
- noise_
seed - A per-trial noise seed, so replicated curves get independent noise from one study seed.