Skip to main content

Module synthetic

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 archetypal a − 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§

LabeledCurve
A curve tagged with the role it plays in a scenario, for readable assertions.

Enums§

LearningCurve
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.