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>
This commit is contained in:
commit
a6eb9b7512
33 changed files with 4356 additions and 0 deletions
36
configs/layer1/E2.yaml
Normal file
36
configs/layer1/E2.yaml
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue