E14: mating systems — monogamy vs promiscuity (mate-pool breadth)

A new analytic experiment on an orthogonal evolution-of-sex axis: not the
recombination RATE (E9) but the population's mating STRUCTURE. Agents on a
ring recombine with a second parent drawn from a window of breadth b
(b->0 monogamous/isolation-by-distance, b=1 promiscuous/panmictic), under
local selection, swept against NK ruggedness K.

Finding: the optimal mate-pool breadth SHRINKS as skills get more
entangled. Wide/promiscuous merging wins the champion on additive
landscapes (K<=3, b=0.6), but on rugged ones (K>=6) it prematurely
converges to a worse champion and an intermediate breadth (b~0.35) wins;
pure monogamy over-fragments. Throughout, promiscuity monotonically lifts
the population MEAN but destroys diversity and parallel exploration. The
design rule extends E9: merge widely for additive skills, keep
island-structured sub-populations for entangled ones — a merging-native
axis the panmixia-assuming literature lacks.

- src/knowledge/mating_system.py + experiment.py dispatch (kind: mating_system)
- configs/layer1/E14.yaml (breadth x K sweep, 20 reps, bitwise-reproducible)
- figures/plot_E14.py; results/E14/ (figure, README, manifest, resolved config)
- tests/test_mating_system.py (+5, 147 green); make layer1 wired
- folded into both papers (full + accessible) as the third §5 result

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Giorgio Gilestro 2026-07-09 12:38:50 +01:00
parent 9fea375ff8
commit f5f68f5249
13 changed files with 472 additions and 2 deletions

BIN
results/E14/E14.pdf Normal file

Binary file not shown.

BIN
results/E14/E14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

68
results/E14/README.md Normal file
View file

@ -0,0 +1,68 @@
# E14 — Mating systems: monogamy vs promiscuity (mate-pool breadth)
**Claim tested.** The society experiments (E8E11) assumed **panmixia** — every offspring recombined
from parents sampled across the whole population. Biology's mating systems instead span a continuum
from **monogamy** (mating within a narrow, local circle) to **promiscuity** (mates drawn freely from
everyone), and population genetics says the choice matters: wide gene flow spreads a good allele fast
but **homogenises** the population, while restricted gene flow (population structure / *isolation by
distance*) keeps demes distinct so several fitness peaks can be explored in parallel (Wright's shifting
balance). E14 asks how the best mating system depends on how **entangled** the skills are.
**Setup.** A finite population of `N=48` genotypes (`L=12` biallelic loci) evolves on a Kauffman **NK**
landscape (ruggedness `K`). Agents sit on a **ring**; an offspring's second parent is drawn from a
window of half-width `≈ breadth·N/2` around the focal parent, so **mate-pool breadth** `b` is a single
scalar: `b→0` = monogamous / structured (local mating), `b=1` = promiscuous / panmictic. Selection is
**local** — an offspring replaces the incumbent at its own ring position only if strictly fitter — so
restricted mating can actually sustain distinct demes instead of being washed out. Sweep `b ∈ {0.03,
0.08, 0.17, 0.35, 0.6, 1.0}` × `K ∈ {0, 3, 6, 10}`, 60 generations, 20 replicates, `μ=0.003`,
crossover rate 0.5. Bitwise-reproducible from the master seed.
### Results — the best breadth shrinks as the landscape gets more rugged
`best_fitness / global_opt` (the *champion*), mean over 20 reps; **bold = best breadth at that K**:
| K \ breadth | 0.03 | 0.08 | 0.17 | 0.35 | 0.60 | 1.00 |
|---|---|---|---|---|---|---|
| **0** (additive) | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| **3** (mild) | 0.995 | 0.993 | 0.997 | 0.993 | **0.9997** | 0.993 |
| **6** (rugged) | 0.986 | 0.972 | 0.983 | **0.989** | 0.984 | 0.982 |
| **10** (very rugged) | 0.961 | 0.968 | 0.967 | **0.980** | 0.964 | 0.965 |
- **K=0** saturates: an additive (single-peak) landscape is solved by everyone regardless of mating, so
the champion metric can't discriminate (it only shows up in diversity, below).
- **K=3**: the optimum is at **wide** breadth (`b=0.6`) — near-promiscuous mating maximises the champion
when the landscape is mild.
- **K=6, K=10**: the optimum moves to an **intermediate** breadth (`b=0.35`), and *full promiscuity*
falls below it. Wide mating **prematurely converges** on rugged landscapes; pure monogamy
over-fragments (too little gene flow to combine complementary basins). The best of both is
intermediate structure — the mating-system image of E9's "optimal recombination rate shrinks with
ruggedness."
### Results — the diversity/mean tension that drives it
Two monotone effects, opposite in sign, at **every** K (mean over reps at K=10):
| breadth | 0.03 | 0.08 | 0.17 | 0.35 | 0.60 | 1.00 |
|---|---|---|---|---|---|---|
| mean fitness / opt | 0.890 | 0.914 | 0.926 | 0.941 | 0.941 | 0.943 |
| diversity (pairwise Hamming) | 0.441 | 0.413 | 0.384 | 0.346 | 0.265 | 0.282 |
| distinct local optima occupied | 11.0 | 8.6 | 7.4 | 7.3 | 7.2 | 6.9 |
- **Mean fitness** rises monotonically with breadth: panmixia lifts the *typical* individual toward a
good consensus fastest.
- **Diversity** and **occupied peaks** fall monotonically with breadth: promiscuity **homogenises**;
monogamy preserves the standing variation (and the parallel exploration of distinct basins) — most
strongly on rugged landscapes.
So promiscuity maximises the *typical* model and destroys diversity; on a rugged landscape the *best*
model needs that preserved diversity, so an intermediate breadth wins the champion even though the wide
breadth still wins the mean. (Panel A = champion, Panel B = mean, Panel C = diversity.)
### Positioning
This is the population-**structure** axis the model-merging literature does not have. Merging/soup work
implicitly assumes panmixia (fuse everything, or route among a flat pool); E14 says the *breadth* of who
merges with whom is itself a design knob, and its optimum is set by the entanglement of the skills:
**merge widely when skills are additive; keep sub-populations (structured / island merging) when skills
are rugged and diversity must be preserved to explore and later combine basins.** It complements E9
(recombination *rate*) and E11 (diversity is load-bearing) on a new, orthogonal axis. **Falsifier (not
triggered):** the best breadth independent of `K` (no crossover), or promiscuity best at every
ruggedness — instead the optimal breadth shifts from `0.6` (K=3) to `0.35` (K≥6), and diversity is
monotonically lost to breadth throughout.

14
results/E14/manifest.json Normal file
View file

@ -0,0 +1,14 @@
{
"experiment": "E14",
"master_seed": 20260709,
"git_commit": "9fea375ff89f2b88a4deb5881894087555558863",
"python": "3.14.5",
"libraries": {
"numpy": "2.5.0",
"scipy": "1.18.0",
"pandas": "3.0.3",
"pyarrow": "24.0.0"
},
"rows": 29280,
"results_sha256": "5766302157f44c0f27228f361b43c06b0651697a7dcc38848eb1d94d0502faa6"
}

View file

@ -0,0 +1,33 @@
experiment: E14
seed: 20260709
n_replicates: 20
source_config:
experiment: E14
kind: mating_system
seed: 20260709
n_replicates: 20
mating:
L: 12
N: 48
breadth: 1.0
K: 0
recomb_rate: 0.5
mu: 0.003
generations: 60
sweep:
- param: mating.K
values:
- 0
- 3
- 6
- 10
- param: mating.breadth
values:
- 0.03
- 0.08
- 0.17
- 0.35
- 0.6
- 1.0
output:
dir: results/E14