Features 41-50¶
Items in this decade from the roadmap overview. Status and surfaces live on that table. Empty slots stay empty until an item is numbered into this range.
41. Case-structured generalization path¶
What. The default case-structured recipe the thin loops do
not wire: a caller-marked held-out exam, lexicase on the rest,
and a successive-halving schedule that spends cheap case
subsets first. Optional index helper for a last-fraction
holdout (held_out_tail(n, fraction=) or equivalent).
Chronological meaning, embargo, and expanding windows stay
on the caller.
Today. held_out_tail / train_head and
case_generalization_pool build a caller-marked held-out exam.
make_lexicase_train_select and case_generalization_recipe wire
lexicase on train cases only. case_halving_stages,
evaluate_case_halving, and case_eval_charge run successive
halving on train-catalog prefixes and return case-eval units for
n_evals= budgeting. Chronological splits beyond a last-fraction
holdout stay on the caller; the
index-only walk-forward builder
remains under consideration.
Benefit. One held-out slice plus lexicase on the train cases is the usual difference between a curve-fit and a law that still scores later. Halving stretches the same budget across more individuals.
Scope. A documented path, a last-fraction holdout helper,
and a case-budget schedule. No timestamps. No domain loss.
Not step_program_search.
Related: item 5, item 6, item 23, item 28, item 33.
42. Memetic and affine leash¶
What. Defaults and a thin wrapper so tune_ephemerals and
affine scaling cannot spend the run. Darwinian affine (score
only) is the default path when writing case errors.
Lamarckian write_affine_scale stays opt-in. Tune uses a
small n_gen, charges the inner loop to remaining n_evals,
and is judged on a caller-marked held-out exam when one
exists.
Today. MEMETIC_DEFAULT_N_GEN and MEMETIC_MAX_N_GEN
document the recommended inner polish. affine_case_errors
fits Keijzer \(a + b\,f(x)\) and writes Darwinian case errors
only. Lamarckian write_affine_scale stays opt-in.
tune_ephemerals_budget caps inner n_gen to remaining
n_evals, defaults to the small generation count, and judges
trials on a caller-marked held-out exam when one exists.
cap_tune_n_gen and estimate_tune_ephemerals_evals share
the same cost model as PolicyActionGuard. Raw
tune_ephemerals is unchanged. Policy caps stay on
PolicyActionGuard; ea_simple / register_gp callers use
the budget wrapper instead.
Benefit. Structure plus a short numeric polish is useful. Unmetered tune and writeback on the train exam overfit intercept, slope, and window lengths — the usual silent failure next to a good tree shape.
Scope. Documented defaults, a Darwinian score helper, and
a budget-aware tune wrapper. Not a new CMA. Not a domain
metric. Policy caps stay on PolicyActionGuard.
Related: item 24, item 31, item 33, item 41.
43. Team and archive recipe¶
What. A documented loop that keeps a book of programs,
not one elite: semantic_project → archive add →
sel_team on the case-solve matrix (or on occupied cells).
Optional thin helper that returns a team from archive elites
without rewriting member fitness.
Today. semantic_project, grid / CVT / unstructured
archives, and sel_team compose a documented caller loop in
the columnar programs tutorial
and the team and archive example.
sel_team_archive returns a team from occupied archive cells
without rewriting member fitness. Team scoring stays on the
caller. Not step_program_search.
Benefit. One elite on one window is how a train score dies on the next slice. A team that covers different cases is what lexicase and MAP-Elites were already pointing at.
Scope. A recipe and an optional helper on shipped
operators. Team scoring stays on the caller. Not a new
selector. Not step_program_search
— that wrapper also owns Slim, tune, and exams.