Marcin Pawlowski 333231c6dd
Set up the high-power W sweep and its analysis
Prepares a finer, higher-power re-measurement of where the parent-anchored window
crosses today's recipe. The integer sweep put the crossing between W = 11
(t = -4.5) and W = 12 (t = 0.1) — located to about one block-interval and no
better, on a ~0.0005 standard error.

configs/pref-window-anchor-fine.yaml attacks three variance sources at once:
half-integer W from 9 to 14 (w_u = 270..420 slots, all genuinely distinct
windows, not relabelled duplicates); 96 replicates instead of 32; and early_stop
off at 30 epochs, so each run contributes a full 15-epoch equilibrium sample
instead of ~10. The replicate count averages out between-run variance; the epoch
count attacks the per-epoch +-0.9% sampling noise that replicates cannot touch.
2112 runs, paired throughout.

scripts/w_pairing_analysis.py reports the paired table, locates the crossing
(smallest W not resolvably worse, plus the interpolated zero), and — the part
that matters for an unattended run — counts replicates whose stake draw cannot
realise adversary_frac and repeats the whole analysis without them.

That last check already pays for itself on the committed integer sweep: 2 of its
32 replicates ran 0.09 and 0.06 coalitions against a 0.30 label. Being weaker
they pull cells toward parity, which would make the crossing look smaller than
it is. Dropping them changes nothing — crossing stays at W = 12, interpolated
zero at 11.98 — so the committed recommendation is robust to it, and §6.12 now
says so.

(My earlier check claimed 0 of 32 were off-label; it reconstructed the config
wrongly. The runtime warnings were right.)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 14:22:56 +02:00
..
2026-07-31 10:04:10 +02:00