homemaker-layout/tests
Bruno Postle e37930605e homemaker-py-1s3: land precision-weighted shape combination for multi-use leaves
Follow-up to the previous commit: user flagged that quality_width/
quality_proportion's "stricter of both" (max target, min sigma) combination
for a fused leaf's two codes was an ad hoc hack. Tried two more principled
alternatives and A/B'd all three against the harbor-house/health-centre
example programmes (20k evals x 3 seeds each):

1. stricter-of-both (original)      -> health-centre +24.5% worse
2. precision-weighted Gaussian product -> health-centre -13.9% better
3. mixture (max of two Gaussians)    -> health-centre +20.4% worse

Landed #2 (fitness._gaussian_product): combining two Gaussian evidence
sources about the same quantity via precision-weighting gives an
intermediate target with a narrower spread, unlike the naive max/min hack.
#3's building block (_clipped_gaussian) is kept, documented, and unit-tested
as a recorded negative alternative -- somewhat counterintuitively, the more
philosophically appealing "let the leaf collapse toward whichever code fits"
mixture model was empirically worse, because max() lets a leaf score 1.0 by
satisfying only the weaker of the two codes' targets.

multi_use stays default OFF -- the precision-weighted result improves both
example programmes on average but isn't the clean sweep needed for a
default flip (harbor-house loses 1/3 seeds). DESIGN.md §33 rewritten with
the full three-way comparison.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R8agJBT2ZpmF3ErW7wi2wY
2026-07-31 10:20:49 +01:00
..
test_collapse_global.py 9wi: 2-opt local search past collapse_global's Jacobi adjacency plateau 2026-07-26 20:59:07 +01:00
test_collapse_insearch.py qpk: in-search global collapse — run collapse_global per-eval during search 2026-07-19 20:35:18 +01:00
test_conn_grade.py qi6: graded circulation-connectivity signal (§18) 2026-07-18 18:44:24 +01:00
test_dom_corpus.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_driver.py 8sh: insert/relocate-circulation repair operator (qi6 mechanism (a)) 2026-07-24 19:48:13 +01:00
test_evolve_cli.py x3b/§13.10: productionise leaf-sharing — per-code share grain + CLI wiring 2026-06-28 22:04:35 +01:00
test_fitness.py x3b/§13.10: productionise leaf-sharing — per-code share grain + CLI wiring 2026-06-28 22:04:35 +01:00
test_genome.py Phase 6 §11.5: structural niching + restarts — negative result (c4c.5) 2026-06-18 23:42:39 +01:00
test_geometry.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_graph.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_innerloop.py Swap inner loop default from CMA-ES to Nelder-Mead (homemaker-py-d6d) 2026-06-14 08:51:22 +01:00
test_multi_use.py homemaker-py-1s3: land precision-weighted shape combination for multi-use leaves 2026-07-31 10:20:49 +01:00
test_operators.py c94: beam/best-first search over adjacency-aware room placement (null) 2026-07-28 00:00:51 +01:00
test_oracle.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_staging.py Phase 6 §11.3: staged per-floor search (c4c.3) 2026-06-18 06:05:53 +01:00
test_superposition.py b3v: interchange:false veto hatch for interchange-class derivation 2026-07-17 16:53:20 +01:00