MachineSex/configs/layer1/E2.yaml
Giorgio Gilestro a6eb9b7512 Layer 1 core: Wright-Fisher knowledge-transmission model with E1-E2
Scaffold plus the Layer 1 analytical core and the first two experiments.

- knowledge/: truth, metrics, teachers (2.7.1 shared-switch construction),
  step, lineage, experiment, config, seeding (imported as `knowledge`).
- Validation spine green: neutral decay (Pred 1), fixation (Pred 2), exact
  mutation-drift equilibrium (Pred 3), union coverage (Pred 5). 68 tests pass.
- E1 reproduces tail-first collapse. E2 delivers the headline: a grounding
  phase boundary g* << 1, with stationary H tracking the exact H_eq closed
  form (g=0.005 -> 68% of truth diversity; g=0.05 -> 96%).
- Reproducibility: uv venv from a hash-pinned uv.lock is the source of truth;
  every run writes results.parquet + resolved_config.yaml + manifest.json
  (lib versions, git commit, sha256). Figures and manifests tracked; the
  large regenerable parquet is gitignored.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 18:10:18 +02:00

36 lines
1.1 KiB
YAML

experiment: E2_grounding_phase_boundary
seed: 20260704
n_replicates: 100
generations: 500 # long enough that the g=0 arm slides toward 0 while g>0 arms plateau
# Headline experiment (blueprint 2.5-E2): sweep the grounding fraction g = m/(n+m);
# single teacher; proportional grounding (Multinomial(m, p*), the immigration model the
# exact H_eq of 2.4-3 is derived for); no selection. R=1 so the sweep tracks the closed
# form. Expect a critical g* << 1 above which stationary H and tail mass stabilise at a
# positive value tracking H_eq = H* * m(2n+m-1)/(n+2nm+m^2), below which they collapse.
truth:
K: 1000
R: 1
tail: zipf
zipf_s: 1.1
tail_frac: 0.5
tail_threshold: 1.0e-3
init: truth
dynamics:
n: 200
teachers: {K_T: 1, rho: 0.0, q: 1.0}
grounding: {m: 0, policy: proportional} # m is overwritten per g by the sweep
selection: {mode: none, novelty_alpha: 0.0}
remint: {enabled: false, period: null, H_gate: null}
metrics:
kl_floor: 1.0e-9
support_eps: 1.0e-9
sweep:
- param: g
values: [0.0, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.4]
output:
dir: results/E2