Manuscript revision and pending experiment work, snapshot before restructuring
Clarity pass over the main text (36-item audit), Discussion rewrite and cut, acknowledgements, Souly et al. as ref 62, lettered SI panels, model section moved under Results; plus the untracked curriculum/society/compose/smol configs, runners, figures, stats and tests that the SI already cites. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
This commit is contained in:
parent
e4804adabc
commit
84124de143
450 changed files with 52813 additions and 1202 deletions
|
|
@ -26,7 +26,7 @@ from pathlib import Path
|
|||
import matplotlib.pyplot as plt
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent))
|
||||
from _figlib import load_bundle, savefig # noqa: E402
|
||||
from _figlib import load_bundle, savefig, letter_axes # noqa: E402
|
||||
|
||||
|
||||
def main() -> None:
|
||||
|
|
@ -40,14 +40,14 @@ def main() -> None:
|
|||
|
||||
fig, axes = plt.subplots(1, 3, figsize=(16, 5))
|
||||
panels = [
|
||||
("best_n", "best fitness / global optimum", "(A) the champion: best model in the population",
|
||||
"best fitness peaks at INTERMEDIATE breadth\non rugged landscapes (the peak shifts left as K rises)"),
|
||||
("mean_n", "mean fitness / global optimum", "(B) the typical model: population mean",
|
||||
"monotonically favoured by wide breadth\n(panmixia lifts the whole population)"),
|
||||
("diversity", "diversity (mean pairwise Hamming)", "(C) standing diversity",
|
||||
"monotonically destroyed by breadth\n(promiscuity homogenises; monogamy preserves)"),
|
||||
("best_n", "best fitness / global optimum",
|
||||
"Best model peaks at intermediate breadth on rugged\nlandscapes (the peak shifts left as $K$ rises)"),
|
||||
("mean_n", "mean fitness / global optimum",
|
||||
"Population mean rises monotonically with breadth\n(panmixia lifts the whole population)"),
|
||||
("diversity", "diversity (mean pairwise Hamming)",
|
||||
"Standing diversity falls monotonically with breadth\n(promiscuity homogenises; monogamy preserves)"),
|
||||
]
|
||||
for ax, (col, ylab, title, subtitle) in zip(axes, panels):
|
||||
for ax, (col, ylab, title) in zip(axes, panels):
|
||||
for K in Ks:
|
||||
g = (last[last["K"] == K].groupby("breadth")[col]
|
||||
.agg(["mean", "sem"]).reset_index())
|
||||
|
|
@ -55,12 +55,11 @@ def main() -> None:
|
|||
marker="o", lw=1.8, capsize=2, color=colors[K], label=f"K={K}")
|
||||
ax.set_xscale("log")
|
||||
ax.set(xlabel="mate-pool breadth (monogamous ← → promiscuous)", ylabel=ylab)
|
||||
ax.set_title(f"{title}\n{subtitle}", fontsize=9)
|
||||
ax.set_title(title, fontsize=9)
|
||||
ax.legend(title="ruggedness", frameon=False, fontsize=8)
|
||||
|
||||
fig.suptitle("E14 — monogamy vs promiscuity: the best mate-pool breadth shrinks as skills get more entangled",
|
||||
y=1.02, fontsize=13)
|
||||
fig.tight_layout()
|
||||
letter_axes(fig)
|
||||
savefig(fig, "results/E14", "E14")
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue