Module synthetic
Expand description
Synthetic learning curves — the raw material of the scheduler oracle.
A scheduler (a pruner is the degenerate case,
docs/extending/scheduler.md) 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/concepts/determinism.md).
The families mirror the shapes RL curves actually take:
- 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.