The culmination. A finite population of agents (genotypes, L loci) evolves
on a rugged NK landscape that IS reality (knowledge/dynamic_society.py),
composing the four operators the whole study built toward: grounding,
directed recombination (sex), quality-diversity selection, and mutation.
Grounding is made load-bearing via the consensus-conformity (self-
consumption) mechanism (GG decision): selection acts on
g*true_fitness + (1-g)*conformity, where conformity = agreement with the
population's own consensus, so at g=0 the society optimises fitting-the-
crowd rather than reality.
4-arm ablation (12 reps), each breaking distinctly, only the full society
climbing (global_opt ~ 0.79):
- full 0.78 climbs to the optimum, diversity maintained longest
- no_sex 0.77 can't recombine to escape local optima
- no_diversity 0.74 greedy: collapses diversity fastest, worse local optimum
- no_grounding 0.48 self-consumption collapse to an unfit consensus
(trains on the crowd -> confident-but-wrong mean;
conformity-true gap ~ 0.5)
This integrates E1-E6 + the learning kernel + E7-E10 into one system and
shows the Lamarckian society needs ALL of grounding + directed sex +
diversity: on a rugged landscape you need diversity to explore basins, sex
to recombine them, and grounding to select on reality -- remove any one and
you fail differently. Closes the C3 vertical claim analytically; the LLM
rung remains the eventual empirical instantiation.
New: knowledge/dynamic_society.py, configs/layer1/E11.yaml, figures/
plot_E11.py, README, tests/test_dynamic_society.py (+5). kind:
dynamic_society dispatch; make layer1 wired. 122 tests green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
40 lines
2 KiB
YAML
40 lines
2 KiB
YAML
experiment: E11
|
|
kind: dynamic_society
|
|
seed: 20260705
|
|
n_replicates: 12
|
|
|
|
# (The dynamic Lamarckian society — the vertical claim, C3): a finite population of agents (genotypes)
|
|
# evolves on a rugged NK fitness landscape that IS reality. The full society composes the four
|
|
# operators the whole study built toward — grounding, directed recombination (sex), quality-diversity
|
|
# selection, and mutation — and a 4-arm ablation shows each is load-bearing. Grounding is made load-
|
|
# bearing via the consensus-conformity (self-consumption) mechanism: selection acts on
|
|
# g*true_fitness + (1-g)*conformity, so at g=0 the society optimises agreement with its own majority
|
|
# rather than reality and drifts to a fit-looking but actually-poor consensus. Expect: FULL climbs to
|
|
# near the global optimum while maintaining diversity longest; NO_GROUNDING collapses to the unfit
|
|
# consensus; NO_SEX plateaus (can't recombine to escape local optima); NO_DIVERSITY (greedy) collapses
|
|
# diversity fast and stalls at a worse local optimum. Falsifier: an ablation matches the full society,
|
|
# or the full society fails to exceed every ablation.
|
|
|
|
society:
|
|
L: 12
|
|
K: 8 # landscape ruggedness (epistasis) — rugged enough that diversity + sex matter
|
|
N: 60 # population size
|
|
g: 0.85 # grounding fraction (overwritten to 0 in the no_grounding arm)
|
|
mu: 0.03 # per-locus mutation rate
|
|
novelty: 0.5 # quality-diversity weight (0 in the no_diversity/greedy arm)
|
|
n_off: 120 # directed-recombination offspring pool per generation
|
|
recomb_rate: 0.2 # crossover rate
|
|
sex: true # directed recombination on (false in the no_sex arm)
|
|
select: qd # quality-diversity survival (greedy in the no_diversity arm)
|
|
|
|
generations: 80
|
|
|
|
sweep:
|
|
- param: arm
|
|
values:
|
|
- {name: full, set: {}}
|
|
- {name: no_grounding, set: {society.g: 0.0}}
|
|
- {name: no_sex, set: {society.sex: false}}
|
|
- {name: no_diversity, set: {society.select: greedy, society.novelty: 0.0}}
|
|
|
|
output: {dir: results/E11}
|