Compare commits

..

No commits in common. "d04e585d38c37724a2813c2d171fe25051f84b0c" and "0d4ae7ad5442a7c3c5a292cc8f32e1f7b7e206cc" have entirely different histories.

138 changed files with 2358 additions and 1983110 deletions

File diff suppressed because one or more lines are too long

4
.gitignore vendored
View file

@ -14,7 +14,3 @@ scratch/
.dolt/
*.db
.beads-credential-key
# per-process shards written by the sharded A/B harnesses; the merged
# <out>.csv is the artefact worth keeping (experiments/ab_9gj_ramp.py --report)
experiments/results/*.csv.shard*

View file

@ -100,6 +100,7 @@ Key modules:
- `innerloop.py` — ratio optimisation inner loop (Nelder-Mead / CMA-ES)
- `driver.py` — memetic search outer loop
- `evolve.py``homemaker-evolve` CLI entry point
- `oracle.py` — legacy Perl shim, kept for validation only; do not use in new code
- `bubble.py` — 3D bubble-diagram adjacency fitness-signal prototype (DESIGN.md §27, `mi7`); validated NULL, not wired into `fitness.py` — reference only, do not build on without a new formulation
## Conventions & Patterns
@ -118,14 +119,5 @@ homemaker-fitness cf0b8a77e8b2325f92a7e7d150184a55.dom
The score is written to `<file>.dom.score` and failures to `<file>.dom.fails`; the numeric score is also printed to stderr.
`fitness.py` is the **only** evaluator. The Perl oracle it was ported from —
`oracle.py`, `urb-fitness.pl`, and the parity tests against them — is gone
(DESIGN.md §39.21). Those parity tests had never actually run: no oracle
`.score` was ever committed, so on a clean checkout every case skipped, and the
only cases that ever executed compared the native scorer with itself (§39.20).
The corollary matters when reading the objective: a constant or a rule that
looks odd is **not** thereby validated by "Urb did it this way". Several
defects found in §39 were carried straight over from the Perl — see §39.19 on
`value_supported`, and `homemaker-py-hxi` on circulation, which the owner has
ruled needs fixing.
Do **not** use `urb-fitness.pl` directly — `oracle.py` and the Perl tool are
kept only for cross-validation.

2284
DESIGN.md

File diff suppressed because it is too large Load diff

View file

@ -110,7 +110,6 @@ spaces:
- c
st1:
crinkliness: none # no window needed
usage: utility
name: Ground Floor Storage
size:
@ -123,7 +122,6 @@ spaces:
- c
me1:
crinkliness: none # no window needed
usage: utility
name: Mechanical/Electrical Room
size:

View file

@ -1,448 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.3985442745073203
- 0.3985442745073203
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.3094512886869734
- 0.3094512886869734
l:
rotation: 1
division:
- 0.5940581633377823
- 0.5940581633377823
l:
type: n
rotation: 0
r:
type: O
rotation: 3
r:
rotation: 0
division:
- 0.8043008907725491
- 0.8043008907725491
l:
rotation: 0
division:
- 0.544025432199185
- 0.544025432199185
l:
rotation: 1
division:
- 0.391341459113696
- 0.391341459113696
l:
rotation: 1
division:
- 0.7211389666113284
- 0.7211389666113284
l:
type: me1
rotation: 0
r:
type: C
rotation: 0
r:
type: da1
rotation: 0
r:
rotation: 1
division:
- 0.7235436770862052
- 0.7235436770862052
l:
type: n
rotation: 0
r:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.6505939964175393
- 0.6505939964175393
l:
type: C
rotation: 0
r:
rotation: 2
division:
- 0.5868140737321261
- 0.5868140737321261
l:
type: C
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.43644811120043386
- 0.43644811120043386
l:
rotation: 1
division:
- 0.7654752257383863
- 0.7654752257383863
l:
rotation: 1
division:
- 0.4376436987858707
- 0.4376436987858707
l:
rotation: 3
division:
- 0.8494329721993664
- 0.8494329721993664
l:
type: O
rotation: 0
r:
type: m
rotation: 0
r:
rotation: 1
division:
- 0.6049702596175167
- 0.6049702596175167
l:
type: ws1
rotation: 0
r:
type: O
rotation: 3
r:
type: C
rotation: 3
r:
rotation: 1
division:
- 0.3250476545214606
- 0.3250476545214606
l:
rotation: 1
division:
- 0.8461640488517912
- 0.8461640488517912
l:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6557435235032659
- 0.6557435235032659
l:
type: m
rotation: 1
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.561217084502605
- 0.561217084502605
l:
rotation: 1
division:
- 0.29120109801627336
- 0.29120109801627336
l:
type: ef1
rotation: 0
r:
rotation: 2
division:
- 0.8436218368250273
- 0.8436218368250273
l:
type: n
rotation: 2
r:
type: m
rotation: 0
r:
rotation: 3
division:
- 0.839483766914491
- 0.839483766914491
l:
type: n
rotation: 2
r:
type: la1
rotation: 0
above:
rotation: 0
division:
- 0.3519324875989489
- 0.3519324875989489
height: 3.0
l:
rotation: 0
division:
- 0.4256779296253242
- 0.4256779296253242
l:
rotation: 0
division:
- 0.1346153846153846
- 0.1346153846153846
l:
type: ut1
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.6726619281231458
- 0.6726619281231458
l:
type: li1
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.8574647492492186
- 0.8574647492492186
l:
rotation: 0
division:
- 0.5013138993448436
- 0.5013138993448436
l:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: n
rotation: 0
r:
type: st2
rotation: 0
r:
rotation: 0
division:
- 0.5079366503514491
- 0.5079366503514491
l:
rotation: 3
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: st2
rotation: 0
r:
rotation: 2
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.15629392209010023
- 0.15629392209010023
l:
rotation: 0
division:
- 0.8577851940134021
- 0.8577851940134021
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: st2
rotation: 0
r:
type: st1
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.4126455278522538
- 0.4126455278522538
l:
rotation: 0
division:
- 0.1276875570629138
- 0.1276875570629138
l:
rotation: 0
division:
- 0.7912375002017624
- 0.7912375002017624
l:
rotation: 0
division:
- 0.5898846840065638
- 0.5898846840065638
l:
type: st2
rotation: 0
r:
rotation: 1
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5146378236487134
- 0.5146378236487134
l:
type: r
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.3871574227542141
- 0.3871574227542141
l:
rotation: 0
division:
- 0.30121819590152477
- 0.30121819590152477
l:
rotation: 0
division:
- 0.5333101977082233
- 0.5333101977082233
l:
rotation: 1
division:
- 0.7039689912158205
- 0.7039689912158205
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.5836803639257983
- 0.5836803639257983
l:
type: r
rotation: 2
r:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5585512945948533
- 0.5585512945948533
l:
rotation: 0
division:
- 0.821355066730113
- 0.821355066730113
l:
rotation: 2
division:
- 0.6901211782405532
- 0.6901211782405532
l:
rotation: 2
division:
- 0.5
- 0.5
l:
type: st1
rotation: 0
r:
type: st2
rotation: 0
r:
rotation: 1
division:
- 0.5650312500000001
- 0.5650312500000001
l:
type: O
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.7292419211112857
- 0.7292419211112857
l:
type: r
rotation: 0
r:
type: t
rotation: 0
r:
type: C
rotation: 0

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,87 +0,0 @@
15s [ 200 evals] best 2.99136e-19 (fails 58) via seed
27s [ 280 evals] best 3.01967e-19 (fails 58) via place_missing noop
39s [ 840 evals] best 3.03178e-19 (fails 58) via level_fix noop
62s [ 1400 evals] best 3.0432e-19 (fails 58) via level_fix st1: lvl1/lrlrl → lvl0/rllr
97s [ 2200 evals] best 1.22462e-18 (fails 56) via rotate 0/ll
146s [ 3480 evals] best 2.45817e-18 (fails 55) via core_undivide noop
157s [ 4040 evals] best 2.46734e-18 (fails 55) via swap 0/llllr
178s [ 4440 evals] best 2.46851e-18 (fails 55) via level_fix noop
191s [ 4760 evals] best 2.03417e-17 (fails 52) via divide 0/rllr
215s [ 5400 evals] best 2.03526e-17 (fails 52) via level_retype 1/lrrrl<->0/lrrrr
239s [ 6040 evals] best 2.03762e-17 (fails 52) via rotate 0/rllr
263s [ 6680 evals] best 2.04377e-17 (fails 52) via core_undivide noop
329s [ 8360 evals] best 1.4244e-16 (fails 49) via level_fix st1: lvl1/lrrrl → lvl0/rllrl
342s [ 8840 evals] best 1.42926e-16 (fails 49) via place_missing noop
353s [ 9080 evals] best 1.43695e-16 (fails 49) via place_missing noop
366s [ 9320 evals] best 1.4375e-16 (fails 49) via place_missing noop
378s [ 9800 evals] best 1.43884e-16 (fails 49) via place_missing noop
390s [ 10040 evals] best 1.44162e-16 (fails 49) via core_undivide noop
413s [ 10520 evals] best 1.4471e-16 (fails 49) via place_missing noop
462s [ 12040 evals] best 1.45739e-16 (fails 49) via level_compound_fix st2: lvl0 → lvl1/rllr + insert st2 into llrlrl/lvl1
487s [ 12440 evals] best 2.95169e-16 (fails 48) via level_fix noop
596s [ 15320 evals] best 3.01432e-16 (fails 48) via core_undivide noop
657s [ 17160 evals] best 3.01447e-16 (fails 48) via level_fix noop
668s [ 17320 evals] best 3.01462e-16 (fails 48) via crossover l<->l
680s [ 17640 evals] best 3.01478e-16 (fails 48) via core_undivide noop
692s [ 17960 evals] best 3.01496e-16 (fails 48) via level_compound_fix noop
704s [ 18280 evals] best 3.01513e-16 (fails 48) via place_missing noop
742s [ 19240 evals] best 3.01516e-16 (fails 48) via level_fix noop
793s [ 20520 evals] best 6.05253e-16 (fails 47) via undivide 1/lllr
828s [ 21560 evals] best 1.10265e-15 (fails 46) via crossover lrrll<->lrlr
866s [ 22360 evals] best 1.11444e-15 (fails 46) via core_undivide noop
891s [ 23000 evals] best 1.11914e-15 (fails 46) via level_compound_fix noop
967s [ 25080 evals] best 1.12384e-15 (fails 46) via level_compound_fix noop
1049s [ 27160 evals] best 1.12851e-15 (fails 46) via core_undivide noop
1097s [ 28440 evals] best 1.13191e-15 (fails 46) via level_compound_fix noop
1099s [ 28600 evals] best 7.49651e-14 (fails 40) via retype 1/rlrlll->t
1174s [ 30360 evals] best 7.55374e-14 (fails 40) via core_undivide noop
1201s [ 31160 evals] best 7.60982e-14 (fails 40) via level_compound_fix noop
1212s [ 31320 evals] best 7.65541e-14 (fails 40) via place_missing noop
1286s [ 33240 evals] best 1.54772e-13 (fails 39) via swap 0/lrrll
1363s [ 35160 evals] best 1.55395e-13 (fails 39) via place_missing noop
1398s [ 36200 evals] best 1.56143e-13 (fails 39) via level_compound_fix noop
1411s [ 36600 evals] best 1.56917e-13 (fails 39) via swap 1/llrr
1424s [ 36840 evals] best 1.57541e-13 (fails 39) via level_compound_fix noop
1451s [ 37640 evals] best 1.57782e-13 (fails 39) via place_missing noop
1474s [ 38120 evals] best 2.87312e-13 (fails 38) via crossover lrrllr<->llllrr
1524s [ 39320 evals] best 2.87802e-13 (fails 38) via crossover llllrr<->llllrl
1549s [ 39960 evals] best 2.87806e-13 (fails 38) via undivide 0/llllr
1561s [ 40440 evals] best 2.87806e-13 (fails 38) via crossover rrrr<->llllr
1634s [ 42360 evals] best 2.87813e-13 (fails 38) via crossover llll<->llll
1750s [ 45080 evals] best 2.87828e-13 (fails 38) via core_undivide noop
1761s [ 45400 evals] best 2.87858e-13 (fails 38) via level_fix noop
1774s [ 45880 evals] best 2.87884e-13 (fails 38) via core_undivide noop
1812s [ 46760 evals] best 2.87887e-13 (fails 38) via level_compound_fix noop
1825s [ 47160 evals] best 2.87899e-13 (fails 38) via core_undivide noop
1847s [ 47640 evals] best 2.87933e-13 (fails 38) via place_missing noop
1861s [ 47960 evals] best 2.8796e-13 (fails 38) via place_missing noop
2672s [ 69000 evals] best 3.0614e-13 (fails 38) via level_retype 0/rrrr<->1/rlllrr
2718s [ 70200 evals] best 5.48257e-13 (fails 37) via swap 1/rlrll
2754s [ 71240 evals] best 1.03963e-12 (fails 36) via divide 1/rlllrl
2781s [ 71720 evals] best 1.04455e-12 (fails 36) via core_undivide noop
2794s [ 72040 evals] best 1.04987e-12 (fails 36) via core_undivide noop
2915s [ 75320 evals] best 1.05549e-12 (fails 36) via core_undivide noop
2927s [ 75480 evals] best 1.05569e-12 (fails 36) via place_missing noop
2942s [ 75960 evals] best 1.0559e-12 (fails 36) via crossover rlrll<->rlrll
2989s [ 77320 evals] best 1.05608e-12 (fails 36) via core_undivide noop
3122s [ 80840 evals] best 1.05612e-12 (fails 36) via rotate 0/rlrl
3148s [ 81400 evals] best 4.19947e-12 (fails 34) via level_retype 0/lrlrr<->1/rlllrlr
3171s [ 82120 evals] best 4.22196e-12 (fails 34) via level_compound_fix noop
3184s [ 82360 evals] best 4.22276e-12 (fails 34) via level_fix noop
3232s [ 83480 evals] best 7.84445e-11 (fails 30) via divide 1/llll
3272s [ 84440 evals] best 7.86095e-11 (fails 30) via core_undivide noop
3310s [ 85640 evals] best 7.86227e-11 (fails 30) via place_missing noop
3323s [ 85960 evals] best 7.86337e-11 (fails 30) via place_missing noop
3593s [ 92680 evals] best 7.96266e-11 (fails 30) via level_retype 1/lllrr<->0/rrl
3605s [ 92760 evals] best 7.96379e-11 (fails 30) via level_retype 0/lrrlrr<->1/rlrlll
3929s [100760 evals] best 1.5021e-10 (fails 29) via swap 1/rlrll
4345s [111480 evals] best 1.55004e-10 (fails 29) via level_retype 1/llrrr<->0/lrrllr
4485s [115000 evals] best 2.64749e-10 (fails 28) via level_retype 1/llrlrr<->0/rlllrr
4498s [115160 evals] best 5.3468e-10 (fails 27) via crossover rrrr<->rrrr
4535s [116200 evals] best 5.38728e-10 (fails 27) via core_undivide noop
4586s [117400 evals] best 5.4602e-10 (fails 27) via level_fix st1: lvl1/llrrr → lvl0/rllrl
4600s [117880 evals] best 5.50955e-10 (fails 27) via core_undivide noop
4624s [118520 evals] best 5.56091e-10 (fails 27) via level_fix noop
5086s [129560 evals] best 2.35421e-09 (fails 25) via level_retype 0/lrrllr<->1/llrlrr
5181s [131800 evals] best 2.35752e-09 (fails 25) via place_missing noop
5221s [132760 evals] best 2.35752e-09 (fails 25) via place_missing noop

View file

@ -1,8 +0,0 @@
seed=evolved-3M.dom budget=150000 pop=8 workers=4 rng_seeds=[0]
[rng 0] slice: fitness=3.523e-14 fails=41 evals=150040 created=15 5835.9s
[rng 0] grid : fitness=2.358e-09 fails=25 evals=150040 created=15 5916.8s
=== SUMMARY (higher fitness = better; fewer fails = better) ===
slice: fitness 3.523e-14..3.523e-14 (mean 3.523e-14) fails 41..41 (mean 41.0)
grid : fitness 2.358e-09..2.358e-09 (mean 2.358e-09) fails 25..25 (mean 25.0)
head-to-head (fails then fitness): {'slice': 0, 'grid': 1, 'tie': 0}

View file

@ -1,114 +0,0 @@
15s [ 200 evals] best 2.78368e-25 (fails 78) via seed
24s [ 280 evals] best 2.81966e-25 (fails 78) via place_missing noop
32s [ 840 evals] best 2.83081e-25 (fails 78) via level_fix noop
49s [ 1240 evals] best 2.85681e-25 (fails 78) via undivide 1/rlrll
66s [ 1880 evals] best 2.86707e-25 (fails 78) via place_missing noop
66s [ 1960 evals] best 4.17745e-25 (fails 77) via crossover rlll<->llr
74s [ 2280 evals] best 1.76161e-24 (fails 75) via rotate 0/ll
90s [ 3080 evals] best 4.67378e-24 (fails 74) via undivide 0/rllll
118s [ 4120 evals] best 1.46076e-23 (fails 72) via level_retype 1/lrll<->0/lrlrr
144s [ 5160 evals] best 1.36798e-22 (fails 69) via place_missing n -> rllrr
309s [ 9880 evals] best 1.43611e-22 (fails 69) via crossover rlrr<->rlrr
345s [ 11000 evals] best 5.37852e-22 (fails 67) via place_missing n -> rllrrr
359s [ 11160 evals] best 5.45342e-22 (fails 67) via place_missing noop
359s [ 11400 evals] best 7.04364e-22 (fails 67) via crossover lrrlr<->lrrr
398s [ 12520 evals] best 2.63914e-21 (fails 65) via place_missing t -> rllrrrr
514s [ 16360 evals] best 1.955e-20 (fails 62) via undivide 1/lrrlr
533s [ 17000 evals] best 1.99161e-20 (fails 62) via crossover rrrr<->rrrr
542s [ 17320 evals] best 2.02902e-20 (fails 62) via core_undivide noop
543s [ 17400 evals] best 4.31819e-20 (fails 61) via rotate 0/lrrl
582s [ 18760 evals] best 1.53608e-19 (fails 59) via place_missing r -> llrll
599s [ 19160 evals] best 1.54019e-19 (fails 59) via core_undivide noop
646s [ 20840 evals] best 1.55586e-19 (fails 59) via level_compound_fix noop
700s [ 22840 evals] best 1.55593e-19 (fails 59) via level_compound_fix noop
719s [ 23320 evals] best 1.55798e-19 (fails 59) via level_fix noop
728s [ 23720 evals] best 1.5615e-19 (fails 59) via core_undivide noop
747s [ 24280 evals] best 1.57193e-19 (fails 59) via rotate 0/lrlr
769s [ 24920 evals] best 1.57705e-19 (fails 59) via level_compound_fix noop
780s [ 25400 evals] best 6.03009e-19 (fails 57) via place_missing t -> rllrrrr
807s [ 26200 evals] best 6.03785e-19 (fails 57) via level_fix noop
827s [ 27000 evals] best 6.0458e-19 (fails 57) via core_undivide noop
837s [ 27240 evals] best 6.0913e-19 (fails 57) via place_missing t -> rllrrrr
846s [ 27560 evals] best 6.11018e-19 (fails 57) via crossover rllrrrr<->rllrrrr
866s [ 28120 evals] best 6.13019e-19 (fails 57) via core_undivide noop
879s [ 28680 evals] best 6.50627e-19 (fails 57) via retype 1/llrlrl->st1
928s [ 30200 evals] best 6.52736e-19 (fails 57) via core_undivide noop
960s [ 31160 evals] best 6.55054e-19 (fails 57) via place_missing noop
980s [ 31720 evals] best 6.57339e-19 (fails 57) via crossover rllrr<->rllrr
1032s [ 33320 evals] best 6.59183e-19 (fails 57) via place_missing noop
1064s [ 34200 evals] best 6.60911e-19 (fails 57) via core_undivide noop
1080s [ 34600 evals] best 6.62724e-19 (fails 57) via place_missing noop
1101s [ 35160 evals] best 1.34695e-18 (fails 56) via level_retype 1/lrrrr<->0/rllrrl
1130s [ 36200 evals] best 1.35084e-18 (fails 56) via swap 1/llrr
1222s [ 39080 evals] best 1.3536e-18 (fails 56) via core_undivide noop
1263s [ 40280 evals] best 1.35887e-18 (fails 56) via retype 0/rrl->O
1296s [ 41240 evals] best 1.37684e-18 (fails 56) via place_missing noop
1317s [ 41960 evals] best 2.75612e-18 (fails 55) via core_undivide noop
1336s [ 42520 evals] best 2.76622e-18 (fails 55) via crossover llllrr<->llllrr
1354s [ 43160 evals] best 2.76719e-18 (fails 55) via core_undivide noop
1362s [ 43480 evals] best 2.7673e-18 (fails 55) via place_missing noop
1371s [ 44040 evals] best 2.76773e-18 (fails 55) via place_missing noop
1418s [ 45480 evals] best 2.89565e-18 (fails 55) via undivide 0/lrlr
1458s [ 46920 evals] best 2.89592e-18 (fails 55) via core_undivide noop
1478s [ 47480 evals] best 2.91016e-18 (fails 55) via divide 1/rlrlr
1688s [ 52600 evals] best 4.62272e-17 (fails 51) via place_missing n -> rllrl
1861s [ 56680 evals] best 4.63445e-17 (fails 51) via place_missing noop
1909s [ 58120 evals] best 4.736e-17 (fails 51) via crossover lrlrr<->lrll
1957s [ 58840 evals] best 4.75383e-17 (fails 51) via place_missing noop
1998s [ 60040 evals] best 4.77234e-17 (fails 51) via level_retype 0/rllrrrrr<->1/llrllrr
2024s [ 60680 evals] best 4.78944e-17 (fails 51) via place_missing noop
2094s [ 62200 evals] best 4.81054e-17 (fails 51) via core_undivide noop
2161s [ 63560 evals] best 7.68517e-16 (fails 47) via rotate 0/lrrl
2176s [ 63800 evals] best 7.7191e-16 (fails 47) via place_missing noop
2218s [ 64600 evals] best 7.75426e-16 (fails 47) via place_missing noop
2236s [ 64920 evals] best 7.79234e-16 (fails 47) via place_missing noop
2273s [ 65800 evals] best 7.82619e-16 (fails 47) via place_missing noop
2387s [ 67960 evals] best 7.86104e-16 (fails 47) via core_undivide noop
2485s [ 69560 evals] best 7.89754e-16 (fails 47) via swap 1/rlllr
2669s [ 72600 evals] best 7.9387e-16 (fails 47) via place_missing noop
2740s [ 74040 evals] best 1.09506e-15 (fails 46) via retype 0/rllll->st1
2755s [ 74440 evals] best 1.10394e-15 (fails 46) via crossover lr<->lr
2784s [ 74840 evals] best 1.11372e-15 (fails 46) via place_missing noop
2819s [ 75480 evals] best 1.12392e-15 (fails 46) via place_missing noop
2840s [ 75800 evals] best 1.13127e-15 (fails 46) via core_undivide noop
2948s [ 78040 evals] best 1.14356e-15 (fails 46) via place_missing noop
2965s [ 78600 evals] best 1.14876e-15 (fails 46) via place_missing noop
2977s [ 78760 evals] best 1.15416e-15 (fails 46) via core_undivide noop
3017s [ 79720 evals] best 1.15977e-15 (fails 46) via place_missing noop
3081s [ 81400 evals] best 1.16386e-15 (fails 46) via rotate 0/rr
3096s [ 81640 evals] best 1.16556e-15 (fails 46) via level_retype 0/rlllr<->1/llrlrr
3121s [ 82360 evals] best 1.17153e-15 (fails 46) via swap 0/rlrlr
3184s [ 84040 evals] best 1.17767e-15 (fails 46) via core_undivide noop
3222s [ 85000 evals] best 1.18184e-15 (fails 46) via core_undivide noop
3245s [ 85480 evals] best 1.18814e-15 (fails 46) via place_missing noop
3301s [ 86840 evals] best 1.19454e-15 (fails 46) via crossover lrrr<->lrrr
3313s [ 87080 evals] best 1.201e-15 (fails 46) via place_missing noop
3365s [ 88360 evals] best 1.20745e-15 (fails 46) via place_missing noop
3467s [ 90520 evals] best 1.2138e-15 (fails 46) via crossover rlrlrl<->rlrlrr
3481s [ 91000 evals] best 1.21994e-15 (fails 46) via core_undivide noop
3508s [ 91560 evals] best 1.22574e-15 (fails 46) via core_undivide noop
3508s [ 91640 evals] best 8.63614e-15 (fails 43) via level_retype 1/llll<->0/rrl
3730s [ 97080 evals] best 8.69346e-15 (fails 43) via swap 0/llllr
3756s [ 97720 evals] best 8.7509e-15 (fails 43) via place_missing noop
3858s [100360 evals] best 8.80776e-15 (fails 43) via rotate 0/llllr
3882s [100760 evals] best 8.86311e-15 (fails 43) via core_undivide noop
3896s [101080 evals] best 1.70808e-14 (fails 42) via crossover lrrrr<->lrll
3921s [101880 evals] best 1.71667e-14 (fails 42) via place_missing noop
4057s [105240 evals] best 1.72459e-14 (fails 42) via crossover lrlr<->lrlr
4132s [107320 evals] best 1.73156e-14 (fails 42) via place_missing noop
4145s [107720 evals] best 1.73708e-14 (fails 42) via place_missing noop
4196s [109000 evals] best 1.74162e-14 (fails 42) via place_missing noop
4233s [109800 evals] best 1.74389e-14 (fails 42) via place_missing noop
4272s [110760 evals] best 1.74447e-14 (fails 42) via place_missing noop
4336s [112520 evals] best 1.75219e-14 (fails 42) via rotate 0/rlrlr
4361s [112920 evals] best 1.75253e-14 (fails 42) via undivide 1/llrllr
4415s [114440 evals] best 1.76097e-14 (fails 42) via core_undivide noop
4451s [115320 evals] best 1.76189e-14 (fails 42) via crossover rlr<->rlr
4489s [116200 evals] best 1.77166e-14 (fails 42) via place_missing noop
4514s [116840 evals] best 1.78312e-14 (fails 42) via place_missing noop
4576s [118360 evals] best 1.78941e-14 (fails 42) via place_missing noop
4740s [122600 evals] best 1.79859e-14 (fails 42) via rotate 1/llrlr
4792s [123880 evals] best 3.50161e-14 (fails 41) via divide 1/llrlrl
4815s [124440 evals] best 3.51369e-14 (fails 41) via place_missing noop
4827s [124840 evals] best 3.5156e-14 (fails 41) via core_undivide noop
5698s [146680 evals] best 3.52342e-14 (fails 41) via swap 1/llrlrl

View file

@ -1,488 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.4259239623548846
- 0.4259239623548846
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.5145119957760619
- 0.5145119957760619
l:
rotation: 3
division:
- 0.7372477547323839
- 0.7372477547323839
l:
rotation: 0
division:
- 0.28333622842211925
- 0.28333622842211925
l:
type: O
rotation: 0
r:
type: cr1
rotation: 2
r:
rotation: 1
division:
- 0.5059213472651911
- 0.5059213472651911
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 2
division:
- 0.7384537617532285
- 0.7384537617532285
l:
rotation: 1
division:
- 0.8627536956652582
- 0.8627536956652582
l:
rotation: 2
division:
- 0.4768854382205807
- 0.4768854382205807
l:
type: n
rotation: 0
r:
type: n
rotation: 3
r:
rotation: 3
division:
- 0.3631426312336177
- 0.3631426312336177
l:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.5061221341235115
- 0.5061221341235115
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.5802863978450712
- 0.5802863978450712
l:
type: me1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.8096926040364771
- 0.8096926040364771
l:
rotation: 0
division:
- 0.2963883137607755
- 0.2963883137607755
l:
rotation: 1
division:
- 0.8370154596890989
- 0.8370154596890989
l:
rotation: 2
division:
- 0.571197306229532
- 0.571197306229532
l:
type: da1
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.82867901058569
- 0.82867901058569
l:
rotation: 2
division:
- 0.1679878749678333
- 0.1679878749678333
l:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.36541227267882825
- 0.36541227267882825
l:
rotation: 1
division:
- 0.6437744025691031
- 0.6437744025691031
l:
type: ws1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 2
division:
- 0.6621032068588621
- 0.6621032068588621
l:
rotation: 1
division:
- 0.821658595449267
- 0.821658595449267
l:
type: n
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.5049433632607838
- 0.5049433632607838
l:
rotation: 2
division:
- 0.5839374235267318
- 0.5839374235267318
l:
type: m
rotation: 0
r:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.5223173908574568
- 0.5223173908574568
l:
rotation: 0
division:
- 0.5317445671635113
- 0.5317445671635113
l:
type: ef1
rotation: 0
r:
type: m
rotation: 0
r:
type: la1
rotation: 0
r:
rotation: 1
division:
- 0.5338424923830531
- 0.5338424923830531
l:
rotation: 0
division:
- 0.78561771348831
- 0.78561771348831
l:
rotation: 0
division:
- 0.2712833558776919
- 0.2712833558776919
l:
type: of
rotation: 0
r:
type: st1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 2
division:
- 0.6913472617912713
- 0.6913472617912713
l:
rotation: 1
division:
- 0.5061221341235114
- 0.5061221341235114
l:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.5061221341235114
- 0.5061221341235114
l:
type: C
rotation: 0
r:
type: m
rotation: 0
r:
type: of
rotation: 0
above:
rotation: 0
division:
- 0.46686896603993033
- 0.46686896603993033
height: 3.0
l:
rotation: 0
division:
- 0.563819840813669
- 0.563819840813669
l:
rotation: 0
division:
- 0.7373284540420059
- 0.7373284540420059
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.375
- 0.375
l:
rotation: 0
division:
- 0.3458501249843992
- 0.3458501249843992
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5061221341235114
- 0.5061221341235114
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.3515963240672897
- 0.3515963240672897
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5061221341235114
- 0.5061221341235114
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.6887574841111406
- 0.6887574841111406
l:
rotation: 0
division:
- 0.6918932843804633
- 0.6918932843804633
l:
rotation: 3
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5985358591149017
- 0.5985358591149017
l:
type: O
rotation: 0
r:
type: li1
rotation: 0
r:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.3181818181818182
- 0.3181818181818182
l:
type: st2
rotation: 0
r:
rotation: 0
division:
- 0.3769847420952976
- 0.3769847420952976
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.742320549254305
- 0.742320549254305
l:
rotation: 0
division:
- 0.509576911643064
- 0.509576911643064
l:
rotation: 0
division:
- 0.14285714285714285
- 0.14285714285714285
l:
type: n
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.2935968792571724
- 0.2935968792571724
l:
rotation: 0
division:
- 0.6428571428571429
- 0.6428571428571429
l:
type: n
rotation: 0
r:
type: ut1
rotation: 0
r:
rotation: 3
division:
- 0.5
- 0.5
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
type: C
rotation: 0

View file

@ -1,60 +0,0 @@
WARNING: 418 m2 per storey needs ~86 m of daylit wall; the plot's non-private perimeter gives 53 m. Roughly 49 m2 of courtyard closes the gap. (DESIGN.md §38.3)
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/init.dom
programme : harbor-house
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 0
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/coldstart-500000-s0.dom
[ 80 evals] best 4.30115e-34 (fails 101) via construct/0
[ 240 evals] best 6.34775e-22 (fails 62) via construct/2
[ 1760 evals] best 1.0381e-21 (fails 61) via swap 0/lrr
[ 1920 evals] best 1.07712e-21 (fails 61) via rotate 0/lrll
[ 2720 evals] best 1.67039e-20 (fails 58) via level_retype 1/lrll<->0/rllr
[ 2960 evals] best 1.75641e-20 (fails 58) via retype 1/lrrl->ws1
[ 5120 evals] best 1.79841e-20 (fails 58) via core_undivide noop
[ 5280 evals] best 3.39494e-20 (fails 57) via crossover rllll<->rllr
[ 5440 evals] best 3.5999e-20 (fails 57) via core_divide noop
[ 6720 evals] best 6.90053e-20 (fails 56) via rotate 0/ll
[ 7840 evals] best 7.05248e-20 (fails 56) via core_divide noop
[ 8080 evals] best 7.16548e-20 (fails 56) via level_retype 1/rlrl<->0/rllr
[ 9600 evals] best 1.35685e-18 (fails 52) via retype 0/lrrl->da1
[ 10000 evals] best 1.41061e-18 (fails 52) via core_divide noop
[ 15200 evals] best 1.43527e-18 (fails 52) via core_undivide noop
[ 18400 evals] best 4.70767e-18 (fails 50) via swap 0/rrr
[ 18560 evals] best 4.78877e-18 (fails 50) via crossover rlrrl<->rlllr
[ 19200 evals] best 4.96874e-18 (fails 50) via rotate 0/rrl
[ 22560 evals] best 5.00177e-18 (fails 50) via core_undivide noop
[ 23360 evals] best 5.02163e-18 (fails 50) via retype 1/rlll->of
[ 24880 evals] best 5.02826e-18 (fails 50) via core_divide noop
[ 27200 evals] best 5.02858e-18 (fails 50) via core_undivide noop
[ 29600 evals] best 8.13881e-18 (fails 50) via level_retype 1/rlrl<->0/llrr
[ 30960 evals] best 8.2257e-18 (fails 50) via core_undivide noop
[ 37440 evals] best 8.31661e-18 (fails 50) via core_divide noop
[ 39200 evals] best 8.34909e-18 (fails 50) via crossover rlr<->rlr
[ 40240 evals] best 8.43219e-18 (fails 50) via core_undivide noop
[ 46640 evals] best 8.44241e-18 (fails 50) via core_undivide noop
[ 50800 evals] best 9.76987e-18 (fails 50) via crossover rllll<->llrr
[ 51920 evals] best 1.00136e-17 (fails 49) via rotate 0/rll
[ 52000 evals] best 1.00136e-17 (fails 49) via core_divide noop
[ 52400 evals] best 1.01413e-17 (fails 49) via swap 0/llr
[ 61440 evals] best 4.26469e-17 (fails 48) via rotate 0/rlrl
[ 62800 evals] best 4.28559e-17 (fails 48) via core_divide noop
[ 63840 evals] best 4.2856e-17 (fails 48) via retype 0/lrlll->da1
[ 66560 evals] best 4.28816e-17 (fails 48) via core_undivide noop
[ 67440 evals] best 4.2888e-17 (fails 48) via rotate 0/rlll
[ 67680 evals] best 1.73994e-16 (fails 46) via level_retype 0/rllll<->1/rrr
[ 70160 evals] best 1.73995e-16 (fails 46) via core_undivide noop
[ 72240 evals] best 1.73995e-16 (fails 46) via crossover lrrl<->rrll
[ 75680 evals] best 1.73995e-16 (fails 46) via core_undivide noop

View file

@ -1,448 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.3447706979333924
- 0.3447706979333924
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.4620968086285896
- 0.4620968086285896
l:
rotation: 0
division:
- 0.7333622728278679
- 0.7333622728278679
l:
rotation: 1
division:
- 0.3685378224774272
- 0.3685378224774272
l:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.6726120367713806
- 0.6726120367713806
l:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.4878348762492206
- 0.4878348762492206
l:
type: m
rotation: 0
r:
rotation: 1
division:
- 0.5327266765953544
- 0.5327266765953544
l:
type: t
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.6295885542496246
- 0.6295885542496246
l:
rotation: 2
division:
- 0.346488895346572
- 0.346488895346572
l:
type: t
rotation: 0
r:
rotation: 2
division:
- 0.5736030442061457
- 0.5736030442061457
l:
type: m
rotation: 0
r:
type: st1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.7754091126054303
- 0.7754091126054303
l:
rotation: 1
division:
- 0.7618823674092534
- 0.7618823674092534
l:
type: cr1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.5694286299553355
- 0.5694286299553355
l:
rotation: 0
division:
- 0.6400166014931463
- 0.6400166014931463
l:
type: of
rotation: 0
r:
type: C
rotation: 0
r:
type: ef1
rotation: 0
r:
rotation: 1
division:
- 0.8169932516637662
- 0.8169932516637662
l:
rotation: 1
division:
- 0.8143711037723886
- 0.8143711037723886
l:
rotation: 1
division:
- 0.20740642422839703
- 0.20740642422839703
l:
rotation: 1
division:
- 0.7678486305056437
- 0.7678486305056437
l:
type: da1
rotation: 0
r:
rotation: 2
division:
- 0.5942284555193714
- 0.5942284555193714
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.4222096556781277
- 0.4222096556781277
l:
rotation: 3
division:
- 0.5125
- 0.5125
l:
rotation: 0
division:
- 0.5253125
- 0.5253125
l:
type: me1
rotation: 0
r:
type: C
rotation: 0
r:
type: ws1
rotation: 0
r:
type: n
rotation: 1
r:
rotation: 1
division:
- 0.36206707098566404
- 0.36206707098566404
l:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.4947182428246264
- 0.4947182428246264
l:
rotation: 0
division:
- 0.538125
- 0.538125
l:
type: la1
rotation: 0
r:
type: m
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.6691962396683705
- 0.6691962396683705
l:
rotation: 0
division:
- 0.5934000767031041
- 0.5934000767031041
l:
type: k1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 2
division:
- 0.6979469153542825
- 0.6979469153542825
l:
type: C
rotation: 0
r:
type: of
rotation: 0
above:
rotation: 0
division:
- 0.3496587703571358
- 0.3496587703571358
height: 3.0
l:
rotation: 0
division:
- 0.4752819629962712
- 0.4752819629962712
l:
rotation: 0
division:
- 0.2600355044813971
- 0.2600355044813971
l:
rotation: 0
division:
- 0.3
- 0.3
l:
type: O
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.7891502854072869
- 0.7891502854072869
l:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.4263589168351488
- 0.4263589168351488
l:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.5869817670374274
- 0.5869817670374274
l:
type: t
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.6074393728221003
- 0.6074393728221003
l:
rotation: 0
division:
- 0.8707490344743036
- 0.8707490344743036
l:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.4
- 0.4
l:
rotation: 3
division:
- 0.5
- 0.5
l:
type: r
rotation: 1
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.6663490741716345
- 0.6663490741716345
l:
type: r
rotation: 1
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.7134531618423475
- 0.7134531618423475
l:
rotation: 0
division:
- 0.5816983284646627
- 0.5816983284646627
l:
rotation: 0
division:
- 0.3595520659646767
- 0.3595520659646767
l:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: n
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 2
division:
- 0.6207610635692363
- 0.6207610635692363
l:
type: O
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 1
division:
- 0.3
- 0.3
l:
type: li1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.3401127568312368
- 0.3401127568312368
l:
rotation: 0
division:
- 0.6818181818181818
- 0.6818181818181818
l:
rotation: 0
division:
- 0.3338646386958839
- 0.3338646386958839
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5458804216964745
- 0.5458804216964745
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 2
division:
- 0.5985054852708556
- 0.5985054852708556
l:
type: ut1
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.210849714592713
- 0.210849714592713
l:
type: st2
rotation: 2
r:
type: r
rotation: 0

View file

@ -1,138 +0,0 @@
WARNING: 418 m2 per storey needs ~86 m of daylit wall; the plot's non-private perimeter gives 53 m. Roughly 49 m2 of courtyard closes the gap. (DESIGN.md §38.3)
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/init.dom
programme : harbor-house
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 1
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/coldstart-500000-s1.dom
[ 80 evals] best 1.97416e-37 (fails 113) via construct/0
[ 160 evals] best 7.00325e-25 (fails 74) via construct/1
[ 800 evals] best 6.80772e-23 (fails 69) via construct/9
[ 4320 evals] best 9.1398e-23 (fails 69) via crossover rrrl<->lrlrl
[ 5520 evals] best 3.57821e-22 (fails 67) via level_retype 1/lrlr<->0/lrrr
[ 5760 evals] best 3.65686e-22 (fails 67) via level_fix noop
[ 6800 evals] best 3.79298e-22 (fails 67) via level_fix noop
[ 7760 evals] best 3.8619e-22 (fails 67) via level_fix noop
[ 7840 evals] best 1.7705e-21 (fails 65) via swap 0/rrl
[ 7920 evals] best 2.74628e-21 (fails 64) via level_compound_fix noop
[ 8800 evals] best 5.85324e-21 (fails 64) via core_divide rlrl (2 floors)
[ 12560 evals] best 1.35161e-20 (fails 62) via divide 1/rlrr
[ 12800 evals] best 3.34685e-21 (fails 61) via divide 1/rlrl
[ 13280 evals] best 5.60778e-20 (fails 60) via rotate 0/ll
[ 13440 evals] best 1.11899e-20 (fails 59) via core_divide noop
[ 15600 evals] best 1.12856e-20 (fails 59) via level_retype 0/llrr<->1/rlrlr
[ 16320 evals] best 9.59246e-20 (fails 56) via crossover lrl<->rlll
[ 17200 evals] best 3.64982e-19 (fails 54) via divide 1/rrrl
[ 17760 evals] best 3.67434e-19 (fails 54) via core_undivide noop
[ 19040 evals] best 1.24538e-17 (fails 49) via place_missing r -> rlrr
[ 19920 evals] best 2.27675e-17 (fails 48) via crossover llrl<->llrr
[ 22080 evals] best 4.47951e-17 (fails 47) via crossover llrl<->rlrl
[ 26160 evals] best 4.48735e-17 (fails 47) via core_undivide noop
[ 26640 evals] best 4.51597e-17 (fails 47) via crossover rllll<->rrll
[ 27840 evals] best 5.54956e-17 (fails 47) via core_divide noop
[ 33840 evals] best 5.58344e-17 (fails 47) via crossover rlr<->rlr
[ 34720 evals] best 5.59502e-17 (fails 47) via retype 0/lllrl->t
[ 36720 evals] best 5.62216e-17 (fails 47) via retype 1/lll->da1
[ 37760 evals] best 5.62658e-17 (fails 47) via core_undivide noop
[ 39680 evals] best 2.20153e-16 (fails 45) via swap 0/llr
[ 45520 evals] best 2.20165e-16 (fails 45) via core_undivide noop
[ 45920 evals] best 2.2103e-16 (fails 45) via core_divide noop
[ 47200 evals] best 8.87603e-16 (fails 43) via core_undivide noop
[ 53120 evals] best 7.82728e-15 (fails 40) via level_retype 1/rlrll<->0/llll
[ 54480 evals] best 7.82772e-15 (fails 40) via core_divide noop
[ 63120 evals] best 7.83773e-15 (fails 40) via swap 0/rrl
[ 63200 evals] best 8.01003e-15 (fails 40) via core_divide noop
[ 66240 evals] best 8.17685e-15 (fails 40) via core_undivide noop
[ 67840 evals] best 1.57621e-14 (fails 39) via swap 0/lllr
[ 67920 evals] best 1.60963e-14 (fails 39) via crossover lrrr<->rlrrr
[ 70720 evals] best 1.61878e-14 (fails 39) via core_undivide noop
[ 71360 evals] best 2.13599e-14 (fails 39) via crossover lr<->lr
[ 76320 evals] best 2.17444e-14 (fails 39) via core_divide noop
[ 76960 evals] best 3.01548e-14 (fails 38) via swap 0/rlrr
[ 77120 evals] best 7.07557e-14 (fails 37) via core_divide noop
[ 78240 evals] best 8.0242e-14 (fails 37) via level_retype 1/llrl<->0/rllll
[ 78880 evals] best 8.95492e-14 (fails 37) via core_undivide noop
[ 79920 evals] best 1.79545e-13 (fails 36) via core_undivide noop
[ 81440 evals] best 3.28852e-13 (fails 35) via retype 1/rlrrl->me1
[ 83200 evals] best 3.33778e-13 (fails 35) via level_retype 1/rlrrl<->0/rrlr
[ 86800 evals] best 3.4079e-13 (fails 35) via swap 0/lllr
[ 87520 evals] best 3.41583e-13 (fails 35) via retype 1/rrrlr->ut1
[ 88640 evals] best 3.47403e-13 (fails 35) via core_undivide noop
[ 89760 evals] best 1.43975e-12 (fails 33) via rotate 0/lllr
[ 96800 evals] best 2.74475e-12 (fails 32) via core_undivide noop
[ 97520 evals] best 2.79491e-12 (fails 32) via core_divide noop
[ 99200 evals] best 5.60626e-12 (fails 31) via crossover rlllr<->rlllr
[100640 evals] best 5.6397e-12 (fails 31) via level_retype 1/rrlrl<->0/rllrl
[100720 evals] best 5.69106e-12 (fails 31) via crossover l<->l
[103600 evals] best 5.72518e-12 (fails 31) via core_undivide noop
[104000 evals] best 5.72765e-12 (fails 31) via crossover rrrl<->llrr
[104880 evals] best 1.13649e-11 (fails 30) via swap 0/rlrr
[105760 evals] best 1.14675e-11 (fails 30) via core_undivide noop
[106720 evals] best 1.15509e-11 (fails 30) via core_undivide noop
[112480 evals] best 1.1616e-11 (fails 30) via swap 0/rlrr
[115600 evals] best 1.16278e-11 (fails 30) via core_divide noop
[122080 evals] best 1.16391e-11 (fails 30) via core_undivide noop
[122720 evals] best 1.1641e-11 (fails 30) via crossover rlrrl<->rlllr
[126000 evals] best 1.22712e-11 (fails 30) via rotate 0/lllr
[127360 evals] best 1.22713e-11 (fails 30) via crossover rlllr<->rlllr
[129120 evals] best 1.22713e-11 (fails 30) via core_undivide noop
[139520 evals] best 2.45561e-11 (fails 29) via divide 1/lrrl
[141680 evals] best 2.49366e-11 (fails 29) via core_divide noop
[152400 evals] best 2.52189e-11 (fails 29) via retype 1/lrrll->ut1
[156160 evals] best 2.52213e-11 (fails 29) via core_undivide noop
[158000 evals] best 2.52214e-11 (fails 29) via level_retype 1/lrlr<->0/lrlr
[158640 evals] best 2.52946e-11 (fails 29) via core_undivide noop
[161920 evals] best 2.52948e-11 (fails 29) via core_undivide noop
[176480 evals] best 2.53112e-11 (fails 29) via core_divide noop
[188480 evals] best 2.53113e-11 (fails 29) via crossover lrlr<->lrlr
[192480 evals] best 2.70108e-11 (fails 29) via retype 0/llrr->O
[220400 evals] best 5.31971e-11 (fails 28) via retype 0/lrrll->O
[221680 evals] best 5.32438e-11 (fails 28) via core_undivide noop
--- finishing (homemaker-py-3l6): unfold + polish 250000 evals ---
[finish] unfold: materialised 14 shared-leaf copies
[ 200 evals] best 1.10357e-23 (fails 70) via seed
[ 520 evals] best 7.90847e-23 (fails 67) via level_compound_fix st1: lvl1 → lvl0/rllrl
[ 1560 evals] best 8.0677e-23 (fails 67) via core_divide noop
[ 2280 evals] best 8.09024e-23 (fails 67) via core_undivide noop
[ 3160 evals] best 6.36622e-22 (fails 64) via level_compound_fix r: lvl0 → lvl1/rllrr
[ 4200 evals] best 1.16291e-21 (fails 63) via level_retype 0/rllrrrr<->1/rrllrr
[ 4680 evals] best 4.50812e-21 (fails 61) via crossover lllrrrl<->llrr
[ 5640 evals] best 9.50892e-21 (fails 60) via undivide 0/llrlr
[ 9400 evals] best 6.41079e-20 (fails 57) via retype 0/rllll->st2
[ 9480 evals] best 6.45739e-20 (fails 57) via retype 1/lrrrrl->t
[ 15720 evals] best 6.50643e-20 (fails 57) via core_divide noop
[ 16200 evals] best 6.55803e-20 (fails 57) via core_divide noop
[ 19000 evals] best 1.25528e-19 (fails 56) via undivide 1/rrrl
[ 19640 evals] best 1.26465e-19 (fails 56) via core_divide noop
[ 19720 evals] best 3.14136e-19 (fails 55) via level_retype 0/lrrll<->1/llll
[ 19880 evals] best 3.16683e-19 (fails 55) via core_divide noop
[ 21800 evals] best 3.19364e-19 (fails 55) via core_undivide noop
[ 22200 evals] best 3.22186e-19 (fails 55) via retype 1/lrrrrr->st2
[ 24280 evals] best 3.25155e-19 (fails 55) via core_divide noop
[ 24520 evals] best 3.2828e-19 (fails 55) via core_undivide noop
[ 27560 evals] best 3.28746e-19 (fails 55) via swap 1/lrrrr
[ 29080 evals] best 3.694e-19 (fails 55) via core_undivide noop
[ 29400 evals] best 3.70022e-19 (fails 55) via retype 0/lllrrrl->of
[ 32120 evals] best 3.70789e-19 (fails 55) via core_undivide noop
[ 33640 evals] best 6.57751e-19 (fails 54) via core_divide noop
[ 39560 evals] best 2.18305e-18 (fails 52) via level_retype 0/lllrl<->1/rrlrl
[ 39640 evals] best 2.19058e-18 (fails 52) via core_undivide noop
[ 43560 evals] best 2.19358e-18 (fails 52) via core_undivide noop
[ 45480 evals] best 4.07392e-18 (fails 51) via undivide 0/rllrr
[ 45560 evals] best 4.28145e-18 (fails 51) via swap 0/lllrrr
[ 46600 evals] best 1.5216e-17 (fails 49) via level_retype 0/rrrr<->1/lrrrrl
[ 49720 evals] best 1.61723e-17 (fails 49) via crossover rrrr<->rlllrl
[ 50920 evals] best 1.6221e-17 (fails 49) via core_undivide noop

View file

@ -1,448 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 2
division:
- 0.6874610386484389
- 0.6874610386484389
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 0
division:
- 0.2280937436613768
- 0.2280937436613768
l:
rotation: 1
division:
- 0.5501610871830294
- 0.5501610871830294
l:
rotation: 2
division:
- 0.7625210938246068
- 0.7625210938246068
l:
rotation: 0
division:
- 0.25813360801099805
- 0.25813360801099805
l:
type: m
rotation: 0
r:
rotation: 2
division:
- 0.33221176332557584
- 0.33221176332557584
l:
type: m
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5641147148833822
- 0.5641147148833822
l:
rotation: 0
division:
- 0.33578355513625796
- 0.33578355513625796
l:
type: C
rotation: 0
r:
type: la1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.43366532078476366
- 0.43366532078476366
l:
rotation: 1
division:
- 0.8498837031667675
- 0.8498837031667675
l:
rotation: 2
division:
- 0.8892175882819691
- 0.8892175882819691
l:
type: cr1
rotation: 0
r:
type: m
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 1
division:
- 0.8677868254305496
- 0.8677868254305496
l:
rotation: 0
division:
- 0.14311549418230354
- 0.14311549418230354
l:
rotation: 1
division:
- 0.5291738964225459
- 0.5291738964225459
l:
type: of
rotation: 0
r:
rotation: 0
division:
- 0.6233177548828126
- 0.6233177548828126
l:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 2
division:
- 0.36160216255540684
- 0.36160216255540684
l:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.549017917538392
- 0.549017917538392
l:
type: n
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 3
division:
- 0.6289158565782637
- 0.6289158565782637
l:
type: ef1
rotation: 0
r:
rotation: 1
division:
- 0.46123163039245607
- 0.46123163039245607
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.6350095670424352
- 0.6350095670424352
l:
rotation: 0
division:
- 0.26561003030770847
- 0.26561003030770847
l:
rotation: 1
division:
- 0.7129605090656834
- 0.7129605090656834
l:
type: me1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.501911014155332
- 0.501911014155332
l:
rotation: 1
division:
- 0.6104391151107456
- 0.6104391151107456
l:
type: k1
rotation: 0
r:
type: C
rotation: 0
r:
type: da1
rotation: 2
r:
rotation: 1
division:
- 0.6395508396772783
- 0.6395508396772783
l:
rotation: 3
division:
- 0.7139724896730562
- 0.7139724896730562
l:
type: ws1
rotation: 0
r:
type: of
rotation: 0
r:
rotation: 1
division:
- 0.5283960567238627
- 0.5283960567238627
l:
type: C
rotation: 0
r:
type: O
rotation: 1
above:
rotation: 0
division:
- 0.5149361343277968
- 0.5149361343277968
height: 3.0
l:
rotation: 0
division:
- 0.3507062178961106
- 0.3507062178961106
l:
rotation: 0
division:
- 0.6809415061597456
- 0.6809415061597456
l:
rotation: 0
division:
- 0.7891502854072869
- 0.7891502854072869
l:
rotation: 1
division:
- 0.3
- 0.3
l:
type: r
rotation: 0
r:
rotation: 3
division:
- 0.3
- 0.3
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.33578355513625796
- 0.33578355513625796
l:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.5036753327043868
- 0.5036753327043868
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.25
- 0.25
l:
rotation: 0
division:
- 0.3
- 0.3
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.43979131341425537
- 0.43979131341425537
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5804993563162023
- 0.5804993563162023
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.6918932843804633
- 0.6918932843804633
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: st2
rotation: 0
r:
rotation: 0
division:
- 0.5162672160219968
- 0.5162672160219968
l:
type: t
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.3129107734502527
- 0.3129107734502527
l:
rotation: 0
division:
- 0.36063785448514774
- 0.36063785448514774
l:
rotation: 0
division:
- 0.47368421052631576
- 0.47368421052631576
l:
type: li1
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 1
division:
- 0.5442279297292193
- 0.5442279297292193
l:
type: C
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.1901725227372534
- 0.1901725227372534
l:
rotation: 0
division:
- 0.6818181818181818
- 0.6818181818181818
l:
rotation: 0
division:
- 0.3571923800852189
- 0.3571923800852189
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5227205562222715
- 0.5227205562222715
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
type: ut1
rotation: 0
r:
rotation: 0
division:
- 0.6404479340353234
- 0.6404479340353234
l:
type: C
rotation: 0
r:
type: O
rotation: 0

View file

@ -1,307 +0,0 @@
WARNING: 418 m2 per storey needs ~86 m of daylit wall; the plot's non-private perimeter gives 53 m. Roughly 49 m2 of courtyard closes the gap. (DESIGN.md §38.3)
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/init.dom
programme : harbor-house
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 2
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/coldstart-500000-s2.dom
[ 80 evals] best 1.05967e-31 (fails 96) via construct/0
[ 240 evals] best 2.81838e-21 (fails 58) via construct/2
[ 1840 evals] best 1.08828e-20 (fails 56) via swap 0/rrl
[ 2000 evals] best 2.18589e-20 (fails 55) via swap 0/lrll
[ 7680 evals] best 2.22979e-20 (fails 55) via core_undivide noop
[ 8320 evals] best 2.27491e-20 (fails 55) via level_fix noop
[ 8560 evals] best 5.4761e-20 (fails 54) via swap 0/rrr
[ 9440 evals] best 5.58534e-20 (fails 54) via core_undivide noop
[ 10720 evals] best 2.15034e-19 (fails 52) via crossover rlr<->rrl
[ 14400 evals] best 4.08743e-19 (fails 52) via core_divide noop
[ 15120 evals] best 4.18415e-19 (fails 52) via core_divide noop
[ 15680 evals] best 4.27242e-19 (fails 52) via core_undivide noop
[ 15760 evals] best 4.34498e-19 (fails 52) via crossover rlrr<->rlrlr
[ 15920 evals] best 3.34447e-19 (fails 51) via core_divide noop
[ 17920 evals] best 3.46301e-19 (fails 51) via core_divide noop
[ 19840 evals] best 6.00603e-18 (fails 48) via crossover rlr<->lrlll
[ 21840 evals] best 6.12702e-18 (fails 48) via crossover rlr<->lrlll
[ 22640 evals] best 6.20329e-18 (fails 48) via core_divide noop
[ 23200 evals] best 6.28822e-18 (fails 48) via core_divide noop
[ 23440 evals] best 6.36832e-18 (fails 48) via level_fix noop
[ 24640 evals] best 6.36835e-18 (fails 48) via level_retype 1/llll<->0/llll
[ 28400 evals] best 6.82917e-18 (fails 48) via swap 0/lrll
[ 28560 evals] best 1.141e-17 (fails 47) via divide 0/rrrr
[ 28880 evals] best 1.15021e-17 (fails 47) via level_fix noop
[ 29680 evals] best 1.15671e-17 (fails 47) via core_divide noop
[ 31520 evals] best 1.15684e-17 (fails 47) via core_divide noop
[ 31680 evals] best 1.16014e-17 (fails 47) via crossover lrllr<->rrlr
[ 76800 evals] best 4.93845e-17 (fails 45) via rotate 0/l
[ 77920 evals] best 4.97739e-17 (fails 45) via core_divide noop
[ 83440 evals] best 5.24758e-17 (fails 45) via level_fix noop
[ 84000 evals] best 1.02117e-16 (fails 44) via crossover rllr<->lllr
[ 85520 evals] best 1.02502e-16 (fails 44) via core_divide noop
[ 87120 evals] best 1.0251e-16 (fails 44) via level_retype 0/rllr<->1/lrrl
[112240 evals] best 1.03579e-16 (fails 44) via core_divide noop
[121760 evals] best 1.82946e-16 (fails 43) via retype 0/lrllr->n
[122000 evals] best 1.99829e-16 (fails 43) via crossover rrl<->lrrr
[122080 evals] best 2.00702e-16 (fails 43) via core_undivide noop
[135680 evals] best 2.05943e-16 (fails 43) via crossover rrrr<->rrrr
[149280 evals] best 2.09028e-16 (fails 43) via rotate 0/lrrr
[150560 evals] best 2.35877e-16 (fails 43) via crossover ll<->ll
[151040 evals] best 2.37613e-16 (fails 43) via core_undivide noop
[179840 evals] best 2.62645e-16 (fails 43) via core_divide noop
[180960 evals] best 5.11898e-16 (fails 42) via core_divide noop
[184560 evals] best 5.13843e-16 (fails 42) via core_undivide noop
[209360 evals] best 5.87161e-16 (fails 42) via undivide 0/rrrr
[267440 evals] best 8.76692e-16 (fails 41) via swap 0/rll
[271440 evals] best 8.90317e-16 (fails 41) via retype 0/rllr->da1
[272960 evals] best 9.43705e-16 (fails 41) via rotate 0/rll
[276960 evals] best 9.45522e-16 (fails 41) via level_retype 1/rlll<->0/rrlr
[293600 evals] best 9.80215e-16 (fails 41) via rotate 0/lrrr
[295200 evals] best 1.0343e-15 (fails 41) via undivide 0/rrrr
[301200 evals] best 1.04687e-15 (fails 41) via core_divide noop
[301760 evals] best 1.05658e-15 (fails 41) via core_divide noop
[303280 evals] best 1.06329e-15 (fails 41) via level_retype 0/rlr<->1/llrl
[305680 evals] best 1.06818e-15 (fails 41) via core_divide noop
[306960 evals] best 1.06932e-15 (fails 41) via core_undivide noop
[323680 evals] best 2.35481e-15 (fails 40) via undivide 0/rrrr
[328400 evals] best 2.36836e-15 (fails 40) via crossover llrr<->llrr
[329120 evals] best 2.37505e-15 (fails 40) via crossover lr<->lr
[388800 evals] best 1.08522e-14 (fails 38) via retype 1/rrrl->m
[388880 evals] best 1.09216e-14 (fails 38) via crossover rrr<->rrr
[390560 evals] best 1.09586e-14 (fails 38) via core_undivide noop
[390960 evals] best 1.13532e-14 (fails 38) via core_undivide noop
[459600 evals] best 1.701e-14 (fails 37) via rotate 0/root
[461360 evals] best 3.34076e-14 (fails 36) via swap 0/rrl
[461440 evals] best 3.38208e-14 (fails 36) via swap 0/rrl
[461760 evals] best 3.42308e-14 (fails 36) via core_divide noop
[464320 evals] best 3.61774e-14 (fails 36) via rotate 0/lll
[466000 evals] best 3.66295e-14 (fails 36) via core_undivide noop
[467760 evals] best 3.67664e-14 (fails 36) via retype 1/rlrl->ws1
[472960 evals] best 3.67665e-14 (fails 36) via core_undivide noop
[476080 evals] best 8.02802e-14 (fails 35) via rotate 0/rrl
--- finishing (homemaker-py-3l6): unfold + polish 250000 evals ---
[finish] unfold: materialised 15 shared-leaf copies
[ 200 evals] best 2.82118e-25 (fails 73) via seed
[ 440 evals] best 2.30511e-24 (fails 70) via crossover llrlr<->rrlr
[ 760 evals] best 4.49435e-24 (fails 69) via rotate 1/lllrr
[ 2840 evals] best 8.78417e-24 (fails 68) via place_missing r -> llll
[ 3000 evals] best 8.82774e-24 (fails 68) via crossover lrrlrrl<->lrrlrrr
[ 3640 evals] best 2.42458e-23 (fails 67) via level_compound_fix m: lvl1 → lvl0/lrlll + insert k1 into llll/lvl0
[ 4760 evals] best 2.05512e-23 (fails 66) via place_missing t -> llll
[ 5400 evals] best 2.11658e-23 (fails 66) via core_divide noop
[ 7160 evals] best 9.18288e-22 (fails 64) via level_compound_fix m: lvl1 → lvl0/rlr + insert da1 into rlll/lvl0
[ 9000 evals] best 9.42501e-22 (fails 64) via core_undivide noop
[ 9080 evals] best 9.49387e-22 (fails 64) via retype 0/lrrrlrr->da1
[ 13480 evals] best 1.95716e-21 (fails 63) via crossover lrrrlrl<->lrrrlrr
[ 14200 evals] best 1.76259e-20 (fails 60) via place_missing st1 -> llllr
[ 14600 evals] best 1.77822e-20 (fails 60) via core_undivide noop
[ 18280 evals] best 1.79011e-20 (fails 60) via swap 1/rrllr
[ 19320 evals] best 2.31009e-19 (fails 56) via crossover lrrrl<->lrrll
[ 20600 evals] best 2.4801e-19 (fails 56) via retype 0/rlrr->n
[ 23720 evals] best 2.53529e-19 (fails 56) via crossover rrlr<->lrllr
[ 25800 evals] best 4.9601e-19 (fails 55) via rotate 1/llrrr
[ 26360 evals] best 5.07047e-19 (fails 55) via core_undivide noop
[ 26760 evals] best 5.16496e-19 (fails 55) via core_undivide noop
[ 27480 evals] best 5.23696e-19 (fails 55) via crossover rlrll<->lrllr
[ 28200 evals] best 5.28718e-19 (fails 55) via retype 1/rrlll->da1
[ 28920 evals] best 5.30665e-19 (fails 55) via core_undivide noop
[ 29480 evals] best 5.31916e-19 (fails 55) via core_undivide noop
[ 31000 evals] best 5.35085e-19 (fails 55) via retype 0/lrlll->cr1
[ 31560 evals] best 2.09427e-18 (fails 53) via rotate 0/lrrlr
[ 31880 evals] best 2.11436e-18 (fails 53) via crossover rrlr<->lrlr
[ 32520 evals] best 2.12214e-18 (fails 53) via swap 0/lrrrl
[ 34120 evals] best 2.12721e-18 (fails 53) via crossover llllrl<->lrrrll
[ 36680 evals] best 2.13989e-18 (fails 53) via core_undivide noop
[ 36840 evals] best 2.15581e-18 (fails 53) via core_undivide noop
[ 37560 evals] best 2.17211e-18 (fails 53) via core_undivide noop
[ 43640 evals] best 2.27557e-18 (fails 53) via divide 0/lrrllr
[ 44200 evals] best 2.28734e-18 (fails 53) via crossover lrrrl<->lrllr
[ 44440 evals] best 4.58147e-18 (fails 52) via level_retype 0/llllrl<->1/lrrrl
[ 45720 evals] best 4.60723e-18 (fails 52) via retype 0/rrlr->st2
[ 46200 evals] best 4.6297e-18 (fails 52) via core_undivide noop
[ 47160 evals] best 4.64905e-18 (fails 52) via retype 1/lllll->ws1
[ 47560 evals] best 9.3872e-18 (fails 51) via undivide 0/llrlr
[ 48760 evals] best 9.43276e-18 (fails 51) via level_retype 1/lrrrl<->0/lllll
[ 51720 evals] best 9.47208e-18 (fails 51) via crossover llrlr<->rrlr
[ 52920 evals] best 9.50298e-18 (fails 51) via core_undivide noop
[ 53560 evals] best 9.50553e-18 (fails 51) via core_undivide noop
[ 54680 evals] best 9.61653e-18 (fails 51) via core_undivide noop
[ 55880 evals] best 1.92326e-17 (fails 50) via level_retype 0/lrrlrrl<->1/rlll
[ 58120 evals] best 1.92729e-17 (fails 50) via level_retype 1/lllrrl<->0/lrlr
[ 59160 evals] best 1.92773e-17 (fails 50) via core_undivide noop
[ 62920 evals] best 1.92791e-17 (fails 50) via crossover rlrll<->lrrrl
[ 64200 evals] best 1.92792e-17 (fails 50) via level_retype 1/rrrl<->0/llrll
[ 64440 evals] best 1.92793e-17 (fails 50) via level_retype 0/lrrlrl<->1/lrrrl
[ 65800 evals] best 3.8015e-17 (fails 49) via rotate 0/llr
[ 81640 evals] best 1.50706e-16 (fails 47) via rotate 0/lrrr
[ 82280 evals] best 1.5782e-16 (fails 47) via rotate 0/llr
[ 86120 evals] best 1.59101e-16 (fails 47) via level_retype 0/lllll<->1/lllrl
[ 88120 evals] best 5.88473e-16 (fails 45) via place_missing r -> llrl
[ 88760 evals] best 5.88501e-16 (fails 45) via core_undivide noop
[201000 evals] best 5.92096e-16 (fails 45) via crossover ll<->ll
[224600 evals] best 3.02462e-14 (fails 42) via divide 1/lrrl
[225720 evals] best 3.02767e-14 (fails 42) via retype 1/lllll->ef1
[226120 evals] best 3.03182e-14 (fails 42) via crossover llrlr<->lrlr
[228040 evals] best 3.03693e-14 (fails 42) via crossover rllr<->rllr
[229800 evals] best 3.03824e-14 (fails 42) via crossover rlll<->rrlr
[229880 evals] best 3.04106e-14 (fails 42) via core_undivide noop
[229960 evals] best 3.04107e-14 (fails 42) via level_retype 0/rlrlr<->1/rrrl
--- collapse (homemaker-py-94g): finish-time cell→room relabel ---
[finish] collapse: 104 → 42 fails (applied)
--- done ---
elapsed : 158579.2s
evals : 750040 across 9374 topologies
best : 3.04107e-14 (42 fails) via level_retype 0/rlrlr<->1/rrrl+collapse
improvement history:
[ 80] 1.05967e-31 (share:construct/0)
[ 240] 2.81838e-21 (share:construct/2)
[ 1840] 1.08828e-20 (share:swap 0/rrl)
[ 2000] 2.18589e-20 (share:swap 0/lrll)
[ 7680] 2.22979e-20 (share:core_undivide noop)
[ 8320] 2.27491e-20 (share:level_fix noop)
[ 8560] 5.4761e-20 (share:swap 0/rrr)
[ 9440] 5.58534e-20 (share:core_undivide noop)
[ 10720] 2.15034e-19 (share:crossover rlr<->rrl)
[ 14400] 4.08743e-19 (share:core_divide noop)
[ 15120] 4.18415e-19 (share:core_divide noop)
[ 15680] 4.27242e-19 (share:core_undivide noop)
[ 15760] 4.34498e-19 (share:crossover rlrr<->rlrlr)
[ 15920] 3.34447e-19 (share:core_divide noop)
[ 17920] 3.46301e-19 (share:core_divide noop)
[ 19840] 6.00603e-18 (share:crossover rlr<->lrlll)
[ 21840] 6.12702e-18 (share:crossover rlr<->lrlll)
[ 22640] 6.20329e-18 (share:core_divide noop)
[ 23200] 6.28822e-18 (share:core_divide noop)
[ 23440] 6.36832e-18 (share:level_fix noop)
[ 24640] 6.36835e-18 (share:level_retype 1/llll<->0/llll)
[ 28400] 6.82917e-18 (share:swap 0/lrll)
[ 28560] 1.141e-17 (share:divide 0/rrrr)
[ 28880] 1.15021e-17 (share:level_fix noop)
[ 29680] 1.15671e-17 (share:core_divide noop)
[ 31520] 1.15684e-17 (share:core_divide noop)
[ 31680] 1.16014e-17 (share:crossover lrllr<->rrlr)
[ 76800] 4.93845e-17 (share:rotate 0/l)
[ 77920] 4.97739e-17 (share:core_divide noop)
[ 83440] 5.24758e-17 (share:level_fix noop)
[ 84000] 1.02117e-16 (share:crossover rllr<->lllr)
[ 85520] 1.02502e-16 (share:core_divide noop)
[ 87120] 1.0251e-16 (share:level_retype 0/rllr<->1/lrrl)
[112240] 1.03579e-16 (share:core_divide noop)
[121760] 1.82946e-16 (share:retype 0/lrllr->n)
[122000] 1.99829e-16 (share:crossover rrl<->lrrr)
[122080] 2.00702e-16 (share:core_undivide noop)
[135680] 2.05943e-16 (share:crossover rrrr<->rrrr)
[149280] 2.09028e-16 (share:rotate 0/lrrr)
[150560] 2.35877e-16 (share:crossover ll<->ll)
[151040] 2.37613e-16 (share:core_undivide noop)
[179840] 2.62645e-16 (share:core_divide noop)
[180960] 5.11898e-16 (share:core_divide noop)
[184560] 5.13843e-16 (share:core_undivide noop)
[209360] 5.87161e-16 (share:undivide 0/rrrr)
[267440] 8.76692e-16 (share:swap 0/rll)
[271440] 8.90317e-16 (share:retype 0/rllr->da1)
[272960] 9.43705e-16 (share:rotate 0/rll)
[276960] 9.45522e-16 (share:level_retype 1/rlll<->0/rrlr)
[293600] 9.80215e-16 (share:rotate 0/lrrr)
[295200] 1.0343e-15 (share:undivide 0/rrrr)
[301200] 1.04687e-15 (share:core_divide noop)
[301760] 1.05658e-15 (share:core_divide noop)
[303280] 1.06329e-15 (share:level_retype 0/rlr<->1/llrl)
[305680] 1.06818e-15 (share:core_divide noop)
[306960] 1.06932e-15 (share:core_undivide noop)
[323680] 2.35481e-15 (share:undivide 0/rrrr)
[328400] 2.36836e-15 (share:crossover llrr<->llrr)
[329120] 2.37505e-15 (share:crossover lr<->lr)
[388800] 1.08522e-14 (share:retype 1/rrrl->m)
[388880] 1.09216e-14 (share:crossover rrr<->rrr)
[390560] 1.09586e-14 (share:core_undivide noop)
[390960] 1.13532e-14 (share:core_undivide noop)
[459600] 1.701e-14 (share:rotate 0/root)
[461360] 3.34076e-14 (share:swap 0/rrl)
[461440] 3.38208e-14 (share:swap 0/rrl)
[461760] 3.42308e-14 (share:core_divide noop)
[464320] 3.61774e-14 (share:rotate 0/lll)
[466000] 3.66295e-14 (share:core_undivide noop)
[467760] 3.67664e-14 (share:retype 1/rlrl->ws1)
[472960] 3.67665e-14 (share:core_undivide noop)
[476080] 8.02802e-14 (share:rotate 0/rrl)
[500200] 2.82118e-25 (polish:seed)
[500440] 2.30511e-24 (polish:crossover llrlr<->rrlr)
[500760] 4.49435e-24 (polish:rotate 1/lllrr)
[502840] 8.78417e-24 (polish:place_missing r -> llll)
[503000] 8.82774e-24 (polish:crossover lrrlrrl<->lrrlrrr)
[503640] 2.42458e-23 (polish:level_compound_fix m: lvl1 → lvl0/lrlll + insert k1 into llll/lvl0)
[504760] 2.05512e-23 (polish:place_missing t -> llll)
[505400] 2.11658e-23 (polish:core_divide noop)
[507160] 9.18288e-22 (polish:level_compound_fix m: lvl1 → lvl0/rlr + insert da1 into rlll/lvl0)
[509000] 9.42501e-22 (polish:core_undivide noop)
[509080] 9.49387e-22 (polish:retype 0/lrrrlrr->da1)
[513480] 1.95716e-21 (polish:crossover lrrrlrl<->lrrrlrr)
[514200] 1.76259e-20 (polish:place_missing st1 -> llllr)
[514600] 1.77822e-20 (polish:core_undivide noop)
[518280] 1.79011e-20 (polish:swap 1/rrllr)
[519320] 2.31009e-19 (polish:crossover lrrrl<->lrrll)
[520600] 2.4801e-19 (polish:retype 0/rlrr->n)
[523720] 2.53529e-19 (polish:crossover rrlr<->lrllr)
[525800] 4.9601e-19 (polish:rotate 1/llrrr)
[526360] 5.07047e-19 (polish:core_undivide noop)
[526760] 5.16496e-19 (polish:core_undivide noop)
[527480] 5.23696e-19 (polish:crossover rlrll<->lrllr)
[528200] 5.28718e-19 (polish:retype 1/rrlll->da1)
[528920] 5.30665e-19 (polish:core_undivide noop)
[529480] 5.31916e-19 (polish:core_undivide noop)
[531000] 5.35085e-19 (polish:retype 0/lrlll->cr1)
[531560] 2.09427e-18 (polish:rotate 0/lrrlr)
[531880] 2.11436e-18 (polish:crossover rrlr<->lrlr)
[532520] 2.12214e-18 (polish:swap 0/lrrrl)
[534120] 2.12721e-18 (polish:crossover llllrl<->lrrrll)
[536680] 2.13989e-18 (polish:core_undivide noop)
[536840] 2.15581e-18 (polish:core_undivide noop)
[537560] 2.17211e-18 (polish:core_undivide noop)
[543640] 2.27557e-18 (polish:divide 0/lrrllr)
[544200] 2.28734e-18 (polish:crossover lrrrl<->lrllr)
[544440] 4.58147e-18 (polish:level_retype 0/llllrl<->1/lrrrl)
[545720] 4.60723e-18 (polish:retype 0/rrlr->st2)
[546200] 4.6297e-18 (polish:core_undivide noop)
[547160] 4.64905e-18 (polish:retype 1/lllll->ws1)
[547560] 9.3872e-18 (polish:undivide 0/llrlr)
[548760] 9.43276e-18 (polish:level_retype 1/lrrrl<->0/lllll)
[551720] 9.47208e-18 (polish:crossover llrlr<->rrlr)
[552920] 9.50298e-18 (polish:core_undivide noop)
[553560] 9.50553e-18 (polish:core_undivide noop)
[554680] 9.61653e-18 (polish:core_undivide noop)
[555880] 1.92326e-17 (polish:level_retype 0/lrrlrrl<->1/rlll)
[558120] 1.92729e-17 (polish:level_retype 1/lllrrl<->0/lrlr)
[559160] 1.92773e-17 (polish:core_undivide noop)
[562920] 1.92791e-17 (polish:crossover rlrll<->lrrrl)
[564200] 1.92792e-17 (polish:level_retype 1/rrrl<->0/llrll)
[564440] 1.92793e-17 (polish:level_retype 0/lrrlrl<->1/lrrrl)
[565800] 3.8015e-17 (polish:rotate 0/llr)
[581640] 1.50706e-16 (polish:rotate 0/lrrr)
[582280] 1.5782e-16 (polish:rotate 0/llr)
[586120] 1.59101e-16 (polish:level_retype 0/lllll<->1/lllrl)
[588120] 5.88473e-16 (polish:place_missing r -> llrl)
[588760] 5.88501e-16 (polish:core_undivide noop)
[701000] 5.92096e-16 (polish:crossover ll<->ll)
[724600] 3.02462e-14 (polish:divide 1/lrrl)
[725720] 3.02767e-14 (polish:retype 1/lllll->ef1)
[726120] 3.03182e-14 (polish:crossover llrlr<->lrlr)
[728040] 3.03693e-14 (polish:crossover rllr<->rllr)
[729800] 3.03824e-14 (polish:crossover rlll<->rrlr)
[729880] 3.04106e-14 (polish:core_undivide noop)
[729960] 3.04107e-14 (polish:level_retype 0/rlrlr<->1/rrrl)
written : /home/bruno/src/homemaker-layout/examples/harbor-house/coldstart-500000-s2.dom

View file

@ -1,85 +0,0 @@
/*
* Bonsai - OpenBIM Blender Add-on
* Copyright (C) 2020, 2021 Dion Moult <dion@thinkmoult.com>
*
* This file is part of Bonsai.
*
* Bonsai is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Bonsai is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY, without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* long with Bonsai. If not, see <http://www.gnu.org/licenses/>.
*/
* { stroke-linecap: round; stroke-linejoin: round; }
text, tspan { /* 2.5mm */ fill: black; stroke: none; font-family: 'OpenGost Type B TT', 'DejaVu Sans Condensed', 'Liberation Sans', 'Arial Narrow', 'Arial'; font-size: 4.13px; }
a text, a tspan { fill: blue !important; text-decoration: underline;}
a:hover { cursor: pointer; }
.cut { fill: black; stroke: black; stroke-linecap: 'round'; stroke-width: 0.35; fill-rule: evenodd; }
.projection { fill: white; stroke: black; stroke-linecap: 'round'; stroke-width: 0.25; }
.surface { stroke: none; fill: #fff; fill-rule: evenodd; }
.annotation { fill: none; stroke: black; stroke-linecap: 'round'; stroke-width: 0.25; }
.IfcAnnotation { fill: none; stroke: black; stroke-linecap: 'round'; stroke-width: 0.25; }
.IfcGeographicElement { fill: none; stroke: black; stroke-linecap: 'round'; stroke-width: 1; }
.PredefinedType-LINEWORK { stroke: black; stroke-width: 0.25; }
.PredefinedType-LINEWORK.dashed { stroke-dasharray: 3, 2; }
.PredefinedType-LINEWORK.fine { stroke-width: 0.18; stroke: #777777; }
.PredefinedType-LINEWORK.thin { stroke-width: 0.25; }
.PredefinedType-LINEWORK.medium { stroke-width: 0.35; }
.PredefinedType-LINEWORK.thick { stroke-width: 0.5; }
.PredefinedType-LINEWORK.strong { stroke-width: 1; }
.PredefinedType-BACKGROUND { stroke: black; stroke-width: 0.18; }
.PredefinedType-GRID { marker-start: url(#grid-marker); marker-end: url(#grid-marker); }
.PredefinedType-SECTION { stroke-dasharray: 12.5, 3, 3, 3; }
.PredefinedType-SECTIONLEVEL { marker-start: url(#section-level-marker); stroke-dasharray: 12.5, 3, 3, 3; }
.PredefinedType-PLANLEVEL { marker-end: url(#plan-level-marker); }
.PredefinedType-DIMENSION { marker-start: url(#dimension-marker-start); marker-end: url(#dimension-marker-end); }
.PredefinedType-ANGLE { marker-start: url(#angle-marker-start); marker-end: url(#angle-marker-end); }
.PredefinedType-RADIUS { marker-end: url(#fall-marker-end); }
.PredefinedType-FALL { marker-end: url(#radius-marker-end); }
.PredefinedType-SLOPEANGLE { marker-end: url(#radius-marker-end); }
.PredefinedType-SLOPEPERCENT { marker-end: url(#radius-marker-end); }
.PredefinedType-SLOPEFRACTION { marker-end: url(#radius-marker-end); }
.PredefinedType-DIAMETER { marker-start: url(#diameter-marker-start); marker-end: url(#diameter-marker-end); }
.PredefinedType-STAIRARROW { marker-start: url(#stair-marker-start); marker-end: url(#stair-marker-end); }
.PredefinedType-BOUNDARY { fill: none; stroke: red; stroke-width: 1; stroke-dasharray: 12, 4, 3, 4, 3, 4; }
.PredefinedType-SEALANT { fill: url(#crosshatch1); stroke-width: 0.25; }
.PredefinedType-FILLAREA { fill: white; stroke: black; }
.PredefinedType-BREAKLINE { fill: none; stroke: black; stroke-width: 0.25; marker-mid: url(#breakline-marker); }
.PredefinedType-TEXT { fill: black; stroke: none; }
path.PredefinedType-TEXTLEADER { marker-end: url(#leader-marker); }
text.PredefinedType-TEXTLEADER, tspan.PredefinedType-TEXTLEADER { fill: black; stroke: none; }
text.title, tspan.title { /* 7mm */ font-size: 11.55px; }
text.header, tspan.header { /* 5mm */ font-size: 8.25px; }
text.large, tspan.large { /* 3.5mm */ font-size: 5.78px; }
text.regular, tspan.regular { /* 2.5mm */ font-size: 4.13px; }
text.small, tspan.small { /* 1.8mm */ font-size: 2.97px; }
text.GRID, tspan.GRID { /* 5mm */ font-size: 8.25px; }
.material-blank { fill: white; }
.material-diagonal1 { fill: url(#diagonal1); }
.material-diagonal2 { fill: url(#diagonal2); }
.material-diagonal3 { fill: url(#diagonal3); }
.material-crosshatch1 { fill: url(#crosshatch1); }
.material-crosshatch2 { fill: url(#crosshatch2); }
.material-crosshatch3 { fill: url(#crosshatch3); }
.material-brick { fill: url(#brick); }
.material-earth { fill: url(#earth); }
.material-glass { fill: url(#glass); }
.material-liquid { fill: url(#liquid); }
.material-grass { fill: url(#grass); }
.material-honeycomb { fill: url(#honeycomb); }
.material-sand { fill: url(#sand); }
.material-concrete { fill: url(#concrete); stroke-width: 0.5; }
.IfcSpace { fill: none; stroke: none; }
.PredefinedType-STUD { stroke: black; stroke-width: 1; }
.PredefinedType-WOOD { fill: url(#wood); stroke: black; stroke-width: 0.5; }
.PredefinedType-STEEL { fill: url(#steel); stroke: black; stroke-width: 0.5; }
.PredefinedType-CONCRETE { fill: url(#concrete); stroke: black; stroke-width: 0.5; }
.PredefinedType-PLASTERBOARD { fill: url(#sand); stroke: black; stroke-width: 0.25; }

View file

@ -1,107 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<svg baseProfile="full" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Tip: https://svg-path-visualizer.netlify.app/ -->
<!-- Tip: https://www.svgviewer.dev/ -->
<marker id="eng-dimension-marker-start" markerHeight="14" markerWidth="11" orient="auto" refX="1" refY="7">
<g>
<path d="M 11 3.5 L 11 10.5 L 1 7" class="annotation" style="fill:black;" />
<path d="M 1 0 L 1 14" class="annotation" style="stroke-width:1;" />
</g>
</marker>
<marker id="eng-dimension-marker-end" markerHeight="14" markerWidth="11" orient="auto" refX="10" refY="7">
<g>
<path d="M 0 3.5 L 0 10.5 L 10 7" class="annotation" style="fill:black;" />
<path d="M 10 0 L 10 14" class="annotation" style="stroke-width:1;" />
</g>
</marker>
<marker id="radius-marker-end" markerHeight="14" markerWidth="11" orient="auto" refX="10" refY="7">
<g>
<path d="M 0 3.5 L 0 10.5 L 10 7" class="annotation" style="fill:black;" />
</g>
</marker>
<!-- same as for the radius -->
<marker id="fall-marker-end" markerHeight="14" markerWidth="11" orient="auto" refX="10" refY="7">
<g>
<path d="M 0 3.5 L 0 10.5 L 10 7" class="annotation" style="fill:black;" />
</g>
</marker>
<marker id="angle-marker-start" markerHeight="14" markerWidth="11" orient="auto" refX="1" refY="7">
<g>
<path d="M 11 3.5 L 11 10.5 L 1 7" class="annotation" style="fill:black;" />
<path d="M 1 0 L 1 14" class="annotation" style="stroke-width:1;" />
</g>
</marker>
<marker id="angle-marker-end" markerHeight="14" markerWidth="11" orient="auto" refX="10" refY="7">
<g>
<path d="M 0 3.5 L 0 10.5 L 10 7" class="annotation" style="fill:black;" />
<path d="M 10 0 L 10 14" class="annotation" style="stroke-width:1;" />
</g>
</marker>
<marker id="diameter-marker-start" markerHeight="14" markerWidth="11" orient="auto" refX="1" refY="7">
<g>
<path d="M 11 3.5 L 11 10.5 L 1 7" class="annotation" style="fill:black;" />
<path d="M 1 0 L 1 14" class="annotation" style="stroke-width:1;" />
</g>
</marker>
<marker id="diameter-marker-end" markerHeight="14" markerWidth="11" orient="auto" refX="10" refY="7">
<g>
<path d="M 0 3.5 L 0 10.5 L 10 7" class="annotation" style="fill:black;" />
<path d="M 10 0 L 10 14" class="annotation" style="stroke-width:1;" />
</g>
</marker>
<marker id="dimension-marker-start" markerHeight="30" markerWidth="20" refX="10" refY="15" orient="auto">
<g>
<path d="M 0 15 L 20 15" class="annotation" style="stroke-width:1;" />
<path d="M 10 0 L 10 30" class="annotation" style="stroke-width:1;" />
<path d="M 5 20 L 15 10" class="annotation" style="stroke-width:3;" />
</g>
</marker>
<marker id="dimension-marker-end" markerHeight="30" markerWidth="20" refX="10" refY="15" orient="auto">
<g>
<path d="M 0 15 L 20 15" class="annotation" style="stroke-width:1;" />
<path d="M 10 0 L 10 30" class="annotation" style="stroke-width:1;" />
<path d="M 5 20 L 15 10" class="annotation" style="stroke-width:3;" />
</g>
</marker>
<marker id="grid-marker" markerHeight="40" markerWidth="40" orient="auto" refX="20" refY="20">
<circle cx="20" cy="20" fill="white" stroke="black" r="17" style="stroke-width: 2"/>
</marker>
<marker id="leader-marker" markerHeight="7" markerWidth="10" orient="auto" refX="10" refY="3.5">
<path d="M 0 0 L 0 7 L 10 3.5" class="annotation" style="fill:black;" />
</marker>
<marker id="stair-marker-start" markerHeight="10" markerWidth="10" orient="auto" refX="5" refY="5">
<circle cx="5" cy="5" fill="black" stroke="none" r="5"/>
</marker>
<marker id="stair-marker-end" markerHeight="42" markerWidth="21" orient="auto" refX="21" refY="21">
<path d="M 0 0 L 21 21 L 0 42" class="annotation stair" style="stroke-width:2; marker-start: none; marker-end: none;" />
</marker>
<marker id="plan-level-marker" markerHeight="30" markerWidth="30" refX="15" refY="15" orient="auto">
<g>
<path d="M 15 0 L 15 30" class="annotation" style="stroke-width:1;" />
<path d="M 0 15 L 30 15" class="annotation" style="stroke-width:1;" />
<circle cx="15" cy="15" fill="white" stroke="black" r="7.5" style="stroke-width: 2"/>
<path d="M 15 15 L 7.5 15 A 7.5 7.5 0 0 1 15 7.5 Z" fill="black"/>
<path d="M 15 15 L 22.5 15 A 7.5 7.5 0 0 1 15 22.5 Z" fill="black"/>
</g>
</marker>
<marker id="section-level-marker" markerHeight="11" markerWidth="90" refX="20" refY="10" orient="auto-start-reverse">
<g>
<path d="M 0 1 L 20 1 L 10 11 Z" fill="black" />
<path d="M 0 1 L 90 1" class="annotation" style="stroke-width:1;" />
</g>
</marker>
<marker id="breakline-marker" markerHeight="20" markerWidth="15" refX="7.5" refY="10" orient="auto">
<g>
<path d="M 0 10 L 5 20 L 7.5 10" class="annotation" style="stroke-width:1; fill: white;" />
<path d="M 7.5 10 L 10 0 L 15 10" class="annotation" style="stroke-width:1; fill: white;" />
</g>
</marker>
<filter x="0" y="0" width="1" height="1" id="fill-background">
<feFlood flood-color="white" result="bg" />
<feMerge>
<feMergeNode in="bg"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</svg>

Before

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 70 KiB

View file

@ -1,711 +0,0 @@
{
"Technical": {
"render_type": "VIEWPORT",
"raster_style": {
"bpy.data.worlds[0].color": [
1.0,
1.0,
1.0
],
"scene.render.border_max_x": 1.0,
"scene.render.border_max_y": 1.0,
"scene.render.border_min_x": 0.0,
"scene.render.border_min_y": 0.0,
"scene.render.dither_intensity": 1.0,
"scene.render.engine": "BLENDER_WORKBENCH",
"scene.render.film_transparent": false,
"scene.render.filter_size": 1.5,
"scene.render.fps": 24,
"scene.render.fps_base": 1.0,
"scene.render.frame_map_new": 100,
"scene.render.frame_map_old": 100,
"scene.render.hair_subdiv": 0,
"scene.render.hair_type": "STRAND",
"scene.render.line_thickness": 1.0,
"scene.render.line_thickness_mode": "ABSOLUTE",
"scene.render.metadata_input": "SCENE",
"scene.render.motion_blur_shutter": 0.5,
"scene.render.pixel_aspect_x": 1.0,
"scene.render.pixel_aspect_y": 1.0,
"scene.render.preview_pixel_size": "AUTO",
"scene.render.resolution_percentage": 100,
"scene.render.resolution_x": 1000,
"scene.render.resolution_y": 1000,
"scene.render.sequencer_gl_preview": "SOLID",
"scene.render.simplify_child_particles": 1.0,
"scene.render.simplify_child_particles_render": 1.0,
"scene.render.simplify_gpencil": false,
"scene.render.simplify_gpencil_antialiasing": true,
"scene.render.simplify_gpencil_modifier": true,
"scene.render.simplify_gpencil_onplay": false,
"scene.render.simplify_gpencil_shader_fx": true,
"scene.render.simplify_gpencil_tint": true,
"scene.render.simplify_gpencil_view_fill": true,
"scene.render.simplify_subdivision": 6,
"scene.render.simplify_subdivision_render": 6,
"scene.render.simplify_volumes": 1.0,
"scene.render.stamp_font_size": 12,
"scene.render.stamp_note_text": "",
"scene.render.threads": 20,
"scene.render.threads_mode": "AUTO",
"scene.render.use_border": false,
"scene.render.use_compositing": true,
"scene.render.use_crop_to_border": false,
"scene.render.use_file_extension": true,
"scene.render.use_freestyle": false,
"scene.render.use_high_quality_normals": false,
"scene.render.use_lock_interface": false,
"scene.render.use_motion_blur": false,
"scene.render.use_multiview": false,
"scene.render.use_overwrite": true,
"scene.render.use_persistent_data": false,
"scene.render.use_placeholder": false,
"scene.render.use_render_cache": false,
"scene.render.use_sequencer": true,
"scene.render.use_sequencer_override_scene_strip": false,
"scene.render.use_simplify": false,
"scene.render.use_single_layer": false,
"scene.render.use_stamp": false,
"scene.render.use_stamp_camera": true,
"scene.render.use_stamp_date": true,
"scene.render.use_stamp_filename": true,
"scene.render.use_stamp_frame": true,
"scene.render.use_stamp_frame_range": false,
"scene.render.use_stamp_hostname": false,
"scene.render.use_stamp_labels": true,
"scene.render.use_stamp_lens": false,
"scene.render.use_stamp_marker": false,
"scene.render.use_stamp_memory": false,
"scene.render.use_stamp_note": false,
"scene.render.use_stamp_render_time": true,
"scene.render.use_stamp_scene": true,
"scene.render.use_stamp_sequencer_strip": false,
"scene.render.use_stamp_time": true,
"scene.render.views_format": "STEREO_3D",
"scene.view_settings.exposure": 0.0,
"scene.view_settings.gamma": 1.0,
"scene.view_settings.look": "None",
"scene.view_settings.use_curve_mapping": false,
"scene.view_settings.view_transform": "Standard",
"scene.display.shading.aov_name": "",
"scene.display.shading.background_color": [
0.0,
0.0,
0.0
],
"scene.display.shading.background_type": "THEME",
"scene.display.shading.cavity_ridge_factor": 1.0,
"scene.display.shading.cavity_type": "BOTH",
"scene.display.shading.cavity_valley_factor": 1.0,
"scene.display.shading.color_type": "SINGLE",
"scene.display.shading.curvature_ridge_factor": 1.0,
"scene.display.shading.curvature_valley_factor": 1.0,
"scene.display.shading.light": "FLAT",
"scene.display.shading.object_outline_color": [
0.0,
0.0,
0.0
],
"scene.display.shading.render_pass": "COMBINED",
"scene.display.shading.shadow_intensity": 0.5,
"scene.display.shading.show_backface_culling": false,
"scene.display.shading.show_cavity": false,
"scene.display.shading.show_object_outline": true,
"scene.display.shading.show_shadows": false,
"scene.display.shading.show_specular_highlight": true,
"scene.display.shading.show_xray": false,
"scene.display.shading.show_xray_wireframe": false,
"scene.display.shading.single_color": [
1.0,
1.0,
1.0
],
"scene.display.shading.studio_light": "Default",
"scene.display.shading.studiolight_background_alpha": 0.0,
"scene.display.shading.studiolight_background_blur": 0.0,
"scene.display.shading.studiolight_intensity": 0.0,
"scene.display.shading.studiolight_rotate_z": 0.0,
"scene.display.shading.type": "SOLID",
"scene.display.shading.use_compositor": "DISABLED",
"scene.display.shading.use_dof": false,
"scene.display.shading.use_scene_lights": false,
"scene.display.shading.use_scene_lights_render": false,
"scene.display.shading.use_scene_world": false,
"scene.display.shading.use_scene_world_render": false,
"scene.display.shading.use_studiolight_view_rotation": true,
"scene.display.shading.use_world_space_lighting": false,
"scene.display.shading.wireframe_color_type": "THEME",
"scene.display.shading.xray_alpha": 0.5,
"scene.display.shading.xray_alpha_wireframe": 0.0,
"scene.display.light_direction": [
0.5,
0.5,
0.5
],
"scene.display.matcap_ssao_attenuation": 1.0,
"scene.display.matcap_ssao_distance": 0.20000000298023224,
"scene.display.matcap_ssao_samples": 16,
"scene.display.render_aa": "8",
"scene.display.shadow_focus": 0.0,
"scene.display.shadow_shift": 0.10000000149011612,
"scene.display.viewport_aa": "FXAA",
"space.overlay.bone_wire_alpha": 1.0,
"space.overlay.display_handle": "SELECTED",
"space.overlay.fade_inactive_alpha": 0.4000000059604645,
"space.overlay.gpencil_fade_layer": 0.5,
"space.overlay.gpencil_fade_objects": 0.5,
"space.overlay.gpencil_grid_opacity": 0.5,
"space.overlay.gpencil_vertex_paint_opacity": 1.0,
"space.overlay.grid_lines": 16,
"space.overlay.grid_scale": 1.0,
"space.overlay.grid_subdivisions": 10,
"space.overlay.normals_constant_screen_size": 7.0,
"space.overlay.normals_length": 0.10000000149011612,
"space.overlay.sculpt_curves_cage_opacity": 0.5,
"space.overlay.sculpt_mode_face_sets_opacity": 1.0,
"space.overlay.sculpt_mode_mask_opacity": 0.75,
"space.overlay.show_annotation": true,
"space.overlay.show_axis_x": false,
"space.overlay.show_axis_y": false,
"space.overlay.show_axis_z": false,
"space.overlay.show_bones": true,
"space.overlay.show_cursor": true,
"space.overlay.show_curve_normals": false,
"space.overlay.show_edge_bevel_weight": true,
"space.overlay.show_edge_crease": true,
"space.overlay.show_edge_seams": true,
"space.overlay.show_edge_sharp": true,
"space.overlay.show_extra_edge_angle": false,
"space.overlay.show_extra_edge_length": false,
"space.overlay.show_extra_face_angle": false,
"space.overlay.show_extra_face_area": false,
"space.overlay.show_extra_indices": false,
"space.overlay.show_extras": true,
"space.overlay.show_face_center": false,
"space.overlay.show_face_normals": false,
"space.overlay.show_face_orientation": false,
"space.overlay.show_faces": true,
"space.overlay.show_fade_inactive": false,
"space.overlay.show_floor": false,
"space.overlay.show_freestyle_edge_marks": true,
"space.overlay.show_freestyle_face_marks": true,
"space.overlay.show_look_dev": false,
"space.overlay.show_motion_paths": true,
"space.overlay.show_object_origins": false,
"space.overlay.show_object_origins_all": false,
"space.overlay.show_onion_skins": false,
"space.overlay.show_ortho_grid": true,
"space.overlay.show_outline_selected": true,
"space.overlay.show_overlays": true,
"space.overlay.show_paint_wire": false,
"space.overlay.show_relationship_lines": false,
"space.overlay.show_sculpt_curves_cage": true,
"space.overlay.show_sculpt_face_sets": true,
"space.overlay.show_sculpt_mask": true,
"space.overlay.show_split_normals": false,
"space.overlay.show_stats": false,
"space.overlay.show_statvis": false,
"space.overlay.show_text": true,
"space.overlay.show_vertex_normals": false,
"space.overlay.show_viewer_attribute": true,
"space.overlay.show_weight": false,
"space.overlay.show_wireframes": true,
"space.overlay.show_wpaint_contours": false,
"space.overlay.show_xray_bone": false,
"space.overlay.texture_paint_mode_opacity": 1.0,
"space.overlay.use_debug_freeze_view_culling": false,
"space.overlay.use_gpencil_canvas_xray": false,
"space.overlay.use_gpencil_edit_lines": true,
"space.overlay.use_gpencil_fade_gp_objects": false,
"space.overlay.use_gpencil_fade_layers": false,
"space.overlay.use_gpencil_fade_objects": false,
"space.overlay.use_gpencil_grid": false,
"space.overlay.use_gpencil_multiedit_line_only": false,
"space.overlay.use_gpencil_onion_skin": false,
"space.overlay.use_gpencil_show_directions": false,
"space.overlay.use_gpencil_show_material_name": false,
"space.overlay.use_normals_constant_screen_size": false,
"space.overlay.vertex_opacity": 1.0,
"space.overlay.vertex_paint_mode_opacity": 1.0,
"space.overlay.viewer_attribute_opacity": 1.0,
"space.overlay.weight_paint_mode_opacity": 1.0,
"space.overlay.wireframe_opacity": 1.0,
"space.overlay.wireframe_threshold": 0.0,
"space.overlay.xray_alpha_bone": 0.0
}
},
"Shaded": {
"render_type": "VIEWPORT",
"raster_style": {
"bpy.data.worlds[0].color": [
1.0,
1.0,
1.0
],
"scene.render.border_max_x": 1.0,
"scene.render.border_max_y": 1.0,
"scene.render.border_min_x": 0.0,
"scene.render.border_min_y": 0.0,
"scene.render.dither_intensity": 1.0,
"scene.render.engine": "BLENDER_WORKBENCH",
"scene.render.film_transparent": false,
"scene.render.filter_size": 1.5,
"scene.render.fps": 24,
"scene.render.fps_base": 1.0,
"scene.render.frame_map_new": 100,
"scene.render.frame_map_old": 100,
"scene.render.hair_subdiv": 0,
"scene.render.hair_type": "STRAND",
"scene.render.line_thickness": 1.0,
"scene.render.line_thickness_mode": "ABSOLUTE",
"scene.render.metadata_input": "SCENE",
"scene.render.motion_blur_shutter": 0.5,
"scene.render.pixel_aspect_x": 1.0,
"scene.render.pixel_aspect_y": 1.0,
"scene.render.preview_pixel_size": "AUTO",
"scene.render.resolution_percentage": 100,
"scene.render.resolution_x": 1000,
"scene.render.resolution_y": 1000,
"scene.render.sequencer_gl_preview": "SOLID",
"scene.render.simplify_child_particles": 1.0,
"scene.render.simplify_child_particles_render": 1.0,
"scene.render.simplify_gpencil": false,
"scene.render.simplify_gpencil_antialiasing": true,
"scene.render.simplify_gpencil_modifier": true,
"scene.render.simplify_gpencil_onplay": false,
"scene.render.simplify_gpencil_shader_fx": true,
"scene.render.simplify_gpencil_tint": true,
"scene.render.simplify_gpencil_view_fill": true,
"scene.render.simplify_subdivision": 6,
"scene.render.simplify_subdivision_render": 6,
"scene.render.simplify_volumes": 1.0,
"scene.render.stamp_font_size": 12,
"scene.render.stamp_note_text": "",
"scene.render.threads": 20,
"scene.render.threads_mode": "AUTO",
"scene.render.use_border": false,
"scene.render.use_compositing": true,
"scene.render.use_crop_to_border": false,
"scene.render.use_file_extension": true,
"scene.render.use_freestyle": false,
"scene.render.use_high_quality_normals": false,
"scene.render.use_lock_interface": false,
"scene.render.use_motion_blur": false,
"scene.render.use_multiview": false,
"scene.render.use_overwrite": true,
"scene.render.use_persistent_data": false,
"scene.render.use_placeholder": false,
"scene.render.use_render_cache": false,
"scene.render.use_sequencer": true,
"scene.render.use_sequencer_override_scene_strip": false,
"scene.render.use_simplify": false,
"scene.render.use_single_layer": false,
"scene.render.use_stamp": false,
"scene.render.use_stamp_camera": true,
"scene.render.use_stamp_date": true,
"scene.render.use_stamp_filename": true,
"scene.render.use_stamp_frame": true,
"scene.render.use_stamp_frame_range": false,
"scene.render.use_stamp_hostname": false,
"scene.render.use_stamp_labels": true,
"scene.render.use_stamp_lens": false,
"scene.render.use_stamp_marker": false,
"scene.render.use_stamp_memory": false,
"scene.render.use_stamp_note": false,
"scene.render.use_stamp_render_time": true,
"scene.render.use_stamp_scene": true,
"scene.render.use_stamp_sequencer_strip": false,
"scene.render.use_stamp_time": true,
"scene.render.views_format": "STEREO_3D",
"scene.view_settings.exposure": 0.0,
"scene.view_settings.gamma": 1.0,
"scene.view_settings.look": "None",
"scene.view_settings.use_curve_mapping": false,
"scene.view_settings.view_transform": "Standard",
"scene.display.shading.aov_name": "",
"scene.display.shading.background_color": [
0.0,
0.0,
0.0
],
"scene.display.shading.background_type": "THEME",
"scene.display.shading.cavity_ridge_factor": 1.0,
"scene.display.shading.cavity_type": "BOTH",
"scene.display.shading.cavity_valley_factor": 1.0,
"scene.display.shading.color_type": "MATERIAL",
"scene.display.shading.curvature_ridge_factor": 1.0,
"scene.display.shading.curvature_valley_factor": 1.0,
"scene.display.shading.light": "STUDIO",
"scene.display.shading.object_outline_color": [
0.0,
0.0,
0.0
],
"scene.display.shading.render_pass": "COMBINED",
"scene.display.shading.shadow_intensity": 0.5,
"scene.display.shading.show_backface_culling": false,
"scene.display.shading.show_cavity": true,
"scene.display.shading.show_object_outline": true,
"scene.display.shading.show_shadows": true,
"scene.display.shading.show_specular_highlight": true,
"scene.display.shading.show_xray": false,
"scene.display.shading.show_xray_wireframe": false,
"scene.display.shading.single_color": [
1.0,
1.0,
1.0
],
"scene.display.shading.studio_light": "forest.exr",
"scene.display.shading.studiolight_background_alpha": 0.0,
"scene.display.shading.studiolight_background_blur": 0.0,
"scene.display.shading.studiolight_intensity": 0.0,
"scene.display.shading.studiolight_rotate_z": 0.0,
"scene.display.shading.type": "RENDERED",
"scene.display.shading.use_compositor": "DISABLED",
"scene.display.shading.use_dof": false,
"scene.display.shading.use_scene_lights": false,
"scene.display.shading.use_scene_lights_render": false,
"scene.display.shading.use_scene_world": false,
"scene.display.shading.use_scene_world_render": false,
"scene.display.shading.use_studiolight_view_rotation": true,
"scene.display.shading.use_world_space_lighting": false,
"scene.display.shading.wireframe_color_type": "THEME",
"scene.display.shading.xray_alpha": 0.5,
"scene.display.shading.xray_alpha_wireframe": 0.0,
"scene.display.light_direction": [
0.5,
0.5,
0.5
],
"scene.display.matcap_ssao_attenuation": 1.0,
"scene.display.matcap_ssao_distance": 0.20000000298023224,
"scene.display.matcap_ssao_samples": 16,
"scene.display.render_aa": "8",
"scene.display.shadow_focus": 0.0,
"scene.display.shadow_shift": 0.10000000149011612,
"scene.display.viewport_aa": "FXAA",
"space.overlay.bone_wire_alpha": 1.0,
"space.overlay.display_handle": "SELECTED",
"space.overlay.fade_inactive_alpha": 0.4000000059604645,
"space.overlay.gpencil_fade_layer": 0.5,
"space.overlay.gpencil_fade_objects": 0.5,
"space.overlay.gpencil_grid_opacity": 0.5,
"space.overlay.gpencil_vertex_paint_opacity": 1.0,
"space.overlay.grid_lines": 16,
"space.overlay.grid_scale": 1.0,
"space.overlay.grid_subdivisions": 10,
"space.overlay.normals_constant_screen_size": 7.0,
"space.overlay.normals_length": 0.10000000149011612,
"space.overlay.sculpt_curves_cage_opacity": 0.5,
"space.overlay.sculpt_mode_face_sets_opacity": 1.0,
"space.overlay.sculpt_mode_mask_opacity": 0.75,
"space.overlay.show_annotation": true,
"space.overlay.show_axis_x": false,
"space.overlay.show_axis_y": false,
"space.overlay.show_axis_z": false,
"space.overlay.show_bones": true,
"space.overlay.show_cursor": true,
"space.overlay.show_curve_normals": false,
"space.overlay.show_edge_bevel_weight": true,
"space.overlay.show_edge_crease": true,
"space.overlay.show_edge_seams": true,
"space.overlay.show_edge_sharp": true,
"space.overlay.show_extra_edge_angle": false,
"space.overlay.show_extra_edge_length": false,
"space.overlay.show_extra_face_angle": false,
"space.overlay.show_extra_face_area": false,
"space.overlay.show_extra_indices": false,
"space.overlay.show_extras": true,
"space.overlay.show_face_center": false,
"space.overlay.show_face_normals": false,
"space.overlay.show_face_orientation": false,
"space.overlay.show_faces": true,
"space.overlay.show_fade_inactive": false,
"space.overlay.show_floor": false,
"space.overlay.show_freestyle_edge_marks": true,
"space.overlay.show_freestyle_face_marks": true,
"space.overlay.show_look_dev": false,
"space.overlay.show_motion_paths": true,
"space.overlay.show_object_origins": false,
"space.overlay.show_object_origins_all": false,
"space.overlay.show_onion_skins": false,
"space.overlay.show_ortho_grid": true,
"space.overlay.show_outline_selected": true,
"space.overlay.show_overlays": true,
"space.overlay.show_paint_wire": false,
"space.overlay.show_relationship_lines": false,
"space.overlay.show_sculpt_curves_cage": true,
"space.overlay.show_sculpt_face_sets": true,
"space.overlay.show_sculpt_mask": true,
"space.overlay.show_split_normals": false,
"space.overlay.show_stats": false,
"space.overlay.show_statvis": false,
"space.overlay.show_text": true,
"space.overlay.show_vertex_normals": false,
"space.overlay.show_viewer_attribute": true,
"space.overlay.show_weight": false,
"space.overlay.show_wireframes": false,
"space.overlay.show_wpaint_contours": false,
"space.overlay.show_xray_bone": false,
"space.overlay.texture_paint_mode_opacity": 1.0,
"space.overlay.use_debug_freeze_view_culling": false,
"space.overlay.use_gpencil_canvas_xray": false,
"space.overlay.use_gpencil_edit_lines": true,
"space.overlay.use_gpencil_fade_gp_objects": false,
"space.overlay.use_gpencil_fade_layers": false,
"space.overlay.use_gpencil_fade_objects": false,
"space.overlay.use_gpencil_grid": false,
"space.overlay.use_gpencil_multiedit_line_only": false,
"space.overlay.use_gpencil_onion_skin": false,
"space.overlay.use_gpencil_show_directions": false,
"space.overlay.use_gpencil_show_material_name": false,
"space.overlay.use_normals_constant_screen_size": false,
"space.overlay.vertex_opacity": 1.0,
"space.overlay.vertex_paint_mode_opacity": 1.0,
"space.overlay.viewer_attribute_opacity": 1.0,
"space.overlay.weight_paint_mode_opacity": 1.0,
"space.overlay.wireframe_opacity": 1.0,
"space.overlay.wireframe_threshold": 0.0,
"space.overlay.xray_alpha_bone": 0.0
}
},
"Blender Default": {
"render_type": "VIEWPORT",
"raster_style": {
"bpy.data.worlds[0].color": [
0.05087608844041824,
0.05087608844041824,
0.05087608844041824
],
"scene.eevee.use_shadows": true,
"scene.eevee.shadow_ray_count": 1,
"scene.eevee.shadow_step_count": 6,
"scene.eevee.shadow_resolution_scale": 1.0,
"scene.render.border_max_x": 1.0,
"scene.render.border_max_y": 1.0,
"scene.render.border_min_x": 0.0,
"scene.render.border_min_y": 0.0,
"scene.render.dither_intensity": 1.0,
"scene.render.engine": "BLENDER_EEVEE",
"scene.render.film_transparent": false,
"scene.render.filter_size": 1.5,
"scene.render.fps": 24,
"scene.render.fps_base": 1.0,
"scene.render.frame_map_new": 100,
"scene.render.frame_map_old": 100,
"scene.render.hair_subdiv": 0,
"scene.render.hair_type": "STRAND",
"scene.render.line_thickness": 1.0,
"scene.render.line_thickness_mode": "ABSOLUTE",
"scene.render.metadata_input": "SCENE",
"scene.render.motion_blur_shutter": 0.5,
"scene.render.pixel_aspect_x": 1.0,
"scene.render.pixel_aspect_y": 1.0,
"scene.render.preview_pixel_size": "AUTO",
"scene.render.resolution_percentage": 100,
"scene.render.resolution_x": 1000,
"scene.render.resolution_y": 1000,
"scene.render.sequencer_gl_preview": "SOLID",
"scene.render.simplify_child_particles": 1.0,
"scene.render.simplify_child_particles_render": 1.0,
"scene.render.simplify_gpencil": false,
"scene.render.simplify_gpencil_antialiasing": true,
"scene.render.simplify_gpencil_modifier": true,
"scene.render.simplify_gpencil_onplay": false,
"scene.render.simplify_gpencil_shader_fx": true,
"scene.render.simplify_gpencil_tint": true,
"scene.render.simplify_gpencil_view_fill": true,
"scene.render.simplify_subdivision": 6,
"scene.render.simplify_subdivision_render": 6,
"scene.render.simplify_volumes": 1.0,
"scene.render.stamp_font_size": 12,
"scene.render.stamp_note_text": "",
"scene.render.threads": 20,
"scene.render.threads_mode": "AUTO",
"scene.render.use_border": false,
"scene.render.use_compositing": true,
"scene.render.use_crop_to_border": false,
"scene.render.use_file_extension": true,
"scene.render.use_freestyle": false,
"scene.render.use_high_quality_normals": false,
"scene.render.use_lock_interface": false,
"scene.render.use_motion_blur": false,
"scene.render.use_multiview": false,
"scene.render.use_overwrite": true,
"scene.render.use_persistent_data": false,
"scene.render.use_placeholder": false,
"scene.render.use_render_cache": false,
"scene.render.use_sequencer": true,
"scene.render.use_sequencer_override_scene_strip": false,
"scene.render.use_simplify": false,
"scene.render.use_single_layer": false,
"scene.render.use_stamp": false,
"scene.render.use_stamp_camera": true,
"scene.render.use_stamp_date": true,
"scene.render.use_stamp_filename": true,
"scene.render.use_stamp_frame": true,
"scene.render.use_stamp_frame_range": false,
"scene.render.use_stamp_hostname": false,
"scene.render.use_stamp_labels": true,
"scene.render.use_stamp_lens": false,
"scene.render.use_stamp_marker": false,
"scene.render.use_stamp_memory": false,
"scene.render.use_stamp_note": false,
"scene.render.use_stamp_render_time": true,
"scene.render.use_stamp_scene": true,
"scene.render.use_stamp_sequencer_strip": false,
"scene.render.use_stamp_time": true,
"scene.render.views_format": "STEREO_3D",
"scene.view_settings.exposure": 0.0,
"scene.view_settings.gamma": 1.0,
"scene.view_settings.look": "None",
"scene.view_settings.use_curve_mapping": false,
"scene.view_settings.view_transform": "Filmic",
"scene.display.shading.aov_name": "",
"scene.display.shading.background_color": [
0.0,
0.0,
0.0
],
"scene.display.shading.background_type": "THEME",
"scene.display.shading.cavity_ridge_factor": 1.0,
"scene.display.shading.cavity_type": "WORLD",
"scene.display.shading.cavity_valley_factor": 1.0,
"scene.display.shading.color_type": "MATERIAL",
"scene.display.shading.curvature_ridge_factor": 0.0,
"scene.display.shading.curvature_valley_factor": 0.0,
"scene.display.shading.light": "STUDIO",
"scene.display.shading.object_outline_color": [
0.0,
0.0,
0.0
],
"scene.display.shading.render_pass": "COMBINED",
"scene.display.shading.shadow_intensity": 0.5,
"scene.display.shading.show_backface_culling": false,
"scene.display.shading.show_cavity": false,
"scene.display.shading.show_object_outline": false,
"scene.display.shading.show_shadows": false,
"scene.display.shading.show_specular_highlight": true,
"scene.display.shading.show_xray": false,
"scene.display.shading.show_xray_wireframe": false,
"scene.display.shading.single_color": [
0.800000011920929,
0.800000011920929,
0.800000011920929
],
"scene.display.shading.studio_light": "forest.exr",
"scene.display.shading.studiolight_background_alpha": 0.0,
"scene.display.shading.studiolight_background_blur": 0.0,
"scene.display.shading.studiolight_intensity": 0.0,
"scene.display.shading.studiolight_rotate_z": 0.0,
"scene.display.shading.type": "RENDERED",
"scene.display.shading.use_compositor": "DISABLED",
"scene.display.shading.use_dof": false,
"scene.display.shading.use_scene_lights": false,
"scene.display.shading.use_scene_lights_render": false,
"scene.display.shading.use_scene_world": false,
"scene.display.shading.use_scene_world_render": false,
"scene.display.shading.use_studiolight_view_rotation": true,
"scene.display.shading.use_world_space_lighting": false,
"scene.display.shading.wireframe_color_type": "THEME",
"scene.display.shading.xray_alpha": 0.5,
"scene.display.shading.xray_alpha_wireframe": 0.0,
"scene.display.light_direction": [
0.5773502588272095,
0.5773502588272095,
0.5773502588272095
],
"scene.display.matcap_ssao_attenuation": 1.0,
"scene.display.matcap_ssao_distance": 0.20000000298023224,
"scene.display.matcap_ssao_samples": 16,
"scene.display.render_aa": "8",
"scene.display.shadow_focus": 0.0,
"scene.display.shadow_shift": 0.10000000149011612,
"scene.display.viewport_aa": "FXAA",
"space.overlay.bone_wire_alpha": 1.0,
"space.overlay.display_handle": "SELECTED",
"space.overlay.fade_inactive_alpha": 0.4000000059604645,
"space.overlay.gpencil_fade_layer": 0.5,
"space.overlay.gpencil_fade_objects": 0.5,
"space.overlay.gpencil_grid_opacity": 0.5,
"space.overlay.gpencil_vertex_paint_opacity": 1.0,
"space.overlay.grid_lines": 16,
"space.overlay.grid_scale": 1.0,
"space.overlay.grid_subdivisions": 10,
"space.overlay.normals_constant_screen_size": 7.0,
"space.overlay.normals_length": 0.10000000149011612,
"space.overlay.sculpt_curves_cage_opacity": 0.5,
"space.overlay.sculpt_mode_face_sets_opacity": 1.0,
"space.overlay.sculpt_mode_mask_opacity": 0.75,
"space.overlay.show_annotation": true,
"space.overlay.show_axis_x": true,
"space.overlay.show_axis_y": true,
"space.overlay.show_axis_z": false,
"space.overlay.show_bones": true,
"space.overlay.show_cursor": true,
"space.overlay.show_curve_normals": false,
"space.overlay.show_edge_bevel_weight": true,
"space.overlay.show_edge_crease": true,
"space.overlay.show_edge_seams": true,
"space.overlay.show_edge_sharp": true,
"space.overlay.show_extra_edge_angle": false,
"space.overlay.show_extra_edge_length": false,
"space.overlay.show_extra_face_angle": false,
"space.overlay.show_extra_face_area": false,
"space.overlay.show_extra_indices": false,
"space.overlay.show_extras": true,
"space.overlay.show_face_center": false,
"space.overlay.show_face_normals": false,
"space.overlay.show_face_orientation": false,
"space.overlay.show_faces": true,
"space.overlay.show_fade_inactive": false,
"space.overlay.show_floor": true,
"space.overlay.show_freestyle_edge_marks": true,
"space.overlay.show_freestyle_face_marks": true,
"space.overlay.show_look_dev": false,
"space.overlay.show_motion_paths": true,
"space.overlay.show_object_origins": true,
"space.overlay.show_object_origins_all": false,
"space.overlay.show_onion_skins": false,
"space.overlay.show_ortho_grid": true,
"space.overlay.show_outline_selected": true,
"space.overlay.show_overlays": true,
"space.overlay.show_paint_wire": false,
"space.overlay.show_relationship_lines": true,
"space.overlay.show_sculpt_curves_cage": true,
"space.overlay.show_sculpt_face_sets": true,
"space.overlay.show_sculpt_mask": true,
"space.overlay.show_split_normals": false,
"space.overlay.show_stats": false,
"space.overlay.show_statvis": false,
"space.overlay.show_text": true,
"space.overlay.show_vertex_normals": false,
"space.overlay.show_viewer_attribute": true,
"space.overlay.show_weight": false,
"space.overlay.show_wireframes": false,
"space.overlay.show_wpaint_contours": false,
"space.overlay.show_xray_bone": false,
"space.overlay.texture_paint_mode_opacity": 1.0,
"space.overlay.use_debug_freeze_view_culling": false,
"space.overlay.use_gpencil_canvas_xray": false,
"space.overlay.use_gpencil_edit_lines": true,
"space.overlay.use_gpencil_fade_gp_objects": false,
"space.overlay.use_gpencil_fade_layers": false,
"space.overlay.use_gpencil_fade_objects": false,
"space.overlay.use_gpencil_grid": false,
"space.overlay.use_gpencil_multiedit_line_only": false,
"space.overlay.use_gpencil_onion_skin": false,
"space.overlay.use_gpencil_show_directions": false,
"space.overlay.use_gpencil_show_material_name": false,
"space.overlay.use_normals_constant_screen_size": false,
"space.overlay.vertex_opacity": 1.0,
"space.overlay.vertex_paint_mode_opacity": 1.0,
"space.overlay.viewer_attribute_opacity": 1.0,
"space.overlay.weight_paint_mode_opacity": 1.0,
"space.overlay.wireframe_opacity": 1.0,
"space.overlay.wireframe_threshold": 1.0,
"space.overlay.xray_alpha_bone": 0.0
}
}
}

View file

@ -1,72 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<svg baseProfile="full" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="rectangle-tag">
<rect x="-6" y="-2.5" width="12" height="5" fill="white" stroke="black" style="stroke-width: 0.25;" />
</g>
<g id="triangle-tag">
<path style="fill: white; stroke: black; stroke-width: 0.25;" d="M 3.1409425e-7,-7.1069207 5.7650623,2.8784603 l -11.5301246,-6e-7 z" />
</g>
<g id="hexagon-tag">
<path style="fill: white; stroke: black; stroke-width: 0.25;" d="m 0.0161133,-6.0583333 5.2339915,3.8366023 -2.031433,6.1633977 c 0,0 -6.4894866,-0.027414 -6.4894866,-0.027414 l -1.97929,-6.1803395 5.2662181,-3.7922467" />
</g>
<g id="capsule-tag">
<rect x="-6" y="-2.5" width="12" height="5" rx="2.5" ry="2.5" fill="white" stroke="black" style="stroke-width: 0.25;" />
</g>
<g id="circle-tag">
<circle r="5" fill="white" stroke="black" style="stroke-width: 0.25;" />
</g>
<g id="door-tag">
<circle r="5" fill="white" stroke="black" style="stroke-width: 0.25;" />
<text y="-1.75" class="regular" text-anchor="middle" dominant-baseline="middle" data-type="text-template"></text>
<line x1="-5" x2="5" style="stroke: black; stroke-width: 0.25;" />
<text y="2.5" class="regular" text-anchor="middle" dominant-baseline="middle" data-type="text-template"></text>
</g>
<g id="window-tag">
<path style="fill: white; stroke: black; stroke-width: 0.25;" d="m 0.0161133,-6.0583333 5.2339915,3.8366023 -2.031433,6.1633977 c 0,0 -6.4894866,-0.027414 -6.4894866,-0.027414 l -1.97929,-6.1803395 5.2662181,-3.7922467" />
</g>
<g id="space-tag">
<text y="-5" class="large" text-anchor="middle" dominant-baseline="middle" data-type="text-template"></text>
<rect x="-6" y="-2.5" width="12" height="5" fill="white" stroke="black" style="stroke-width: 0.25;" />
<text class="regular" text-anchor="middle" dominant-baseline="middle" data-type="text-template"></text>
<text y="5" class="regular" text-anchor="middle" dominant-baseline="middle" data-type="text-template"></text>
</g>
<g id="elevation-arrow">
<path style="fill: black;" d="M -7.07106 0 0 -7.07106 7.07106 0" />
</g>
<g id="elevation-tag">
<circle r="5" fill="white" stroke="black" style="stroke-width: 0.25;" />
<line x1="-5" y1="0" x2="5" y2="0" style="stroke: black; stroke-width: 0.25;" />
</g>
<g id="section-arrow">
<path style="fill: black;" d="M -7.07106 0 0 -7.07106 7.07106 0" />
</g>
<g id="section-tag">
<circle r="5" fill="white" stroke="black" style="stroke-width: 0.25;" />
<line x1="-5" y1="0" x2="5" y2="0" style="stroke: black; stroke-width: 0.25;" />
</g>
<g id="dot">
<circle r="1" fill="black" stroke="black" style="stroke-width: 0.25;" />
</g>
<g id="setout-tag">
<circle fill="white" stroke="black" r="2.5" style="stroke-width: 0.5"/>
<path d="M 0 0 L -2.5 0 A 2.5 2.5 0 0 1 0 -2.5 Z" fill="black"/>
<path d="M 0 0 L 2.5 0 A 2.5 2.5 0 0 1 0 2.5 Z" fill="black"/>
<text x="3" y="-8" class="regular" text-anchor="start" dominant-baseline="auto" data-type="text-template"></text>
<text x="3" y="-4" class="regular" text-anchor="start" dominant-baseline="auto" data-type="text-template"></text>
</g>
<g id="setout-point">
<circle fill="white" stroke="black" r="2.5" style="stroke-width: 0.5"/>
<path d="M 0 0 L -2.5 0 A 2.5 2.5 0 0 1 0 -2.5 Z" fill="black"/>
<path d="M 0 0 L 2.5 0 A 2.5 2.5 0 0 1 0 2.5 Z" fill="black"/>
</g>
<g id="control-point">
<path style="fill: white; stroke: black; stroke-width: 0.5;" d="M 2.286165,1.4798666 H -1.0000316e-7 -2.2861651 L -1.1430826,-0.5000101 -1.0000316e-7,-2.479888 1.1430827,-0.5000101 Z" />
<circle r="0.5" fill="black" stroke="black" style="stroke-width: 0.25;" />
</g>
<g id="traverse-point">
<path style="fill: white; stroke: black; stroke-width: 0.5;" d="M -2,-2 2,2 M -2,2 2,-2" />
</g>
<g id="spot-elevation">
<path style="fill: white; stroke: black; stroke-width: 0.5;" d="M 0,-2 0,2 M -2,0 2,0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -1,116 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:ifc="http://www.ifcopenshell.org/ns" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" data-scale="1:100" height="347.2920227050781mm" id="root" version="1.1" viewBox="0 0 283.9324049042492 347.2920227050781" width="283.9324049042492mm">
<defs/>
<use transform="rotate(-90.00000250447816, 278.5086364746094, 173.64601135253906)" x="278.5086364746094" xlink:href="#elevation-arrow" y="173.64601135253906"/>
<use x="278.5086364746094" xlink:href="#elevation-tag" y="173.64601135253906"/>
<text class="ELEVATION" dominant-baseline="middle" text-anchor="middle" x="278.5086364746094" y="171.14601135253906">5</text>
<text class="ELEVATION" dominant-baseline="middle" text-anchor="middle" x="278.5086364746094" y="176.14601135253906">A001</text>
<use transform="rotate(-0.0, 141.96620178222656, 341.7720031738281)" x="141.96620178222656" xlink:href="#elevation-arrow" y="341.7720031738281"/>
<use x="141.96620178222656" xlink:href="#elevation-tag" y="341.7720031738281"/>
<text class="ELEVATION" dominant-baseline="middle" text-anchor="middle" x="141.96620178222656" y="339.2720031738281">3</text>
<text class="ELEVATION" dominant-baseline="middle" text-anchor="middle" x="141.96620178222656" y="344.2720031738281">A001</text>
<use transform="rotate(180.00000500895632, 141.96620178222656, 5.519981384277344)" x="141.96620178222656" xlink:href="#elevation-arrow" y="5.519981384277344"/>
<use x="141.96620178222656" xlink:href="#elevation-tag" y="5.519981384277344"/>
<text class="ELEVATION" dominant-baseline="middle" text-anchor="middle" x="141.96620178222656" y="3.0199813842773438">2</text>
<text class="ELEVATION" dominant-baseline="middle" text-anchor="middle" x="141.96620178222656" y="8.019981384277344">A001</text>
<use transform="rotate(90.00000250447816, 5.423786640167236, 173.64601135253906)" x="5.423786640167236" xlink:href="#elevation-arrow" y="173.64601135253906"/>
<use x="5.423786640167236" xlink:href="#elevation-tag" y="173.64601135253906"/>
<text class="ELEVATION" dominant-baseline="middle" text-anchor="middle" x="5.423786640167236" y="171.14601135253906">4</text>
<text class="ELEVATION" dominant-baseline="middle" text-anchor="middle" x="5.423786640167236" y="176.14601135253906">A001</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(104.0402603149414, 112.1025161743164) rotate(-0.0)">
<tspan class="GlobalId-14k76oIez1vxM0oh32S0GE IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Circulation</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(55.23228073120117, 162.96786499023438) rotate(-0.0)">
<tspan class="GlobalId-0MyH$XkpPDXxIUaT9Ld8Hw IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Outside</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(141.86961364746094, 151.8088836669922) rotate(-0.0)">
<tspan class="GlobalId-2PE9CsOj13Z9IrWaGXrOc2 IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Bathroom</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(116.88951110839844, 48.97612762451172) rotate(-0.0)">
<tspan class="GlobalId-2Xq2z1Eh5F8gNMVVogO2GJ IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(173.82005310058594, 144.2660675048828) rotate(-0.0)">
<tspan class="GlobalId-0KyqAKW8nDBwZDBQdEj_iK IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">First floor storage</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(149.87120056152344, 255.59417724609375) rotate(-0.0)">
<tspan class="GlobalId-3rMjwhobv6_PEgdf9$K3zJ IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Circulation</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(142.7828369140625, 178.0451202392578) rotate(-0.0)">
<tspan class="GlobalId-1X0qZMsjb4UuCuoP0Lq41v IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(212.8541259765625, 285.85626220703125) rotate(-0.0)">
<tspan class="GlobalId-2YLyAyX796LwYiMGzpPr2G IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Library corner</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(88.3046875, 63.82916259765625) rotate(-0.0)">
<tspan class="GlobalId-0$IByw69TDLvnor8Ds1qWt IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(36.39326477050781, 311.0692138671875) rotate(-0.0)">
<tspan class="GlobalId-0Y8lYMSb54fOgp0QqQ7Ns4 IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Stair</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(30.05246353149414, 124.2915267944336) rotate(-0.0)">
<tspan class="GlobalId-2bqHH7bW9AKuxe1Uj6OLyq IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(204.09750366210938, 173.6927032470703) rotate(-0.0)">
<tspan class="GlobalId-2bSIAbizzCYf5p7OTP8rJI IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(222.9790496826172, 112.36170959472656) rotate(-0.0)">
<tspan class="GlobalId-2lg7HOP_vAtAB5Le8xwyz8 IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Ground floor storage</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(30.54391098022461, 175.71914672851562) rotate(-0.0)">
<tspan class="GlobalId-0gdzN02vf34PC6Wcl$kR8J IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Circulation</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(82.68409729003906, 243.4410400390625) rotate(-0.0)">
<tspan class="GlobalId-3hPXipzRz0S9exKDyH0Vcp IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Neighborhood</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(48.83393859863281, 93.4433822631836) rotate(-0.0)">
<tspan class="GlobalId-1I8tY$FIv0_wDthF4VjB1P IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Bathroom</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(36.00395584106445, 222.1943359375) rotate(-0.0)">
<tspan class="GlobalId-0MX6uTQTr8qOdGIROZnXYB IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(138.38088989257812, 58.71159362792969) rotate(-0.0)">
<tspan class="GlobalId-3O1qPE9qj4yxEzv9SUamLD IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(87.72796630859375, 34.609764099121094) rotate(-0.0)">
<tspan class="GlobalId-23LW3b_szBDBLnq0wZDN81 IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Outside</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(36.30070877075195, 289.939697265625) rotate(-0.0)">
<tspan class="GlobalId-0g5Y0kvLv1hwBodQWzU4sm IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(194.0360107421875, 287.24896240234375) rotate(-0.0)">
<tspan class="GlobalId-2QIAqitaLFJPcCk7DoGUtY IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(219.0067138671875, 46.154258728027344) rotate(-0.0)">
<tspan class="GlobalId-247dH3OhD05Qw$82Tjf4WD IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Ground floor storage</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(29.954397201538086, 89.66910552978516) rotate(-0.0)">
<tspan class="GlobalId-1FCx3YB1X4fhemya1p0hiR IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Circulation</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(36.176292419433594, 261.53753662109375) rotate(-0.0)">
<tspan class="GlobalId-038B2S9SL0d9_I_xR1yvlW IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">First floor storage</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(101.0525131225586, 172.71115112304688) rotate(-0.0)">
<tspan class="GlobalId-3kATNz14D6dQsPKCXfltH8 IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Sahn</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(55.496238708496094, 189.85069274902344) rotate(-0.0)">
<tspan class="GlobalId-3$mxc3OeX3ggdTedb7yZeS IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Bathroom</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(49.11585235595703, 127.88272094726562) rotate(-0.0)">
<tspan class="GlobalId-1_sXb7hMjA8u8EhCqXyOl4 IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Individual room</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(45.175167083740234, 49.580604553222656) rotate(-0.0)">
<tspan class="GlobalId-0KSG2qVOb0zu1v0SS_Dofk IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">First floor storage</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(83.710205078125, 303.1560974121094) rotate(-0.0)">
<tspan class="GlobalId-2Hk3oth3n8sh2h0Bf5KwNl IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">First floor storage</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(137.38067626953125, 29.91387367248535) rotate(-0.0)">
<tspan class="GlobalId-3TY70XhmHAcRtu4o63zE$T IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Bathroom</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(170.83584594726562, 77.07499694824219) rotate(-0.0)">
<tspan class="GlobalId-0Z1UUYeAf9zBPtDmFlSl5K IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">First floor storage</tspan>
</text>
<text dominant-baseline="middle" style="font-size: 0;" text-anchor="middle" transform="translate(222.19921875, 227.48216247558594) rotate(-0.0)">
<tspan class="GlobalId-114S2YEkj9CRPoowAp_8WN IfcAnnotation PredefinedType-TEXT header" dy="0em" x="0" y="0">Utilities closet</tspan>
</text>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.1 MiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.2 MiB

View file

@ -1,300 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M-nols.dom
programme : harbor-house
budget : 3000000
pop : 16
child_budget : 80
workers : 1
rng seed : 0
leaf sharing : False (factor=3)
superpose : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M-nols-2.dom
[ 200 evals] best 1.20049e-11 (fails 32) via seed
[ 20520 evals] best 1.3603e-11 (fails 32) via rotate 0/rrl
[ 23240 evals] best 1.36649e-11 (fails 32) via core_undivide noop
[ 28200 evals] best 1.38185e-11 (fails 32) via core_undivide noop
[ 34520 evals] best 2.01893e-11 (fails 31) via place_missing noop
[ 35480 evals] best 2.79281e-11 (fails 31) via place_missing noop
[ 36200 evals] best 2.80872e-11 (fails 31) via place_missing noop
[ 40200 evals] best 2.8253e-11 (fails 31) via place_missing noop
[ 41880 evals] best 2.84268e-11 (fails 31) via crossover llrlr<->llrlr
[ 50920 evals] best 2.85753e-11 (fails 31) via place_missing noop
[ 62280 evals] best 2.89517e-11 (fails 30) via crossover rlrr<->llrl
[ 62600 evals] best 3.34689e-11 (fails 30) via core_undivide noop
[ 63720 evals] best 3.40595e-11 (fails 30) via level_retype 0/lllrlr<->1/rllllr
[ 64120 evals] best 3.46347e-11 (fails 30) via place_missing noop
[ 65240 evals] best 3.48699e-11 (fails 30) via place_missing noop
[ 66920 evals] best 3.50429e-11 (fails 30) via place_missing noop
[ 68200 evals] best 3.52197e-11 (fails 30) via place_missing noop
[ 69480 evals] best 3.53897e-11 (fails 30) via place_missing noop
[ 70120 evals] best 3.55584e-11 (fails 30) via core_undivide noop
[ 72120 evals] best 3.56615e-11 (fails 30) via place_missing noop
[ 77640 evals] best 7.76357e-11 (fails 29) via rotate 0/rlrr
[ 80760 evals] best 7.81409e-11 (fails 29) via place_missing noop
[ 89000 evals] best 7.86684e-11 (fails 29) via core_undivide noop
[ 92840 evals] best 7.92192e-11 (fails 29) via core_undivide noop
[ 94760 evals] best 7.97367e-11 (fails 29) via retype 0/lllrll->st1
[105640 evals] best 9.11925e-11 (fails 29) via rotate 0/rlrl
[112920 evals] best 1.43742e-10 (fails 28) via swap 0/rlrrl
[148680 evals] best 1.70784e-10 (fails 28) via swap 0/rlrrl
[191800 evals] best 1.92624e-10 (fails 28) via retype 0/rlrrll->O
[211160 evals] best 1.99568e-10 (fails 28) via rotate 0/rrrlr
[273560 evals] best 3.37479e-10 (fails 27) via divide 0/rrll
[295640 evals] best 6.6851e-10 (fails 26) via level_retype 1/lrrlrl<->0/rrllr
[300520 evals] best 6.71575e-10 (fails 26) via core_undivide noop
[304840 evals] best 6.73945e-10 (fails 26) via core_undivide noop
[305160 evals] best 6.76176e-10 (fails 26) via core_undivide noop
[308760 evals] best 6.77048e-10 (fails 26) via place_missing noop
[314360 evals] best 8.51018e-10 (fails 26) via divide 0/llrlr
[320280 evals] best 8.53835e-10 (fails 26) via level_retype 1/llrlllr<->0/rrlr
[321240 evals] best 8.54936e-10 (fails 26) via swap 0/rrrlrl
[411880 evals] best 8.80111e-10 (fails 26) via undivide 0/lllrl
[458040 evals] best 1.55881e-09 (fails 25) via crossover lllrl<->lrrr
[491720 evals] best 1.80936e-09 (fails 25) via crossover rlrrll<->llrlrr
[515000 evals] best 2.24132e-09 (fails 25) via rotate 1/lrrlr
[600440 evals] best 2.28188e-09 (fails 25) via undivide 0/rrrll
[633960 evals] best 3.87563e-09 (fails 24) via retype 1/rllrr->st1
[660680 evals] best 4.58847e-09 (fails 24) via retype 1/rllrr->C
[670120 evals] best 4.5971e-09 (fails 24) via core_undivide noop
[673000 evals] best 4.60863e-09 (fails 24) via swap 0/rrrlrl
[673720 evals] best 4.73211e-09 (fails 24) via retype 1/rrll->O
[677160 evals] best 4.7494e-09 (fails 24) via place_missing noop
[681160 evals] best 4.75775e-09 (fails 24) via core_undivide noop
[689240 evals] best 4.86041e-09 (fails 24) via undivide 1/lrrll
[695640 evals] best 4.86569e-09 (fails 24) via place_missing noop
[703480 evals] best 4.86831e-09 (fails 24) via core_undivide noop
[704360 evals] best 4.8863e-09 (fails 24) via swap 0/rrll
[705480 evals] best 4.89938e-09 (fails 24) via place_missing noop
[707000 evals] best 4.90287e-09 (fails 24) via crossover llrlrr<->rrrr
[708040 evals] best 4.90394e-09 (fails 24) via core_undivide noop
[713400 evals] best 5.00798e-09 (fails 24) via undivide 1/lrrll
[724040 evals] best 5.11809e-09 (fails 24) via undivide 1/lrrll
[735000 evals] best 5.15421e-09 (fails 24) via undivide 1/rlllr
[746200 evals] best 5.15486e-09 (fails 24) via undivide 0/rrrll
[768360 evals] best 5.26248e-09 (fails 24) via undivide 1/rlllr
[800920 evals] best 5.26644e-09 (fails 24) via undivide 1/rlllr
[827880 evals] best 5.26644e-09 (fails 24) via crossover lrllr<->llrlr
[878680 evals] best 5.32211e-09 (fails 24) via level_retype 1/llrllll<->0/rllrl
[1103320 evals] best 1.06348e-08 (fails 23) via undivide 0/rrrlrl
[1116440 evals] best 1.12572e-08 (fails 23) via divide 0/rlrrll
[1149800 evals] best 1.14984e-08 (fails 23) via undivide 1/lrrll
[1382840 evals] best 1.15051e-08 (fails 23) via undivide 1/lrrll
[1387880 evals] best 1.15251e-08 (fails 23) via rotate 0/rlrrl
[1390440 evals] best 1.33748e-08 (fails 23) via retype 1/llrrr->st1
[1437480 evals] best 1.33819e-08 (fails 23) via crossover llrlrl<->rrrr
[1438120 evals] best 1.34359e-08 (fails 23) via rotate 0/rlrrll
[1441720 evals] best 1.34477e-08 (fails 23) via core_divide noop
[1441960 evals] best 1.34988e-08 (fails 23) via place_missing noop
[1457640 evals] best 1.37468e-08 (fails 23) via undivide 0/llrllll
[1627960 evals] best 2.6523e-08 (fails 22) via level_retype 1/llrllll<->0/rrlll
[1629800 evals] best 2.65259e-08 (fails 22) via core_undivide noop
[1755560 evals] best 5.83384e-08 (fails 21) via divide 0/lllrl
[1805080 evals] best 1.18411e-07 (fails 20) via divide 0/lllrl
[1865880 evals] best 1.18411e-07 (fails 20) via undivide 0/rlrrll
[1880760 evals] best 1.88783e-07 (fails 19) via crossover rlrrll<->lrrr
[1956360 evals] best 2.10097e-07 (fails 19) via crossover rlrrlll<->lllrll
[1996840 evals] best 2.11465e-07 (fails 19) via retype 0/rlrrlll->C
[1997640 evals] best 2.11848e-07 (fails 19) via core_divide noop
[2007560 evals] best 2.35646e-07 (fails 19) via crossover rlrrlll<->lrrr
[2012360 evals] best 2.36973e-07 (fails 19) via place_missing noop
[2012760 evals] best 2.37399e-07 (fails 19) via place_missing noop
[2038680 evals] best 2.49379e-07 (fails 19) via rotate 0/rlrrl
[2045960 evals] best 4.54898e-07 (fails 18) via crossover lrrlrr<->llrlllr
[2046280 evals] best 4.55804e-07 (fails 18) via place_missing noop
[2046680 evals] best 4.56932e-07 (fails 18) via place_missing noop
[2047400 evals] best 4.57898e-07 (fails 18) via core_divide noop
[2064200 evals] best 4.58171e-07 (fails 18) via swap 0/rrll
[2064360 evals] best 4.58199e-07 (fails 18) via core_divide noop
[2065960 evals] best 4.58199e-07 (fails 18) via rotate 0/llrllll
[2066600 evals] best 4.59148e-07 (fails 18) via place_missing noop
[2067480 evals] best 4.5952e-07 (fails 18) via core_undivide noop
[2097480 evals] best 4.61537e-07 (fails 18) via place_missing noop
[2102040 evals] best 4.63543e-07 (fails 18) via place_missing noop
[2102440 evals] best 4.64431e-07 (fails 18) via core_undivide noop
[2164360 evals] best 4.72304e-07 (fails 18) via level_retype 0/lrrll<->1/lrlll
[2194440 evals] best 4.72706e-07 (fails 18) via rotate 0/lrrlr
[2195240 evals] best 4.73159e-07 (fails 18) via place_missing noop
[2197000 evals] best 4.73498e-07 (fails 18) via place_missing noop
[2209560 evals] best 4.75066e-07 (fails 18) via rotate 0/rrllr
[2280840 evals] best 4.8783e-07 (fails 18) via rotate 0/rlrrll
[2282840 evals] best 8.51649e-07 (fails 17) via level_retype 1/rrlrl<->0/llrllllr
[2288840 evals] best 8.55171e-07 (fails 17) via crossover lrrlrl<->llrlllll
[2289880 evals] best 8.55716e-07 (fails 17) via crossover lrrlrl<->llrllllr
[2291800 evals] best 8.5789e-07 (fails 17) via core_undivide noop
[2292440 evals] best 8.5798e-07 (fails 17) via place_missing noop
[2305560 evals] best 8.8011e-07 (fails 17) via undivide 1/llrrl
[2387000 evals] best 8.80152e-07 (fails 17) via undivide 1/llllr
[2389880 evals] best 8.85765e-07 (fails 17) via swap 0/rlrrll
[2390200 evals] best 8.89866e-07 (fails 17) via core_undivide noop
[2390360 evals] best 8.93447e-07 (fails 17) via place_missing noop
[2391320 evals] best 8.96723e-07 (fails 17) via place_missing noop
[2391560 evals] best 9.00224e-07 (fails 17) via place_missing noop
[2393800 evals] best 9.00342e-07 (fails 17) via core_undivide noop
[2395800 evals] best 9.00374e-07 (fails 17) via place_missing noop
[2430600 evals] best 1.02904e-06 (fails 17) via retype 0/rrlr->of
[2494040 evals] best 1.02964e-06 (fails 17) via level_retype 1/rrrlrr<->0/rrlr
[2494440 evals] best 1.03243e-06 (fails 17) via place_missing noop
[2495080 evals] best 1.03547e-06 (fails 17) via place_missing noop
[2495640 evals] best 1.03782e-06 (fails 17) via core_divide noop
[2502600 evals] best 1.04002e-06 (fails 17) via place_missing noop
[2504680 evals] best 1.04261e-06 (fails 17) via place_missing noop
[2505960 evals] best 1.04369e-06 (fails 17) via core_undivide noop
[2539560 evals] best 1.06976e-06 (fails 17) via undivide 1/rrrlrl
[2559160 evals] best 1.07167e-06 (fails 17) via undivide 1/rrrlrl
[2559720 evals] best 1.0724e-06 (fails 17) via place_missing noop
[2583720 evals] best 1.0724e-06 (fails 17) via crossover rlrrr<->lrllr
[2586280 evals] best 1.90952e-06 (fails 16) via divide 1/rlllr
[2640920 evals] best 2.00292e-06 (fails 16) via divide 1/rlllr
[2668680 evals] best 2.14664e-06 (fails 16) via divide 1/llllr
[2690200 evals] best 2.15597e-06 (fails 16) via crossover lrrl<->lrrl
[2693960 evals] best 4.1894e-06 (fails 15) via swap 1/rrrlr
[2784840 evals] best 4.19245e-06 (fails 15) via rotate 1/rrlrr
[2842120 evals] best 4.19245e-06 (fails 15) via divide 0/rrrr
--- done ---
elapsed : 308651.9s
evals : 3000040 across 37499 topologies
best : 4.19245e-06 (15 fails) via divide 0/rrrr
improvement history:
[ 200] 1.20049e-11 (seed)
[ 20520] 1.3603e-11 (rotate 0/rrl)
[ 23240] 1.36649e-11 (core_undivide noop)
[ 28200] 1.38185e-11 (core_undivide noop)
[ 34520] 2.01893e-11 (place_missing noop)
[ 35480] 2.79281e-11 (place_missing noop)
[ 36200] 2.80872e-11 (place_missing noop)
[ 40200] 2.8253e-11 (place_missing noop)
[ 41880] 2.84268e-11 (crossover llrlr<->llrlr)
[ 50920] 2.85753e-11 (place_missing noop)
[ 62280] 2.89517e-11 (crossover rlrr<->llrl)
[ 62600] 3.34689e-11 (core_undivide noop)
[ 63720] 3.40595e-11 (level_retype 0/lllrlr<->1/rllllr)
[ 64120] 3.46347e-11 (place_missing noop)
[ 65240] 3.48699e-11 (place_missing noop)
[ 66920] 3.50429e-11 (place_missing noop)
[ 68200] 3.52197e-11 (place_missing noop)
[ 69480] 3.53897e-11 (place_missing noop)
[ 70120] 3.55584e-11 (core_undivide noop)
[ 72120] 3.56615e-11 (place_missing noop)
[ 77640] 7.76357e-11 (rotate 0/rlrr)
[ 80760] 7.81409e-11 (place_missing noop)
[ 89000] 7.86684e-11 (core_undivide noop)
[ 92840] 7.92192e-11 (core_undivide noop)
[ 94760] 7.97367e-11 (retype 0/lllrll->st1)
[105640] 9.11925e-11 (rotate 0/rlrl)
[112920] 1.43742e-10 (swap 0/rlrrl)
[148680] 1.70784e-10 (swap 0/rlrrl)
[191800] 1.92624e-10 (retype 0/rlrrll->O)
[211160] 1.99568e-10 (rotate 0/rrrlr)
[273560] 3.37479e-10 (divide 0/rrll)
[295640] 6.6851e-10 (level_retype 1/lrrlrl<->0/rrllr)
[300520] 6.71575e-10 (core_undivide noop)
[304840] 6.73945e-10 (core_undivide noop)
[305160] 6.76176e-10 (core_undivide noop)
[308760] 6.77048e-10 (place_missing noop)
[314360] 8.51018e-10 (divide 0/llrlr)
[320280] 8.53835e-10 (level_retype 1/llrlllr<->0/rrlr)
[321240] 8.54936e-10 (swap 0/rrrlrl)
[411880] 8.80111e-10 (undivide 0/lllrl)
[458040] 1.55881e-09 (crossover lllrl<->lrrr)
[491720] 1.80936e-09 (crossover rlrrll<->llrlrr)
[515000] 2.24132e-09 (rotate 1/lrrlr)
[600440] 2.28188e-09 (undivide 0/rrrll)
[633960] 3.87563e-09 (retype 1/rllrr->st1)
[660680] 4.58847e-09 (retype 1/rllrr->C)
[670120] 4.5971e-09 (core_undivide noop)
[673000] 4.60863e-09 (swap 0/rrrlrl)
[673720] 4.73211e-09 (retype 1/rrll->O)
[677160] 4.7494e-09 (place_missing noop)
[681160] 4.75775e-09 (core_undivide noop)
[689240] 4.86041e-09 (undivide 1/lrrll)
[695640] 4.86569e-09 (place_missing noop)
[703480] 4.86831e-09 (core_undivide noop)
[704360] 4.8863e-09 (swap 0/rrll)
[705480] 4.89938e-09 (place_missing noop)
[707000] 4.90287e-09 (crossover llrlrr<->rrrr)
[708040] 4.90394e-09 (core_undivide noop)
[713400] 5.00798e-09 (undivide 1/lrrll)
[724040] 5.11809e-09 (undivide 1/lrrll)
[735000] 5.15421e-09 (undivide 1/rlllr)
[746200] 5.15486e-09 (undivide 0/rrrll)
[768360] 5.26248e-09 (undivide 1/rlllr)
[800920] 5.26644e-09 (undivide 1/rlllr)
[827880] 5.26644e-09 (crossover lrllr<->llrlr)
[878680] 5.32211e-09 (level_retype 1/llrllll<->0/rllrl)
[1103320] 1.06348e-08 (undivide 0/rrrlrl)
[1116440] 1.12572e-08 (divide 0/rlrrll)
[1149800] 1.14984e-08 (undivide 1/lrrll)
[1382840] 1.15051e-08 (undivide 1/lrrll)
[1387880] 1.15251e-08 (rotate 0/rlrrl)
[1390440] 1.33748e-08 (retype 1/llrrr->st1)
[1437480] 1.33819e-08 (crossover llrlrl<->rrrr)
[1438120] 1.34359e-08 (rotate 0/rlrrll)
[1441720] 1.34477e-08 (core_divide noop)
[1441960] 1.34988e-08 (place_missing noop)
[1457640] 1.37468e-08 (undivide 0/llrllll)
[1627960] 2.6523e-08 (level_retype 1/llrllll<->0/rrlll)
[1629800] 2.65259e-08 (core_undivide noop)
[1755560] 5.83384e-08 (divide 0/lllrl)
[1805080] 1.18411e-07 (divide 0/lllrl)
[1865880] 1.18411e-07 (undivide 0/rlrrll)
[1880760] 1.88783e-07 (crossover rlrrll<->lrrr)
[1956360] 2.10097e-07 (crossover rlrrlll<->lllrll)
[1996840] 2.11465e-07 (retype 0/rlrrlll->C)
[1997640] 2.11848e-07 (core_divide noop)
[2007560] 2.35646e-07 (crossover rlrrlll<->lrrr)
[2012360] 2.36973e-07 (place_missing noop)
[2012760] 2.37399e-07 (place_missing noop)
[2038680] 2.49379e-07 (rotate 0/rlrrl)
[2045960] 4.54898e-07 (crossover lrrlrr<->llrlllr)
[2046280] 4.55804e-07 (place_missing noop)
[2046680] 4.56932e-07 (place_missing noop)
[2047400] 4.57898e-07 (core_divide noop)
[2064200] 4.58171e-07 (swap 0/rrll)
[2064360] 4.58199e-07 (core_divide noop)
[2065960] 4.58199e-07 (rotate 0/llrllll)
[2066600] 4.59148e-07 (place_missing noop)
[2067480] 4.5952e-07 (core_undivide noop)
[2097480] 4.61537e-07 (place_missing noop)
[2102040] 4.63543e-07 (place_missing noop)
[2102440] 4.64431e-07 (core_undivide noop)
[2164360] 4.72304e-07 (level_retype 0/lrrll<->1/lrlll)
[2194440] 4.72706e-07 (rotate 0/lrrlr)
[2195240] 4.73159e-07 (place_missing noop)
[2197000] 4.73498e-07 (place_missing noop)
[2209560] 4.75066e-07 (rotate 0/rrllr)
[2280840] 4.8783e-07 (rotate 0/rlrrll)
[2282840] 8.51649e-07 (level_retype 1/rrlrl<->0/llrllllr)
[2288840] 8.55171e-07 (crossover lrrlrl<->llrlllll)
[2289880] 8.55716e-07 (crossover lrrlrl<->llrllllr)
[2291800] 8.5789e-07 (core_undivide noop)
[2292440] 8.5798e-07 (place_missing noop)
[2305560] 8.8011e-07 (undivide 1/llrrl)
[2387000] 8.80152e-07 (undivide 1/llllr)
[2389880] 8.85765e-07 (swap 0/rlrrll)
[2390200] 8.89866e-07 (core_undivide noop)
[2390360] 8.93447e-07 (place_missing noop)
[2391320] 8.96723e-07 (place_missing noop)
[2391560] 9.00224e-07 (place_missing noop)
[2393800] 9.00342e-07 (core_undivide noop)
[2395800] 9.00374e-07 (place_missing noop)
[2430600] 1.02904e-06 (retype 0/rrlr->of)
[2494040] 1.02964e-06 (level_retype 1/rrrlrr<->0/rrlr)
[2494440] 1.03243e-06 (place_missing noop)
[2495080] 1.03547e-06 (place_missing noop)
[2495640] 1.03782e-06 (core_divide noop)
[2502600] 1.04002e-06 (place_missing noop)
[2504680] 1.04261e-06 (place_missing noop)
[2505960] 1.04369e-06 (core_undivide noop)
[2539560] 1.06976e-06 (undivide 1/rrrlrl)
[2559160] 1.07167e-06 (undivide 1/rrrlrl)
[2559720] 1.0724e-06 (place_missing noop)
[2583720] 1.0724e-06 (crossover rlrrr<->lrllr)
[2586280] 1.90952e-06 (divide 1/rlllr)
[2640920] 2.00292e-06 (divide 1/rlllr)
[2668680] 2.14664e-06 (divide 1/llllr)
[2690200] 2.15597e-06 (crossover lrrl<->lrrl)
[2693960] 4.1894e-06 (swap 1/rrrlr)
[2784840] 4.19245e-06 (rotate 1/rrlrr)
[2842120] 4.19245e-06 (divide 0/rrrr)
written : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M-nols-2.dom

View file

@ -1,83 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M-nols-2.dom
programme : harbor-house
budget : 3000000
pop : 16
child_budget : 80
workers : 1
rng seed : 0
leaf sharing : False (factor=3)
superpose : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M-nols-3.dom
[ 200 evals] best 4.27026e-06 (fails 15) via seed
[ 280 evals] best 4.28413e-06 (fails 15) via place_missing noop
[ 440 evals] best 4.29565e-06 (fails 15) via place_missing noop
[ 81640 evals] best 4.29764e-06 (fails 15) via divide 0/lllrlr
[180440 evals] best 4.29764e-06 (fails 15) via crossover rrrr<->rrrrl
[182680 evals] best 4.41808e-06 (fails 15) via level_retype 1/rlllr<->0/rllll
[182920 evals] best 4.47038e-06 (fails 15) via core_divide noop
[183480 evals] best 4.48493e-06 (fails 15) via place_missing noop
[184920 evals] best 4.49102e-06 (fails 15) via core_divide noop
[204280 evals] best 4.54272e-06 (fails 15) via undivide 0/rrrr
[327400 evals] best 4.58752e-06 (fails 15) via divide 0/llrlr
[536760 evals] best 4.71291e-06 (fails 15) via level_retype 1/llrllllr<->0/rlrrlr
[538200 evals] best 4.71436e-06 (fails 15) via core_divide noop
[538760 evals] best 4.7158e-06 (fails 15) via core_undivide noop
[540840 evals] best 4.71717e-06 (fails 15) via core_divide noop
[541960 evals] best 4.7176e-06 (fails 15) via undivide 0/lllrlr
[547640 evals] best 4.71761e-06 (fails 15) via place_missing noop
[557960 evals] best 4.71761e-06 (fails 15) via place_missing noop
[617800 evals] best 4.7182e-06 (fails 15) via rotate 1/llllr
[621400 evals] best 4.7191e-06 (fails 15) via place_missing noop
[621720 evals] best 4.71951e-06 (fails 15) via place_missing noop
[626200 evals] best 4.7251e-06 (fails 15) via rotate 1/llllr
[626360 evals] best 4.72553e-06 (fails 15) via level_retype 1/llllll<->0/lllrlrl
[626760 evals] best 4.72555e-06 (fails 15) via swap 1/lrrr
[627720 evals] best 4.72555e-06 (fails 15) via core_undivide noop
[637720 evals] best 4.74589e-06 (fails 15) via rotate 0/lrrlr
[781800 evals] best 4.95673e-06 (fails 15) via undivide 0/rllr
[821880 evals] best 4.95673e-06 (fails 15) via crossover rlrrr<->lrllr
[990520 evals] best 4.95673e-06 (fails 15) via crossover llrlllr<->lllrll
[1078760 evals] best 5.12527e-06 (fails 15) via level_retype 1/lrlll<->0/lrrll
[1288600 evals] best 5.12527e-06 (fails 15) via crossover rlrrr<->rlrrlll
[1543000 evals] best 5.13676e-06 (fails 15) via undivide 1/rrrll
[1700120 evals] interrupted — returning best-so-far
--- interrupted ---
elapsed : 211447.0s
evals : 1700120 across 21250 topologies
best : 5.13676e-06 (15 fails) via undivide 1/rrrll
improvement history:
[ 200] 4.27026e-06 (seed)
[ 280] 4.28413e-06 (place_missing noop)
[ 440] 4.29565e-06 (place_missing noop)
[ 81640] 4.29764e-06 (divide 0/lllrlr)
[180440] 4.29764e-06 (crossover rrrr<->rrrrl)
[182680] 4.41808e-06 (level_retype 1/rlllr<->0/rllll)
[182920] 4.47038e-06 (core_divide noop)
[183480] 4.48493e-06 (place_missing noop)
[184920] 4.49102e-06 (core_divide noop)
[204280] 4.54272e-06 (undivide 0/rrrr)
[327400] 4.58752e-06 (divide 0/llrlr)
[536760] 4.71291e-06 (level_retype 1/llrllllr<->0/rlrrlr)
[538200] 4.71436e-06 (core_divide noop)
[538760] 4.7158e-06 (core_undivide noop)
[540840] 4.71717e-06 (core_divide noop)
[541960] 4.7176e-06 (undivide 0/lllrlr)
[547640] 4.71761e-06 (place_missing noop)
[557960] 4.71761e-06 (place_missing noop)
[617800] 4.7182e-06 (rotate 1/llllr)
[621400] 4.7191e-06 (place_missing noop)
[621720] 4.71951e-06 (place_missing noop)
[626200] 4.7251e-06 (rotate 1/llllr)
[626360] 4.72553e-06 (level_retype 1/llllll<->0/lllrlrl)
[626760] 4.72555e-06 (swap 1/lrrr)
[627720] 4.72555e-06 (core_undivide noop)
[637720] 4.74589e-06 (rotate 0/lrrlr)
[781800] 4.95673e-06 (undivide 0/rllr)
[821880] 4.95673e-06 (crossover rlrrr<->lrllr)
[990520] 4.95673e-06 (crossover llrlllr<->lllrll)
[1078760] 5.12527e-06 (level_retype 1/lrlll<->0/lrrll)
[1288600] 5.12527e-06 (crossover rlrrr<->rlrrlll)
[1543000] 5.13676e-06 (undivide 1/rrrll)
written : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M-nols-3.dom

View file

@ -1,347 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/init.dom
programme : harbor-house
budget : 3000000
pop : 16
child_budget : 80
workers : 2
rng seed : 0
leaf sharing : False (factor=3)
superpose : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M-nols.dom
[ 80 evals] best 2.31302e-32 (fails 96) via construct/0
[ 480 evals] best 6.28664e-31 (fails 95) via construct/5
[ 560 evals] best 8.41924e-29 (fails 85) via construct/6
[ 4960 evals] best 1.34818e-27 (fails 81) via core_undivide noop
[ 6960 evals] best 2.4105e-27 (fails 80) via swap 0/llrl
[ 7200 evals] best 2.74679e-27 (fails 80) via core_undivide noop
[ 7920 evals] best 2.83639e-27 (fails 80) via level_compound_fix noop
[ 8400 evals] best 2.97407e-27 (fails 80) via core_divide noop
[ 8880 evals] best 3.06629e-25 (fails 77) via crossover rrrlr<->lllrl
[ 9280 evals] best 3.14266e-25 (fails 77) via crossover lrrr<->lrrr
[ 11600 evals] best 3.20337e-25 (fails 77) via rotate 0/rrlr
[ 13040 evals] best 3.53297e-25 (fails 77) via level_fix noop
[ 14080 evals] best 3.5972e-25 (fails 77) via level_fix noop
[ 15840 evals] best 3.63357e-25 (fails 77) via crossover llrll<->rrrlrr
[ 16400 evals] best 7.14959e-25 (fails 76) via level_fix noop
[ 16640 evals] best 1.27296e-24 (fails 75) via crossover llrll<->rrlrr
[ 17280 evals] best 1.42988e-24 (fails 75) via divide 0/lllrl
[ 18240 evals] best 1.44306e-24 (fails 75) via core_undivide noop
[ 18720 evals] best 1.45696e-24 (fails 75) via level_fix noop
[ 19760 evals] best 2.43981e-24 (fails 74) via crossover llrll<->rrlrr
[ 20000 evals] best 5.6713e-23 (fails 70) via level_retype 1/rrlr<->0/llrll
[ 20240 evals] best 5.71376e-23 (fails 70) via divide 1/rrrr
[ 22000 evals] best 5.7467e-23 (fails 70) via crossover rrlrl<->lrrr
[ 24560 evals] best 1.92643e-21 (fails 65) via divide 0/rlllr
[ 35120 evals] best 3.38477e-21 (fails 64) via swap 1/rrll
[ 36720 evals] best 4.9027e-19 (fails 57) via rotate 0/ll
[ 37280 evals] best 4.95587e-19 (fails 57) via place_missing noop
[ 37360 evals] best 4.9954e-19 (fails 57) via core_undivide noop
[ 38160 evals] best 5.00695e-19 (fails 57) via swap 1/lrrr
[ 38640 evals] best 5.03632e-19 (fails 57) via place_missing noop
[ 39280 evals] best 5.07858e-19 (fails 57) via core_undivide noop
[ 42960 evals] best 5.08967e-19 (fails 57) via core_undivide noop
[ 43440 evals] best 5.12733e-19 (fails 57) via place_missing noop
[ 48880 evals] best 5.15373e-19 (fails 57) via core_undivide noop
[ 49280 evals] best 5.16595e-19 (fails 57) via place_missing noop
[ 49680 evals] best 1.00953e-18 (fails 56) via swap 1/rrll
[ 53120 evals] best 1.01793e-18 (fails 56) via place_missing noop
[ 53760 evals] best 1.02547e-18 (fails 56) via place_missing noop
[ 54080 evals] best 1.03319e-18 (fails 56) via place_missing noop
[ 54320 evals] best 1.03737e-18 (fails 56) via place_missing noop
[ 56000 evals] best 1.03961e-18 (fails 56) via place_missing noop
[ 56240 evals] best 4.35991e-18 (fails 54) via swap 0/lrll
[ 56720 evals] best 4.36779e-18 (fails 54) via place_missing noop
[ 65120 evals] best 8.78657e-18 (fails 53) via divide 1/rllll
[ 70960 evals] best 3.31653e-17 (fails 51) via divide 0/rlrlr
[ 77360 evals] best 3.46433e-17 (fails 51) via crossover rlllrl<->rrrlrl
[ 77600 evals] best 3.47232e-17 (fails 51) via core_undivide noop
[ 77760 evals] best 6.42852e-17 (fails 50) via crossover rlllr<->lrrr
[ 78240 evals] best 6.43986e-17 (fails 50) via core_undivide noop
[ 79440 evals] best 6.95809e-17 (fails 50) via place_missing noop
[ 81120 evals] best 6.98301e-17 (fails 50) via crossover rlllrl<->llrlr
[ 81840 evals] best 7.0239e-17 (fails 50) via undivide 0/rlllr
[ 84000 evals] best 1.39756e-16 (fails 49) via place_missing noop
[ 86560 evals] best 1.4024e-16 (fails 49) via swap 0/rrlr
[ 87440 evals] best 1.40525e-16 (fails 49) via place_missing noop
[ 88480 evals] best 1.40712e-16 (fails 49) via core_undivide noop
[ 92160 evals] best 1.4085e-16 (fails 49) via core_undivide noop
[ 93760 evals] best 1.41174e-16 (fails 49) via core_undivide noop
[ 94800 evals] best 1.4133e-16 (fails 49) via crossover rllr<->rllr
[ 95520 evals] best 1.4133e-16 (fails 49) via core_undivide noop
[ 99520 evals] best 1.41365e-16 (fails 49) via rotate 0/rrlr
[102960 evals] best 1.41384e-16 (fails 49) via core_undivide noop
[109200 evals] best 1.41384e-16 (fails 49) via core_undivide noop
[111360 evals] best 1.41385e-16 (fails 49) via crossover rrlr<->rrlr
[113120 evals] best 1.41385e-16 (fails 49) via crossover llll<->llll
[113440 evals] best 1.41385e-16 (fails 49) via place_missing noop
[113520 evals] best 1.41385e-16 (fails 49) via crossover llrlr<->rrlrl
[116400 evals] best 2.66356e-16 (fails 48) via divide 1/lrrlr
[119760 evals] best 2.67137e-16 (fails 48) via crossover llrlr<->lrrr
[122480 evals] best 2.67922e-16 (fails 48) via core_undivide noop
[126800 evals] best 2.68701e-16 (fails 48) via place_missing noop
[127040 evals] best 2.69471e-16 (fails 48) via crossover rrlrr<->rlllr
[130160 evals] best 2.70232e-16 (fails 48) via swap 0/rrlr
[130720 evals] best 2.7098e-16 (fails 48) via place_missing noop
[132000 evals] best 2.71716e-16 (fails 48) via core_undivide noop
[132880 evals] best 2.72318e-16 (fails 48) via crossover rr<->rr
[135040 evals] best 2.72653e-16 (fails 48) via place_missing noop
[135280 evals] best 2.73375e-16 (fails 48) via place_missing noop
[136880 evals] best 2.73418e-16 (fails 48) via place_missing noop
[148560 evals] best 4.16474e-16 (fails 47) via retype 1/llrrr->C
[151040 evals] best 4.17372e-16 (fails 47) via place_missing noop
[151280 evals] best 4.18474e-16 (fails 47) via crossover lrlr<->lrlr
[152640 evals] best 4.18814e-16 (fails 47) via level_retype 0/lrrr<->1/rlrr
[152960 evals] best 4.19542e-16 (fails 47) via core_undivide noop
[196160 evals] best 8.32838e-16 (fails 46) via divide 0/llrlr
[196480 evals] best 8.33448e-16 (fails 46) via core_undivide noop
[218000 evals] best 8.61697e-16 (fails 46) via core_undivide noop
[218320 evals] best 1.82549e-15 (fails 45) via crossover llrlrr<->rrrlrl
[220480 evals] best 1.84041e-15 (fails 45) via place_missing noop
[224800 evals] best 1.8471e-15 (fails 45) via place_missing noop
[227920 evals] best 1.8556e-15 (fails 45) via level_retype 0/lrrl<->1/rlrll
[229040 evals] best 1.88537e-15 (fails 45) via place_missing noop
[238240 evals] best 1.88614e-15 (fails 45) via core_undivide noop
[239360 evals] best 1.88691e-15 (fails 45) via place_missing noop
[239600 evals] best 1.89068e-15 (fails 45) via place_missing noop
[248080 evals] best 1.89301e-15 (fails 45) via rotate 0/rllr
[249120 evals] best 1.89476e-15 (fails 45) via undivide 1/rrrr
[251120 evals] best 1.90302e-15 (fails 45) via place_missing noop
[251440 evals] best 1.91171e-15 (fails 45) via core_undivide noop
[256240 evals] best 1.91628e-15 (fails 45) via level_compound_fix noop
[264160 evals] best 1.91864e-15 (fails 45) via undivide 1/rrll
[298240 evals] best 1.91968e-15 (fails 45) via rotate 0/llrlr
[350640 evals] best 3.20989e-15 (fails 44) via level_retype 1/rlllr<->0/llrlrl
[354960 evals] best 3.21594e-15 (fails 44) via place_missing noop
[356000 evals] best 3.25352e-15 (fails 44) via core_undivide noop
[364480 evals] best 3.52964e-15 (fails 44) via divide 1/lrlll
[398720 evals] best 6.85608e-15 (fails 43) via crossover lrrr<->rlllr
[405840 evals] best 6.90948e-15 (fails 43) via undivide 0/lrrr
[406080 evals] best 6.91101e-15 (fails 43) via crossover lrlr<->lrlr
[418640 evals] best 7.16851e-15 (fails 43) via divide 1/rlllr
[446080 evals] best 7.26349e-15 (fails 43) via retype 0/llrlrr->O
[454160 evals] best 7.32344e-15 (fails 43) via level_retype 1/rlllr<->0/rrlrr
[454800 evals] best 7.36787e-15 (fails 43) via level_compound_fix noop
[455760 evals] best 7.40312e-15 (fails 43) via core_undivide noop
[458000 evals] best 7.44497e-15 (fails 43) via level_fix noop
[459200 evals] best 7.44541e-15 (fails 43) via level_compound_fix noop
[465280 evals] best 7.44608e-15 (fails 43) via core_undivide noop
[472800 evals] best 7.46595e-15 (fails 43) via rotate 0/rrrlr
[486560 evals] best 7.89349e-15 (fails 43) via divide 1/lrrll
[487840 evals] best 7.91275e-15 (fails 43) via undivide 1/rrrlrr
[488640 evals] best 7.93254e-15 (fails 43) via level_compound_fix noop
[488800 evals] best 1.59054e-14 (fails 42) via crossover lrl<->lrl
[489760 evals] best 1.60641e-14 (fails 42) via undivide 1/rlllll
[491760 evals] best 1.61148e-14 (fails 42) via level_compound_fix noop
[492720 evals] best 1.61666e-14 (fails 42) via place_missing noop
[496320 evals] best 1.6771e-14 (fails 42) via crossover llrlrr<->rrrlrr
[545120 evals] best 1.69985e-14 (fails 42) via retype 0/llrlrr->O
[644400 evals] best 1.70134e-14 (fails 42) via crossover rllr<->rllr
[647760 evals] best 3.33347e-14 (fails 41) via divide 1/lllrl
[649280 evals] best 3.33715e-14 (fails 41) via place_missing noop
[651600 evals] best 3.34018e-14 (fails 41) via place_missing noop
[652640 evals] best 3.34846e-14 (fails 41) via swap 1/lrrr
[654160 evals] best 6.71114e-14 (fails 40) via place_missing noop
[656880 evals] best 6.71452e-14 (fails 40) via place_missing noop
[657200 evals] best 6.73373e-14 (fails 40) via level_retype 1/rlrr<->0/rrlrr
[659840 evals] best 6.73423e-14 (fails 40) via place_missing noop
[709280 evals] best 6.73966e-14 (fails 40) via place_missing noop
[712000 evals] best 6.74016e-14 (fails 40) via core_undivide noop
[715040 evals] best 6.74798e-14 (fails 40) via rotate 0/rrrlr
[715840 evals] best 6.75045e-14 (fails 40) via crossover rr<->rr
[730720 evals] best 1.17348e-13 (fails 39) via place_missing noop
[730960 evals] best 1.1892e-13 (fails 39) via place_missing noop
[733920 evals] best 1.20289e-13 (fails 39) via place_missing noop
[744000 evals] best 1.21233e-13 (fails 39) via place_missing noop
[746480 evals] best 1.2124e-13 (fails 39) via core_undivide noop
[756000 evals] best 2.30213e-13 (fails 38) via swap 1/lrrl
[845200 evals] best 2.30492e-13 (fails 38) via undivide 0/llrll
[855520 evals] best 3.95213e-13 (fails 37) via divide 1/llrll
[858240 evals] best 3.95218e-13 (fails 37) via place_missing noop
[954720 evals] best 3.95218e-13 (fails 37) via crossover llrrl<->rlllr
[1000720 evals] best 8.99351e-13 (fails 36) via divide 1/rrlr
[1013760 evals] best 9.49614e-13 (fails 36) via crossover llrlrr<->lrllr
[1020400 evals] best 2.10451e-12 (fails 35) via swap 1/rrlr
[1023280 evals] best 2.26139e-12 (fails 34) via crossover rrrr<->llrlrl
[1035200 evals] best 2.37266e-12 (fails 34) via crossover llrlrr<->lllrl
[1036080 evals] best 4.43872e-12 (fails 33) via rotate 0/rrrlr
[1056240 evals] best 4.43872e-12 (fails 33) via divide 1/llllll
[1140880 evals] best 1.16099e-11 (fails 32) via rotate 0/rllr
[1142080 evals] best 1.16252e-11 (fails 32) via place_missing noop
[1142240 evals] best 1.16499e-11 (fails 32) via retype 1/llrlr->st1
[1145760 evals] best 1.1659e-11 (fails 32) via place_missing noop
[1213120 evals] best 1.18556e-11 (fails 32) via divide 1/rlllr
[1217840 evals] best 1.18668e-11 (fails 32) via divide 0/llrlrl
[1227920 evals] best 1.19364e-11 (fails 32) via divide 0/lllrl
[1237600 evals] interrupted — returning best-so-far
--- interrupted ---
elapsed : 54933.2s
evals : 1237600 across 15470 topologies
best : 1.19364e-11 (32 fails) via divide 0/lllrl
improvement history:
[ 80] 2.31302e-32 (construct/0)
[ 480] 6.28664e-31 (construct/5)
[ 560] 8.41924e-29 (construct/6)
[ 4960] 1.34818e-27 (core_undivide noop)
[ 6960] 2.4105e-27 (swap 0/llrl)
[ 7200] 2.74679e-27 (core_undivide noop)
[ 7920] 2.83639e-27 (level_compound_fix noop)
[ 8400] 2.97407e-27 (core_divide noop)
[ 8880] 3.06629e-25 (crossover rrrlr<->lllrl)
[ 9280] 3.14266e-25 (crossover lrrr<->lrrr)
[ 11600] 3.20337e-25 (rotate 0/rrlr)
[ 13040] 3.53297e-25 (level_fix noop)
[ 14080] 3.5972e-25 (level_fix noop)
[ 15840] 3.63357e-25 (crossover llrll<->rrrlrr)
[ 16400] 7.14959e-25 (level_fix noop)
[ 16640] 1.27296e-24 (crossover llrll<->rrlrr)
[ 17280] 1.42988e-24 (divide 0/lllrl)
[ 18240] 1.44306e-24 (core_undivide noop)
[ 18720] 1.45696e-24 (level_fix noop)
[ 19760] 2.43981e-24 (crossover llrll<->rrlrr)
[ 20000] 5.6713e-23 (level_retype 1/rrlr<->0/llrll)
[ 20240] 5.71376e-23 (divide 1/rrrr)
[ 22000] 5.7467e-23 (crossover rrlrl<->lrrr)
[ 24560] 1.92643e-21 (divide 0/rlllr)
[ 35120] 3.38477e-21 (swap 1/rrll)
[ 36720] 4.9027e-19 (rotate 0/ll)
[ 37280] 4.95587e-19 (place_missing noop)
[ 37360] 4.9954e-19 (core_undivide noop)
[ 38160] 5.00695e-19 (swap 1/lrrr)
[ 38640] 5.03632e-19 (place_missing noop)
[ 39280] 5.07858e-19 (core_undivide noop)
[ 42960] 5.08967e-19 (core_undivide noop)
[ 43440] 5.12733e-19 (place_missing noop)
[ 48880] 5.15373e-19 (core_undivide noop)
[ 49280] 5.16595e-19 (place_missing noop)
[ 49680] 1.00953e-18 (swap 1/rrll)
[ 53120] 1.01793e-18 (place_missing noop)
[ 53760] 1.02547e-18 (place_missing noop)
[ 54080] 1.03319e-18 (place_missing noop)
[ 54320] 1.03737e-18 (place_missing noop)
[ 56000] 1.03961e-18 (place_missing noop)
[ 56240] 4.35991e-18 (swap 0/lrll)
[ 56720] 4.36779e-18 (place_missing noop)
[ 65120] 8.78657e-18 (divide 1/rllll)
[ 70960] 3.31653e-17 (divide 0/rlrlr)
[ 77360] 3.46433e-17 (crossover rlllrl<->rrrlrl)
[ 77600] 3.47232e-17 (core_undivide noop)
[ 77760] 6.42852e-17 (crossover rlllr<->lrrr)
[ 78240] 6.43986e-17 (core_undivide noop)
[ 79440] 6.95809e-17 (place_missing noop)
[ 81120] 6.98301e-17 (crossover rlllrl<->llrlr)
[ 81840] 7.0239e-17 (undivide 0/rlllr)
[ 84000] 1.39756e-16 (place_missing noop)
[ 86560] 1.4024e-16 (swap 0/rrlr)
[ 87440] 1.40525e-16 (place_missing noop)
[ 88480] 1.40712e-16 (core_undivide noop)
[ 92160] 1.4085e-16 (core_undivide noop)
[ 93760] 1.41174e-16 (core_undivide noop)
[ 94800] 1.4133e-16 (crossover rllr<->rllr)
[ 95520] 1.4133e-16 (core_undivide noop)
[ 99520] 1.41365e-16 (rotate 0/rrlr)
[102960] 1.41384e-16 (core_undivide noop)
[109200] 1.41384e-16 (core_undivide noop)
[111360] 1.41385e-16 (crossover rrlr<->rrlr)
[113120] 1.41385e-16 (crossover llll<->llll)
[113440] 1.41385e-16 (place_missing noop)
[113520] 1.41385e-16 (crossover llrlr<->rrlrl)
[116400] 2.66356e-16 (divide 1/lrrlr)
[119760] 2.67137e-16 (crossover llrlr<->lrrr)
[122480] 2.67922e-16 (core_undivide noop)
[126800] 2.68701e-16 (place_missing noop)
[127040] 2.69471e-16 (crossover rrlrr<->rlllr)
[130160] 2.70232e-16 (swap 0/rrlr)
[130720] 2.7098e-16 (place_missing noop)
[132000] 2.71716e-16 (core_undivide noop)
[132880] 2.72318e-16 (crossover rr<->rr)
[135040] 2.72653e-16 (place_missing noop)
[135280] 2.73375e-16 (place_missing noop)
[136880] 2.73418e-16 (place_missing noop)
[148560] 4.16474e-16 (retype 1/llrrr->C)
[151040] 4.17372e-16 (place_missing noop)
[151280] 4.18474e-16 (crossover lrlr<->lrlr)
[152640] 4.18814e-16 (level_retype 0/lrrr<->1/rlrr)
[152960] 4.19542e-16 (core_undivide noop)
[196160] 8.32838e-16 (divide 0/llrlr)
[196480] 8.33448e-16 (core_undivide noop)
[218000] 8.61697e-16 (core_undivide noop)
[218320] 1.82549e-15 (crossover llrlrr<->rrrlrl)
[220480] 1.84041e-15 (place_missing noop)
[224800] 1.8471e-15 (place_missing noop)
[227920] 1.8556e-15 (level_retype 0/lrrl<->1/rlrll)
[229040] 1.88537e-15 (place_missing noop)
[238240] 1.88614e-15 (core_undivide noop)
[239360] 1.88691e-15 (place_missing noop)
[239600] 1.89068e-15 (place_missing noop)
[248080] 1.89301e-15 (rotate 0/rllr)
[249120] 1.89476e-15 (undivide 1/rrrr)
[251120] 1.90302e-15 (place_missing noop)
[251440] 1.91171e-15 (core_undivide noop)
[256240] 1.91628e-15 (level_compound_fix noop)
[264160] 1.91864e-15 (undivide 1/rrll)
[298240] 1.91968e-15 (rotate 0/llrlr)
[350640] 3.20989e-15 (level_retype 1/rlllr<->0/llrlrl)
[354960] 3.21594e-15 (place_missing noop)
[356000] 3.25352e-15 (core_undivide noop)
[364480] 3.52964e-15 (divide 1/lrlll)
[398720] 6.85608e-15 (crossover lrrr<->rlllr)
[405840] 6.90948e-15 (undivide 0/lrrr)
[406080] 6.91101e-15 (crossover lrlr<->lrlr)
[418640] 7.16851e-15 (divide 1/rlllr)
[446080] 7.26349e-15 (retype 0/llrlrr->O)
[454160] 7.32344e-15 (level_retype 1/rlllr<->0/rrlrr)
[454800] 7.36787e-15 (level_compound_fix noop)
[455760] 7.40312e-15 (core_undivide noop)
[458000] 7.44497e-15 (level_fix noop)
[459200] 7.44541e-15 (level_compound_fix noop)
[465280] 7.44608e-15 (core_undivide noop)
[472800] 7.46595e-15 (rotate 0/rrrlr)
[486560] 7.89349e-15 (divide 1/lrrll)
[487840] 7.91275e-15 (undivide 1/rrrlrr)
[488640] 7.93254e-15 (level_compound_fix noop)
[488800] 1.59054e-14 (crossover lrl<->lrl)
[489760] 1.60641e-14 (undivide 1/rlllll)
[491760] 1.61148e-14 (level_compound_fix noop)
[492720] 1.61666e-14 (place_missing noop)
[496320] 1.6771e-14 (crossover llrlrr<->rrrlrr)
[545120] 1.69985e-14 (retype 0/llrlrr->O)
[644400] 1.70134e-14 (crossover rllr<->rllr)
[647760] 3.33347e-14 (divide 1/lllrl)
[649280] 3.33715e-14 (place_missing noop)
[651600] 3.34018e-14 (place_missing noop)
[652640] 3.34846e-14 (swap 1/lrrr)
[654160] 6.71114e-14 (place_missing noop)
[656880] 6.71452e-14 (place_missing noop)
[657200] 6.73373e-14 (level_retype 1/rlrr<->0/rrlrr)
[659840] 6.73423e-14 (place_missing noop)
[709280] 6.73966e-14 (place_missing noop)
[712000] 6.74016e-14 (core_undivide noop)
[715040] 6.74798e-14 (rotate 0/rrrlr)
[715840] 6.75045e-14 (crossover rr<->rr)
[730720] 1.17348e-13 (place_missing noop)
[730960] 1.1892e-13 (place_missing noop)
[733920] 1.20289e-13 (place_missing noop)
[744000] 1.21233e-13 (place_missing noop)
[746480] 1.2124e-13 (core_undivide noop)
[756000] 2.30213e-13 (swap 1/lrrl)
[845200] 2.30492e-13 (undivide 0/llrll)
[855520] 3.95213e-13 (divide 1/llrll)
[858240] 3.95218e-13 (place_missing noop)
[954720] 3.95218e-13 (crossover llrrl<->rlllr)
[1000720] 8.99351e-13 (divide 1/rrlr)
[1013760] 9.49614e-13 (crossover llrlrr<->lrllr)
[1020400] 2.10451e-12 (swap 1/rrlr)
[1023280] 2.26139e-12 (crossover rrrr<->llrlrl)
[1035200] 2.37266e-12 (crossover llrlrr<->lllrl)
[1036080] 4.43872e-12 (rotate 0/rrrlr)
[1056240] 4.43872e-12 (divide 1/llllll)
[1140880] 1.16099e-11 (rotate 0/rllr)
[1142080] 1.16252e-11 (place_missing noop)
[1142240] 1.16499e-11 (retype 1/llrlr->st1)
[1145760] 1.1659e-11 (place_missing noop)
[1213120] 1.18556e-11 (divide 1/rlllr)
[1217840] 1.18668e-11 (divide 0/llrlrl)
[1227920] 1.19364e-11 (divide 0/lllrl)
written : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M-nols.dom

View file

@ -1,234 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/init.dom
programme : harbor-house
budget : 3000000
pop : 16
child_budget : 80
workers : 2
rng seed : 0
leaf sharing : True (factor=3)
superpose : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M.dom
[ 80 evals] best 1.23724e-18 (fails 51) via construct/0
[ 160 evals] best 3.60774e-14 (fails 37) via construct/1
[ 4400 evals] best 3.92553e-14 (fails 37) via level_fix noop
[ 5600 evals] best 2.5324e-13 (fails 35) via divide 0/lrrr
[ 6560 evals] best 2.54766e-13 (fails 35) via crossover rrrl<->rrrl
[ 6800 evals] best 5.12736e-13 (fails 34) via core_divide noop
[ 8240 evals] best 5.20906e-13 (fails 34) via level_compound_fix noop
[ 11040 evals] best 5.21558e-13 (fails 34) via swap 0/lrl
[ 13200 evals] best 5.24939e-13 (fails 34) via core_divide noop
[ 14960 evals] best 5.27579e-13 (fails 34) via crossover lrrl<->lrrl
[ 15200 evals] best 5.31633e-13 (fails 34) via core_undivide noop
[ 15600 evals] best 2.18076e-12 (fails 32) via crossover rrrl<->rlrr
[ 15840 evals] best 2.21022e-12 (fails 32) via level_fix noop
[ 19120 evals] best 2.24186e-12 (fails 32) via level_compound_fix noop
[ 19360 evals] best 2.26499e-12 (fails 32) via level_compound_fix noop
[ 24960 evals] best 7.39417e-11 (fails 27) via undivide 1/rrl
[ 25360 evals] best 7.49515e-11 (fails 27) via core_undivide noop
[ 29200 evals] best 7.57633e-11 (fails 27) via core_undivide noop
[ 29680 evals] best 7.74529e-11 (fails 27) via level_fix noop
[ 35280 evals] best 7.86348e-11 (fails 27) via level_fix noop
[ 36880 evals] best 3.15641e-10 (fails 25) via level_retype 1/llrl<->0/rlrr
[ 37360 evals] best 3.16e-10 (fails 25) via level_fix noop
[ 39680 evals] best 3.16841e-10 (fails 25) via level_compound_fix noop
[ 40160 evals] best 3.1945e-10 (fails 25) via rotate 0/rlr
[ 40480 evals] best 3.2002e-10 (fails 25) via level_compound_fix noop
[ 41120 evals] best 3.20176e-10 (fails 25) via core_undivide noop
[ 42240 evals] best 3.20502e-10 (fails 25) via level_fix noop
[ 44000 evals] best 1.22813e-09 (fails 22) via swap 0/rll
[ 47120 evals] best 1.24341e-09 (fails 22) via crossover llrr<->llrr
[ 48400 evals] best 1.36186e-09 (fails 22) via swap 0/rrr
[ 55280 evals] best 1.37846e-09 (fails 22) via core_divide noop
[ 56080 evals] best 1.39462e-09 (fails 22) via core_undivide noop
[ 56880 evals] best 1.41015e-09 (fails 22) via level_compound_fix noop
[ 57680 evals] best 1.42485e-09 (fails 22) via core_divide noop
[ 58880 evals] best 1.43848e-09 (fails 22) via crossover lrl<->lrl
[ 59360 evals] best 1.45094e-09 (fails 22) via core_undivide noop
[ 61760 evals] best 2.44768e-08 (fails 21) via swap 0/lrl
[ 61920 evals] best 2.49476e-08 (fails 21) via level_compound_fix noop
[ 66320 evals] best 2.54089e-08 (fails 21) via level_fix noop
[ 71440 evals] best 5.14082e-08 (fails 20) via core_undivide noop
[ 76320 evals] best 6.34704e-08 (fails 20) via crossover lrl<->lrl
[ 79200 evals] best 6.37227e-08 (fails 20) via crossover lrrrl<->lrrrl
[ 79840 evals] best 6.38312e-08 (fails 20) via core_undivide noop
[ 80720 evals] best 6.39174e-08 (fails 20) via level_fix noop
[ 81200 evals] best 6.395e-08 (fails 20) via crossover rllr<->rllr
[100240 evals] best 1.19279e-07 (fails 19) via level_fix noop
[103280 evals] best 1.21428e-07 (fails 19) via crossover rrrr<->rlrr
[111440 evals] best 1.23503e-07 (fails 19) via level_fix noop
[111920 evals] best 1.25268e-07 (fails 19) via level_compound_fix noop
[114000 evals] best 1.26206e-07 (fails 19) via rotate 0/rrr
[115280 evals] best 1.26512e-07 (fails 19) via crossover rlrr<->lrlr
[123520 evals] best 1.3089e-07 (fails 19) via crossover rrrr<->lrrrr
[123840 evals] best 1.33083e-07 (fails 19) via level_fix noop
[124160 evals] best 1.33493e-07 (fails 19) via level_compound_fix noop
[130960 evals] best 1.54739e-07 (fails 19) via divide 1/llrl
[192960 evals] best 2.09792e-07 (fails 18) via core_divide lrlr (2 floors)
[194080 evals] best 2.21668e-07 (fails 18) via level_compound_fix noop
[194640 evals] best 2.21905e-07 (fails 18) via crossover lllll<->lllll
[197120 evals] best 2.42215e-07 (fails 18) via crossover llrr<->llrr
[200160 evals] best 2.56155e-07 (fails 18) via crossover lrlrl<->lrlrl
[202800 evals] best 2.56274e-07 (fails 18) via crossover rrrr<->lrll
[207200 evals] best 2.57268e-07 (fails 18) via core_undivide noop
[217840 evals] best 2.65752e-07 (fails 18) via level_compound_fix noop
[218880 evals] best 2.66338e-07 (fails 18) via level_fix noop
[218960 evals] best 2.66409e-07 (fails 18) via swap 0/lrlr
[222960 evals] best 2.81898e-07 (fails 18) via crossover l<->l
[224480 evals] best 2.81924e-07 (fails 18) via retype 0/lrll->st2
[278800 evals] best 2.93777e-07 (fails 18) via divide 1/lrrr
[279520 evals] best 2.93793e-07 (fails 18) via level_fix noop
[320640 evals] best 2.95862e-07 (fails 18) via rotate 0/rrr
[358880 evals] best 2.97323e-07 (fails 18) via rotate 0/rr
[367120 evals] best 3.04012e-07 (fails 18) via crossover lrll<->llllr
[417280 evals] best 1.18035e-06 (fails 16) via divide 1/rlr
[423680 evals] best 1.18063e-06 (fails 16) via level_fix noop
[427120 evals] best 1.18073e-06 (fails 16) via crossover l<->l
[432960 evals] best 1.18987e-06 (fails 16) via undivide 0/lrlr
[435360 evals] best 1.19002e-06 (fails 16) via swap 1/lrlr
[440960 evals] best 1.25608e-06 (fails 16) via retype 0/lrlrr->ef1
[443920 evals] best 2.24559e-06 (fails 15) via undivide 1/lrlr
[460640 evals] best 2.4213e-06 (fails 15) via undivide 1/lrlr
[474320 evals] best 2.4213e-06 (fails 15) via swap 0/lrl
[534160 evals] best 4.65676e-06 (fails 14) via divide 1/llrlr
[541600 evals] best 9.31353e-06 (fails 13) via level_compound_fix of: lvl1 → lvl0/rllr
[570800 evals] best 9.38995e-06 (fails 13) via level_fix of: lvl1/llrlrl → lvl0/rllr
[589600 evals] best 9.49326e-06 (fails 13) via swap 0/lrlr
[590240 evals] best 9.53324e-06 (fails 13) via level_fix noop
[591120 evals] best 9.56034e-06 (fails 13) via level_compound_fix noop
[592960 evals] best 9.58028e-06 (fails 13) via level_fix noop
[644000 evals] best 9.59623e-06 (fails 13) via rotate 0/lrlr
[688880 evals] best 9.8317e-06 (fails 13) via crossover rrl<->lrrrr
[689040 evals] best 9.85084e-06 (fails 13) via level_fix noop
[689760 evals] best 9.86664e-06 (fails 13) via core_undivide noop
[697680 evals] best 9.89198e-06 (fails 13) via rotate 0/rr
[785120 evals] best 9.91323e-06 (fails 13) via rotate 1/llrlr
[787760 evals] best 9.93767e-06 (fails 13) via undivide 0/llrr
[789920 evals] best 1.00029e-05 (fails 13) via rotate 0/rrr
[828560 evals] best 1.00451e-05 (fails 13) via crossover r<->r
[889840 evals] best 1.00699e-05 (fails 13) via undivide 0/llrr
[945840 evals] best 1.01801e-05 (fails 13) via divide 1/rlrl
[946480 evals] best 1.01803e-05 (fails 13) via swap 1/rlrl
[951520 evals] best 1.02053e-05 (fails 13) via undivide 0/llrr
[1085840 evals] best 1.02214e-05 (fails 13) via rotate 0/lrlr
[1382400 evals] best 1.02289e-05 (fails 13) via undivide 0/llrr
[1383120 evals] best 1.02309e-05 (fails 13) via level_fix noop
[1445040 evals] best 1.0247e-05 (fails 13) via rotate 0/lrlr
[2198240 evals] best 1.0247e-05 (fails 13) via crossover lrlrr<->llrrr
[2649680 evals] best 1.03342e-05 (fails 13) via divide 1/llrll
[2951680 evals] best 1.03342e-05 (fails 13) via divide 0/llllr
--- done ---
elapsed : 77682.2s
evals : 3000000 across 37500 topologies
best : 1.03342e-05 (13 fails) via divide 0/llllr
improvement history:
[ 80] 1.23724e-18 (construct/0)
[ 160] 3.60774e-14 (construct/1)
[ 4400] 3.92553e-14 (level_fix noop)
[ 5600] 2.5324e-13 (divide 0/lrrr)
[ 6560] 2.54766e-13 (crossover rrrl<->rrrl)
[ 6800] 5.12736e-13 (core_divide noop)
[ 8240] 5.20906e-13 (level_compound_fix noop)
[ 11040] 5.21558e-13 (swap 0/lrl)
[ 13200] 5.24939e-13 (core_divide noop)
[ 14960] 5.27579e-13 (crossover lrrl<->lrrl)
[ 15200] 5.31633e-13 (core_undivide noop)
[ 15600] 2.18076e-12 (crossover rrrl<->rlrr)
[ 15840] 2.21022e-12 (level_fix noop)
[ 19120] 2.24186e-12 (level_compound_fix noop)
[ 19360] 2.26499e-12 (level_compound_fix noop)
[ 24960] 7.39417e-11 (undivide 1/rrl)
[ 25360] 7.49515e-11 (core_undivide noop)
[ 29200] 7.57633e-11 (core_undivide noop)
[ 29680] 7.74529e-11 (level_fix noop)
[ 35280] 7.86348e-11 (level_fix noop)
[ 36880] 3.15641e-10 (level_retype 1/llrl<->0/rlrr)
[ 37360] 3.16e-10 (level_fix noop)
[ 39680] 3.16841e-10 (level_compound_fix noop)
[ 40160] 3.1945e-10 (rotate 0/rlr)
[ 40480] 3.2002e-10 (level_compound_fix noop)
[ 41120] 3.20176e-10 (core_undivide noop)
[ 42240] 3.20502e-10 (level_fix noop)
[ 44000] 1.22813e-09 (swap 0/rll)
[ 47120] 1.24341e-09 (crossover llrr<->llrr)
[ 48400] 1.36186e-09 (swap 0/rrr)
[ 55280] 1.37846e-09 (core_divide noop)
[ 56080] 1.39462e-09 (core_undivide noop)
[ 56880] 1.41015e-09 (level_compound_fix noop)
[ 57680] 1.42485e-09 (core_divide noop)
[ 58880] 1.43848e-09 (crossover lrl<->lrl)
[ 59360] 1.45094e-09 (core_undivide noop)
[ 61760] 2.44768e-08 (swap 0/lrl)
[ 61920] 2.49476e-08 (level_compound_fix noop)
[ 66320] 2.54089e-08 (level_fix noop)
[ 71440] 5.14082e-08 (core_undivide noop)
[ 76320] 6.34704e-08 (crossover lrl<->lrl)
[ 79200] 6.37227e-08 (crossover lrrrl<->lrrrl)
[ 79840] 6.38312e-08 (core_undivide noop)
[ 80720] 6.39174e-08 (level_fix noop)
[ 81200] 6.395e-08 (crossover rllr<->rllr)
[100240] 1.19279e-07 (level_fix noop)
[103280] 1.21428e-07 (crossover rrrr<->rlrr)
[111440] 1.23503e-07 (level_fix noop)
[111920] 1.25268e-07 (level_compound_fix noop)
[114000] 1.26206e-07 (rotate 0/rrr)
[115280] 1.26512e-07 (crossover rlrr<->lrlr)
[123520] 1.3089e-07 (crossover rrrr<->lrrrr)
[123840] 1.33083e-07 (level_fix noop)
[124160] 1.33493e-07 (level_compound_fix noop)
[130960] 1.54739e-07 (divide 1/llrl)
[192960] 2.09792e-07 (core_divide lrlr (2 floors))
[194080] 2.21668e-07 (level_compound_fix noop)
[194640] 2.21905e-07 (crossover lllll<->lllll)
[197120] 2.42215e-07 (crossover llrr<->llrr)
[200160] 2.56155e-07 (crossover lrlrl<->lrlrl)
[202800] 2.56274e-07 (crossover rrrr<->lrll)
[207200] 2.57268e-07 (core_undivide noop)
[217840] 2.65752e-07 (level_compound_fix noop)
[218880] 2.66338e-07 (level_fix noop)
[218960] 2.66409e-07 (swap 0/lrlr)
[222960] 2.81898e-07 (crossover l<->l)
[224480] 2.81924e-07 (retype 0/lrll->st2)
[278800] 2.93777e-07 (divide 1/lrrr)
[279520] 2.93793e-07 (level_fix noop)
[320640] 2.95862e-07 (rotate 0/rrr)
[358880] 2.97323e-07 (rotate 0/rr)
[367120] 3.04012e-07 (crossover lrll<->llllr)
[417280] 1.18035e-06 (divide 1/rlr)
[423680] 1.18063e-06 (level_fix noop)
[427120] 1.18073e-06 (crossover l<->l)
[432960] 1.18987e-06 (undivide 0/lrlr)
[435360] 1.19002e-06 (swap 1/lrlr)
[440960] 1.25608e-06 (retype 0/lrlrr->ef1)
[443920] 2.24559e-06 (undivide 1/lrlr)
[460640] 2.4213e-06 (undivide 1/lrlr)
[474320] 2.4213e-06 (swap 0/lrl)
[534160] 4.65676e-06 (divide 1/llrlr)
[541600] 9.31353e-06 (level_compound_fix of: lvl1 → lvl0/rllr)
[570800] 9.38995e-06 (level_fix of: lvl1/llrlrl → lvl0/rllr)
[589600] 9.49326e-06 (swap 0/lrlr)
[590240] 9.53324e-06 (level_fix noop)
[591120] 9.56034e-06 (level_compound_fix noop)
[592960] 9.58028e-06 (level_fix noop)
[644000] 9.59623e-06 (rotate 0/lrlr)
[688880] 9.8317e-06 (crossover rrl<->lrrrr)
[689040] 9.85084e-06 (level_fix noop)
[689760] 9.86664e-06 (core_undivide noop)
[697680] 9.89198e-06 (rotate 0/rr)
[785120] 9.91323e-06 (rotate 1/llrlr)
[787760] 9.93767e-06 (undivide 0/llrr)
[789920] 1.00029e-05 (rotate 0/rrr)
[828560] 1.00451e-05 (crossover r<->r)
[889840] 1.00699e-05 (undivide 0/llrr)
[945840] 1.01801e-05 (divide 1/rlrl)
[946480] 1.01803e-05 (swap 1/rlrl)
[951520] 1.02053e-05 (undivide 0/llrr)
[1085840] 1.02214e-05 (rotate 0/lrlr)
[1382400] 1.02289e-05 (undivide 0/llrr)
[1383120] 1.02309e-05 (level_fix noop)
[1445040] 1.0247e-05 (rotate 0/lrlr)
[2198240] 1.0247e-05 (crossover lrlrr<->llrrr)
[2649680] 1.03342e-05 (divide 1/llrll)
[2951680] 1.03342e-05 (divide 0/llllr)
written : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M.dom

View file

@ -1,463 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/init.dom
programme : harbor-house
budget : 1500000
pop : 16
child_budget : 80
workers : 4
rng seed : 0
leaf sharing : True (factor=3)
superpose : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-anneal-3M.dom
anneal grain : (4, 3, 2) → off (polish 1500000)
[anneal] phase 1/3: grain 4, budget 500000 (construct population)
[ 80 evals] best 2.08665e-19 (fails 51) via construct/0
[ 560 evals] best 5.36487e-16 (fails 41) via construct/6
[ 880 evals] best 8.24937e-16 (fails 40) via construct/10
[ 1920 evals] best 3.40701e-15 (fails 38) via level_fix noop
[ 2560 evals] best 3.54792e-15 (fails 38) via level_retype 1/rlr<->0/rrlr
[ 5600 evals] best 7.10621e-15 (fails 37) via divide 1/lllr
[ 5840 evals] best 7.22073e-15 (fails 37) via core_divide noop
[ 8720 evals] best 8.05574e-15 (fails 37) via core_divide noop
[ 9520 evals] best 9.60644e-15 (fails 37) via level_compound_fix noop
[ 9760 evals] best 9.70633e-15 (fails 37) via core_divide noop
[ 10240 evals] best 9.7388e-15 (fails 37) via crossover rrl<->rrl
[ 11360 evals] best 9.73885e-15 (fails 37) via core_undivide noop
[ 11440 evals] best 9.76347e-15 (fails 37) via core_undivide noop
[ 12560 evals] best 9.76353e-15 (fails 37) via level_fix noop
[ 13120 evals] best 9.80676e-15 (fails 37) via core_divide noop
[ 13200 evals] best 9.81434e-15 (fails 37) via core_undivide noop
[ 13760 evals] best 2.19875e-14 (fails 36) via swap 0/rrl
[ 14640 evals] best 2.21351e-14 (fails 36) via core_undivide noop
[ 16640 evals] best 3.12145e-14 (fails 35) via swap 0/lrl
[ 20080 evals] best 6.11965e-14 (fails 34) via rotate 0/lrr
[ 24560 evals] best 6.12446e-14 (fails 34) via core_undivide noop
[ 27280 evals] best 9.09789e-14 (fails 34) via undivide 0/llr
[ 29200 evals] best 9.09792e-14 (fails 34) via core_undivide noop
[ 31120 evals] best 9.09795e-14 (fails 34) via core_divide noop
[ 33120 evals] best 9.09799e-14 (fails 34) via core_divide noop
[ 33360 evals] best 9.09802e-14 (fails 34) via core_divide noop
[ 34640 evals] best 1.59113e-13 (fails 33) via crossover r<->r
[ 36720 evals] best 1.59546e-13 (fails 33) via core_divide noop
[ 45520 evals] best 1.98045e-13 (fails 33) via swap 0/rl
[ 47360 evals] best 1.98703e-13 (fails 33) via swap 0/rrl
[ 49520 evals] best 1.99037e-13 (fails 33) via core_divide noop
[ 50240 evals] best 7.31388e-13 (fails 31) via swap 0/rll
[ 50480 evals] best 7.31391e-13 (fails 31) via crossover rr<->rr
[ 52240 evals] best 7.31395e-13 (fails 31) via core_undivide noop
[ 58560 evals] best 7.31891e-13 (fails 31) via undivide 1/lllr
[ 58960 evals] best 7.31896e-13 (fails 31) via undivide 1/lllr
[ 65600 evals] best 7.31896e-13 (fails 31) via core_undivide noop
[ 67680 evals] best 7.31897e-13 (fails 31) via core_divide noop
[ 68160 evals] best 7.31897e-13 (fails 31) via retype 1/lllr->st2
[ 95360 evals] best 8.30056e-12 (fails 29) via divide 1/rrl
[ 99440 evals] best 8.30058e-12 (fails 29) via core_divide noop
[101840 evals] best 8.39142e-12 (fails 29) via level_retype 1/rlr<->0/rlr
[105200 evals] best 8.39887e-12 (fails 29) via core_divide noop
[112720 evals] best 8.41871e-12 (fails 29) via core_undivide noop
[117440 evals] best 8.44275e-12 (fails 29) via undivide 1/lrll
[117760 evals] best 8.4503e-12 (fails 29) via core_undivide noop
[122640 evals] best 8.47017e-12 (fails 29) via core_divide noop
[165280 evals] best 1.43128e-11 (fails 28) via divide 0/rrrrr
[168000 evals] best 1.45749e-11 (fails 28) via core_undivide noop
[170400 evals] best 1.68382e-11 (fails 28) via divide 1/rll
[172640 evals] best 1.71204e-11 (fails 28) via core_undivide noop
[178720 evals] best 1.79457e-11 (fails 28) via divide 0/lrr
[183680 evals] best 1.82521e-11 (fails 28) via core_divide noop
[190480 evals] best 1.85485e-11 (fails 28) via core_undivide noop
[190960 evals] best 1.89079e-11 (fails 28) via core_divide noop
[192000 evals] best 1.92475e-11 (fails 28) via core_undivide noop
[192240 evals] best 3.98705e-11 (fails 27) via rotate 0/lrr
[196400 evals] best 4.00667e-11 (fails 27) via divide 1/rrlr
[197760 evals] best 4.00667e-11 (fails 27) via retype 1/rrlrr->st2
[261200 evals] best 7.87414e-11 (fails 26) via crossover l<->l
[271200 evals] best 7.87477e-11 (fails 26) via core_divide noop
[274240 evals] best 7.96497e-11 (fails 26) via core_divide noop
[275040 evals] best 8.05626e-11 (fails 26) via core_undivide noop
[277040 evals] best 1.4805e-10 (fails 25) via undivide 0/rlll
[277600 evals] best 1.51268e-10 (fails 25) via core_divide noop
[283040 evals] best 3.12178e-10 (fails 24) via rotate 0/lrr
[313680 evals] best 3.12896e-10 (fails 24) via level_retype 1/rlr<->0/rlr
[340000 evals] best 6.89781e-10 (fails 23) via divide 1/rlll
[351440 evals] best 6.89742e-09 (fails 23) via core_undivide noop
[353280 evals] best 6.94596e-09 (fails 23) via core_undivide noop
[358400 evals] best 7.00355e-09 (fails 23) via core_undivide noop
[362720 evals] best 7.0692e-09 (fails 23) via swap 0/rrrrr
[364560 evals] best 7.14137e-09 (fails 23) via core_undivide noop
[365520 evals] best 7.20308e-09 (fails 23) via core_undivide noop
[365920 evals] best 7.23862e-09 (fails 23) via core_undivide noop
[373840 evals] best 7.23862e-09 (fails 23) via crossover rrrrrl<->rrll
[390880 evals] best 7.24269e-09 (fails 23) via rotate 0/lrr
[402480 evals] best 7.2467e-09 (fails 23) via crossover rrll<->lrrr
[422480 evals] best 1.02386e-08 (fails 23) via divide 1/rlll
[422720 evals] best 2.05575e-08 (fails 22) via divide 1/lrll
[455120 evals] best 2.30337e-08 (fails 22) via crossover lrrr<->rllr
[463120 evals] best 2.38566e-08 (fails 22) via level_retype 0/rlrl<->1/rlr
[466080 evals] best 4.78825e-08 (fails 21) via core_divide rrll (2 floors)
[483840 evals] best 9.76421e-08 (fails 20) via divide 1/lrll
[497440 evals] best 1.95284e-07 (fails 19) via crossover rrllr<->rrllr
[anneal] phase 2/3: grain 3, budget 500000 — unfolded 96 leaf-copies (share>3)
[ 200 evals] best 1.83626e-13 (fails 39) via anneal-seed/0
[ 4320 evals] best 1.83638e-13 (fails 39) via level_retype 0/lrrr<->1/rrlr
[ 7680 evals] best 1.83641e-13 (fails 39) via swap 1/llrrl
[ 8880 evals] best 3.62008e-13 (fails 38) via undivide 1/lrrr
[ 17120 evals] best 3.6202e-13 (fails 38) via core_undivide noop
[ 18080 evals] best 7.35588e-13 (fails 37) via undivide 1/llrrl
[ 18640 evals] best 7.35612e-13 (fails 37) via core_undivide noop
[ 28400 evals] best 1.3318e-12 (fails 36) via retype 1/lrrr->O
[ 48240 evals] best 1.39362e-12 (fails 36) via level_retype 1/llrrlr<->0/rllr
[ 48880 evals] best 1.39398e-12 (fails 36) via swap 1/llrrr
[ 53920 evals] best 1.4572e-12 (fails 36) via crossover rr<->rr
[ 56960 evals] best 1.45745e-12 (fails 36) via core_undivide noop
[ 60880 evals] best 1.7726e-12 (fails 35) via level_retype 0/llr<->1/rrlr
[ 63520 evals] best 5.87208e-12 (fails 34) via divide 1/rrrr
[ 66880 evals] best 1.22536e-11 (fails 33) via retype 0/rrrrrl->r
[ 68640 evals] best 2.42529e-11 (fails 32) via rotate 0/rrrrr
[ 71760 evals] best 2.43119e-11 (fails 32) via crossover lrl<->lrl
[ 72080 evals] best 2.43801e-11 (fails 32) via core_undivide noop
[ 78160 evals] best 2.43839e-11 (fails 32) via level_retype 0/lrrr<->1/rllr
[ 91600 evals] best 2.4769e-11 (fails 32) via level_retype 0/rllr<->1/rlr
[ 93760 evals] best 2.48387e-11 (fails 32) via divide 1/rlr
[ 96800 evals] best 2.50941e-11 (fails 32) via core_undivide noop
[103280 evals] best 2.51131e-11 (fails 32) via core_undivide noop
[119920 evals] best 2.51267e-11 (fails 32) via rotate 1/llrrr
[122800 evals] best 2.53283e-11 (fails 32) via core_undivide noop
[123600 evals] best 2.53618e-11 (fails 32) via core_undivide noop
[125520 evals] best 5.07696e-11 (fails 31) via crossover rrrrrr<->rlrr
[137680 evals] best 5.10394e-11 (fails 31) via retype 1/lrlll->of
[141280 evals] best 5.23793e-11 (fails 31) via undivide 0/rrrrr
[150320 evals] best 5.24022e-11 (fails 31) via core_undivide noop
[151200 evals] best 4.10836e-10 (fails 28) via crossover lrrl<->rrll
[186000 evals] best 4.11313e-10 (fails 28) via level_retype 1/llll<->0/rlrr
[192320 evals] best 4.11815e-10 (fails 28) via core_undivide noop
[202560 evals] best 4.12887e-10 (fails 28) via rotate 0/rlr
[216800 evals] best 8.7845e-10 (fails 27) via core_divide rrlll (2 floors)
[223120 evals] best 8.98065e-10 (fails 27) via core_divide rrlll (2 floors)
[225040 evals] best 9.19804e-10 (fails 27) via core_undivide noop
[228880 evals] best 9.3217e-10 (fails 27) via core_undivide noop
[233600 evals] best 9.87021e-10 (fails 27) via crossover rrrl<->rrrl
[234880 evals] best 9.90066e-10 (fails 27) via core_undivide noop
[235360 evals] best 1.88613e-09 (fails 26) via crossover rlrl<->lrrr
[243040 evals] best 1.88635e-09 (fails 26) via core_undivide noop
[288320 evals] best 1.88635e-09 (fails 26) via crossover lr<->lr
[310320 evals] best 7.90852e-09 (fails 24) via retype 0/rrlllr->r
[389200 evals] best 1.51646e-08 (fails 23) via rotate 1/llrll
[392960 evals] best 1.51781e-08 (fails 23) via undivide 0/rlr
[396000 evals] best 1.51869e-08 (fails 23) via undivide 1/llrll
[418240 evals] best 1.61363e-08 (fails 23) via divide 1/rlll
[419600 evals] best 3.04324e-08 (fails 22) via swap 0/rll
[444640 evals] best 3.11245e-08 (fails 22) via core_undivide noop
[453680 evals] best 5.97513e-08 (fails 21) via core_undivide noop
[458480 evals] best 6.06147e-08 (fails 21) via undivide 1/llrll
[459440 evals] best 6.14333e-08 (fails 21) via crossover rlrl<->rrllr
[464560 evals] best 6.19713e-08 (fails 21) via level_retype 0/lrrr<->1/lrlll
[467600 evals] best 6.2383e-08 (fails 21) via crossover llr<->llr
[468000 evals] best 6.25855e-08 (fails 21) via undivide 0/rlr
[anneal] phase 3/3: grain 2, budget 500000 — unfolded 128 leaf-copies (share>2)
[ 200 evals] best 3.28383e-15 (fails 45) via anneal-seed/0
[ 2400 evals] best 1.27109e-14 (fails 43) via anneal-seed/11
[ 4160 evals] best 1.27122e-14 (fails 43) via core_undivide noop
[ 4960 evals] best 1.27133e-14 (fails 43) via core_undivide noop
[ 5440 evals] best 1.27141e-14 (fails 43) via crossover rl<->rl
[ 6400 evals] best 2.54301e-14 (fails 42) via core_undivide noop
[ 8960 evals] best 2.54321e-14 (fails 42) via swap 0/llllr
[ 9760 evals] best 2.54342e-14 (fails 42) via swap 1/llrlr
[ 9920 evals] best 2.54547e-14 (fails 42) via undivide 0/rlr
[ 22960 evals] best 2.54569e-14 (fails 42) via core_undivide noop
[ 26080 evals] best 5.14279e-14 (fails 41) via rotate 0/lrlrr
[ 28720 evals] best 5.15142e-14 (fails 41) via core_undivide noop
[ 29040 evals] best 5.15186e-14 (fails 41) via core_undivide noop
[ 30000 evals] best 5.15297e-14 (fails 41) via swap 1/llrll
[ 31760 evals] best 5.15349e-14 (fails 41) via core_undivide noop
[ 32480 evals] best 5.20851e-14 (fails 41) via divide 1/llrlrl
[ 38160 evals] best 5.26944e-14 (fails 41) via core_undivide noop
[ 40160 evals] best 5.32798e-14 (fails 41) via crossover rrlrrl<->rrlrrl
[ 47040 evals] best 1.03522e-13 (fails 40) via divide 1/llrlrl
[ 54000 evals] best 3.8649e-13 (fails 38) via divide 0/rrlrrl
[ 54320 evals] best 3.88486e-13 (fails 38) via core_undivide noop
[ 65040 evals] best 3.89607e-13 (fails 38) via divide 1/lrrr
[ 66960 evals] best 3.89689e-13 (fails 38) via level_retype 0/lrrr<->1/rllr
[ 69840 evals] best 3.97558e-13 (fails 38) via swap 1/llrlrl
[ 71840 evals] best 4.01654e-13 (fails 38) via core_undivide noop
[ 74960 evals] best 2.66422e-11 (fails 32) via level_retype 1/lrlrrr<->0/rlrl
[ 79760 evals] best 2.67443e-11 (fails 32) via swap 1/llrll
[ 90480 evals] best 2.67755e-11 (fails 32) via core_undivide noop
[ 95840 evals] best 2.84823e-11 (fails 32) via divide 1/rrlr
[106080 evals] best 2.85064e-11 (fails 32) via core_undivide noop
[242160 evals] best 1.10468e-10 (fails 30) via level_retype 0/rrlllr<->1/lrlrl
[261840 evals] best 1.13005e-10 (fails 30) via rotate 0/lrlrr
[294080 evals] best 2.25842e-10 (fails 29) via level_retype 1/llrlrll<->0/rrlrrll
[304880 evals] best 4.3164e-10 (fails 28) via swap 0/rlr
[346880 evals] best 4.36981e-10 (fails 28) via rotate 0/lrlrr
[359680 evals] best 4.40945e-10 (fails 28) via swap 1/llrlrl
[381840 evals] best 9.00576e-10 (fails 27) via divide 0/lllr
[449040 evals] best 9.20992e-10 (fails 27) via rotate 0/lrlrr
[anneal] finish: de-share (grain off), polish 1500000 evals — unfolded 32 leaf-copies
[ 200 evals] best 1.79588e-12 (fails 36) via anneal-seed/0
[ 4800 evals] best 1.79593e-12 (fails 36) via place_missing noop
[ 15360 evals] best 1.79623e-12 (fails 36) via rotate 0/rrlrr
[ 36240 evals] best 3.50817e-12 (fails 35) via level_retype 1/llrrr<->0/rrlrl
[103120 evals] best 3.52062e-12 (fails 35) via undivide 1/rrrl
[123200 evals] best 1.26003e-11 (fails 33) via crossover llllrlr<->rrrrr
[127040 evals] best 1.26851e-11 (fails 33) via core_undivide noop
[128800 evals] best 1.27772e-11 (fails 33) via core_undivide noop
[131840 evals] best 2.32615e-11 (fails 32) via core_divide rrllr (2 floors)
[134480 evals] best 2.33823e-11 (fails 32) via place_missing noop
[135360 evals] best 2.34449e-11 (fails 32) via level_retype 1/rrrr<->0/rrlrrlr
[140880 evals] best 2.34579e-11 (fails 32) via place_missing noop
[141920 evals] best 2.34703e-11 (fails 32) via place_missing noop
[149040 evals] best 2.5583e-11 (fails 32) via level_retype 0/llllrlrl<->1/llrrl
[165520 evals] best 4.43277e-11 (fails 31) via undivide 0/rrllr
[173760 evals] best 4.5392e-11 (fails 31) via divide 1/lrlll
[174400 evals] best 4.55799e-11 (fails 31) via crossover l<->l
[181440 evals] best 4.57067e-11 (fails 31) via place_missing noop
[199920 evals] best 1.82608e-10 (fails 29) via level_retype 0/rrlrl<->1/rrllrr
[201600 evals] best 1.83115e-10 (fails 29) via core_undivide noop
[205360 evals] best 1.83224e-10 (fails 29) via swap 1/lrrll
[206960 evals] best 1.84394e-10 (fails 29) via place_missing noop
[207280 evals] best 1.85542e-10 (fails 29) via place_missing noop
[211360 evals] best 1.85715e-10 (fails 29) via undivide 0/lllr
[394320 evals] best 1.85916e-10 (fails 29) via rotate 0/lrlrr
[395200 evals] best 1.87069e-10 (fails 29) via place_missing noop
[396640 evals] best 1.87243e-10 (fails 29) via place_missing noop
[429680 evals] best 1.95082e-10 (fails 29) via level_retype 0/lrlrrr<->1/llrlrll
[531200 evals] best 7.98394e-10 (fails 27) via level_retype 0/llllrlrl<->1/llrlrll
[617520 evals] best 8.06466e-10 (fails 27) via undivide 0/lrll
[797200 evals] best 8.47009e-10 (fails 27) via level_retype 1/llrr<->0/lrrr
[846480 evals] best 8.84037e-10 (fails 27) via level_retype 1/lrlrrl<->0/rrlrrll
[969760 evals] best 8.94046e-10 (fails 27) via rotate 1/llrlrl
[1083680 evals] best 1.60805e-09 (fails 26) via swap 0/llllrlr
[1198960 evals] best 6.4322e-09 (fails 24) via level_retype 0/rrrrrl<->1/lrlrrl
[1357200 evals] best 1.21534e-08 (fails 23) via crossover rlr<->llllrlr
[1453360 evals] best 1.25851e-08 (fails 23) via swap 1/lrrll
[1454560 evals] best 1.25997e-08 (fails 23) via place_missing noop
[1455440 evals] best 1.26006e-08 (fails 23) via place_missing noop
[1465600 evals] best 1.26006e-08 (fails 23) via undivide 0/lllr
[1492400 evals] best 1.26278e-08 (fails 23) via undivide 1/llrlrll
--- done ---
elapsed : 79027.6s
evals : 3000000 across 37428 topologies
best : 1.26278e-08 (23 fails) via undivide 1/llrlrll
improvement history:
[ 80] 2.08665e-19 (g4:construct/0)
[ 560] 5.36487e-16 (g4:construct/6)
[ 880] 8.24937e-16 (g4:construct/10)
[ 1920] 3.40701e-15 (g4:level_fix noop)
[ 2560] 3.54792e-15 (g4:level_retype 1/rlr<->0/rrlr)
[ 5600] 7.10621e-15 (g4:divide 1/lllr)
[ 5840] 7.22073e-15 (g4:core_divide noop)
[ 8720] 8.05574e-15 (g4:core_divide noop)
[ 9520] 9.60644e-15 (g4:level_compound_fix noop)
[ 9760] 9.70633e-15 (g4:core_divide noop)
[ 10240] 9.7388e-15 (g4:crossover rrl<->rrl)
[ 11360] 9.73885e-15 (g4:core_undivide noop)
[ 11440] 9.76347e-15 (g4:core_undivide noop)
[ 12560] 9.76353e-15 (g4:level_fix noop)
[ 13120] 9.80676e-15 (g4:core_divide noop)
[ 13200] 9.81434e-15 (g4:core_undivide noop)
[ 13760] 2.19875e-14 (g4:swap 0/rrl)
[ 14640] 2.21351e-14 (g4:core_undivide noop)
[ 16640] 3.12145e-14 (g4:swap 0/lrl)
[ 20080] 6.11965e-14 (g4:rotate 0/lrr)
[ 24560] 6.12446e-14 (g4:core_undivide noop)
[ 27280] 9.09789e-14 (g4:undivide 0/llr)
[ 29200] 9.09792e-14 (g4:core_undivide noop)
[ 31120] 9.09795e-14 (g4:core_divide noop)
[ 33120] 9.09799e-14 (g4:core_divide noop)
[ 33360] 9.09802e-14 (g4:core_divide noop)
[ 34640] 1.59113e-13 (g4:crossover r<->r)
[ 36720] 1.59546e-13 (g4:core_divide noop)
[ 45520] 1.98045e-13 (g4:swap 0/rl)
[ 47360] 1.98703e-13 (g4:swap 0/rrl)
[ 49520] 1.99037e-13 (g4:core_divide noop)
[ 50240] 7.31388e-13 (g4:swap 0/rll)
[ 50480] 7.31391e-13 (g4:crossover rr<->rr)
[ 52240] 7.31395e-13 (g4:core_undivide noop)
[ 58560] 7.31891e-13 (g4:undivide 1/lllr)
[ 58960] 7.31896e-13 (g4:undivide 1/lllr)
[ 65600] 7.31896e-13 (g4:core_undivide noop)
[ 67680] 7.31897e-13 (g4:core_divide noop)
[ 68160] 7.31897e-13 (g4:retype 1/lllr->st2)
[ 95360] 8.30056e-12 (g4:divide 1/rrl)
[ 99440] 8.30058e-12 (g4:core_divide noop)
[101840] 8.39142e-12 (g4:level_retype 1/rlr<->0/rlr)
[105200] 8.39887e-12 (g4:core_divide noop)
[112720] 8.41871e-12 (g4:core_undivide noop)
[117440] 8.44275e-12 (g4:undivide 1/lrll)
[117760] 8.4503e-12 (g4:core_undivide noop)
[122640] 8.47017e-12 (g4:core_divide noop)
[165280] 1.43128e-11 (g4:divide 0/rrrrr)
[168000] 1.45749e-11 (g4:core_undivide noop)
[170400] 1.68382e-11 (g4:divide 1/rll)
[172640] 1.71204e-11 (g4:core_undivide noop)
[178720] 1.79457e-11 (g4:divide 0/lrr)
[183680] 1.82521e-11 (g4:core_divide noop)
[190480] 1.85485e-11 (g4:core_undivide noop)
[190960] 1.89079e-11 (g4:core_divide noop)
[192000] 1.92475e-11 (g4:core_undivide noop)
[192240] 3.98705e-11 (g4:rotate 0/lrr)
[196400] 4.00667e-11 (g4:divide 1/rrlr)
[197760] 4.00667e-11 (g4:retype 1/rrlrr->st2)
[261200] 7.87414e-11 (g4:crossover l<->l)
[271200] 7.87477e-11 (g4:core_divide noop)
[274240] 7.96497e-11 (g4:core_divide noop)
[275040] 8.05626e-11 (g4:core_undivide noop)
[277040] 1.4805e-10 (g4:undivide 0/rlll)
[277600] 1.51268e-10 (g4:core_divide noop)
[283040] 3.12178e-10 (g4:rotate 0/lrr)
[313680] 3.12896e-10 (g4:level_retype 1/rlr<->0/rlr)
[340000] 6.89781e-10 (g4:divide 1/rlll)
[351440] 6.89742e-09 (g4:core_undivide noop)
[353280] 6.94596e-09 (g4:core_undivide noop)
[358400] 7.00355e-09 (g4:core_undivide noop)
[362720] 7.0692e-09 (g4:swap 0/rrrrr)
[364560] 7.14137e-09 (g4:core_undivide noop)
[365520] 7.20308e-09 (g4:core_undivide noop)
[365920] 7.23862e-09 (g4:core_undivide noop)
[373840] 7.23862e-09 (g4:crossover rrrrrl<->rrll)
[390880] 7.24269e-09 (g4:rotate 0/lrr)
[402480] 7.2467e-09 (g4:crossover rrll<->lrrr)
[422480] 1.02386e-08 (g4:divide 1/rlll)
[422720] 2.05575e-08 (g4:divide 1/lrll)
[455120] 2.30337e-08 (g4:crossover lrrr<->rllr)
[463120] 2.38566e-08 (g4:level_retype 0/rlrl<->1/rlr)
[466080] 4.78825e-08 (g4:core_divide rrll (2 floors))
[483840] 9.76421e-08 (g4:divide 1/lrll)
[497440] 1.95284e-07 (g4:crossover rrllr<->rrllr)
[500200] 1.83626e-13 (g3:anneal-seed/0)
[504320] 1.83638e-13 (g3:level_retype 0/lrrr<->1/rrlr)
[507680] 1.83641e-13 (g3:swap 1/llrrl)
[508880] 3.62008e-13 (g3:undivide 1/lrrr)
[517120] 3.6202e-13 (g3:core_undivide noop)
[518080] 7.35588e-13 (g3:undivide 1/llrrl)
[518640] 7.35612e-13 (g3:core_undivide noop)
[528400] 1.3318e-12 (g3:retype 1/lrrr->O)
[548240] 1.39362e-12 (g3:level_retype 1/llrrlr<->0/rllr)
[548880] 1.39398e-12 (g3:swap 1/llrrr)
[553920] 1.4572e-12 (g3:crossover rr<->rr)
[556960] 1.45745e-12 (g3:core_undivide noop)
[560880] 1.7726e-12 (g3:level_retype 0/llr<->1/rrlr)
[563520] 5.87208e-12 (g3:divide 1/rrrr)
[566880] 1.22536e-11 (g3:retype 0/rrrrrl->r)
[568640] 2.42529e-11 (g3:rotate 0/rrrrr)
[571760] 2.43119e-11 (g3:crossover lrl<->lrl)
[572080] 2.43801e-11 (g3:core_undivide noop)
[578160] 2.43839e-11 (g3:level_retype 0/lrrr<->1/rllr)
[591600] 2.4769e-11 (g3:level_retype 0/rllr<->1/rlr)
[593760] 2.48387e-11 (g3:divide 1/rlr)
[596800] 2.50941e-11 (g3:core_undivide noop)
[603280] 2.51131e-11 (g3:core_undivide noop)
[619920] 2.51267e-11 (g3:rotate 1/llrrr)
[622800] 2.53283e-11 (g3:core_undivide noop)
[623600] 2.53618e-11 (g3:core_undivide noop)
[625520] 5.07696e-11 (g3:crossover rrrrrr<->rlrr)
[637680] 5.10394e-11 (g3:retype 1/lrlll->of)
[641280] 5.23793e-11 (g3:undivide 0/rrrrr)
[650320] 5.24022e-11 (g3:core_undivide noop)
[651200] 4.10836e-10 (g3:crossover lrrl<->rrll)
[686000] 4.11313e-10 (g3:level_retype 1/llll<->0/rlrr)
[692320] 4.11815e-10 (g3:core_undivide noop)
[702560] 4.12887e-10 (g3:rotate 0/rlr)
[716800] 8.7845e-10 (g3:core_divide rrlll (2 floors))
[723120] 8.98065e-10 (g3:core_divide rrlll (2 floors))
[725040] 9.19804e-10 (g3:core_undivide noop)
[728880] 9.3217e-10 (g3:core_undivide noop)
[733600] 9.87021e-10 (g3:crossover rrrl<->rrrl)
[734880] 9.90066e-10 (g3:core_undivide noop)
[735360] 1.88613e-09 (g3:crossover rlrl<->lrrr)
[743040] 1.88635e-09 (g3:core_undivide noop)
[788320] 1.88635e-09 (g3:crossover lr<->lr)
[810320] 7.90852e-09 (g3:retype 0/rrlllr->r)
[889200] 1.51646e-08 (g3:rotate 1/llrll)
[892960] 1.51781e-08 (g3:undivide 0/rlr)
[896000] 1.51869e-08 (g3:undivide 1/llrll)
[918240] 1.61363e-08 (g3:divide 1/rlll)
[919600] 3.04324e-08 (g3:swap 0/rll)
[944640] 3.11245e-08 (g3:core_undivide noop)
[953680] 5.97513e-08 (g3:core_undivide noop)
[958480] 6.06147e-08 (g3:undivide 1/llrll)
[959440] 6.14333e-08 (g3:crossover rlrl<->rrllr)
[964560] 6.19713e-08 (g3:level_retype 0/lrrr<->1/lrlll)
[967600] 6.2383e-08 (g3:crossover llr<->llr)
[968000] 6.25855e-08 (g3:undivide 0/rlr)
[1000200] 3.28383e-15 (g2:anneal-seed/0)
[1002400] 1.27109e-14 (g2:anneal-seed/11)
[1004160] 1.27122e-14 (g2:core_undivide noop)
[1004960] 1.27133e-14 (g2:core_undivide noop)
[1005440] 1.27141e-14 (g2:crossover rl<->rl)
[1006400] 2.54301e-14 (g2:core_undivide noop)
[1008960] 2.54321e-14 (g2:swap 0/llllr)
[1009760] 2.54342e-14 (g2:swap 1/llrlr)
[1009920] 2.54547e-14 (g2:undivide 0/rlr)
[1022960] 2.54569e-14 (g2:core_undivide noop)
[1026080] 5.14279e-14 (g2:rotate 0/lrlrr)
[1028720] 5.15142e-14 (g2:core_undivide noop)
[1029040] 5.15186e-14 (g2:core_undivide noop)
[1030000] 5.15297e-14 (g2:swap 1/llrll)
[1031760] 5.15349e-14 (g2:core_undivide noop)
[1032480] 5.20851e-14 (g2:divide 1/llrlrl)
[1038160] 5.26944e-14 (g2:core_undivide noop)
[1040160] 5.32798e-14 (g2:crossover rrlrrl<->rrlrrl)
[1047040] 1.03522e-13 (g2:divide 1/llrlrl)
[1054000] 3.8649e-13 (g2:divide 0/rrlrrl)
[1054320] 3.88486e-13 (g2:core_undivide noop)
[1065040] 3.89607e-13 (g2:divide 1/lrrr)
[1066960] 3.89689e-13 (g2:level_retype 0/lrrr<->1/rllr)
[1069840] 3.97558e-13 (g2:swap 1/llrlrl)
[1071840] 4.01654e-13 (g2:core_undivide noop)
[1074960] 2.66422e-11 (g2:level_retype 1/lrlrrr<->0/rlrl)
[1079760] 2.67443e-11 (g2:swap 1/llrll)
[1090480] 2.67755e-11 (g2:core_undivide noop)
[1095840] 2.84823e-11 (g2:divide 1/rrlr)
[1106080] 2.85064e-11 (g2:core_undivide noop)
[1242160] 1.10468e-10 (g2:level_retype 0/rrlllr<->1/lrlrl)
[1261840] 1.13005e-10 (g2:rotate 0/lrlrr)
[1294080] 2.25842e-10 (g2:level_retype 1/llrlrll<->0/rrlrrll)
[1304880] 4.3164e-10 (g2:swap 0/rlr)
[1346880] 4.36981e-10 (g2:rotate 0/lrlrr)
[1359680] 4.40945e-10 (g2:swap 1/llrlrl)
[1381840] 9.00576e-10 (g2:divide 0/lllr)
[1449040] 9.20992e-10 (g2:rotate 0/lrlrr)
[1500200] 1.79588e-12 (polish:anneal-seed/0)
[1504800] 1.79593e-12 (polish:place_missing noop)
[1515360] 1.79623e-12 (polish:rotate 0/rrlrr)
[1536240] 3.50817e-12 (polish:level_retype 1/llrrr<->0/rrlrl)
[1603120] 3.52062e-12 (polish:undivide 1/rrrl)
[1623200] 1.26003e-11 (polish:crossover llllrlr<->rrrrr)
[1627040] 1.26851e-11 (polish:core_undivide noop)
[1628800] 1.27772e-11 (polish:core_undivide noop)
[1631840] 2.32615e-11 (polish:core_divide rrllr (2 floors))
[1634480] 2.33823e-11 (polish:place_missing noop)
[1635360] 2.34449e-11 (polish:level_retype 1/rrrr<->0/rrlrrlr)
[1640880] 2.34579e-11 (polish:place_missing noop)
[1641920] 2.34703e-11 (polish:place_missing noop)
[1649040] 2.5583e-11 (polish:level_retype 0/llllrlrl<->1/llrrl)
[1665520] 4.43277e-11 (polish:undivide 0/rrllr)
[1673760] 4.5392e-11 (polish:divide 1/lrlll)
[1674400] 4.55799e-11 (polish:crossover l<->l)
[1681440] 4.57067e-11 (polish:place_missing noop)
[1699920] 1.82608e-10 (polish:level_retype 0/rrlrl<->1/rrllrr)
[1701600] 1.83115e-10 (polish:core_undivide noop)
[1705360] 1.83224e-10 (polish:swap 1/lrrll)
[1706960] 1.84394e-10 (polish:place_missing noop)
[1707280] 1.85542e-10 (polish:place_missing noop)
[1711360] 1.85715e-10 (polish:undivide 0/lllr)
[1894320] 1.85916e-10 (polish:rotate 0/lrlrr)
[1895200] 1.87069e-10 (polish:place_missing noop)
[1896640] 1.87243e-10 (polish:place_missing noop)
[1929680] 1.95082e-10 (polish:level_retype 0/lrlrrr<->1/llrlrll)
[2031200] 7.98394e-10 (polish:level_retype 0/llllrlrl<->1/llrlrll)
[2117520] 8.06466e-10 (polish:undivide 0/lrll)
[2297200] 8.47009e-10 (polish:level_retype 1/llrr<->0/lrrr)
[2346480] 8.84037e-10 (polish:level_retype 1/lrlrrl<->0/rrlrrll)
[2469760] 8.94046e-10 (polish:rotate 1/llrlrl)
[2583680] 1.60805e-09 (polish:swap 0/llllrlr)
[2698960] 6.4322e-09 (polish:level_retype 0/rrrrrl<->1/lrlrrl)
[2857200] 1.21534e-08 (polish:crossover rlr<->llllrlr)
[2953360] 1.25851e-08 (polish:swap 1/lrrll)
[2954560] 1.25997e-08 (polish:place_missing noop)
[2955440] 1.26006e-08 (polish:place_missing noop)
[2965600] 1.26006e-08 (polish:undivide 0/lllr)
[2992400] 1.26278e-08 (polish:undivide 1/llrlrll)
written : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-anneal-3M.dom

View file

@ -1,102 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-unfold.dom
programme : harbor-house
budget : 2200000
pop : 16
child_budget : 80
workers : 1
rng seed : 0
leaf sharing : False (factor=3)
superpose : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-unfold.dom
[ 200 evals] best 4.51297e-07 (fails 18) via seed
[116920 evals] best 4.58937e-07 (fails 18) via level_retype 0/rrl<->1/rrrr
[117400 evals] best 4.59593e-07 (fails 18) via place_missing noop
[118680 evals] best 4.59745e-07 (fails 18) via crossover rl<->rl
[118840 evals] best 4.59956e-07 (fails 18) via crossover lrrlrrl<->rlrlr
[119080 evals] best 4.60039e-07 (fails 18) via level_compound_fix st2: lvl0 → lvl1/rllr + insert st2 into llrlll/lvl1
[119320 evals] best 4.6052e-07 (fails 18) via crossover rlllrrl<->rrrll
[121800 evals] best 4.607e-07 (fails 18) via crossover lrrlrl<->rlrr
[122440 evals] best 4.60858e-07 (fails 18) via core_undivide noop
[122840 evals] best 4.60995e-07 (fails 18) via core_undivide noop
[155800 evals] best 4.60996e-07 (fails 18) via core_undivide noop
[208680 evals] best 4.62556e-07 (fails 18) via rotate 0/lrrlrr
[212120 evals] best 4.62561e-07 (fails 18) via core_undivide noop
[219960 evals] best 4.62609e-07 (fails 18) via rotate 0/lrlr
[293960 evals] best 4.62609e-07 (fails 18) via divide 0/rllr
[394120 evals] best 4.64255e-07 (fails 18) via crossover lrr<->lrr
[724200 evals] best 4.64744e-07 (fails 18) via level_retype 1/lrrlrr<->0/rrl
[761640 evals] best 4.64933e-07 (fails 18) via divide 0/lrrlrl
[766280 evals] best 4.64992e-07 (fails 18) via place_missing noop
[769560 evals] best 4.65067e-07 (fails 18) via place_missing noop
[770920 evals] best 4.65088e-07 (fails 18) via level_fix st2: lvl0/llrr → lvl1/rllr
[822680 evals] best 4.77975e-07 (fails 18) via level_retype 0/llrr<->1/llll
[826280 evals] best 9.39855e-07 (fails 17) via level_retype 1/lrrll<->0/rrl
[835400 evals] best 9.4021e-07 (fails 17) via rotate 0/rlrl
[856520 evals] best 1.12377e-06 (fails 17) via swap 0/llr
[858120 evals] best 1.12983e-06 (fails 17) via divide 1/llrlllr
[862600 evals] best 1.13527e-06 (fails 17) via core_undivide noop
[868600 evals] best 1.13594e-06 (fails 17) via level_retype 0/rllr<->1/llll
[942600 evals] best 1.15623e-06 (fails 17) via swap 0/rlllrr
[1054920 evals] best 1.15695e-06 (fails 17) via swap 1/lrrrl
[1200760 evals] best 1.20729e-06 (fails 17) via level_retype 1/lrll<->0/rrl
[1209240 evals] best 1.20801e-06 (fails 17) via crossover rlllr<->rlllr
[1495480 evals] best 2.38115e-06 (fails 16) via divide 0/rllr
[1571720 evals] best 2.38261e-06 (fails 16) via crossover rlllrr<->rlllrr
[1606120 evals] best 2.38363e-06 (fails 16) via rotate 0/rlrl
[1702040 evals] best 4.04178e-06 (fails 15) via divide 0/llrr
[1704520 evals] best 4.08878e-06 (fails 15) via divide 0/llllrll
[1706040 evals] best 4.13629e-06 (fails 15) via place_missing noop
[1706600 evals] best 4.18784e-06 (fails 15) via place_missing noop
[1707480 evals] best 4.19055e-06 (fails 15) via core_undivide noop
[1731800 evals] best 4.19125e-06 (fails 15) via core_undivide noop
[1791400 evals] best 4.19234e-06 (fails 15) via rotate 0/rlrl
--- done ---
elapsed : 155812.8s
evals : 2200040 across 27499 topologies
best : 4.19234e-06 (15 fails) via rotate 0/rlrl
improvement history:
[ 200] 4.51297e-07 (seed)
[116920] 4.58937e-07 (level_retype 0/rrl<->1/rrrr)
[117400] 4.59593e-07 (place_missing noop)
[118680] 4.59745e-07 (crossover rl<->rl)
[118840] 4.59956e-07 (crossover lrrlrrl<->rlrlr)
[119080] 4.60039e-07 (level_compound_fix st2: lvl0 → lvl1/rllr + insert st2 into llrlll/lvl1)
[119320] 4.6052e-07 (crossover rlllrrl<->rrrll)
[121800] 4.607e-07 (crossover lrrlrl<->rlrr)
[122440] 4.60858e-07 (core_undivide noop)
[122840] 4.60995e-07 (core_undivide noop)
[155800] 4.60996e-07 (core_undivide noop)
[208680] 4.62556e-07 (rotate 0/lrrlrr)
[212120] 4.62561e-07 (core_undivide noop)
[219960] 4.62609e-07 (rotate 0/lrlr)
[293960] 4.62609e-07 (divide 0/rllr)
[394120] 4.64255e-07 (crossover lrr<->lrr)
[724200] 4.64744e-07 (level_retype 1/lrrlrr<->0/rrl)
[761640] 4.64933e-07 (divide 0/lrrlrl)
[766280] 4.64992e-07 (place_missing noop)
[769560] 4.65067e-07 (place_missing noop)
[770920] 4.65088e-07 (level_fix st2: lvl0/llrr → lvl1/rllr)
[822680] 4.77975e-07 (level_retype 0/llrr<->1/llll)
[826280] 9.39855e-07 (level_retype 1/lrrll<->0/rrl)
[835400] 9.4021e-07 (rotate 0/rlrl)
[856520] 1.12377e-06 (swap 0/llr)
[858120] 1.12983e-06 (divide 1/llrlllr)
[862600] 1.13527e-06 (core_undivide noop)
[868600] 1.13594e-06 (level_retype 0/rllr<->1/llll)
[942600] 1.15623e-06 (swap 0/rlllrr)
[1054920] 1.15695e-06 (swap 1/lrrrl)
[1200760] 1.20729e-06 (level_retype 1/lrll<->0/rrl)
[1209240] 1.20801e-06 (crossover rlllr<->rlllr)
[1495480] 2.38115e-06 (divide 0/rllr)
[1571720] 2.38261e-06 (crossover rlllrr<->rlllrr)
[1606120] 2.38363e-06 (rotate 0/rlrl)
[1702040] 4.04178e-06 (divide 0/llrr)
[1704520] 4.08878e-06 (divide 0/llllrll)
[1706040] 4.13629e-06 (place_missing noop)
[1706600] 4.18784e-06 (place_missing noop)
[1707480] 4.19055e-06 (core_undivide noop)
[1731800] 4.19125e-06 (core_undivide noop)
[1791400] 4.19234e-06 (rotate 0/rlrl)
written : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-unfold.dom

View file

@ -1,305 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/materialised-3M.dom
programme : harbor-house
budget : 3000000
pop : 16
child_budget : 80
workers : 1
rng seed : 0
leaf sharing : False (factor=3)
superpose : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-unfold.dom
[ 200 evals] best 2.99136e-19 (fails 58) via seed
[ 280 evals] best 3.01967e-19 (fails 58) via place_missing noop
[ 760 evals] best 3.03178e-19 (fails 58) via level_fix noop
[ 1080 evals] best 1.22315e-18 (fails 56) via undivide 1/rlrll
[ 1960 evals] best 4.88154e-18 (fails 54) via undivide 1/lllr
[ 4040 evals] best 4.88961e-18 (fails 54) via level_compound_fix noop
[ 7320 evals] best 4.99058e-18 (fails 54) via divide 0/rllr
[ 9560 evals] best 4.99975e-18 (fails 54) via undivide 0/llllr
[ 10680 evals] best 5.01755e-18 (fails 54) via place_missing noop
[ 11480 evals] best 9.99951e-18 (fails 53) via retype 0/rllrl->st1
[ 12840 evals] best 1.03122e-17 (fails 53) via crossover rrl<->lrrlrr
[ 12920 evals] best 4.06483e-17 (fails 51) via retype 0/rrrr->C
[ 16760 evals] best 7.97622e-17 (fails 50) via undivide 1/rlrll
[ 17800 evals] best 8.02921e-17 (fails 50) via rotate 0/llllr
[ 18120 evals] best 8.08633e-17 (fails 50) via swap 0/lrlr
[ 19160 evals] best 8.14312e-17 (fails 50) via level_fix noop
[ 22120 evals] best 1.21571e-15 (fails 46) via swap 0/lrrlr
[ 23640 evals] best 1.22179e-15 (fails 46) via level_fix noop
[ 30040 evals] best 1.22195e-15 (fails 46) via level_compound_fix noop
[ 30600 evals] best 1.22269e-15 (fails 46) via core_undivide noop
[ 31160 evals] best 1.22417e-15 (fails 46) via level_compound_fix noop
[ 31400 evals] best 1.22707e-15 (fails 46) via level_compound_fix noop
[ 31560 evals] best 1.22821e-15 (fails 46) via place_missing noop
[ 31800 evals] best 1.23179e-15 (fails 46) via place_missing noop
[ 32680 evals] best 1.23254e-15 (fails 46) via level_fix noop
[ 33560 evals] best 1.23401e-15 (fails 46) via core_undivide noop
[ 33880 evals] best 1.23468e-15 (fails 46) via place_missing noop
[ 34360 evals] best 4.40771e-15 (fails 44) via level_retype 0/rlllrl<->1/lrlrr
[ 37320 evals] best 4.45896e-15 (fails 44) via level_fix noop
[ 38280 evals] best 4.5458e-15 (fails 44) via undivide 1/llrr
[ 39080 evals] best 9.29164e-15 (fails 43) via level_compound_fix noop
[ 42040 evals] best 9.42528e-15 (fails 43) via core_undivide noop
[ 43160 evals] best 9.93886e-15 (fails 43) via level_fix noop
[ 44680 evals] best 9.96278e-15 (fails 43) via level_compound_fix noop
[ 47640 evals] best 9.97578e-15 (fails 43) via level_fix noop
[ 47800 evals] best 9.97622e-15 (fails 43) via place_missing noop
[ 48040 evals] best 9.99008e-15 (fails 43) via place_missing noop
[ 48920 evals] best 9.99411e-15 (fails 43) via level_fix noop
[ 49720 evals] best 1.03773e-14 (fails 43) via level_fix noop
[ 51560 evals] best 1.03962e-14 (fails 43) via level_fix noop
[ 52040 evals] best 1.03962e-14 (fails 43) via crossover llllrl<->llllrr
[ 53400 evals] best 1.77761e-14 (fails 42) via level_retype 0/lrlrl<->1/lllr
[ 53480 evals] best 1.77762e-14 (fails 42) via level_fix noop
[ 53640 evals] best 1.77763e-14 (fails 42) via rotate 0/llllr
[ 56600 evals] best 7.00332e-14 (fails 40) via place_missing r -> lrrrl
[ 58760 evals] best 7.07195e-14 (fails 40) via level_fix noop
[ 59240 evals] best 7.10585e-14 (fails 40) via level_fix noop
[ 59640 evals] best 7.16534e-14 (fails 40) via swap 0/lrlr
[ 63640 evals] best 5.51149e-13 (fails 37) via level_retype 1/lrrrlr<->0/llrr
[ 64120 evals] best 5.51653e-13 (fails 37) via core_undivide noop
[ 79880 evals] best 5.84975e-13 (fails 37) via crossover llrl<->rlllrl
[ 85720 evals] best 2.46536e-12 (fails 35) via divide 0/rllr
[ 86440 evals] best 2.46952e-12 (fails 35) via place_missing noop
[ 86760 evals] best 2.47109e-12 (fails 35) via place_missing noop
[ 87800 evals] best 2.47704e-12 (fails 35) via level_retype 0/lrrll<->1/llll
[ 89320 evals] best 2.47709e-12 (fails 35) via rotate 1/llrll
[ 90200 evals] best 2.48831e-12 (fails 35) via core_undivide noop
[ 96600 evals] best 2.49053e-12 (fails 35) via level_retype 0/lrll<->1/rlllrr
[100200 evals] best 2.49075e-12 (fails 35) via place_missing noop
[100440 evals] best 5.49415e-12 (fails 34) via retype 1/llrlll->st1
[101240 evals] best 5.51519e-12 (fails 34) via core_undivide noop
[102200 evals] best 5.53436e-12 (fails 34) via core_undivide noop
[102280 evals] best 2.14555e-11 (fails 32) via level_retype 0/lrll<->1/lllr
[108520 evals] best 2.57994e-11 (fails 32) via level_compound_fix ws1: lvl1 → lvl0/llr + insert n into rrrl/lvl0
[109560 evals] best 2.5808e-11 (fails 32) via place_missing noop
[110360 evals] best 2.59325e-11 (fails 32) via swap 0/rlrlr
[111560 evals] best 2.59762e-11 (fails 32) via place_missing noop
[112280 evals] best 2.60214e-11 (fails 32) via core_undivide noop
[113160 evals] best 2.60487e-11 (fails 32) via rotate 0/rllr
[115640 evals] best 2.60965e-11 (fails 32) via crossover lr<->lr
[124920 evals] best 2.6127e-11 (fails 32) via place_missing noop
[125720 evals] best 2.61617e-11 (fails 32) via place_missing noop
[128760 evals] best 2.62337e-11 (fails 32) via swap 0/rlllr
[130280 evals] best 2.62639e-11 (fails 32) via core_undivide noop
[130520 evals] best 2.63194e-11 (fails 32) via place_missing noop
[135080 evals] best 2.63387e-11 (fails 32) via place_missing noop
[136520 evals] best 2.6388e-11 (fails 32) via level_retype 0/rrl<->1/rllll
[138040 evals] best 2.68627e-11 (fails 32) via swap 0/rlrlr
[148680 evals] best 5.4017e-11 (fails 31) via place_missing noop
[151160 evals] best 5.41523e-11 (fails 31) via place_missing noop
[151560 evals] best 5.41822e-11 (fails 31) via level_retype 1/lrrrlr<->0/lrrlrl
[154440 evals] best 5.4205e-11 (fails 31) via core_undivide noop
[166760 evals] best 5.57913e-11 (fails 31) via core_undivide noop
[167880 evals] best 5.5935e-11 (fails 31) via place_missing noop
[168040 evals] best 5.59648e-11 (fails 31) via core_undivide noop
[178120 evals] best 5.59873e-11 (fails 31) via place_missing noop
[186120 evals] best 2.24215e-10 (fails 29) via undivide 0/rlrlr
[189880 evals] best 2.25927e-10 (fails 29) via place_missing noop
[194680 evals] best 2.28011e-10 (fails 29) via crossover lrrrr<->llllrr
[195640 evals] best 2.33239e-10 (fails 29) via place_missing noop
[196280 evals] best 2.34613e-10 (fails 29) via level_retype 1/lllr<->0/rlrr
[199080 evals] best 2.35322e-10 (fails 29) via place_missing noop
[199480 evals] best 2.35804e-10 (fails 29) via place_missing noop
[200760 evals] best 2.36673e-10 (fails 29) via undivide 0/llllrr
[201080 evals] best 2.37395e-10 (fails 29) via core_undivide noop
[201480 evals] best 4.60074e-10 (fails 28) via crossover llllr<->rlrr
[202920 evals] best 1.99463e-09 (fails 26) via level_retype 0/rrrll<->1/rllll
[203640 evals] best 1.99916e-09 (fails 26) via core_undivide noop
[204600 evals] best 2.00522e-09 (fails 26) via place_missing noop
[204920 evals] best 2.00871e-09 (fails 26) via core_undivide noop
[206120 evals] best 2.01305e-09 (fails 26) via place_missing noop
[208440 evals] best 3.93349e-09 (fails 25) via crossover lrrll<->lrll
[227320 evals] best 3.93912e-09 (fails 25) via undivide 1/lrrrl
[255400 evals] best 4.01887e-09 (fails 25) via crossover llllrr<->rlrr
[255960 evals] best 4.03512e-09 (fails 25) via level_retype 1/llrlll<->0/rllrr
[261960 evals] best 4.04022e-09 (fails 25) via place_missing noop
[265080 evals] best 4.04521e-09 (fails 25) via core_undivide noop
[265720 evals] best 4.05035e-09 (fails 25) via place_missing noop
[268600 evals] best 4.05563e-09 (fails 25) via place_missing noop
[271320 evals] best 4.06105e-09 (fails 25) via place_missing noop
[272680 evals] best 4.0666e-09 (fails 25) via place_missing noop
[272840 evals] best 4.07228e-09 (fails 25) via place_missing noop
[275160 evals] best 4.07807e-09 (fails 25) via core_undivide noop
[280280 evals] best 4.07877e-09 (fails 25) via crossover lrrlrl<->rlrr
[284680 evals] best 8.83242e-09 (fails 24) via level_retype 0/llllrl<->1/lrrlrl
[284920 evals] best 8.83285e-09 (fails 24) via core_undivide noop
[287400 evals] best 8.83313e-09 (fails 24) via place_missing noop
[288760 evals] best 8.83334e-09 (fails 24) via swap 0/rlrl
[324760 evals] best 8.89227e-09 (fails 24) via swap 0/lrlr
[363400 evals] best 8.90188e-09 (fails 24) via swap 0/lrlr
[363800 evals] best 9.01895e-09 (fails 24) via swap 1/lrrrl
[368440 evals] best 9.047e-09 (fails 24) via rotate 1/llrl
[378920 evals] best 9.04743e-09 (fails 24) via place_missing noop
[379000 evals] best 9.10808e-09 (fails 24) via swap 0/lrlr
[392760 evals] best 9.22733e-09 (fails 24) via swap 1/lrrrl
[408840 evals] best 1.66708e-08 (fails 23) via divide 0/rlllrl
[410440 evals] best 1.67345e-08 (fails 23) via place_missing noop
[418440 evals] best 1.68009e-08 (fails 23) via core_undivide noop
[418600 evals] best 1.68677e-08 (fails 23) via core_undivide noop
[419080 evals] best 1.69062e-08 (fails 23) via place_missing noop
[456760 evals] best 3.38125e-08 (fails 22) via level_retype 0/rllrr<->1/llrlll
[508200 evals] best 3.49835e-08 (fails 22) via swap 0/rlllr
[551560 evals] best 3.52155e-08 (fails 22) via place_missing noop
[560760 evals] best 3.53974e-08 (fails 22) via core_undivide noop
[578680 evals] best 3.54026e-08 (fails 22) via rotate 0/lrrlrr
[579480 evals] best 3.54182e-08 (fails 22) via place_missing noop
[581400 evals] best 3.54231e-08 (fails 22) via crossover lrrlrrl<->rlrll
[615720 evals] best 3.59145e-08 (fails 22) via swap 0/rlllrr
[627560 evals] best 1.07816e-07 (fails 20) via divide 0/llr
[628280 evals] best 1.07831e-07 (fails 20) via core_undivide noop
[699800 evals] best 1.09564e-07 (fails 20) via swap 0/rlllrr
[736360 evals] best 1.09566e-07 (fails 20) via rotate 0/rlrl
[874840 evals] best 4.45103e-07 (fails 18) via level_retype 1/llll<->0/rlllrrl
[952040 evals] interrupted — returning best-so-far
--- interrupted ---
elapsed : 66433.5s
evals : 952040 across 11899 topologies
best : 4.45103e-07 (18 fails) via level_retype 1/llll<->0/rlllrrl
improvement history:
[ 200] 2.99136e-19 (seed)
[ 280] 3.01967e-19 (place_missing noop)
[ 760] 3.03178e-19 (level_fix noop)
[ 1080] 1.22315e-18 (undivide 1/rlrll)
[ 1960] 4.88154e-18 (undivide 1/lllr)
[ 4040] 4.88961e-18 (level_compound_fix noop)
[ 7320] 4.99058e-18 (divide 0/rllr)
[ 9560] 4.99975e-18 (undivide 0/llllr)
[ 10680] 5.01755e-18 (place_missing noop)
[ 11480] 9.99951e-18 (retype 0/rllrl->st1)
[ 12840] 1.03122e-17 (crossover rrl<->lrrlrr)
[ 12920] 4.06483e-17 (retype 0/rrrr->C)
[ 16760] 7.97622e-17 (undivide 1/rlrll)
[ 17800] 8.02921e-17 (rotate 0/llllr)
[ 18120] 8.08633e-17 (swap 0/lrlr)
[ 19160] 8.14312e-17 (level_fix noop)
[ 22120] 1.21571e-15 (swap 0/lrrlr)
[ 23640] 1.22179e-15 (level_fix noop)
[ 30040] 1.22195e-15 (level_compound_fix noop)
[ 30600] 1.22269e-15 (core_undivide noop)
[ 31160] 1.22417e-15 (level_compound_fix noop)
[ 31400] 1.22707e-15 (level_compound_fix noop)
[ 31560] 1.22821e-15 (place_missing noop)
[ 31800] 1.23179e-15 (place_missing noop)
[ 32680] 1.23254e-15 (level_fix noop)
[ 33560] 1.23401e-15 (core_undivide noop)
[ 33880] 1.23468e-15 (place_missing noop)
[ 34360] 4.40771e-15 (level_retype 0/rlllrl<->1/lrlrr)
[ 37320] 4.45896e-15 (level_fix noop)
[ 38280] 4.5458e-15 (undivide 1/llrr)
[ 39080] 9.29164e-15 (level_compound_fix noop)
[ 42040] 9.42528e-15 (core_undivide noop)
[ 43160] 9.93886e-15 (level_fix noop)
[ 44680] 9.96278e-15 (level_compound_fix noop)
[ 47640] 9.97578e-15 (level_fix noop)
[ 47800] 9.97622e-15 (place_missing noop)
[ 48040] 9.99008e-15 (place_missing noop)
[ 48920] 9.99411e-15 (level_fix noop)
[ 49720] 1.03773e-14 (level_fix noop)
[ 51560] 1.03962e-14 (level_fix noop)
[ 52040] 1.03962e-14 (crossover llllrl<->llllrr)
[ 53400] 1.77761e-14 (level_retype 0/lrlrl<->1/lllr)
[ 53480] 1.77762e-14 (level_fix noop)
[ 53640] 1.77763e-14 (rotate 0/llllr)
[ 56600] 7.00332e-14 (place_missing r -> lrrrl)
[ 58760] 7.07195e-14 (level_fix noop)
[ 59240] 7.10585e-14 (level_fix noop)
[ 59640] 7.16534e-14 (swap 0/lrlr)
[ 63640] 5.51149e-13 (level_retype 1/lrrrlr<->0/llrr)
[ 64120] 5.51653e-13 (core_undivide noop)
[ 79880] 5.84975e-13 (crossover llrl<->rlllrl)
[ 85720] 2.46536e-12 (divide 0/rllr)
[ 86440] 2.46952e-12 (place_missing noop)
[ 86760] 2.47109e-12 (place_missing noop)
[ 87800] 2.47704e-12 (level_retype 0/lrrll<->1/llll)
[ 89320] 2.47709e-12 (rotate 1/llrll)
[ 90200] 2.48831e-12 (core_undivide noop)
[ 96600] 2.49053e-12 (level_retype 0/lrll<->1/rlllrr)
[100200] 2.49075e-12 (place_missing noop)
[100440] 5.49415e-12 (retype 1/llrlll->st1)
[101240] 5.51519e-12 (core_undivide noop)
[102200] 5.53436e-12 (core_undivide noop)
[102280] 2.14555e-11 (level_retype 0/lrll<->1/lllr)
[108520] 2.57994e-11 (level_compound_fix ws1: lvl1 → lvl0/llr + insert n into rrrl/lvl0)
[109560] 2.5808e-11 (place_missing noop)
[110360] 2.59325e-11 (swap 0/rlrlr)
[111560] 2.59762e-11 (place_missing noop)
[112280] 2.60214e-11 (core_undivide noop)
[113160] 2.60487e-11 (rotate 0/rllr)
[115640] 2.60965e-11 (crossover lr<->lr)
[124920] 2.6127e-11 (place_missing noop)
[125720] 2.61617e-11 (place_missing noop)
[128760] 2.62337e-11 (swap 0/rlllr)
[130280] 2.62639e-11 (core_undivide noop)
[130520] 2.63194e-11 (place_missing noop)
[135080] 2.63387e-11 (place_missing noop)
[136520] 2.6388e-11 (level_retype 0/rrl<->1/rllll)
[138040] 2.68627e-11 (swap 0/rlrlr)
[148680] 5.4017e-11 (place_missing noop)
[151160] 5.41523e-11 (place_missing noop)
[151560] 5.41822e-11 (level_retype 1/lrrrlr<->0/lrrlrl)
[154440] 5.4205e-11 (core_undivide noop)
[166760] 5.57913e-11 (core_undivide noop)
[167880] 5.5935e-11 (place_missing noop)
[168040] 5.59648e-11 (core_undivide noop)
[178120] 5.59873e-11 (place_missing noop)
[186120] 2.24215e-10 (undivide 0/rlrlr)
[189880] 2.25927e-10 (place_missing noop)
[194680] 2.28011e-10 (crossover lrrrr<->llllrr)
[195640] 2.33239e-10 (place_missing noop)
[196280] 2.34613e-10 (level_retype 1/lllr<->0/rlrr)
[199080] 2.35322e-10 (place_missing noop)
[199480] 2.35804e-10 (place_missing noop)
[200760] 2.36673e-10 (undivide 0/llllrr)
[201080] 2.37395e-10 (core_undivide noop)
[201480] 4.60074e-10 (crossover llllr<->rlrr)
[202920] 1.99463e-09 (level_retype 0/rrrll<->1/rllll)
[203640] 1.99916e-09 (core_undivide noop)
[204600] 2.00522e-09 (place_missing noop)
[204920] 2.00871e-09 (core_undivide noop)
[206120] 2.01305e-09 (place_missing noop)
[208440] 3.93349e-09 (crossover lrrll<->lrll)
[227320] 3.93912e-09 (undivide 1/lrrrl)
[255400] 4.01887e-09 (crossover llllrr<->rlrr)
[255960] 4.03512e-09 (level_retype 1/llrlll<->0/rllrr)
[261960] 4.04022e-09 (place_missing noop)
[265080] 4.04521e-09 (core_undivide noop)
[265720] 4.05035e-09 (place_missing noop)
[268600] 4.05563e-09 (place_missing noop)
[271320] 4.06105e-09 (place_missing noop)
[272680] 4.0666e-09 (place_missing noop)
[272840] 4.07228e-09 (place_missing noop)
[275160] 4.07807e-09 (core_undivide noop)
[280280] 4.07877e-09 (crossover lrrlrl<->rlrr)
[284680] 8.83242e-09 (level_retype 0/llllrl<->1/lrrlrl)
[284920] 8.83285e-09 (core_undivide noop)
[287400] 8.83313e-09 (place_missing noop)
[288760] 8.83334e-09 (swap 0/rlrl)
[324760] 8.89227e-09 (swap 0/lrlr)
[363400] 8.90188e-09 (swap 0/lrlr)
[363800] 9.01895e-09 (swap 1/lrrrl)
[368440] 9.047e-09 (rotate 1/llrl)
[378920] 9.04743e-09 (place_missing noop)
[379000] 9.10808e-09 (swap 0/lrlr)
[392760] 9.22733e-09 (swap 1/lrrrl)
[408840] 1.66708e-08 (divide 0/rlllrl)
[410440] 1.67345e-08 (place_missing noop)
[418440] 1.68009e-08 (core_undivide noop)
[418600] 1.68677e-08 (core_undivide noop)
[419080] 1.69062e-08 (place_missing noop)
[456760] 3.38125e-08 (level_retype 0/rllrr<->1/llrlll)
[508200] 3.49835e-08 (swap 0/rlllr)
[551560] 3.52155e-08 (place_missing noop)
[560760] 3.53974e-08 (core_undivide noop)
[578680] 3.54026e-08 (rotate 0/lrrlrr)
[579480] 3.54182e-08 (place_missing noop)
[581400] 3.54231e-08 (crossover lrrlrrl<->rlrll)
[615720] 3.59145e-08 (swap 0/rlllrr)
[627560] 1.07816e-07 (divide 0/llr)
[628280] 1.07831e-07 (core_undivide noop)
[699800] 1.09564e-07 (swap 0/rlllrr)
[736360] 1.09566e-07 (rotate 0/rlrl)
[874840] 4.45103e-07 (level_retype 1/llll<->0/rlllrrl)
written : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-unfold.dom

View file

@ -1,479 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-3M.dom
programme : harbor-house
budget : 3000000
pop : 16
child_budget : 80
workers : 1
rng seed : 0
leaf sharing : False (factor=3)
superpose : False
output : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-warmshare.dom
[ 200 evals] best 7.13373e-29 (fails 90) via seed
[ 680 evals] best 7.13374e-29 (fails 90) via level_fix noop
[ 1800 evals] best 1.43878e-28 (fails 89) via place_missing r -> lrrrl
[ 4200 evals] best 2.61821e-28 (fails 88) via place_missing t -> rllrr
[ 4360 evals] best 1.39503e-27 (fails 86) via core_divide rlrr (2 floors)
[ 4440 evals] best 2.20221e-27 (fails 85) via divide 0/rllrl
[ 7560 evals] best 3.47487e-27 (fails 85) via core_undivide noop
[ 8040 evals] best 4.94517e-26 (fails 81) via retype 0/rrl->r
[ 9000 evals] best 3.79585e-25 (fails 78) via place_missing r -> lrrrl
[ 9720 evals] best 3.93644e-25 (fails 78) via place_missing n -> rllr
[ 10920 evals] best 6.00163e-24 (fails 74) via place_missing r -> lrrrl
[ 12120 evals] best 6.11587e-24 (fails 74) via level_fix noop
[ 12920 evals] best 6.29222e-24 (fails 74) via core_undivide noop
[ 15000 evals] best 1.71947e-23 (fails 72) via place_missing m -> lrrl
[ 15480 evals] best 1.73099e-23 (fails 72) via level_fix noop
[ 19560 evals] best 6.08444e-23 (fails 70) via place_missing n -> rllrrr
[ 27640 evals] best 6.14994e-23 (fails 70) via level_fix noop
[ 28520 evals] best 6.20043e-23 (fails 70) via level_fix noop
[ 29000 evals] best 6.23843e-23 (fails 70) via core_undivide noop
[ 30120 evals] best 6.25916e-23 (fails 70) via core_undivide noop
[ 30760 evals] best 6.26442e-23 (fails 70) via core_undivide noop
[ 31320 evals] best 1.23029e-22 (fails 70) via undivide 0/rllrrr
[ 31640 evals] best 1.85407e-21 (fails 65) via crossover rrl<->rlrr
[ 33800 evals] best 1.8746e-21 (fails 65) via core_undivide noop
[ 34040 evals] best 1.88627e-21 (fails 65) via core_undivide noop
[ 35880 evals] best 1.89096e-21 (fails 65) via core_undivide noop
[ 36200 evals] best 8.63218e-21 (fails 64) via swap 1/lrrrr
[ 40680 evals] best 8.70626e-21 (fails 64) via level_compound_fix noop
[ 41080 evals] best 1.67189e-20 (fails 63) via place_missing r -> llrlrl
[ 41640 evals] best 1.67761e-20 (fails 63) via level_compound_fix noop
[ 44920 evals] best 7.29193e-20 (fails 61) via crossover lrrlr<->rllrl
[ 45960 evals] best 7.31576e-20 (fails 61) via level_compound_fix noop
[ 47080 evals] best 1.36215e-19 (fails 60) via place_missing t -> rrrr
[ 47480 evals] best 1.36247e-19 (fails 60) via level_fix noop
[ 48360 evals] best 1.36406e-19 (fails 60) via level_fix noop
[ 48600 evals] best 1.36485e-19 (fails 60) via crossover lrrlr<->rllrl
[ 49160 evals] best 1.36534e-19 (fails 60) via level_compound_fix noop
[ 50760 evals] best 1.36993e-19 (fails 60) via rotate 0/lrlr
[ 57880 evals] best 1.37008e-19 (fails 60) via level_fix noop
[ 57960 evals] best 1.37024e-19 (fails 60) via core_undivide noop
[ 59320 evals] best 1.37041e-19 (fails 60) via level_fix noop
[ 63160 evals] best 1.37057e-19 (fails 60) via core_undivide noop
[ 63320 evals] best 1.37735e-19 (fails 60) via rotate 0/lrr
[ 66600 evals] best 2.94829e-19 (fails 59) via level_retype 1/lrrrlrl<->0/llllrl
[ 71800 evals] best 2.94872e-19 (fails 59) via core_undivide noop
[ 74280 evals] best 5.90024e-19 (fails 58) via divide 0/rrrrr
[ 75240 evals] best 7.62368e-19 (fails 57) via level_retype 0/rlll<->1/rlrlr
[ 81320 evals] best 7.69032e-19 (fails 57) via level_retype 1/rlrlll<->0/rrrrl
[ 83160 evals] best 1.03682e-18 (fails 57) via level_retype 1/lrlrl<->0/rllrrr
[ 83480 evals] best 1.04208e-18 (fails 57) via rotate 0/rrrrr
[ 89320 evals] best 1.04721e-18 (fails 57) via core_undivide noop
[ 90760 evals] best 1.05258e-18 (fails 57) via core_undivide noop
[ 92040 evals] best 1.22112e-18 (fails 57) via rotate 0/rrrr
[ 96200 evals] best 1.54735e-18 (fails 56) via crossover lrrrr<->llllrl
[ 98680 evals] best 1.54777e-18 (fails 56) via place_missing noop
[ 99640 evals] best 1.54818e-18 (fails 56) via core_undivide noop
[100600 evals] best 1.54858e-18 (fails 56) via core_undivide noop
[102920 evals] best 1.54897e-18 (fails 56) via place_missing noop
[103560 evals] best 1.54911e-18 (fails 56) via place_missing noop
[104360 evals] best 1.62548e-18 (fails 56) via undivide 0/lrlr
[105800 evals] best 1.62563e-18 (fails 56) via level_retype 0/rlrrr<->1/lrrrrl
[106040 evals] best 1.62578e-18 (fails 56) via place_missing noop
[109000 evals] best 1.62595e-18 (fails 56) via place_missing noop
[109240 evals] best 1.62612e-18 (fails 56) via place_missing noop
[109400 evals] best 1.6263e-18 (fails 56) via place_missing noop
[110440 evals] best 1.62644e-18 (fails 56) via core_undivide noop
[110520 evals] best 1.62653e-18 (fails 56) via crossover lrlr<->lrlrl
[111160 evals] best 3.25423e-18 (fails 55) via divide 0/rrrrr
[115320 evals] best 3.25464e-18 (fails 55) via place_missing noop
[117800 evals] best 3.25582e-18 (fails 55) via level_retype 1/lrrrrr<->0/lrrrr
[118360 evals] best 3.25868e-18 (fails 55) via place_missing noop
[119640 evals] best 3.74625e-18 (fails 55) via place_missing r -> lrrl
[120280 evals] best 3.74647e-18 (fails 55) via place_missing noop
[120360 evals] best 3.74667e-18 (fails 55) via place_missing noop
[123320 evals] best 3.74676e-18 (fails 55) via core_undivide noop
[123720 evals] best 6.40395e-18 (fails 54) via divide 1/llrr
[123880 evals] best 2.88855e-17 (fails 52) via place_missing r -> lrrl
[124840 evals] best 2.89001e-17 (fails 52) via level_retype 0/lrrrr<->1/llrlrll
[126600 evals] best 2.89018e-17 (fails 52) via place_missing noop
[127480 evals] best 2.89033e-17 (fails 52) via place_missing noop
[128360 evals] best 4.59545e-16 (fails 48) via level_compound_fix st1: lvl1 → lvl0/rllr
[129800 evals] best 4.59566e-16 (fails 48) via core_undivide noop
[133800 evals] best 4.59579e-16 (fails 48) via place_missing noop
[138360 evals] best 9.21879e-16 (fails 47) via level_retype 0/lrrll<->1/rlrlr
[138920 evals] best 9.21905e-16 (fails 47) via undivide 1/lrrrlr
[177400 evals] best 1.02387e-15 (fails 47) via undivide 1/rrl
[179960 evals] best 2.0557e-15 (fails 46) via divide 0/rrrrr
[180440 evals] best 2.05953e-15 (fails 46) via level_retype 1/rllr<->0/rrrrrr
[180760 evals] best 2.0647e-15 (fails 46) via crossover rlllrlrr<->rlllrlrr
[185960 evals] best 4.03185e-15 (fails 45) via divide 0/lrrrl
[189560 evals] best 4.04284e-15 (fails 45) via core_undivide noop
[191560 evals] best 4.26565e-15 (fails 45) via crossover rrl<->rlrrr
[192760 evals] best 4.27557e-15 (fails 45) via place_missing noop
[194200 evals] best 8.22369e-15 (fails 44) via crossover llllrr<->rrrrr
[194600 evals] best 1.65717e-14 (fails 43) via crossover rrrr<->rlllrlr
[197640 evals] best 1.66031e-14 (fails 43) via core_undivide noop
[201400 evals] best 3.39094e-14 (fails 42) via divide 0/rllr
[205560 evals] best 4.33243e-14 (fails 41) via level_fix st2: lvl0/llllrrr → lvl1/rlll
[206200 evals] best 8.67874e-14 (fails 40) via core_undivide noop
[208360 evals] best 9.28664e-14 (fails 40) via level_fix of: lvl1/lrrll → lvl0/rllr
[209960 evals] best 9.86678e-14 (fails 40) via level_fix of: lvl1/lrrll → lvl0/rllr
[211640 evals] best 9.89888e-14 (fails 40) via place_missing noop
[212440 evals] best 9.93193e-14 (fails 40) via core_undivide noop
[214200 evals] best 9.96673e-14 (fails 40) via place_missing noop
[216520 evals] best 1.0003e-13 (fails 40) via place_missing noop
[220440 evals] best 1.96926e-13 (fails 39) via undivide 1/lrlr
[221720 evals] best 1.99592e-13 (fails 39) via undivide 1/lrlr
[222200 evals] best 2.00319e-13 (fails 39) via core_undivide noop
[224040 evals] best 2.01076e-13 (fails 39) via place_missing noop
[225800 evals] best 2.01871e-13 (fails 39) via level_retype 0/llllrrr<->1/lrrlrrr
[228920 evals] best 3.94547e-13 (fails 38) via undivide 0/lrrl
[229640 evals] best 3.9913e-13 (fails 38) via crossover lrrl<->lrrl
[230600 evals] best 1.03507e-12 (fails 37) via place_missing n -> rllr
[232600 evals] best 1.0387e-12 (fails 37) via swap 0/rrrr
[232760 evals] best 1.03877e-12 (fails 37) via place_missing n -> rllr
[235560 evals] best 1.21726e-13 (fails 36) via divide 1/rrrl
[239640 evals] best 2.9842e-12 (fails 35) via place_missing noop
[241560 evals] best 2.99774e-12 (fails 35) via place_missing noop
[244200 evals] best 3.00495e-12 (fails 35) via core_undivide noop
[244920 evals] best 3.01614e-12 (fails 35) via level_retype 0/llllrrr<->1/llrlrlr
[245000 evals] best 3.16105e-12 (fails 35) via rotate 1/lrrlrr
[245800 evals] best 3.21175e-12 (fails 35) via place_missing noop
[248760 evals] best 3.21456e-12 (fails 35) via place_missing noop
[250760 evals] best 3.2718e-12 (fails 35) via place_missing noop
[251000 evals] best 3.28567e-12 (fails 35) via place_missing noop
[251480 evals] best 3.33817e-12 (fails 35) via divide 0/rllr
[251640 evals] best 3.41781e-12 (fails 35) via place_missing noop
[252680 evals] best 3.44722e-12 (fails 35) via core_undivide noop
[255160 evals] best 3.48209e-12 (fails 35) via core_undivide noop
[258040 evals] best 3.50923e-12 (fails 35) via crossover rrl<->lrrrlr
[258440 evals] best 3.56524e-12 (fails 35) via place_missing noop
[259240 evals] best 7.13048e-12 (fails 34) via rotate 0/rllr
[261560 evals] best 7.15069e-12 (fails 34) via place_missing noop
[263720 evals] best 1.3349e-11 (fails 33) via swap 0/rllr
[268200 evals] best 1.33728e-11 (fails 33) via place_missing noop
[269560 evals] best 1.33841e-11 (fails 33) via place_missing noop
[269720 evals] best 1.35872e-11 (fails 33) via place_missing noop
[276360 evals] best 2.722e-11 (fails 32) via swap 0/lrl
[277400 evals] best 2.731e-11 (fails 32) via core_undivide noop
[278280 evals] best 5.46451e-11 (fails 31) via level_fix st2: lvl0/rllrl → lvl1/rlll
[282120 evals] best 5.47747e-11 (fails 31) via place_missing noop
[283400 evals] best 5.49101e-11 (fails 31) via retype 0/llllrrl->st2
[284360 evals] best 5.49984e-11 (fails 31) via core_undivide noop
[287240 evals] best 5.50909e-11 (fails 31) via rotate 0/rlllr
[287720 evals] best 5.53032e-11 (fails 31) via place_missing noop
[288520 evals] best 5.544e-11 (fails 31) via place_missing noop
[289560 evals] best 5.55504e-11 (fails 31) via core_undivide noop
[291560 evals] best 5.56508e-11 (fails 31) via rotate 0/lrrrl
[291960 evals] best 5.57529e-11 (fails 31) via place_missing noop
[294120 evals] best 5.59089e-11 (fails 31) via place_missing noop
[296120 evals] best 5.60467e-11 (fails 31) via place_missing noop
[300440 evals] best 5.61355e-11 (fails 31) via core_undivide noop
[301720 evals] best 5.62247e-11 (fails 31) via place_missing noop
[303160 evals] best 5.63495e-11 (fails 31) via place_missing noop
[305240 evals] best 6.24375e-11 (fails 30) via rotate 0/rlrr
[309560 evals] best 6.2556e-11 (fails 30) via place_missing noop
[313080 evals] best 6.27168e-11 (fails 30) via core_undivide noop
[315480 evals] best 6.28651e-11 (fails 30) via place_missing noop
[317240 evals] best 6.29148e-11 (fails 30) via place_missing noop
[317560 evals] best 6.33648e-11 (fails 30) via divide 0/rrl
[319800 evals] best 6.48073e-11 (fails 30) via crossover rrll<->rrrrl
[335160 evals] best 6.5715e-11 (fails 30) via swap 1/rrrl
[355640 evals] best 6.61765e-11 (fails 30) via rotate 0/rr
[367240 evals] best 1.41943e-10 (fails 29) via level_retype 0/rrl<->1/lrrrll
[369080 evals] best 1.4196e-10 (fails 29) via place_missing noop
[378440 evals] best 1.42097e-10 (fails 29) via place_missing noop
[380520 evals] best 1.42479e-10 (fails 29) via place_missing noop
[381640 evals] best 1.43053e-10 (fails 29) via core_undivide noop
[384680 evals] best 1.43342e-10 (fails 29) via core_undivide noop
[397960 evals] best 5.77526e-10 (fails 27) via rotate 0/rrr
[406600 evals] best 5.77589e-10 (fails 27) via place_missing noop
[421160 evals] best 6.00074e-10 (fails 27) via place_missing noop
[470040 evals] best 6.03394e-10 (fails 27) via swap 1/llrll
[496760 evals] best 6.12296e-10 (fails 27) via crossover llllrr<->rrrrr
[513240 evals] best 6.12376e-10 (fails 27) via swap 0/rrrr
[541400 evals] best 2.44951e-09 (fails 25) via level_retype 1/rlrlr<->0/llllrl
[638920 evals] best 2.44988e-09 (fails 25) via rotate 0/rrrr
[641880 evals] best 3.74964e-09 (fails 24) via crossover rrl<->rrrr
[649560 evals] best 3.77483e-09 (fails 24) via swap 0/rrl
[657240 evals] best 3.7751e-09 (fails 24) via core_undivide noop
[660920 evals] best 3.82849e-09 (fails 24) via swap 0/rlllrl
[661400 evals] best 3.84511e-09 (fails 24) via core_undivide noop
[661880 evals] best 3.84837e-09 (fails 24) via place_missing noop
[662680 evals] best 3.84862e-09 (fails 24) via place_missing noop
[665960 evals] best 3.84862e-09 (fails 24) via level_retype 1/llrllr<->0/lrlr
[670120 evals] best 3.85159e-09 (fails 24) via rotate 0/llllr
[671400 evals] best 3.85159e-09 (fails 24) via crossover r<->r
[681960 evals] best 3.85482e-09 (fails 24) via swap 0/rrrr
[682840 evals] best 3.85582e-09 (fails 24) via place_missing noop
[693080 evals] best 3.85764e-09 (fails 24) via rotate 1/lrrlr
[701960 evals] best 3.87466e-09 (fails 24) via rotate 0/llllr
[708760 evals] best 4.4024e-09 (fails 24) via level_retype 0/rlllrr<->1/lrrrll
[709080 evals] best 7.90799e-09 (fails 23) via rotate 0/rlllr
[713160 evals] best 7.90837e-09 (fails 23) via core_undivide noop
[722600 evals] best 7.90905e-09 (fails 23) via rotate 0/rrrr
[734520 evals] best 9.17808e-09 (fails 23) via retype 1/llrllr->O
[735000 evals] best 9.18197e-09 (fails 23) via rotate 0/rlr
[735800 evals] best 9.18331e-09 (fails 23) via rotate 0/rrrr
[809480 evals] best 2.30234e-08 (fails 22) via core_divide lrlr (2 floors)
[809960 evals] best 2.34106e-08 (fails 22) via place_missing noop
[847320 evals] best 2.46791e-08 (fails 22) via swap 0/llllr
[922120 evals] best 2.49586e-08 (fails 22) via swap 0/rrl
[974440 evals] best 4.80041e-08 (fails 21) via level_retype 1/llll<->0/llllrr
[974760 evals] best 4.80092e-08 (fails 21) via crossover lrrrlr<->lrlrrl
[988280 evals] best 4.80353e-08 (fails 21) via retype 0/rllrr->st2
[989560 evals] best 4.83453e-08 (fails 21) via place_missing noop
[993240 evals] best 4.86695e-08 (fails 21) via place_missing noop
[994360 evals] best 4.87958e-08 (fails 21) via level_fix st2: lvl0/rllrr → lvl1/rlll
[998200 evals] best 4.89159e-08 (fails 21) via core_undivide noop
[1002600 evals] best 4.89367e-08 (fails 21) via place_missing noop
[1009720 evals] best 4.8962e-08 (fails 21) via place_missing noop
[1011880 evals] best 4.89682e-08 (fails 21) via place_missing noop
[1022200 evals] best 4.91525e-08 (fails 21) via place_missing noop
[1023080 evals] best 4.92746e-08 (fails 21) via level_fix st2: lvl0/rllrr → lvl1/rlll
[1023880 evals] best 4.93868e-08 (fails 21) via core_undivide noop
[1028360 evals] best 4.94032e-08 (fails 21) via place_missing noop
[1029720 evals] best 4.94208e-08 (fails 21) via place_missing noop
[1029960 evals] best 4.94221e-08 (fails 21) via place_missing noop
[1058760 evals] best 8.61399e-08 (fails 20) via rotate 0/rlllr
[1060200 evals] best 8.62097e-08 (fails 20) via place_missing noop
[1063880 evals] best 8.62206e-08 (fails 20) via place_missing noop
[1083320 evals] best 8.62206e-08 (fails 20) via undivide 0/rllr
[1087160 evals] best 8.62355e-08 (fails 20) via rotate 0/rlllrr
[1088040 evals] best 8.62463e-08 (fails 20) via core_undivide noop
[1178920 evals] best 8.62463e-08 (fails 20) via undivide 0/rllr
[1645640 evals] best 8.64196e-08 (fails 20) via level_retype 1/rlrllr<->0/rrlr
[1651080 evals] best 8.66028e-08 (fails 20) via undivide 0/rrl
[1783320 evals] best 8.66028e-08 (fails 20) via undivide 0/rllr
[1846200 evals] best 8.66287e-08 (fails 20) via rotate 0/rlllrr
[1955720 evals] best 8.66287e-08 (fails 20) via undivide 0/rllr
[2308920 evals] interrupted — returning best-so-far
--- interrupted ---
elapsed : 210772.1s
evals : 2308920 across 28860 topologies
best : 8.66287e-08 (20 fails) via undivide 0/rllr
improvement history:
[ 200] 7.13373e-29 (seed)
[ 680] 7.13374e-29 (level_fix noop)
[ 1800] 1.43878e-28 (place_missing r -> lrrrl)
[ 4200] 2.61821e-28 (place_missing t -> rllrr)
[ 4360] 1.39503e-27 (core_divide rlrr (2 floors))
[ 4440] 2.20221e-27 (divide 0/rllrl)
[ 7560] 3.47487e-27 (core_undivide noop)
[ 8040] 4.94517e-26 (retype 0/rrl->r)
[ 9000] 3.79585e-25 (place_missing r -> lrrrl)
[ 9720] 3.93644e-25 (place_missing n -> rllr)
[ 10920] 6.00163e-24 (place_missing r -> lrrrl)
[ 12120] 6.11587e-24 (level_fix noop)
[ 12920] 6.29222e-24 (core_undivide noop)
[ 15000] 1.71947e-23 (place_missing m -> lrrl)
[ 15480] 1.73099e-23 (level_fix noop)
[ 19560] 6.08444e-23 (place_missing n -> rllrrr)
[ 27640] 6.14994e-23 (level_fix noop)
[ 28520] 6.20043e-23 (level_fix noop)
[ 29000] 6.23843e-23 (core_undivide noop)
[ 30120] 6.25916e-23 (core_undivide noop)
[ 30760] 6.26442e-23 (core_undivide noop)
[ 31320] 1.23029e-22 (undivide 0/rllrrr)
[ 31640] 1.85407e-21 (crossover rrl<->rlrr)
[ 33800] 1.8746e-21 (core_undivide noop)
[ 34040] 1.88627e-21 (core_undivide noop)
[ 35880] 1.89096e-21 (core_undivide noop)
[ 36200] 8.63218e-21 (swap 1/lrrrr)
[ 40680] 8.70626e-21 (level_compound_fix noop)
[ 41080] 1.67189e-20 (place_missing r -> llrlrl)
[ 41640] 1.67761e-20 (level_compound_fix noop)
[ 44920] 7.29193e-20 (crossover lrrlr<->rllrl)
[ 45960] 7.31576e-20 (level_compound_fix noop)
[ 47080] 1.36215e-19 (place_missing t -> rrrr)
[ 47480] 1.36247e-19 (level_fix noop)
[ 48360] 1.36406e-19 (level_fix noop)
[ 48600] 1.36485e-19 (crossover lrrlr<->rllrl)
[ 49160] 1.36534e-19 (level_compound_fix noop)
[ 50760] 1.36993e-19 (rotate 0/lrlr)
[ 57880] 1.37008e-19 (level_fix noop)
[ 57960] 1.37024e-19 (core_undivide noop)
[ 59320] 1.37041e-19 (level_fix noop)
[ 63160] 1.37057e-19 (core_undivide noop)
[ 63320] 1.37735e-19 (rotate 0/lrr)
[ 66600] 2.94829e-19 (level_retype 1/lrrrlrl<->0/llllrl)
[ 71800] 2.94872e-19 (core_undivide noop)
[ 74280] 5.90024e-19 (divide 0/rrrrr)
[ 75240] 7.62368e-19 (level_retype 0/rlll<->1/rlrlr)
[ 81320] 7.69032e-19 (level_retype 1/rlrlll<->0/rrrrl)
[ 83160] 1.03682e-18 (level_retype 1/lrlrl<->0/rllrrr)
[ 83480] 1.04208e-18 (rotate 0/rrrrr)
[ 89320] 1.04721e-18 (core_undivide noop)
[ 90760] 1.05258e-18 (core_undivide noop)
[ 92040] 1.22112e-18 (rotate 0/rrrr)
[ 96200] 1.54735e-18 (crossover lrrrr<->llllrl)
[ 98680] 1.54777e-18 (place_missing noop)
[ 99640] 1.54818e-18 (core_undivide noop)
[100600] 1.54858e-18 (core_undivide noop)
[102920] 1.54897e-18 (place_missing noop)
[103560] 1.54911e-18 (place_missing noop)
[104360] 1.62548e-18 (undivide 0/lrlr)
[105800] 1.62563e-18 (level_retype 0/rlrrr<->1/lrrrrl)
[106040] 1.62578e-18 (place_missing noop)
[109000] 1.62595e-18 (place_missing noop)
[109240] 1.62612e-18 (place_missing noop)
[109400] 1.6263e-18 (place_missing noop)
[110440] 1.62644e-18 (core_undivide noop)
[110520] 1.62653e-18 (crossover lrlr<->lrlrl)
[111160] 3.25423e-18 (divide 0/rrrrr)
[115320] 3.25464e-18 (place_missing noop)
[117800] 3.25582e-18 (level_retype 1/lrrrrr<->0/lrrrr)
[118360] 3.25868e-18 (place_missing noop)
[119640] 3.74625e-18 (place_missing r -> lrrl)
[120280] 3.74647e-18 (place_missing noop)
[120360] 3.74667e-18 (place_missing noop)
[123320] 3.74676e-18 (core_undivide noop)
[123720] 6.40395e-18 (divide 1/llrr)
[123880] 2.88855e-17 (place_missing r -> lrrl)
[124840] 2.89001e-17 (level_retype 0/lrrrr<->1/llrlrll)
[126600] 2.89018e-17 (place_missing noop)
[127480] 2.89033e-17 (place_missing noop)
[128360] 4.59545e-16 (level_compound_fix st1: lvl1 → lvl0/rllr)
[129800] 4.59566e-16 (core_undivide noop)
[133800] 4.59579e-16 (place_missing noop)
[138360] 9.21879e-16 (level_retype 0/lrrll<->1/rlrlr)
[138920] 9.21905e-16 (undivide 1/lrrrlr)
[177400] 1.02387e-15 (undivide 1/rrl)
[179960] 2.0557e-15 (divide 0/rrrrr)
[180440] 2.05953e-15 (level_retype 1/rllr<->0/rrrrrr)
[180760] 2.0647e-15 (crossover rlllrlrr<->rlllrlrr)
[185960] 4.03185e-15 (divide 0/lrrrl)
[189560] 4.04284e-15 (core_undivide noop)
[191560] 4.26565e-15 (crossover rrl<->rlrrr)
[192760] 4.27557e-15 (place_missing noop)
[194200] 8.22369e-15 (crossover llllrr<->rrrrr)
[194600] 1.65717e-14 (crossover rrrr<->rlllrlr)
[197640] 1.66031e-14 (core_undivide noop)
[201400] 3.39094e-14 (divide 0/rllr)
[205560] 4.33243e-14 (level_fix st2: lvl0/llllrrr → lvl1/rlll)
[206200] 8.67874e-14 (core_undivide noop)
[208360] 9.28664e-14 (level_fix of: lvl1/lrrll → lvl0/rllr)
[209960] 9.86678e-14 (level_fix of: lvl1/lrrll → lvl0/rllr)
[211640] 9.89888e-14 (place_missing noop)
[212440] 9.93193e-14 (core_undivide noop)
[214200] 9.96673e-14 (place_missing noop)
[216520] 1.0003e-13 (place_missing noop)
[220440] 1.96926e-13 (undivide 1/lrlr)
[221720] 1.99592e-13 (undivide 1/lrlr)
[222200] 2.00319e-13 (core_undivide noop)
[224040] 2.01076e-13 (place_missing noop)
[225800] 2.01871e-13 (level_retype 0/llllrrr<->1/lrrlrrr)
[228920] 3.94547e-13 (undivide 0/lrrl)
[229640] 3.9913e-13 (crossover lrrl<->lrrl)
[230600] 1.03507e-12 (place_missing n -> rllr)
[232600] 1.0387e-12 (swap 0/rrrr)
[232760] 1.03877e-12 (place_missing n -> rllr)
[235560] 1.21726e-13 (divide 1/rrrl)
[239640] 2.9842e-12 (place_missing noop)
[241560] 2.99774e-12 (place_missing noop)
[244200] 3.00495e-12 (core_undivide noop)
[244920] 3.01614e-12 (level_retype 0/llllrrr<->1/llrlrlr)
[245000] 3.16105e-12 (rotate 1/lrrlrr)
[245800] 3.21175e-12 (place_missing noop)
[248760] 3.21456e-12 (place_missing noop)
[250760] 3.2718e-12 (place_missing noop)
[251000] 3.28567e-12 (place_missing noop)
[251480] 3.33817e-12 (divide 0/rllr)
[251640] 3.41781e-12 (place_missing noop)
[252680] 3.44722e-12 (core_undivide noop)
[255160] 3.48209e-12 (core_undivide noop)
[258040] 3.50923e-12 (crossover rrl<->lrrrlr)
[258440] 3.56524e-12 (place_missing noop)
[259240] 7.13048e-12 (rotate 0/rllr)
[261560] 7.15069e-12 (place_missing noop)
[263720] 1.3349e-11 (swap 0/rllr)
[268200] 1.33728e-11 (place_missing noop)
[269560] 1.33841e-11 (place_missing noop)
[269720] 1.35872e-11 (place_missing noop)
[276360] 2.722e-11 (swap 0/lrl)
[277400] 2.731e-11 (core_undivide noop)
[278280] 5.46451e-11 (level_fix st2: lvl0/rllrl → lvl1/rlll)
[282120] 5.47747e-11 (place_missing noop)
[283400] 5.49101e-11 (retype 0/llllrrl->st2)
[284360] 5.49984e-11 (core_undivide noop)
[287240] 5.50909e-11 (rotate 0/rlllr)
[287720] 5.53032e-11 (place_missing noop)
[288520] 5.544e-11 (place_missing noop)
[289560] 5.55504e-11 (core_undivide noop)
[291560] 5.56508e-11 (rotate 0/lrrrl)
[291960] 5.57529e-11 (place_missing noop)
[294120] 5.59089e-11 (place_missing noop)
[296120] 5.60467e-11 (place_missing noop)
[300440] 5.61355e-11 (core_undivide noop)
[301720] 5.62247e-11 (place_missing noop)
[303160] 5.63495e-11 (place_missing noop)
[305240] 6.24375e-11 (rotate 0/rlrr)
[309560] 6.2556e-11 (place_missing noop)
[313080] 6.27168e-11 (core_undivide noop)
[315480] 6.28651e-11 (place_missing noop)
[317240] 6.29148e-11 (place_missing noop)
[317560] 6.33648e-11 (divide 0/rrl)
[319800] 6.48073e-11 (crossover rrll<->rrrrl)
[335160] 6.5715e-11 (swap 1/rrrl)
[355640] 6.61765e-11 (rotate 0/rr)
[367240] 1.41943e-10 (level_retype 0/rrl<->1/lrrrll)
[369080] 1.4196e-10 (place_missing noop)
[378440] 1.42097e-10 (place_missing noop)
[380520] 1.42479e-10 (place_missing noop)
[381640] 1.43053e-10 (core_undivide noop)
[384680] 1.43342e-10 (core_undivide noop)
[397960] 5.77526e-10 (rotate 0/rrr)
[406600] 5.77589e-10 (place_missing noop)
[421160] 6.00074e-10 (place_missing noop)
[470040] 6.03394e-10 (swap 1/llrll)
[496760] 6.12296e-10 (crossover llllrr<->rrrrr)
[513240] 6.12376e-10 (swap 0/rrrr)
[541400] 2.44951e-09 (level_retype 1/rlrlr<->0/llllrl)
[638920] 2.44988e-09 (rotate 0/rrrr)
[641880] 3.74964e-09 (crossover rrl<->rrrr)
[649560] 3.77483e-09 (swap 0/rrl)
[657240] 3.7751e-09 (core_undivide noop)
[660920] 3.82849e-09 (swap 0/rlllrl)
[661400] 3.84511e-09 (core_undivide noop)
[661880] 3.84837e-09 (place_missing noop)
[662680] 3.84862e-09 (place_missing noop)
[665960] 3.84862e-09 (level_retype 1/llrllr<->0/lrlr)
[670120] 3.85159e-09 (rotate 0/llllr)
[671400] 3.85159e-09 (crossover r<->r)
[681960] 3.85482e-09 (swap 0/rrrr)
[682840] 3.85582e-09 (place_missing noop)
[693080] 3.85764e-09 (rotate 1/lrrlr)
[701960] 3.87466e-09 (rotate 0/llllr)
[708760] 4.4024e-09 (level_retype 0/rlllrr<->1/lrrrll)
[709080] 7.90799e-09 (rotate 0/rlllr)
[713160] 7.90837e-09 (core_undivide noop)
[722600] 7.90905e-09 (rotate 0/rrrr)
[734520] 9.17808e-09 (retype 1/llrllr->O)
[735000] 9.18197e-09 (rotate 0/rlr)
[735800] 9.18331e-09 (rotate 0/rrrr)
[809480] 2.30234e-08 (core_divide lrlr (2 floors))
[809960] 2.34106e-08 (place_missing noop)
[847320] 2.46791e-08 (swap 0/llllr)
[922120] 2.49586e-08 (swap 0/rrl)
[974440] 4.80041e-08 (level_retype 1/llll<->0/llllrr)
[974760] 4.80092e-08 (crossover lrrrlr<->lrlrrl)
[988280] 4.80353e-08 (retype 0/rllrr->st2)
[989560] 4.83453e-08 (place_missing noop)
[993240] 4.86695e-08 (place_missing noop)
[994360] 4.87958e-08 (level_fix st2: lvl0/rllrr → lvl1/rlll)
[998200] 4.89159e-08 (core_undivide noop)
[1002600] 4.89367e-08 (place_missing noop)
[1009720] 4.8962e-08 (place_missing noop)
[1011880] 4.89682e-08 (place_missing noop)
[1022200] 4.91525e-08 (place_missing noop)
[1023080] 4.92746e-08 (level_fix st2: lvl0/rllrr → lvl1/rlll)
[1023880] 4.93868e-08 (core_undivide noop)
[1028360] 4.94032e-08 (place_missing noop)
[1029720] 4.94208e-08 (place_missing noop)
[1029960] 4.94221e-08 (place_missing noop)
[1058760] 8.61399e-08 (rotate 0/rlllr)
[1060200] 8.62097e-08 (place_missing noop)
[1063880] 8.62206e-08 (place_missing noop)
[1083320] 8.62206e-08 (undivide 0/rllr)
[1087160] 8.62355e-08 (rotate 0/rlllrr)
[1088040] 8.62463e-08 (core_undivide noop)
[1178920] 8.62463e-08 (undivide 0/rllr)
[1645640] 8.64196e-08 (level_retype 1/rlrllr<->0/rrlr)
[1651080] 8.66028e-08 (undivide 0/rrl)
[1783320] 8.66028e-08 (undivide 0/rllr)
[1846200] 8.66287e-08 (rotate 0/rlllrr)
[1955720] 8.66287e-08 (undivide 0/rllr)
written : /home/bruno/src/homemaker-layout/examples/harbor-house/evolved-warmshare.dom

View file

@ -1,616 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.5453707551767608
- 0.5453707551767608
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.5522887920141253
- 0.5522887920141253
l:
rotation: 3
division:
- 0.5422240475759911
- 0.5422240475759911
l:
rotation: 3
division:
- 0.5884031332206187
- 0.5884031332206187
l:
type: da1
rotation: 0
r:
rotation: 1
division:
- 0.4351188444584838
- 0.4351188444584838
l:
rotation: 3
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: st1
rotation: 0
r:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.5858843654327277
- 0.5858843654327277
l:
rotation: 1
division:
- 0.6692443578136734
- 0.6692443578136734
l:
rotation: 3
division:
- 0.7222802898935807
- 0.7222802898935807
l:
rotation: 0
division:
- 0.5791570312500001
- 0.5791570312500001
l:
rotation: 3
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: t
rotation: 0
r:
type: cr1
rotation: 0
r:
type: cr1
rotation: 0
r:
type: O
rotation: 1
r:
type: ws1
rotation: 0
r:
rotation: 1
division:
- 0.6234470574437853
- 0.6234470574437853
l:
rotation: 0
division:
- 0.5902842616284559
- 0.5902842616284559
l:
rotation: 1
division:
- 0.7339337357234825
- 0.7339337357234825
l:
type: n
rotation: 0
r:
type: O
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.7824086560875603
- 0.7824086560875603
l:
rotation: 0
division:
- 0.7039689912158207
- 0.7039689912158207
l:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.5936359570312502
- 0.5936359570312502
l:
type: st1
rotation: 0
r:
type: cr1
rotation: 0
r:
type: C
rotation: 1
r:
rotation: 1
division:
- 0.6570350194962238
- 0.6570350194962238
l:
rotation: 0
division:
- 0.38409579126711796
- 0.38409579126711796
l:
rotation: 3
division:
- 0.7722513353285644
- 0.7722513353285644
l:
rotation: 0
division:
- 0.5566301900554915
- 0.5566301900554915
l:
type: me1
rotation: 0
r:
type: C
rotation: 3
r:
rotation: 3
division:
- 0.41924682120742435
- 0.41924682120742435
l:
type: t
rotation: 0
r:
type: ef1
rotation: 0
r:
rotation: 1
division:
- 0.5923752795527412
- 0.5923752795527412
l:
rotation: 3
division:
- 0.8429374722623478
- 0.8429374722623478
l:
type: n
rotation: 0
r:
type: la1
rotation: 0
r:
rotation: 1
division:
- 0.6090773265385678
- 0.6090773265385678
l:
rotation: 3
division:
- 0.7764295659905632
- 0.7764295659905632
l:
rotation: 3
division:
- 0.6385206269531251
- 0.6385206269531251
l:
type: st2
rotation: 0
r:
type: C
rotation: 3
r:
type: t
rotation: 0
r:
type: O
rotation: 1
r:
rotation: 1
division:
- 0.6421146395641212
- 0.6421146395641212
l:
rotation: 2
division:
- 0.22974356566741397
- 0.22974356566741397
l:
rotation: 3
division:
- 0.6084768559570314
- 0.6084768559570314
l:
type: m
rotation: 0
r:
rotation: 0
division:
- 0.968265351741025
- 0.968265351741025
l:
type: t
rotation: 0
r:
type: st2
rotation: 0
r:
type: O
rotation: 3
r:
rotation: 1
division:
- 0.8784173200136786
- 0.8784173200136786
l:
rotation: 0
division:
- 0.4059970339301521
- 0.4059970339301521
l:
type: m
rotation: 1
r:
type: C
rotation: 1
r:
rotation: 1
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: O
rotation: 0
above:
rotation: 0
division:
- 0.5326764625682993
- 0.5326764625682993
height: 3.0
l:
rotation: 0
division:
- 0.5536579163160164
- 0.5536579163160164
l:
rotation: 0
division:
- 0.4853471066909839
- 0.4853471066909839
l:
rotation: 0
division:
- 0.7987297048921393
- 0.7987297048921393
l:
rotation: 0
division:
- 0.7297117619482362
- 0.7297117619482362
l:
rotation: 3
division:
- 0.7579431477526928
- 0.7579431477526928
l:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.6236887773559573
- 0.6236887773559573
l:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 3
division:
- 0.551578125
- 0.551578125
l:
type: O
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.43356671101589384
- 0.43356671101589384
l:
rotation: 0
division:
- 0.13133577297899704
- 0.13133577297899704
l:
rotation: 1
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.5797285677939966
- 0.5797285677939966
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.551578125
- 0.551578125
l:
type: st1
rotation: 0
r:
rotation: 3
division:
- 0.670845733692627
- 0.670845733692627
l:
type: li1
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 0
division:
- 0.781888627381648
- 0.781888627381648
l:
rotation: 0
division:
- 0.38499157916891213
- 0.38499157916891213
l:
rotation: 0
division:
- 0.2012702951078606
- 0.2012702951078606
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.4444444444444444
- 0.4444444444444444
l:
rotation: 0
division:
- 0.9730225242044375
- 0.9730225242044375
l:
type: r
rotation: 2
r:
rotation: 1
division:
- 0.5004934210526315
- 0.5004934210526315
l:
type: st2
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5945754854305073
- 0.5945754854305073
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.4902664331159802
- 0.4902664331159802
l:
rotation: 0
division:
- 0.6499007975748095
- 0.6499007975748095
l:
rotation: 0
division:
- 0.5193481864706366
- 0.5193481864706366
l:
rotation: 0
division:
- 0.26078324488789595
- 0.26078324488789595
l:
rotation: 0
division:
- 0.5010799367804276
- 0.5010799367804276
l:
type: ut1
rotation: 3
r:
type: O
rotation: 0
r:
type: m
rotation: 3
r:
rotation: 0
division:
- 0.7987297048921393
- 0.7987297048921393
l:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.2873334582149999
- 0.2873334582149999
l:
rotation: 0
division:
- 0.375
- 0.375
l:
type: n
rotation: 0
r:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.4595786624530838
- 0.4595786624530838
l:
rotation: 0
division:
- 0.9210526315789473
- 0.9210526315789473
l:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.7294856269372924
- 0.7294856269372924
l:
type: st1
rotation: 0
r:
rotation: 1
division:
- 0.7039689912158207
- 0.7039689912158207
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5559478988311726
- 0.5559478988311726
l:
rotation: 0
division:
- 0.2012702951078606
- 0.2012702951078606
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5936359570312502
- 0.5936359570312502
l:
type: C
rotation: 3
r:
type: t
rotation: 1
r:
type: O
rotation: 2

View file

@ -1,600 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.5453707551767608
- 0.5453707551767608
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.5522887920141253
- 0.5522887920141253
l:
rotation: 3
division:
- 0.5422240475759911
- 0.5422240475759911
l:
rotation: 3
division:
- 0.5884031332206187
- 0.5884031332206187
l:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.4351188444584838
- 0.4351188444584838
l:
rotation: 3
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: st1
rotation: 3
r:
type: me1
rotation: 0
r:
rotation: 1
division:
- 0.5858843654327277
- 0.5858843654327277
l:
rotation: 1
division:
- 0.6692443578136734
- 0.6692443578136734
l:
rotation: 3
division:
- 0.7222802898935807
- 0.7222802898935807
l:
rotation: 0
division:
- 0.5791570312500001
- 0.5791570312500001
l:
rotation: 3
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: t
rotation: 0
r:
type: cr1
rotation: 0
r:
type: cr1
rotation: 0
r:
type: O
rotation: 1
r:
type: ws1
rotation: 0
r:
rotation: 1
division:
- 0.6234470574437853
- 0.6234470574437853
l:
rotation: 0
division:
- 0.5902842616284559
- 0.5902842616284559
l:
rotation: 1
division:
- 0.7385208215717542
- 0.7385208215717542
l:
type: n
rotation: 0
r:
type: O
rotation: 0
r:
type: da1
rotation: 0
r:
rotation: 1
division:
- 0.7824086560875603
- 0.7824086560875603
l:
rotation: 0
division:
- 0.7215682159962162
- 0.7215682159962162
l:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.5936359570312502
- 0.5936359570312502
l:
type: st1
rotation: 0
r:
type: cr1
rotation: 0
r:
type: C
rotation: 1
r:
rotation: 1
division:
- 0.6570350194962238
- 0.6570350194962238
l:
rotation: 0
division:
- 0.38409579126711796
- 0.38409579126711796
l:
rotation: 3
division:
- 0.7722513353285644
- 0.7722513353285644
l:
rotation: 0
division:
- 0.629026904149584
- 0.629026904149584
l:
type: m
rotation: 0
r:
type: C
rotation: 3
r:
type: ef1
rotation: 3
r:
rotation: 1
division:
- 0.5923752795527412
- 0.5923752795527412
l:
rotation: 3
division:
- 0.8429374722623478
- 0.8429374722623478
l:
type: n
rotation: 0
r:
type: la1
rotation: 0
r:
rotation: 1
division:
- 0.6090773265385678
- 0.6090773265385678
l:
rotation: 3
division:
- 0.9561064910184571
- 0.9561064910184571
l:
rotation: 3
division:
- 0.6385206269531251
- 0.6385206269531251
l:
type: st2
rotation: 0
r:
type: C
rotation: 3
r:
type: O
rotation: 0
r:
type: O
rotation: 1
r:
rotation: 1
division:
- 0.646127856061397
- 0.646127856061397
l:
rotation: 2
division:
- 0.23548715480909932
- 0.23548715480909932
l:
rotation: 3
division:
- 0.6084768559570314
- 0.6084768559570314
l:
type: m
rotation: 0
r:
rotation: 0
division:
- 0.9564169654832019
- 0.9564169654832019
l:
type: t
rotation: 0
r:
type: st2
rotation: 0
r:
type: O
rotation: 3
r:
rotation: 1
division:
- 0.8784173200136786
- 0.8784173200136786
l:
rotation: 0
division:
- 0.4161469597784059
- 0.4161469597784059
l:
type: m
rotation: 1
r:
type: C
rotation: 1
r:
type: O
rotation: 1
above:
rotation: 0
division:
- 0.5326764625682993
- 0.5326764625682993
height: 3.0
l:
rotation: 0
division:
- 0.5536579163160164
- 0.5536579163160164
l:
rotation: 0
division:
- 0.4853471066909839
- 0.4853471066909839
l:
rotation: 0
division:
- 0.7987297048921393
- 0.7987297048921393
l:
rotation: 0
division:
- 0.7297117619482362
- 0.7297117619482362
l:
rotation: 3
division:
- 0.7579431477526928
- 0.7579431477526928
l:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.6236887773559573
- 0.6236887773559573
l:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.5650312500000001
- 0.5650312500000001
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 3
division:
- 0.551578125
- 0.551578125
l:
type: O
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.43356671101589384
- 0.43356671101589384
l:
rotation: 0
division:
- 0.13133577297899704
- 0.13133577297899704
l:
rotation: 1
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.5797285677939966
- 0.5797285677939966
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.551578125
- 0.551578125
l:
type: st1
rotation: 0
r:
rotation: 3
division:
- 0.670845733692627
- 0.670845733692627
l:
type: r
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 0
division:
- 0.781888627381648
- 0.781888627381648
l:
rotation: 0
division:
- 0.38499157916891213
- 0.38499157916891213
l:
rotation: 0
division:
- 0.2012702951078606
- 0.2012702951078606
l:
type: n
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.4444444444444444
- 0.4444444444444444
l:
rotation: 0
division:
- 0.9730225242044375
- 0.9730225242044375
l:
type: r
rotation: 2
r:
rotation: 1
division:
- 0.5004934210526315
- 0.5004934210526315
l:
type: st2
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.5945754854305073
- 0.5945754854305073
l:
type: r
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.4902664331159802
- 0.4902664331159802
l:
rotation: 0
division:
- 0.6499007975748095
- 0.6499007975748095
l:
rotation: 0
division:
- 0.5193481864706366
- 0.5193481864706366
l:
rotation: 0
division:
- 0.26078324488789595
- 0.26078324488789595
l:
rotation: 0
division:
- 0.5136069351999384
- 0.5136069351999384
l:
type: ut1
rotation: 3
r:
type: O
rotation: 0
r:
type: li1
rotation: 3
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.2873334582149999
- 0.2873334582149999
l:
rotation: 0
division:
- 0.375
- 0.375
l:
type: n
rotation: 0
r:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.4595786624530838
- 0.4595786624530838
l:
rotation: 0
division:
- 0.9210526315789473
- 0.9210526315789473
l:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.7294856269372924
- 0.7294856269372924
l:
type: st1
rotation: 0
r:
rotation: 3
division:
- 0.7039689912158207
- 0.7039689912158207
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5559478988311726
- 0.5559478988311726
l:
rotation: 0
division:
- 0.2012702951078606
- 0.2012702951078606
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5936359570312502
- 0.5936359570312502
l:
type: C
rotation: 3
r:
type: r
rotation: 1
r:
type: O
rotation: 2

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,536 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.5386377828906278
- 0.5386377828906278
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.5517443075001449
- 0.5517443075001449
l:
rotation: 3
division:
- 0.5158947481748943
- 0.5158947481748943
l:
rotation: 3
division:
- 0.5878230446896753
- 0.5878230446896753
l:
type: da1
rotation: 0
r:
rotation: 1
division:
- 0.43468987418790384
- 0.43468987418790384
l:
rotation: 2
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: O
rotation: 0
r:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.5179419369082577
- 0.5179419369082577
l:
rotation: 1
division:
- 0.6367472099130139
- 0.6367472099130139
l:
rotation: 3
division:
- 0.7039689912158207
- 0.7039689912158207
l:
type: t
rotation: 0
r:
type: cr1
rotation: 0
r:
rotation: 1
division:
- 0.7035502113281252
- 0.7035502113281252
l:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5139609239961543
- 0.5139609239961543
l:
type: C
rotation: 0
r:
type: ws1
rotation: 0
r:
rotation: 1
division:
- 0.5931737335114493
- 0.5931737335114493
l:
rotation: 0
division:
- 0.5616212557627989
- 0.5616212557627989
l:
rotation: 1
division:
- 0.7153269981002015
- 0.7153269981002015
l:
type: m
rotation: 0
r:
type: O
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.7258279395694767
- 0.7258279395694767
l:
type: n
rotation: 0
r:
type: C
rotation: 3
r:
rotation: 1
division:
- 0.6563872689019125
- 0.6563872689019125
l:
rotation: 0
division:
- 0.3837171230535781
- 0.3837171230535781
l:
rotation: 3
division:
- 0.7714899965162132
- 0.7714899965162132
l:
rotation: 0
division:
- 0.5543490846014826
- 0.5543490846014826
l:
type: me1
rotation: 0
r:
type: C
rotation: 3
r:
rotation: 3
division:
- 0.4188334986758365
- 0.4188334986758365
l:
type: m
rotation: 0
r:
type: ef1
rotation: 0
r:
rotation: 1
division:
- 0.5917912750050387
- 0.5917912750050387
l:
rotation: 1
division:
- 0.8215672645503999
- 0.8215672645503999
l:
type: n
rotation: 0
r:
type: la1
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.6105714203573651
- 0.6105714203573651
l:
rotation: 0
division:
- 0.13738512099882866
- 0.13738512099882866
l:
type: t
rotation: 0
r:
type: C
rotation: 3
r:
rotation: 1
division:
- 0.8352659754204284
- 0.8352659754204284
l:
rotation: 0
division:
- 0.3860528485005146
- 0.3860528485005146
l:
type: m
rotation: 0
r:
rotation: 1
division:
- 0.6121720340397159
- 0.6121720340397159
l:
rotation: 1
division:
- 0.5125
- 0.5125
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
type: O
rotation: 0
above:
rotation: 0
division:
- 0.5326764625682993
- 0.5326764625682993
height: 3.0
l:
rotation: 0
division:
- 0.5536579163160164
- 0.5536579163160164
l:
rotation: 0
division:
- 0.4853471066909839
- 0.4853471066909839
l:
rotation: 0
division:
- 0.7987297048921393
- 0.7987297048921393
l:
rotation: 0
division:
- 0.5993870419844443
- 0.5993870419844443
l:
rotation: 3
division:
- 0.7571959149418948
- 0.7571959149418948
l:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 1
division:
- 0.7211389666113284
- 0.7211389666113284
l:
type: r
rotation: 0
r:
type: st1
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.43356671101589384
- 0.43356671101589384
l:
rotation: 0
division:
- 0.13133577297899704
- 0.13133577297899704
l:
rotation: 1
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.5791570312500001
- 0.5791570312500001
l:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.3350957664191451
- 0.3350957664191451
l:
type: li1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.781888627381648
- 0.781888627381648
l:
rotation: 0
division:
- 0.38499157916891213
- 0.38499157916891213
l:
rotation: 0
division:
- 0.2012702951078606
- 0.2012702951078606
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.4444444444444444
- 0.4444444444444444
l:
rotation: 0
division:
- 0.7997188424651172
- 0.7997188424651172
l:
type: r
rotation: 0
r:
rotation: 3
division:
- 0.5
- 0.5
l:
type: t
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.538125
- 0.538125
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.4902664331159802
- 0.4902664331159802
l:
rotation: 0
division:
- 0.6499007975748095
- 0.6499007975748095
l:
rotation: 0
division:
- 0.5193481864706366
- 0.5193481864706366
l:
rotation: 0
division:
- 0.26078324488789595
- 0.26078324488789595
l:
rotation: 0
division:
- 0.5005859374999999
- 0.5005859374999999
l:
type: ut1
rotation: 3
r:
type: O
rotation: 0
r:
rotation: 2
division:
- 0.5
- 0.5
l:
type: n
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.7987297048921393
- 0.7987297048921393
l:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.2873334582149999
- 0.2873334582149999
l:
rotation: 0
division:
- 0.375
- 0.375
l:
type: n
rotation: 0
r:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.4595786624530838
- 0.4595786624530838
l:
rotation: 0
division:
- 0.9210526315789473
- 0.9210526315789473
l:
type: r
rotation: 0
r:
rotation: 3
division:
- 0.6233177548828126
- 0.6233177548828126
l:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5559478988311726
- 0.5559478988311726
l:
rotation: 0
division:
- 0.2012702951078606
- 0.2012702951078606
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
type: O
rotation: 3
r:
type: O
rotation: 2

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,464 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.6286425603099974
- 0.6286425603099974
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.6961787241446729
- 0.6961787241446729
l:
rotation: 1
division:
- 0.6961137205157485
- 0.6961137205157485
l:
rotation: 1
division:
- 0.8000952839254911
- 0.8000952839254911
l:
rotation: 0
division:
- 0.34228096821276366
- 0.34228096821276366
l:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.5134228458906376
- 0.5134228458906376
l:
rotation: 3
division:
- 0.7589264352872361
- 0.7589264352872361
l:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.6715791695479109
- 0.6715791695479109
l:
type: C
rotation: 0
r:
type: t
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 2
division:
- 0.5008445945945945
- 0.5008445945945945
l:
type: O
rotation: 0
r:
type: st2
rotation: 0
r:
type: da1
rotation: 1
r:
rotation: 1
division:
- 0.6306097307187415
- 0.6306097307187415
l:
rotation: 0
division:
- 0.6050962605989646
- 0.6050962605989646
l:
type: ws1
rotation: 0
r:
rotation: 3
division:
- 0.41604578538190495
- 0.41604578538190495
l:
type: m
rotation: 0
r:
rotation: 1
division:
- 0.5801999047842895
- 0.5801999047842895
l:
type: ef1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.5554214466016547
- 0.5554214466016547
l:
rotation: 3
division:
- 0.6634630133762056
- 0.6634630133762056
l:
type: la1
rotation: 0
r:
type: C
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.3183073798142892
- 0.3183073798142892
l:
rotation: 1
division:
- 0.7288929527865818
- 0.7288929527865818
l:
rotation: 0
division:
- 0.6129209569176637
- 0.6129209569176637
l:
type: t
rotation: 0
r:
type: me1
rotation: 1
r:
rotation: 1
division:
- 0.7246951206523857
- 0.7246951206523857
l:
type: C
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.5017094185511319
- 0.5017094185511319
l:
rotation: 1
division:
- 0.30105918664949827
- 0.30105918664949827
l:
rotation: 1
division:
- 0.6638579318365495
- 0.6638579318365495
l:
rotation: 0
division:
- 0.5009003374542805
- 0.5009003374542805
l:
type: C
rotation: 0
r:
type: t
rotation: 0
r:
type: C
rotation: 2
r:
rotation: 1
division:
- 0.6870827721339403
- 0.6870827721339403
l:
type: n
rotation: 0
r:
rotation: 3
division:
- 0.6682526461519316
- 0.6682526461519316
l:
rotation: 0
division:
- 0.5327773503483957
- 0.5327773503483957
l:
type: m
rotation: 0
r:
type: O
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.4214065690013669
- 0.4214065690013669
l:
type: k1
rotation: 0
r:
rotation: 3
division:
- 0.745677282404668
- 0.745677282404668
l:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.6917928468541735
- 0.6917928468541735
l:
type: m
rotation: 0
r:
type: C
rotation: 0
above:
rotation: 0
division:
- 0.5861099820713479
- 0.5861099820713479
height: 3.0
l:
rotation: 0
division:
- 0.8082997680406668
- 0.8082997680406668
l:
rotation: 0
division:
- 0.513508155522566
- 0.513508155522566
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: O
rotation: 2
r:
rotation: 0
division:
- 0.8221134914602137
- 0.8221134914602137
l:
rotation: 1
division:
- 0.5801999047842894
- 0.5801999047842894
l:
type: st2
rotation: 3
r:
rotation: 3
division:
- 0.723190234494442
- 0.723190234494442
l:
rotation: 0
division:
- 0.5910581976888503
- 0.5910581976888503
l:
type: r
rotation: 2
r:
type: ut1
rotation: 0
r:
type: r
rotation: 0
r:
type: st1
rotation: 1
r:
rotation: 0
division:
- 0.48717948717948717
- 0.48717948717948717
l:
rotation: 0
division:
- 0.5263157894736842
- 0.5263157894736842
l:
rotation: 2
division:
- 0.5804589225989242
- 0.5804589225989242
l:
rotation: 3
division:
- 0.5797902238175673
- 0.5797902238175673
l:
type: li1
rotation: 0
r:
type: st2
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.5660486875944284
- 0.5660486875944284
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.3426142512905777
- 0.3426142512905777
l:
rotation: 0
division:
- 0.14221480598659772
- 0.14221480598659772
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.4470578082838084
- 0.4470578082838084
l:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 1
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 2
division:
- 0.5008445945945945
- 0.5008445945945945
l:
type: C
rotation: 0
r:
type: t
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 0
division:
- 0.19149268227071817
- 0.19149268227071817
l:
type: r
rotation: 0
r:
type: O
rotation: 0

View file

@ -1,448 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.5002414199166638
- 0.5002414199166638
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.6198201272472108
- 0.6198201272472108
l:
rotation: 2
division:
- 0.5217605220117958
- 0.5217605220117958
l:
rotation: 1
division:
- 0.7590430919985613
- 0.7590430919985613
l:
rotation: 2
division:
- 0.7938419737388742
- 0.7938419737388742
l:
type: da1
rotation: 0
r:
rotation: 1
division:
- 0.7498144387419106
- 0.7498144387419106
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.5
- 0.5
l:
type: ws1
rotation: 0
r:
type: st2
rotation: 0
r:
rotation: 1
division:
- 0.2911433327061006
- 0.2911433327061006
l:
rotation: 1
division:
- 0.5088642132269535
- 0.5088642132269535
l:
type: t
rotation: 3
r:
rotation: 1
division:
- 0.5335936515673456
- 0.5335936515673456
l:
type: ef1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6472234492470668
- 0.6472234492470668
l:
rotation: 1
division:
- 0.43747481716202774
- 0.43747481716202774
l:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.6165142552980367
- 0.6165142552980367
l:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6134920533416099
- 0.6134920533416099
l:
type: m
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.5765395746194787
- 0.5765395746194787
l:
type: la1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.8472678521275332
- 0.8472678521275332
l:
rotation: 0
division:
- 0.8550118963253994
- 0.8550118963253994
l:
rotation: 1
division:
- 0.3775424828064208
- 0.3775424828064208
l:
rotation: 1
division:
- 0.47923829168651655
- 0.47923829168651655
l:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.7502693114328789
- 0.7502693114328789
l:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.6229469531250001
- 0.6229469531250001
l:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
type: of
rotation: 1
r:
rotation: 3
division:
- 0.5326035404958387
- 0.5326035404958387
l:
rotation: 2
division:
- 0.5011097383268266
- 0.5011097383268266
l:
type: m
rotation: 0
r:
type: m
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.25132830102773074
- 0.25132830102773074
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.7173370258933403
- 0.7173370258933403
l:
rotation: 0
division:
- 0.2593642963194206
- 0.2593642963194206
l:
type: t
rotation: 0
r:
type: me1
rotation: 0
r:
type: C
rotation: 3
above:
rotation: 0
division:
- 0.5662620679201393
- 0.5662620679201393
height: 3.0
l:
rotation: 0
division:
- 0.5300569106355991
- 0.5300569106355991
l:
rotation: 0
division:
- 0.0863852684329759
- 0.0863852684329759
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: n
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5060943172283778
- 0.5060943172283778
l:
rotation: 0
division:
- 0.5599478567102678
- 0.5599478567102678
l:
rotation: 1
division:
- 0.7232561306495806
- 0.7232561306495806
l:
type: st1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.7185803637162013
- 0.7185803637162013
l:
type: O
rotation: 0
r:
type: t
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.4566953630047795
- 0.4566953630047795
l:
rotation: 0
division:
- 0.16593799911395812
- 0.16593799911395812
l:
type: ut1
rotation: 0
r:
rotation: 3
division:
- 0.525234375
- 0.525234375
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.2988974834269737
- 0.2988974834269737
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: st1
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.54782581409007
- 0.54782581409007
l:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5670341721910087
- 0.5670341721910087
l:
rotation: 0
division:
- 0.5878540477469637
- 0.5878540477469637
l:
rotation: 0
division:
- 0.2988974834269737
- 0.2988974834269737
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
type: st2
rotation: 0
r:
rotation: 3
division:
- 0.5
- 0.5
l:
rotation: 3
division:
- 0.6580826806640626
- 0.6580826806640626
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.6164728327412322
- 0.6164728327412322
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.6
- 0.6
l:
rotation: 0
division:
- 0.33824255258409636
- 0.33824255258409636
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5072078035781677
- 0.5072078035781677
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
type: li1
rotation: 0

View file

@ -1,488 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.5066158952271099
- 0.5066158952271099
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.6277119594295387
- 0.6277119594295387
l:
rotation: 2
division:
- 0.5217907300660787
- 0.5217907300660787
l:
rotation: 1
division:
- 0.7976448943474054
- 0.7976448943474054
l:
rotation: 2
division:
- 0.8143512774678288
- 0.8143512774678288
l:
type: da1
rotation: 0
r:
rotation: 1
division:
- 0.7504256284125047
- 0.7504256284125047
l:
rotation: 0
division:
- 0.26287034668662324
- 0.26287034668662324
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: st1
rotation: 0
r:
type: st1
rotation: 0
r:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.5004075606170104
- 0.5004075606170104
l:
type: n
rotation: 0
r:
rotation: 2
division:
- 0.6077531250000001
- 0.6077531250000001
l:
type: ws1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.29138064981873296
- 0.29138064981873296
l:
rotation: 1
division:
- 0.5092789992523881
- 0.5092789992523881
l:
type: t
rotation: 3
r:
rotation: 1
division:
- 0.5473793099601537
- 0.5473793099601537
l:
type: ef1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6477510148237042
- 0.6477510148237042
l:
rotation: 1
division:
- 0.4599966274161975
- 0.4599966274161975
l:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.6170167891586066
- 0.6170167891586066
l:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6608090231764574
- 0.6608090231764574
l:
type: m
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.6058600004824546
- 0.6058600004824546
l:
type: la1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.8476974185476288
- 0.8476974185476288
l:
rotation: 0
division:
- 0.8549420379712187
- 0.8549420379712187
l:
rotation: 1
division:
- 0.3825733535221625
- 0.3825733535221625
l:
rotation: 1
division:
- 0.47962892899422604
- 0.47962892899422604
l:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.7508808718798621
- 0.7508808718798621
l:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.6234547304141608
- 0.6234547304141608
l:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: st1
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 3
division:
- 0.5330376769510112
- 0.5330376769510112
l:
rotation: 2
division:
- 0.514056158602989
- 0.514056158602989
l:
type: m
rotation: 0
r:
type: m
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.25153316406260884
- 0.25153316406260884
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.772781059439281
- 0.772781059439281
l:
rotation: 0
division:
- 0.3007138460938997
- 0.3007138460938997
l:
type: t
rotation: 0
r:
type: me1
rotation: 0
r:
type: C
rotation: 3
above:
rotation: 0
division:
- 0.5662620679201393
- 0.5662620679201393
height: 3.0
l:
rotation: 0
division:
- 0.5300569106355991
- 0.5300569106355991
l:
rotation: 0
division:
- 0.0863852684329759
- 0.0863852684329759
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5060943172283778
- 0.5060943172283778
l:
rotation: 0
division:
- 0.5604042820982167
- 0.5604042820982167
l:
rotation: 1
division:
- 0.7238456720793089
- 0.7238456720793089
l:
rotation: 0
division:
- 0.2502037803085052
- 0.2502037803085052
l:
type: st2
rotation: 0
r:
type: O
rotation: 1
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.7551243985204674
- 0.7551243985204674
l:
type: O
rotation: 0
r:
type: t
rotation: 1
r:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.4566953630047795
- 0.4566953630047795
l:
rotation: 0
division:
- 0.16593799911395812
- 0.16593799911395812
l:
type: ut1
rotation: 0
r:
rotation: 3
division:
- 0.525234375
- 0.525234375
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.2988974834269737
- 0.2988974834269737
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: li1
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.5482723585436795
- 0.5482723585436795
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5670341721910087
- 0.5670341721910087
l:
rotation: 0
division:
- 0.5878540477469637
- 0.5878540477469637
l:
rotation: 0
division:
- 0.2988974834269737
- 0.2988974834269737
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
type: st2
rotation: 0
r:
rotation: 3
division:
- 0.5
- 0.5
l:
rotation: 3
division:
- 0.6580826806640626
- 0.6580826806640626
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.6164728327412322
- 0.6164728327412322
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.6
- 0.6
l:
rotation: 0
division:
- 0.33824255258409636
- 0.33824255258409636
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5076212394289253
- 0.5076212394289253
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
type: r
rotation: 0

View file

@ -1,459 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.4768163386613117
- 0.4768163386613117
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.5944126599075639
- 0.5944126599075639
l:
rotation: 0
division:
- 0.5472804939816485
- 0.5472804939816485
l:
rotation: 1
division:
- 0.7402807143631926
- 0.7402807143631926
l:
rotation: 2
division:
- 0.7843005082023522
- 0.7843005082023522
l:
type: da1
rotation: 0
r:
rotation: 1
division:
- 0.6889510427688464
- 0.6889510427688464
l:
type: C
rotation: 0
r:
type: t
rotation: 0
r:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.5333081519606917
- 0.5333081519606917
l:
type: ws1
rotation: 0
r:
type: C
rotation: 2
r:
rotation: 1
division:
- 0.2885286993072057
- 0.2885286993072057
l:
rotation: 1
division:
- 0.4993212280676509
- 0.4993212280676509
l:
type: ef1
rotation: 0
r:
rotation: 1
division:
- 0.5131825417010754
- 0.5131825417010754
l:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.7080034437357043
- 0.7080034437357043
l:
type: n
rotation: 2
r:
rotation: 1
division:
- 0.6139648311552325
- 0.6139648311552325
l:
rotation: 0
division:
- 0.5013591397304015
- 0.5013591397304015
l:
type: la1
rotation: 0
r:
type: O
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 1
division:
- 0.8722311548278028
- 0.8722311548278028
l:
rotation: 0
division:
- 0.8869957889673794
- 0.8869957889673794
l:
rotation: 1
division:
- 0.5312823722636988
- 0.5312823722636988
l:
rotation: 3
division:
- 0.44509745921579624
- 0.44509745921579624
l:
type: n
rotation: 0
r:
rotation: 2
division:
- 0.5617079338312922
- 0.5617079338312922
l:
type: st1
rotation: 2
r:
rotation: 1
division:
- 0.6898964202090871
- 0.6898964202090871
l:
rotation: 2
division:
- 0.5669044052004197
- 0.5669044052004197
l:
type: C
rotation: 0
r:
type: m
rotation: 0
r:
type: m
share: 3
rotation: 0
r:
type: O
rotation: 3
r:
rotation: 3
division:
- 0.6363875026179511
- 0.6363875026179511
l:
type: m
share: 3
rotation: 0
r:
rotation: 0
division:
- 0.5269585225340474
- 0.5269585225340474
l:
type: C
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 3
division:
- 0.29672041388757975
- 0.29672041388757975
l:
type: C
rotation: 2
r:
rotation: 0
division:
- 0.6007774742994366
- 0.6007774742994366
l:
type: me1
rotation: 0
r:
rotation: 2
division:
- 0.5278913421225281
- 0.5278913421225281
l:
type: C
rotation: 0
r:
type: t
rotation: 0
above:
rotation: 0
division:
- 0.5662620679201393
- 0.5662620679201393
height: 3.0
l:
rotation: 0
division:
- 0.5300569106355991
- 0.5300569106355991
l:
rotation: 0
division:
- 0.0863852684329759
- 0.0863852684329759
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 0
division:
- 0.369644807975687
- 0.369644807975687
l:
rotation: 0
division:
- 0.5141058756429728
- 0.5141058756429728
l:
rotation: 1
division:
- 0.5745701513392769
- 0.5745701513392769
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.7647707778293122
- 0.7647707778293122
l:
rotation: 2
division:
- 0.5156049090595325
- 0.5156049090595325
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
type: n
share: 2
rotation: 0
r:
rotation: 0
division:
- 0.4566953630047795
- 0.4566953630047795
l:
rotation: 0
division:
- 0.16593799911395812
- 0.16593799911395812
l:
type: ut1
rotation: 0
r:
rotation: 1
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: st2
rotation: 0
r:
rotation: 0
division:
- 0.2988974834269737
- 0.2988974834269737
l:
rotation: 2
division:
- 0.5952496254604416
- 0.5952496254604416
l:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.36607851965817206
- 0.36607851965817206
l:
type: r
rotation: 0
r:
rotation: 2
division:
- 0.46749737177241624
- 0.46749737177241624
l:
type: O
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.3650199894489847
- 0.3650199894489847
l:
type: n
rotation: 0
r:
type: O
rotation: 1
r:
rotation: 3
division:
- 0.32003090758775143
- 0.32003090758775143
l:
type: t
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5670341721910087
- 0.5670341721910087
l:
rotation: 0
division:
- 0.5878540477469637
- 0.5878540477469637
l:
rotation: 0
division:
- 0.2988974834269737
- 0.2988974834269737
l:
type: st2
rotation: 0
r:
type: st2
rotation: 0
r:
rotation: 3
division:
- 0.5
- 0.5
l:
rotation: 3
division:
- 0.7022341111436592
- 0.7022341111436592
l:
rotation: 2
division:
- 0.5954960653711328
- 0.5954960653711328
l:
type: C
rotation: 0
r:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 2
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.6164728327412322
- 0.6164728327412322
l:
type: r
rotation: 2
r:
rotation: 0
division:
- 0.6
- 0.6
l:
rotation: 2
division:
- 0.553406681267078
- 0.553406681267078
l:
type: r
rotation: 0
r:
type: n
rotation: 0
r:
type: li1
rotation: 0

View file

@ -1,448 +0,0 @@
node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 1
division:
- 0.4888900105484264
- 0.4888900105484264
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.5938247521970288
- 0.5938247521970288
l:
rotation: 0
division:
- 0.5472887522186323
- 0.5472887522186323
l:
rotation: 1
division:
- 0.7482565199547276
- 0.7482565199547276
l:
rotation: 2
division:
- 0.7634740326506355
- 0.7634740326506355
l:
type: da1
rotation: 0
r:
rotation: 3
division:
- 0.5
- 0.5
l:
type: st1
rotation: 0
r:
type: O
rotation: 0
r:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.48227518337297415
- 0.48227518337297415
l:
type: ws1
rotation: 0
r:
type: C
rotation: 2
r:
rotation: 1
division:
- 0.2876274429075646
- 0.2876274429075646
l:
rotation: 1
division:
- 0.4977615341676925
- 0.4977615341676925
l:
type: C
rotation: 3
r:
rotation: 1
division:
- 0.5260108852851195
- 0.5260108852851195
l:
type: ef1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6397932334327496
- 0.6397932334327496
l:
rotation: 1
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.554484404426573
- 0.554484404426573
l:
type: la1
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 1
division:
- 0.8502200490349778
- 0.8502200490349778
l:
rotation: 0
division:
- 0.8442580239222437
- 0.8442580239222437
l:
rotation: 1
division:
- 0.3758880797422988
- 0.3758880797422988
l:
rotation: 1
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: n
rotation: 0
r:
type: n
rotation: 0
r:
type: of
rotation: 0
r:
rotation: 3
division:
- 0.5154341184740678
- 0.5154341184740678
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: m
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: m
rotation: 0
r:
type: m
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.2616194760651602
- 0.2616194760651602
l:
type: st1
rotation: 0
r:
rotation: 2
division:
- 0.5989008688013605
- 0.5989008688013605
l:
type: me1
rotation: 0
r:
type: O
rotation: 0
above:
rotation: 0
division:
- 0.5662620679201393
- 0.5662620679201393
height: 3.0
l:
rotation: 0
division:
- 0.5300569106355991
- 0.5300569106355991
l:
rotation: 0
division:
- 0.0863852684329759
- 0.0863852684329759
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.369644807975687
- 0.369644807975687
l:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 3
division:
- 0.5125
- 0.5125
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6910915096691898
- 0.6910915096691898
l:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: n
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.4566953630047795
- 0.4566953630047795
l:
rotation: 0
division:
- 0.16593799911395812
- 0.16593799911395812
l:
type: ut1
rotation: 0
r:
rotation: 3
division:
- 0.525234375
- 0.525234375
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.2988974834269737
- 0.2988974834269737
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5670341721910087
- 0.5670341721910087
l:
rotation: 0
division:
- 0.5878540477469637
- 0.5878540477469637
l:
rotation: 0
division:
- 0.2988974834269737
- 0.2988974834269737
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
type: st2
rotation: 0
r:
rotation: 3
division:
- 0.5
- 0.5
l:
rotation: 3
division:
- 0.6580826806640626
- 0.6580826806640626
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.6164728327412322
- 0.6164728327412322
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.6
- 0.6
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
type: li1
rotation: 0

View file

@ -138,7 +138,6 @@ spaces:
- 0.5
adjacency:
- c
- n # Brand: a WC beside sleeping space can be knocked through later
count: 6 # 3 ground + 3 first floor
la1:
@ -159,7 +158,6 @@ spaces:
- me1
st1:
crinkliness: none # no window needed
usage: utility
name: Ground Floor Storage
size:
@ -173,7 +171,6 @@ spaces:
- c
me1:
crinkliness: none # no window needed
usage: utility
name: Mechanical/Electrical Room
size:
@ -234,7 +231,6 @@ spaces:
# FIRST FLOOR - Storage
st2:
crinkliness: none # no window needed
usage: utility
name: First Floor Storage
size:
@ -248,7 +244,6 @@ spaces:
- c
ut1:
crinkliness: none # no window needed
usage: utility
name: Utilities Closet
size:
@ -264,28 +259,17 @@ spaces:
# Building constraints
storey_minimum: 2
storey_limit: 3
# homemaker-py-hxi (DESIGN.md §39.25): ENABLED. Fails a level that has no
# outdoor space at all -- Alexander's actual requirement, per level and with no
# quantity attached. It had been off in every corpus config, so the only thing
# expressing outdoor space was ratio_outside's arbitrary fraction.
force_roof_garden: 1
force_roof_garden: 0
# Circulation ratio (allow more circulation for larger building)
# homemaker-py-hxi (DESIGN.md §39.24): disabled. The score is value/cost, a
# ratio, so the per-m2 economics (circulation worth 50 against a build cost of
# 200) is ALREADY a proportional pressure against circulation -- this said the
# same thing a second time, and with a curve where twice the corridor is far
# more than twice as bad. Its other side, "a building needs some circulation",
# was worth at most 13% here and is enforced structurally anyway by the access
# and connectivity checks. Set a [target, sigma] pair to re-enable.
ratio_circulation:
- 0.08
- 0.15
# Outside space ratio (courtyard requirement)
# homemaker-py-hxi (DESIGN.md §39.25): disabled. Alexander says every level
# should have accessible outside space; he does not say how much. The
# qualitative requirement is force_roof_garden below. Set a [target, sigma]
# pair to re-enable this quantitative one.
ratio_outside:
- 0.15
- 0.10
# Staircase requirements (main + secondary)
staircase_min: 2
@ -295,9 +279,4 @@ staircase_max: 2
value_inside: 300.0
value_circulation: 50.0
value_outside: 100.0
# homemaker-py-ecx (DESIGN.md §39.19): an upper-level terrace is worth what
# outdoor space is worth (value_outside); it is the COST that differs by level
# (outside 10.0 vs outside_supported 110.0), not the value. At 300.0 -- the
# `value_inside` rate -- a terrace was worth more per square metre than a real
# internal room, which the owner ruled out.
value_supported: 100.0
value_supported: 300.0

View file

@ -1,292 +0,0 @@
node:
- - -2.499098
- 3.896165
- - 16.284033
- 8.678435
- - 11.155808
- 29.106947
- - -8.073955
- 25.262724
perimeter:
a: private
b: null
c: null
d: null
rotation: 1
division:
- 0.5286180805540397
- 0.5286180805540397
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.5548181096225262
- 0.5548181096225262
l:
rotation: 1
division:
- 0.4910959187486891
- 0.4910959187486891
l:
rotation: 1
division:
- 0.39165065346821715
- 0.39165065346821715
l:
rotation: 1
division:
- 0.5286747953765261
- 0.5286747953765261
l:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.5073915709272532
- 0.5073915709272532
l:
type: C
rotation: 0
r:
type: t9
rotation: 0
r:
rotation: 0
division:
- 0.6789833554643051
- 0.6789833554643051
l:
type: wa1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.37936865556483007
- 0.37936865556483007
l:
rotation: 1
division:
- 0.5751518803895523
- 0.5751518803895523
l:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.3434916386608414
- 0.3434916386608414
l:
type: ph1
rotation: 0
r:
type: pt1
rotation: 0
r:
rotation: 1
division:
- 0.5472482550512459
- 0.5472482550512459
l:
rotation: 1
division:
- 0.5717924171555203
- 0.5717924171555203
l:
rotation: 1
division:
- 0.4409813747940315
- 0.4409813747940315
l:
type: C
rotation: 0
r:
type: br1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.41364489805177573
- 0.41364489805177573
l:
rotation: 1
division:
- 0.5482954695086615
- 0.5482954695086615
l:
type: mo1
rotation: 0
r:
type: dp1
rotation: 0
r:
rotation: 0
division:
- 0.5212170858325074
- 0.5212170858325074
l:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.46373341702925686
- 0.46373341702925686
l:
type: t9
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.4407559182834302
- 0.4407559182834302
l:
rotation: 1
division:
- 0.4417442809854565
- 0.4417442809854565
l:
rotation: 3
division:
- 0.7274378846643093
- 0.7274378846643093
l:
rotation: 0
division:
- 0.6618005954237105
- 0.6618005954237105
l:
type: tr1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.31747964545355944
- 0.31747964545355944
l:
type: t10
rotation: 0
r:
type: re1
rotation: 0
r:
rotation: 1
division:
- 0.5771110251494367
- 0.5771110251494367
l:
rotation: 1
division:
- 0.44296062164922595
- 0.44296062164922595
l:
rotation: 3
division:
- 0.5024066201491242
- 0.5024066201491242
l:
type: zt1
rotation: 0
r:
type: O
rotation: 0
r:
type: ao1
rotation: 0
r:
rotation: 1
division:
- 0.6268769335384348
- 0.6268769335384348
l:
rotation: 1
division:
- 0.5125
- 0.5125
l:
type: qr1
rotation: 0
r:
type: rc1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 2
division:
- 0.6240746638398098
- 0.6240746638398098
l:
rotation: 1
division:
- 0.5496871290519072
- 0.5496871290519072
l:
rotation: 1
division:
- 0.4840187454075916
- 0.4840187454075916
l:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.505063907726268
- 0.505063907726268
l:
type: C
rotation: 0
r:
type: kt1
rotation: 0
r:
rotation: 1
division:
- 0.7274159015455219
- 0.7274159015455219
l:
type: ms1
rotation: 0
r:
type: me1
rotation: 0
r:
rotation: 1
division:
- 0.7182885358197997
- 0.7182885358197997
l:
rotation: 0
division:
- 0.7129912566129764
- 0.7129912566129764
l:
type: de1
rotation: 0
r:
type: C
rotation: 0
r:
type: gp1
rotation: 3

View file

@ -1,86 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/health-centre/init.dom
programme : health-centre
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 0
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/health-centre/coldstart-500000-s0.dom
[ 80 evals] best 8.18513e-10 (fails 22) via construct/0
[ 1920 evals] best 1.44035e-09 (fails 21) via level_compound_fix noop
[ 2720 evals] best 2.97297e-09 (fails 21) via place_missing t9 -> rlrll
[ 2880 evals] best 3.17196e-09 (fails 21) via crossover rrlrr<->llrrl
[ 2960 evals] best 3.38093e-09 (fails 21) via level_retype noop
[ 3280 evals] best 3.95337e-08 (fails 18) via place_missing me1 -> lrrrr
[ 3440 evals] best 1.55555e-07 (fails 16) via place_missing mo1 -> lrrrr
[ 4480 evals] best 1.63054e-07 (fails 16) via level_delete noop
[ 4960 evals] best 1.68058e-07 (fails 16) via core_divide noop
[ 5200 evals] best 1.73172e-07 (fails 16) via level_compound_fix noop
[ 6480 evals] best 1.32598e-05 (fails 9) via crossover rrll<->lllr
[ 8160 evals] best 1.5086e-05 (fails 9) via core_divide noop
[ 8800 evals] best 1.59072e-05 (fails 9) via swap 0/rrlr
[ 9280 evals] best 1.68254e-05 (fails 9) via core_divide noop
[ 9360 evals] best 1.79867e-05 (fails 9) via swap 0/rllr
[ 11280 evals] best 1.9237e-05 (fails 8) via level_delete noop
[ 12800 evals] best 3.78619e-05 (fails 8) via retype 0/rrlrr->tr1
[ 13040 evals] best 0.000117921 (fails 6) via swap 0/llll
[ 13360 evals] best 0.000135727 (fails 6) via level_compound_fix noop
[ 14080 evals] best 0.0002732 (fails 5) via crossover rrrr<->rllr
[ 15040 evals] best 0.000306904 (fails 5) via level_retype noop
[ 15840 evals] best 0.000324217 (fails 5) via retype 0/lllrl->qr1
[ 16160 evals] best 0.000342695 (fails 5) via level_fix noop
[ 20400 evals] best 0.000360157 (fails 5) via level_delete noop
[ 20960 evals] best 0.000378411 (fails 5) via level_compound_fix noop
[ 21360 evals] best 0.000141908 (fails 4) via crossover rrll<->llll
[ 22080 evals] best 0.000169723 (fails 4) via core_undivide noop
[ 22400 evals] best 0.000170498 (fails 4) via rotate 0/lrrrr
[ 23200 evals] best 0.000181366 (fails 4) via level_compound_fix noop
[ 26560 evals] best 0.000182185 (fails 4) via level_compound_fix noop
[ 27520 evals] best 0.000194431 (fails 4) via level_fix noop
[ 28320 evals] best 0.000206958 (fails 4) via core_divide noop
[ 29120 evals] best 0.000220107 (fails 4) via level_retype noop
[ 31760 evals] best 0.000230833 (fails 4) via core_divide noop
[ 32000 evals] best 0.000395146 (fails 3) via crossover rllrl<->rrlrr
[ 32320 evals] best 0.000420102 (fails 3) via swap 0/rrlr
[ 32960 evals] best 0.000439878 (fails 3) via crossover rrrrr<->llllrr
[ 33120 evals] best 0.000458971 (fails 3) via level_fix noop
[ 34160 evals] best 0.000478749 (fails 3) via level_fix noop
[ 34640 evals] best 0.000744 (fails 3) via undivide 0/lrlr
[ 39280 evals] best 0.000770381 (fails 3) via level_fix noop
[ 40800 evals] best 0.00079688 (fails 3) via level_compound_fix noop
[ 40880 evals] best 0.000821741 (fails 3) via core_undivide noop
[ 41200 evals] best 0.000841435 (fails 3) via core_undivide noop
[ 46480 evals] best 0.000867499 (fails 3) via level_delete noop
[ 47360 evals] best 0.00127332 (fails 3) via crossover rlrrr<->rrllrl
[ 50880 evals] best 0.00131277 (fails 3) via crossover rrrlr<->rrllrl
[ 52240 evals] best 0.0013505 (fails 3) via core_undivide noop
[ 53120 evals] best 0.00137937 (fails 3) via level_retype noop
[ 53840 evals] best 0.00139966 (fails 3) via level_retype noop
[ 57040 evals] best 0.00142768 (fails 3) via core_divide noop
[ 59920 evals] best 0.00145592 (fails 3) via level_compound_fix noop
[ 60080 evals] best 0.00148344 (fails 3) via level_fix noop
[ 65920 evals] best 0.00151078 (fails 3) via level_retype noop
[ 68720 evals] best 0.00154496 (fails 3) via core_undivide noop
[ 68880 evals] best 0.00157101 (fails 3) via retype 0/rrrrr->dp1
[ 70480 evals] best 0.00159557 (fails 3) via crossover lrlll<->lrlll
[ 70640 evals] best 0.00161909 (fails 3) via level_fix noop
[ 70880 evals] best 0.00164187 (fails 3) via core_divide noop
[ 75200 evals] best 0.0016633 (fails 3) via crossover rlrlr<->rlrlr
[ 75760 evals] best 0.00168434 (fails 3) via core_undivide noop
[ 76080 evals] best 0.00172043 (fails 3) via level_compound_fix noop
[ 77360 evals] best 0.00174777 (fails 3) via level_fix noop
[ 77440 evals] best 0.00175949 (fails 3) via core_undivide noop
[ 81360 evals] best 0.00178352 (fails 3) via crossover rrll<->llll
[ 81440 evals] best 0.00181117 (fails 3) via level_fix noop
[ 84000 evals] best 0.00181757 (fails 3) via crossover lllll<->llrlr
[ 87920 evals] best 0.00181815 (fails 3) via core_divide noop

View file

@ -1,260 +0,0 @@
node:
- - -2.499098
- 3.896165
- - 16.284033
- 8.678435
- - 11.155808
- 29.106947
- - -8.073955
- 25.262724
perimeter:
a: private
b: null
c: null
d: null
rotation: 1
division:
- 0.5701666606862493
- 0.5701666606862493
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.4840271488806444
- 0.4840271488806444
l:
rotation: 1
division:
- 0.5354807534159516
- 0.5354807534159516
l:
rotation: 1
division:
- 0.5244535547136123
- 0.5244535547136123
l:
rotation: 1
division:
- 0.5266921686935456
- 0.5266921686935456
l:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.509959364564228
- 0.509959364564228
l:
type: re1
rotation: 1
r:
type: O
rotation: 0
r:
type: pt1
rotation: 1
r:
rotation: 1
division:
- 0.51615828542533
- 0.51615828542533
l:
rotation: 1
division:
- 0.5156401493228953
- 0.5156401493228953
l:
type: O
rotation: 0
r:
type: mo1
rotation: 0
r:
rotation: 1
division:
- 0.61768114817708
- 0.61768114817708
l:
type: gp1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.6584193216875921
- 0.6584193216875921
l:
rotation: 1
division:
- 0.7950283540618827
- 0.7950283540618827
l:
rotation: 2
division:
- 0.702320213548134
- 0.702320213548134
l:
rotation: 1
division:
- 0.5150591948587837
- 0.5150591948587837
l:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6462482590826826
- 0.6462482590826826
l:
type: rc1
rotation: 0
r:
type: O
rotation: 0
r:
type: br1
rotation: 0
r:
type: ph1
rotation: 1
r:
rotation: 1
division:
- 0.49713045553185103
- 0.49713045553185103
l:
type: C
rotation: 0
r:
type: wa1
rotation: 0
r:
rotation: 1
division:
- 0.6427828114917011
- 0.6427828114917011
l:
rotation: 0
division:
- 0.7223946504418148
- 0.7223946504418148
l:
rotation: 1
division:
- 0.7230237530995272
- 0.7230237530995272
l:
rotation: 1
division:
- 0.556601514753792
- 0.556601514753792
l:
rotation: 1
division:
- 0.6903707936703987
- 0.6903707936703987
l:
rotation: 3
division:
- 0.5424393697846557
- 0.5424393697846557
l:
type: me1
rotation: 0
r:
type: dp1
rotation: 0
r:
type: C
rotation: 0
r:
type: ms1
rotation: 0
r:
rotation: 1
division:
- 0.7762930779409527
- 0.7762930779409527
l:
type: ao1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6699089068785757
- 0.6699089068785757
l:
rotation: 2
division:
- 0.548549015630394
- 0.548549015630394
l:
type: qr1
rotation: 1
r:
rotation: 1
division:
- 0.5
- 0.5
l:
type: t9
rotation: 0
r:
type: t9
rotation: 0
r:
type: O
rotation: 2
r:
rotation: 1
division:
- 0.49413504987498297
- 0.49413504987498297
l:
rotation: 1
division:
- 0.5753083563813634
- 0.5753083563813634
l:
type: tr1
rotation: 1
r:
rotation: 1
division:
- 0.8047412705277578
- 0.8047412705277578
l:
type: C
rotation: 0
r:
type: t10
rotation: 0
r:
rotation: 1
division:
- 0.629162144943071
- 0.629162144943071
l:
type: de1
rotation: 1
r:
rotation: 1
division:
- 0.6632706380144355
- 0.6632706380144355
l:
type: kt1
rotation: 0
r:
type: zt1
rotation: 0

View file

@ -1,312 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/health-centre/init.dom
programme : health-centre
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 1
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/health-centre/coldstart-500000-s1.dom
[ 80 evals] best 3.1736e-10 (fails 22) via construct/0
[ 1680 evals] best 3.50032e-10 (fails 22) via divide 0/rrrlr
[ 1760 evals] best 7.19233e-10 (fails 21) via crossover llrrl<->lrllr
[ 3280 evals] best 1.03739e-09 (fails 21) via divide 0/rrllr
[ 4960 evals] best 1.22255e-09 (fails 21) via level_compound_fix noop
[ 5280 evals] best 4.22556e-09 (fails 21) via core_divide noop
[ 5600 evals] best 5.51514e-09 (fails 21) via undivide 0/lrrl
[ 5680 evals] best 8.91318e-09 (fails 20) via core_divide noop
[ 6160 evals] best 9.30404e-09 (fails 20) via swap 0/rllr
[ 6240 evals] best 9.84227e-09 (fails 20) via level_fix noop
[ 6880 evals] best 3.11282e-08 (fails 18) via swap 0/lllr
[ 7920 evals] best 3.54361e-08 (fails 18) via core_undivide noop
[ 8720 evals] best 3.87738e-08 (fails 18) via level_retype noop
[ 9440 evals] best 4.0316e-08 (fails 18) via core_undivide noop
[ 10160 evals] best 4.28614e-08 (fails 18) via level_retype noop
[ 11280 evals] best 4.44456e-08 (fails 18) via level_retype noop
[ 11680 evals] best 4.57955e-08 (fails 18) via core_divide noop
[ 11760 evals] best 4.70161e-08 (fails 18) via level_fix noop
[ 12080 evals] best 4.80406e-08 (fails 18) via core_divide noop
[ 12480 evals] best 4.88839e-08 (fails 18) via crossover llll<->llrr
[ 13680 evals] best 5.00536e-08 (fails 18) via core_undivide noop
[ 13920 evals] best 5.1903e-08 (fails 18) via core_divide noop
[ 15360 evals] best 1.07206e-07 (fails 17) via rotate 0/lrll
[ 16000 evals] best 1.11145e-07 (fails 17) via level_retype noop
[ 16960 evals] best 1.15107e-07 (fails 17) via level_compound_fix noop
[ 20160 evals] best 1.18837e-07 (fails 17) via level_compound_fix noop
[ 20720 evals] best 1.23415e-07 (fails 17) via core_divide noop
[ 21600 evals] best 1.28355e-07 (fails 17) via core_undivide noop
[ 22640 evals] best 1.45451e-07 (fails 17) via crossover rllrr<->rrlll
[ 22720 evals] best 2.11935e-07 (fails 15) via divide 0/rllll
[ 23360 evals] best 2.59099e-07 (fails 15) via level_compound_fix noop
[ 24560 evals] best 2.70734e-07 (fails 15) via level_retype noop
[ 24880 evals] best 2.831e-07 (fails 15) via crossover rlrll<->rrrrl
[ 26640 evals] best 2.96078e-07 (fails 15) via level_fix noop
[ 29360 evals] best 2.23985e-07 (fails 12) via crossover llllr<->llrll
[ 30640 evals] best 3.33889e-07 (fails 12) via retype 0/lllrr->qr1
[ 30880 evals] best 7.38785e-07 (fails 12) via undivide 0/lllr
[ 32400 evals] best 8.40919e-07 (fails 12) via core_undivide noop
[ 32800 evals] best 9.27558e-07 (fails 12) via level_retype noop
[ 33520 evals] best 9.64174e-07 (fails 12) via level_compound_fix noop
[ 34480 evals] best 1.00228e-06 (fails 12) via level_compound_fix noop
[ 35200 evals] best 2.78977e-06 (fails 11) via crossover rllr<->lrlr
[ 35920 evals] best 2.85975e-06 (fails 11) via core_undivide noop
[ 36960 evals] best 2.92802e-06 (fails 11) via crossover rrlll<->lrrrl
[ 40160 evals] best 2.99391e-06 (fails 11) via core_undivide noop
[ 42240 evals] best 3.05636e-06 (fails 11) via core_undivide noop
[ 43520 evals] best 3.79692e-06 (fails 11) via level_fix noop
[ 44000 evals] best 3.86939e-06 (fails 11) via level_compound_fix noop
[ 44560 evals] best 3.92184e-06 (fails 11) via core_divide noop
[ 45200 evals] best 4.00078e-06 (fails 11) via level_retype noop
[ 46640 evals] best 4.07573e-06 (fails 11) via crossover lrrll<->rrrll
[ 49120 evals] best 4.1134e-06 (fails 11) via core_undivide noop
[ 49520 evals] best 4.13763e-06 (fails 11) via level_compound_fix noop
[ 49920 evals] best 4.14563e-06 (fails 11) via core_divide noop
[ 50240 evals] best 4.14854e-06 (fails 11) via level_fix noop
[ 50720 evals] best 4.28298e-06 (fails 11) via level_fix noop
[ 51280 evals] best 4.28373e-06 (fails 11) via retype 0/lrlll->me1
[ 55120 evals] best 9.85033e-07 (fails 10) via crossover lrlll<->llll
[ 55360 evals] best 1.01968e-06 (fails 10) via level_compound_fix noop
[ 57280 evals] best 1.4741e-06 (fails 10) via undivide 0/lrrr
[ 58640 evals] best 1.50576e-06 (fails 10) via level_fix noop
[ 59040 evals] best 1.54157e-06 (fails 10) via level_retype noop
[ 60320 evals] best 1.58245e-06 (fails 10) via core_undivide noop
[ 62080 evals] best 1.60981e-06 (fails 10) via crossover lrr<->lrr
[ 63840 evals] best 2.74194e-06 (fails 9) via retype 0/rrrrr->mo1
[ 64400 evals] best 2.81093e-06 (fails 9) via core_divide noop
[ 64560 evals] best 2.89773e-06 (fails 9) via core_divide noop
[ 66080 evals] best 1.42037e-05 (fails 8) via crossover lrr<->rrll
[ 66880 evals] best 1.48441e-05 (fails 8) via rotate 0/rlrr
[ 68080 evals] best 1.52409e-05 (fails 8) via level_fix noop
[ 68560 evals] best 1.56119e-05 (fails 8) via level_retype noop
[ 69120 evals] best 1.59331e-05 (fails 8) via level_compound_fix noop
[ 70880 evals] best 1.61441e-05 (fails 8) via level_compound_fix noop
[ 71120 evals] best 3.42507e-05 (fails 7) via undivide 0/rrrl
[ 72640 evals] best 3.47537e-05 (fails 7) via core_undivide noop
[ 75840 evals] best 3.49427e-05 (fails 7) via level_retype noop
[ 77040 evals] best 3.49682e-05 (fails 7) via core_divide noop
[ 77520 evals] best 3.50353e-05 (fails 7) via retype 0/rrrl->qr1
[ 78800 evals] best 3.64925e-05 (fails 7) via level_fix noop
[ 81280 evals] best 3.7884e-05 (fails 7) via core_undivide noop
[ 81520 evals] best 3.89932e-05 (fails 7) via core_divide noop
[ 82640 evals] best 3.98419e-05 (fails 7) via core_divide noop
[ 85360 evals] best 4.05998e-05 (fails 7) via level_retype noop
[ 87440 evals] best 4.128e-05 (fails 7) via level_retype noop
[ 88160 evals] best 4.17275e-05 (fails 7) via core_undivide noop
[ 90080 evals] best 4.20007e-05 (fails 7) via level_retype noop
[ 92560 evals] best 4.21287e-05 (fails 7) via level_compound_fix noop
[ 92960 evals] best 4.22968e-05 (fails 7) via level_delete noop
[ 97360 evals] best 4.24328e-05 (fails 7) via level_compound_fix noop
[102000 evals] best 4.24811e-05 (fails 7) via level_retype noop
[105200 evals] best 4.25673e-05 (fails 7) via core_divide noop
[106080 evals] best 4.29149e-05 (fails 7) via crossover rlrl<->rrrr
[107200 evals] best 4.32068e-05 (fails 7) via retype 0/rrllr->qr1
[107520 evals] best 4.32209e-05 (fails 7) via retype 0/rrrl->dp1
[113520 evals] best 4.32209e-05 (fails 7) via crossover lrrr<->rrrl
[122880 evals] best 9.30692e-05 (fails 7) via undivide 0/rlrr
[123520 evals] best 9.32949e-05 (fails 7) via level_fix noop
[124480 evals] best 9.33002e-05 (fails 7) via level_fix noop
[144400 evals] best 0.000107422 (fails 7) via undivide 0/rlrr
[148560 evals] best 0.000113564 (fails 7) via retype 0/lrlllrl->t10
[150640 evals] best 0.000117071 (fails 7) via level_compound_fix noop
[151040 evals] best 0.000121829 (fails 7) via level_retype noop
[153040 evals] best 0.000124879 (fails 7) via level_retype noop
[157680 evals] best 0.000126775 (fails 7) via crossover lrlllrr<->llrll
[158800 evals] best 0.000240095 (fails 7) via undivide 0/rrll
[163680 evals] best 0.000499652 (fails 6) via level_retype noop
[164640 evals] best 0.000508459 (fails 6) via core_undivide noop
[165440 evals] best 0.00050947 (fails 6) via level_retype noop
[174400 evals] best 0.000510996 (fails 6) via core_undivide noop
[201200 evals] best 0.000521531 (fails 6) via rotate 0/rrrr
[202800 evals] best 0.000524554 (fails 6) via level_compound_fix noop
[216400 evals] best 0.000524554 (fails 6) via crossover rlllr<->rrll
[231680 evals] best 0.000581588 (fails 6) via crossover llrr<->rllr
[232800 evals] best 0.000631983 (fails 6) via crossover rllllr<->rllllr
[233600 evals] best 0.000663972 (fails 6) via rotate 0/rlllll
[234400 evals] best 0.000679543 (fails 6) via rotate 0/lr
[235120 evals] best 0.000680799 (fails 6) via level_compound_fix noop
[235280 evals] best 0.000704214 (fails 6) via level_fix noop
[235360 evals] best 0.00070883 (fails 6) via level_compound_fix noop
[235600 evals] best 0.000710322 (fails 6) via level_fix noop
[282720 evals] best 0.000710418 (fails 6) via level_retype noop
[283200 evals] best 0.000710928 (fails 6) via core_divide noop
[288800 evals] best 0.000783033 (fails 6) via swap 0/llllr
[299600 evals] best 0.000806961 (fails 6) via undivide 0/lrlr
[405760 evals] best 0.00148576 (fails 5) via level_compound_fix noop
[405840 evals] best 0.00148617 (fails 5) via core_divide noop
--- finishing (homemaker-py-3l6): unfold + polish 250000 evals ---
[finish] unfold: materialised 2 shared-leaf copies
[ 200 evals] best 1.47634e-06 (fails 15) via seed
[ 280 evals] best 1.49152e-06 (fails 15) via level_retype noop
[ 600 evals] best 1.50542e-06 (fails 15) via level_compound_fix noop
[ 680 evals] best 1.51829e-06 (fails 15) via level_fix noop
[ 840 evals] best 4.82862e-05 (fails 10) via undivide 0/rrrrr
[ 1880 evals] best 4.84983e-05 (fails 10) via crossover rlrlrr<->llllrl
[ 38440 evals] best 8.15165e-05 (fails 9) via swap 0/rlrlr
[ 41960 evals] best 8.32787e-05 (fails 9) via core_undivide noop
[ 42120 evals] best 9.93915e-05 (fails 9) via crossover rrrr<->rlrlr
[114680 evals] best 0.000100561 (fails 9) via retype 0/rrrrr->zt1
[182760 evals] best 0.000100577 (fails 9) via crossover rlllllr<->llrrl
[184200 evals] best 0.000101129 (fails 9) via core_undivide noop
[186920 evals] best 0.000101234 (fails 9) via level_fix noop
[187160 evals] best 0.000101292 (fails 9) via retype 0/rllllll->dp1
--- collapse (homemaker-py-94g): finish-time cell→room relabel ---
[finish] collapse: 97 → 9 fails (applied)
--- done ---
elapsed : 124897.0s
evals : 750040 across 9374 topologies
best : 0.000101292 (9 fails) via retype 0/rllllll->dp1+collapse
improvement history:
[ 80] 3.1736e-10 (share:construct/0)
[ 1680] 3.50032e-10 (share:divide 0/rrrlr)
[ 1760] 7.19233e-10 (share:crossover llrrl<->lrllr)
[ 3280] 1.03739e-09 (share:divide 0/rrllr)
[ 4960] 1.22255e-09 (share:level_compound_fix noop)
[ 5280] 4.22556e-09 (share:core_divide noop)
[ 5600] 5.51514e-09 (share:undivide 0/lrrl)
[ 5680] 8.91318e-09 (share:core_divide noop)
[ 6160] 9.30404e-09 (share:swap 0/rllr)
[ 6240] 9.84227e-09 (share:level_fix noop)
[ 6880] 3.11282e-08 (share:swap 0/lllr)
[ 7920] 3.54361e-08 (share:core_undivide noop)
[ 8720] 3.87738e-08 (share:level_retype noop)
[ 9440] 4.0316e-08 (share:core_undivide noop)
[ 10160] 4.28614e-08 (share:level_retype noop)
[ 11280] 4.44456e-08 (share:level_retype noop)
[ 11680] 4.57955e-08 (share:core_divide noop)
[ 11760] 4.70161e-08 (share:level_fix noop)
[ 12080] 4.80406e-08 (share:core_divide noop)
[ 12480] 4.88839e-08 (share:crossover llll<->llrr)
[ 13680] 5.00536e-08 (share:core_undivide noop)
[ 13920] 5.1903e-08 (share:core_divide noop)
[ 15360] 1.07206e-07 (share:rotate 0/lrll)
[ 16000] 1.11145e-07 (share:level_retype noop)
[ 16960] 1.15107e-07 (share:level_compound_fix noop)
[ 20160] 1.18837e-07 (share:level_compound_fix noop)
[ 20720] 1.23415e-07 (share:core_divide noop)
[ 21600] 1.28355e-07 (share:core_undivide noop)
[ 22640] 1.45451e-07 (share:crossover rllrr<->rrlll)
[ 22720] 2.11935e-07 (share:divide 0/rllll)
[ 23360] 2.59099e-07 (share:level_compound_fix noop)
[ 24560] 2.70734e-07 (share:level_retype noop)
[ 24880] 2.831e-07 (share:crossover rlrll<->rrrrl)
[ 26640] 2.96078e-07 (share:level_fix noop)
[ 29360] 2.23985e-07 (share:crossover llllr<->llrll)
[ 30640] 3.33889e-07 (share:retype 0/lllrr->qr1)
[ 30880] 7.38785e-07 (share:undivide 0/lllr)
[ 32400] 8.40919e-07 (share:core_undivide noop)
[ 32800] 9.27558e-07 (share:level_retype noop)
[ 33520] 9.64174e-07 (share:level_compound_fix noop)
[ 34480] 1.00228e-06 (share:level_compound_fix noop)
[ 35200] 2.78977e-06 (share:crossover rllr<->lrlr)
[ 35920] 2.85975e-06 (share:core_undivide noop)
[ 36960] 2.92802e-06 (share:crossover rrlll<->lrrrl)
[ 40160] 2.99391e-06 (share:core_undivide noop)
[ 42240] 3.05636e-06 (share:core_undivide noop)
[ 43520] 3.79692e-06 (share:level_fix noop)
[ 44000] 3.86939e-06 (share:level_compound_fix noop)
[ 44560] 3.92184e-06 (share:core_divide noop)
[ 45200] 4.00078e-06 (share:level_retype noop)
[ 46640] 4.07573e-06 (share:crossover lrrll<->rrrll)
[ 49120] 4.1134e-06 (share:core_undivide noop)
[ 49520] 4.13763e-06 (share:level_compound_fix noop)
[ 49920] 4.14563e-06 (share:core_divide noop)
[ 50240] 4.14854e-06 (share:level_fix noop)
[ 50720] 4.28298e-06 (share:level_fix noop)
[ 51280] 4.28373e-06 (share:retype 0/lrlll->me1)
[ 55120] 9.85033e-07 (share:crossover lrlll<->llll)
[ 55360] 1.01968e-06 (share:level_compound_fix noop)
[ 57280] 1.4741e-06 (share:undivide 0/lrrr)
[ 58640] 1.50576e-06 (share:level_fix noop)
[ 59040] 1.54157e-06 (share:level_retype noop)
[ 60320] 1.58245e-06 (share:core_undivide noop)
[ 62080] 1.60981e-06 (share:crossover lrr<->lrr)
[ 63840] 2.74194e-06 (share:retype 0/rrrrr->mo1)
[ 64400] 2.81093e-06 (share:core_divide noop)
[ 64560] 2.89773e-06 (share:core_divide noop)
[ 66080] 1.42037e-05 (share:crossover lrr<->rrll)
[ 66880] 1.48441e-05 (share:rotate 0/rlrr)
[ 68080] 1.52409e-05 (share:level_fix noop)
[ 68560] 1.56119e-05 (share:level_retype noop)
[ 69120] 1.59331e-05 (share:level_compound_fix noop)
[ 70880] 1.61441e-05 (share:level_compound_fix noop)
[ 71120] 3.42507e-05 (share:undivide 0/rrrl)
[ 72640] 3.47537e-05 (share:core_undivide noop)
[ 75840] 3.49427e-05 (share:level_retype noop)
[ 77040] 3.49682e-05 (share:core_divide noop)
[ 77520] 3.50353e-05 (share:retype 0/rrrl->qr1)
[ 78800] 3.64925e-05 (share:level_fix noop)
[ 81280] 3.7884e-05 (share:core_undivide noop)
[ 81520] 3.89932e-05 (share:core_divide noop)
[ 82640] 3.98419e-05 (share:core_divide noop)
[ 85360] 4.05998e-05 (share:level_retype noop)
[ 87440] 4.128e-05 (share:level_retype noop)
[ 88160] 4.17275e-05 (share:core_undivide noop)
[ 90080] 4.20007e-05 (share:level_retype noop)
[ 92560] 4.21287e-05 (share:level_compound_fix noop)
[ 92960] 4.22968e-05 (share:level_delete noop)
[ 97360] 4.24328e-05 (share:level_compound_fix noop)
[102000] 4.24811e-05 (share:level_retype noop)
[105200] 4.25673e-05 (share:core_divide noop)
[106080] 4.29149e-05 (share:crossover rlrl<->rrrr)
[107200] 4.32068e-05 (share:retype 0/rrllr->qr1)
[107520] 4.32209e-05 (share:retype 0/rrrl->dp1)
[113520] 4.32209e-05 (share:crossover lrrr<->rrrl)
[122880] 9.30692e-05 (share:undivide 0/rlrr)
[123520] 9.32949e-05 (share:level_fix noop)
[124480] 9.33002e-05 (share:level_fix noop)
[144400] 0.000107422 (share:undivide 0/rlrr)
[148560] 0.000113564 (share:retype 0/lrlllrl->t10)
[150640] 0.000117071 (share:level_compound_fix noop)
[151040] 0.000121829 (share:level_retype noop)
[153040] 0.000124879 (share:level_retype noop)
[157680] 0.000126775 (share:crossover lrlllrr<->llrll)
[158800] 0.000240095 (share:undivide 0/rrll)
[163680] 0.000499652 (share:level_retype noop)
[164640] 0.000508459 (share:core_undivide noop)
[165440] 0.00050947 (share:level_retype noop)
[174400] 0.000510996 (share:core_undivide noop)
[201200] 0.000521531 (share:rotate 0/rrrr)
[202800] 0.000524554 (share:level_compound_fix noop)
[216400] 0.000524554 (share:crossover rlllr<->rrll)
[231680] 0.000581588 (share:crossover llrr<->rllr)
[232800] 0.000631983 (share:crossover rllllr<->rllllr)
[233600] 0.000663972 (share:rotate 0/rlllll)
[234400] 0.000679543 (share:rotate 0/lr)
[235120] 0.000680799 (share:level_compound_fix noop)
[235280] 0.000704214 (share:level_fix noop)
[235360] 0.00070883 (share:level_compound_fix noop)
[235600] 0.000710322 (share:level_fix noop)
[282720] 0.000710418 (share:level_retype noop)
[283200] 0.000710928 (share:core_divide noop)
[288800] 0.000783033 (share:swap 0/llllr)
[299600] 0.000806961 (share:undivide 0/lrlr)
[405760] 0.00148576 (share:level_compound_fix noop)
[405840] 0.00148617 (share:core_divide noop)
[500200] 1.47634e-06 (polish:seed)
[500280] 1.49152e-06 (polish:level_retype noop)
[500600] 1.50542e-06 (polish:level_compound_fix noop)
[500680] 1.51829e-06 (polish:level_fix noop)
[500840] 4.82862e-05 (polish:undivide 0/rrrrr)
[501880] 4.84983e-05 (polish:crossover rlrlrr<->llllrl)
[538440] 8.15165e-05 (polish:swap 0/rlrlr)
[541960] 8.32787e-05 (polish:core_undivide noop)
[542120] 9.93915e-05 (polish:crossover rrrr<->rlrlr)
[614680] 0.000100561 (polish:retype 0/rrrrr->zt1)
[682760] 0.000100577 (polish:crossover rlllllr<->llrrl)
[684200] 0.000101129 (polish:core_undivide noop)
[686920] 0.000101234 (polish:level_fix noop)
[687160] 0.000101292 (polish:retype 0/rllllll->dp1)
written : /home/bruno/src/homemaker-layout/examples/health-centre/coldstart-500000-s1.dom

View file

@ -1,292 +0,0 @@
node:
- - -2.499098
- 3.896165
- - 16.284033
- 8.678435
- - 11.155808
- 29.106947
- - -8.073955
- 25.262724
perimeter:
a: private
b: null
c: null
d: null
rotation: 1
division:
- 0.48350786040303545
- 0.48350786040303545
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.49887946927642934
- 0.49887946927642934
l:
rotation: 1
division:
- 0.4414323695000621
- 0.4414323695000621
l:
rotation: 1
division:
- 0.5656219609158839
- 0.5656219609158839
l:
rotation: 0
division:
- 0.5575995303769351
- 0.5575995303769351
l:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5008275645532423
- 0.5008275645532423
l:
type: me1
rotation: 0
r:
type: dp1
rotation: 0
r:
rotation: 1
division:
- 0.4272816108227617
- 0.4272816108227617
l:
rotation: 0
division:
- 0.7517694036847098
- 0.7517694036847098
l:
type: ao1
rotation: 0
r:
type: re1
rotation: 0
r:
rotation: 1
division:
- 0.622114173808394
- 0.622114173808394
l:
rotation: 3
division:
- 0.5581406250000001
- 0.5581406250000001
l:
type: mo1
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.6444996495996157
- 0.6444996495996157
l:
rotation: 1
division:
- 0.5477557605024861
- 0.5477557605024861
l:
rotation: 0
division:
- 0.5334309189072651
- 0.5334309189072651
l:
rotation: 3
division:
- 0.6385206269531251
- 0.6385206269531251
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.5353212004316293
- 0.5353212004316293
l:
type: qr1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.7162671590109604
- 0.7162671590109604
l:
type: de1
rotation: 0
r:
type: zt1
rotation: 0
r:
rotation: 1
division:
- 0.7184141335179154
- 0.7184141335179154
l:
rotation: 2
division:
- 0.6239648658741919
- 0.6239648658741919
l:
type: gp1
rotation: 0
r:
type: C
rotation: 0
r:
type: O
rotation: 1
r:
rotation: 1
division:
- 0.5115649835368756
- 0.5115649835368756
l:
rotation: 1
division:
- 0.4270312669479709
- 0.4270312669479709
l:
rotation: 1
division:
- 0.7430403014990321
- 0.7430403014990321
l:
rotation: 0
division:
- 0.6663937131288937
- 0.6663937131288937
l:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.4754643090679284
- 0.4754643090679284
l:
type: t9
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.64403101149484
- 0.64403101149484
l:
type: C
rotation: 0
r:
type: t9
rotation: 0
r:
rotation: 1
division:
- 0.28890429372955984
- 0.28890429372955984
l:
rotation: 1
division:
- 0.615434093952136
- 0.615434093952136
l:
type: rc1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.429760652966943
- 0.429760652966943
l:
type: tr1
rotation: 0
r:
type: pt1
rotation: 1
r:
rotation: 1
division:
- 0.536560684331618
- 0.536560684331618
l:
rotation: 1
division:
- 0.24759832579856278
- 0.24759832579856278
l:
rotation: 3
division:
- 0.7787526870507764
- 0.7787526870507764
l:
type: kt1
rotation: 0
r:
type: t10
rotation: 0
r:
rotation: 0
division:
- 0.4685508896253494
- 0.4685508896253494
l:
type: br1
rotation: 0
r:
type: ms1
rotation: 0
r:
rotation: 1
division:
- 0.4340907678745429
- 0.4340907678745429
l:
rotation: 1
division:
- 0.6014012954809093
- 0.6014012954809093
l:
type: ph1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.9768278199443412
- 0.9768278199443412
l:
type: wa1
rotation: 0
r:
type: O
rotation: 0

View file

@ -1,418 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/health-centre/init.dom
programme : health-centre
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 2
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/health-centre/coldstart-500000-s2.dom
[ 80 evals] best 3.04007e-12 (fails 28) via construct/0
[ 160 evals] best 7.74528e-12 (fails 28) via construct/1
[ 240 evals] best 1.27278e-10 (fails 25) via construct/2
[ 1040 evals] best 2.05075e-09 (fails 19) via construct/12
[ 2080 evals] best 4.22403e-09 (fails 18) via rotate 0/lrrl
[ 3120 evals] best 1.23776e-08 (fails 18) via undivide 0/lrrr
[ 3760 evals] best 1.39455e-08 (fails 18) via level_retype noop
[ 4800 evals] best 1.59195e-08 (fails 18) via level_fix noop
[ 4880 evals] best 1.78293e-08 (fails 18) via undivide 0/lrll
[ 4960 evals] best 2.07039e-08 (fails 18) via core_divide noop
[ 5440 evals] best 2.26527e-08 (fails 18) via rotate 0/rlrr
[ 6160 evals] best 2.28963e-08 (fails 18) via core_undivide noop
[ 7280 evals] best 2.60466e-08 (fails 18) via level_compound_fix noop
[ 8000 evals] best 2.66315e-08 (fails 18) via core_undivide noop
[ 8640 evals] best 4.07528e-08 (fails 16) via crossover rlrrr<->rrrl
[ 9840 evals] best 4.73414e-08 (fails 16) via core_undivide noop
[ 9920 evals] best 4.98649e-08 (fails 16) via core_undivide noop
[ 11280 evals] best 5.22342e-08 (fails 16) via core_undivide noop
[ 11760 evals] best 5.44617e-08 (fails 16) via core_undivide noop
[ 13760 evals] best 2.18035e-07 (fails 14) via rotate 0/lllr
[ 14000 evals] best 2.27326e-07 (fails 14) via level_retype noop
[ 15840 evals] best 2.37305e-07 (fails 14) via rotate 0/lrll
[ 16320 evals] best 2.47589e-07 (fails 14) via rotate 0/lrrl
[ 16640 evals] best 2.57045e-07 (fails 14) via level_fix noop
[ 17600 evals] best 2.66584e-07 (fails 14) via core_undivide noop
[ 17760 evals] best 2.75666e-07 (fails 14) via crossover rrrll<->lllrr
[ 18000 evals] best 2.85305e-07 (fails 14) via level_fix noop
[ 18080 evals] best 2.95039e-07 (fails 14) via swap 0/lllr
[ 19520 evals] best 3.04447e-07 (fails 14) via core_undivide noop
[ 20160 evals] best 3.1362e-07 (fails 14) via crossover lllrl<->rrlll
[ 21760 evals] best 2.18239e-07 (fails 13) via retype 0/lrllr->O
[ 22080 evals] best 2.49021e-07 (fails 13) via swap 0/lllr
[ 22240 evals] best 2.73668e-07 (fails 13) via level_fix noop
[ 23120 evals] best 2.86925e-07 (fails 13) via core_undivide noop
[ 23520 evals] best 2.9861e-07 (fails 13) via core_divide noop
[ 25600 evals] best 5.65963e-07 (fails 12) via core_undivide noop
[ 25840 evals] best 5.91044e-07 (fails 12) via core_divide noop
[ 26880 evals] best 6.19759e-07 (fails 12) via core_divide noop
[ 28560 evals] best 6.49777e-07 (fails 12) via retype 0/lllrl->re1
[ 29680 evals] best 6.73724e-07 (fails 12) via core_undivide noop
[ 30160 evals] best 6.91667e-07 (fails 12) via core_undivide noop
[ 32240 evals] best 7.05032e-07 (fails 12) via core_divide noop
[ 35440 evals] best 7.20936e-07 (fails 12) via level_retype noop
[ 36400 evals] best 7.36371e-07 (fails 12) via level_compound_fix noop
[ 37760 evals] best 7.50241e-07 (fails 12) via crossover llrr<->llrr
[ 38560 evals] best 7.86556e-07 (fails 12) via level_fix noop
[ 40880 evals] best 8.21898e-07 (fails 12) via crossover lllrl<->lrrlr
[ 41120 evals] best 8.45967e-07 (fails 12) via swap 0/llrl
[ 41280 evals] best 8.48915e-07 (fails 12) via core_undivide noop
[ 41600 evals] best 2.19176e-06 (fails 12) via crossover lrrl<->rlrrr
[ 41760 evals] best 2.22064e-06 (fails 12) via core_undivide noop
[ 42800 evals] best 2.24919e-06 (fails 12) via crossover rlrll<->rlrll
[ 44160 evals] best 2.25054e-06 (fails 12) via level_fix noop
[ 44320 evals] best 2.26364e-06 (fails 12) via level_retype noop
[ 45840 evals] best 2.31398e-06 (fails 12) via level_compound_fix noop
[ 46080 evals] best 2.39771e-06 (fails 12) via level_compound_fix noop
[ 46400 evals] best 2.40706e-06 (fails 12) via level_compound_fix noop
[ 47120 evals] best 2.42409e-06 (fails 12) via swap 0/rlrl
[ 52720 evals] best 2.46086e-06 (fails 12) via level_retype noop
[ 53520 evals] best 2.46716e-06 (fails 12) via core_divide noop
[ 56720 evals] best 3.3283e-06 (fails 12) via crossover rllrl<->llrrr
[ 58320 evals] best 3.33649e-06 (fails 12) via swap 0/lrlr
[ 59280 evals] best 3.36563e-06 (fails 12) via core_undivide noop
[ 59920 evals] best 3.37434e-06 (fails 12) via level_retype noop
[ 61520 evals] best 3.37454e-06 (fails 12) via level_retype noop
[ 73520 evals] best 3.54736e-06 (fails 12) via crossover rrlll<->lrlrl
[ 75760 evals] best 3.7656e-06 (fails 12) via core_divide noop
[ 76880 evals] best 3.83549e-06 (fails 12) via retype 0/lrlrr->mo1
[ 77600 evals] best 3.88306e-06 (fails 12) via level_compound_fix noop
[ 82480 evals] best 5.2071e-06 (fails 12) via undivide 0/rlrrr
[ 83280 evals] best 5.26703e-06 (fails 12) via level_fix noop
[ 86800 evals] best 5.30023e-06 (fails 12) via level_fix noop
[ 90320 evals] best 5.30798e-06 (fails 12) via level_retype noop
[122160 evals] best 3.21459e-05 (fails 9) via rotate 0/rrll
[146560 evals] best 3.24042e-05 (fails 9) via crossover r<->r
[162000 evals] best 3.26798e-05 (fails 9) via rotate 0/lrrl
[166880 evals] best 3.93491e-05 (fails 9) via undivide 0/rlrrr
[167840 evals] best 3.97222e-05 (fails 9) via level_compound_fix noop
[169760 evals] best 3.99788e-05 (fails 9) via retype 0/rrlrr->kt1
[172240 evals] best 4.05111e-05 (fails 9) via retype 0/llrlr->me1
[174560 evals] best 4.05659e-05 (fails 9) via level_compound_fix noop
[175520 evals] best 4.0576e-05 (fails 9) via crossover rrrrl<->llrll
[176240 evals] best 4.05784e-05 (fails 9) via level_retype noop
[180640 evals] best 4.55645e-05 (fails 9) via rotate 0/lrrl
[182800 evals] best 4.72012e-05 (fails 9) via core_divide noop
[184080 evals] best 4.7299e-05 (fails 9) via level_fix noop
[184160 evals] best 4.73067e-05 (fails 9) via core_undivide noop
[184800 evals] best 4.88281e-05 (fails 9) via level_retype noop
[185200 evals] best 4.88309e-05 (fails 9) via level_compound_fix noop
[194880 evals] best 4.88309e-05 (fails 9) via crossover rlrr<->llrl
[199760 evals] best 4.88662e-05 (fails 9) via level_retype noop
[201440 evals] best 4.88717e-05 (fails 9) via level_compound_fix noop
[202240 evals] best 4.88744e-05 (fails 9) via core_undivide noop
[208960 evals] best 4.91615e-05 (fails 9) via rotate 0/lllr
[209840 evals] best 4.9167e-05 (fails 9) via retype 0/rlrlr->br1
[209920 evals] best 4.94457e-05 (fails 9) via level_compound_fix noop
[212640 evals] best 5.03271e-05 (fails 9) via core_divide noop
[212880 evals] best 5.03298e-05 (fails 9) via core_undivide noop
[215200 evals] best 5.82446e-05 (fails 9) via place_missing ph1 -> lrllr
[216320 evals] best 5.85273e-05 (fails 9) via level_fix noop
[216960 evals] best 5.87137e-05 (fails 9) via level_retype noop
[217760 evals] best 6.01725e-05 (fails 9) via level_fix noop
[221760 evals] best 6.05548e-05 (fails 9) via crossover rllrr<->rlrlr
[224080 evals] best 6.07621e-05 (fails 9) via level_compound_fix noop
[225920 evals] best 6.22317e-05 (fails 9) via crossover lrrlr<->rlrrl
[277520 evals] best 9.80017e-05 (fails 8) via crossover rlll<->llll
[278160 evals] best 9.94913e-05 (fails 8) via crossover rrrlr<->rrrlr
[290880 evals] best 0.000119142 (fails 8) via place_missing ao1 -> rlllr
[294240 evals] best 0.000120131 (fails 8) via level_compound_fix noop
[296240 evals] best 0.000136504 (fails 8) via level_retype noop
[296400 evals] best 0.000144238 (fails 8) via core_divide noop
[297600 evals] best 0.000148308 (fails 8) via core_divide noop
[298160 evals] best 0.000153088 (fails 8) via retype 0/rrlrl->wa1
[298400 evals] best 0.00015708 (fails 8) via level_fix noop
[298960 evals] best 0.00016023 (fails 8) via level_retype noop
[299120 evals] best 0.000164088 (fails 8) via core_divide noop
[300480 evals] best 0.000161836 (fails 7) via crossover rlrll<->rllrl
[301200 evals] best 0.000165874 (fails 7) via level_compound_fix noop
[304320 evals] best 0.000175611 (fails 7) via retype 0/lllrr->qr1
[306080 evals] best 0.000179641 (fails 7) via core_divide noop
[310880 evals] best 0.000183423 (fails 7) via level_retype noop
[311600 evals] best 0.00020186 (fails 7) via core_undivide noop
[314080 evals] best 0.000206088 (fails 7) via core_undivide noop
[314320 evals] best 0.00020928 (fails 7) via level_fix noop
[315920 evals] best 0.000212285 (fails 7) via core_undivide noop
[316080 evals] best 0.000215156 (fails 7) via core_undivide noop
[316880 evals] best 0.000217485 (fails 7) via crossover rlrll<->lrrlr
[320000 evals] best 0.00021922 (fails 7) via core_divide noop
[321760 evals] best 0.000221004 (fails 7) via crossover rrrll<->llrll
[322480 evals] best 0.000221908 (fails 7) via level_retype noop
[334560 evals] best 0.000222939 (fails 7) via core_divide noop
[336560 evals] best 0.000224675 (fails 7) via level_compound_fix noop
[336720 evals] best 0.000226466 (fails 7) via core_undivide noop
[353600 evals] best 0.000226721 (fails 7) via level_fix noop
[358240 evals] best 0.000228547 (fails 7) via level_fix noop
[358320 evals] best 0.000229603 (fails 7) via level_compound_fix noop
[362480 evals] best 0.000230019 (fails 7) via core_undivide noop
[363920 evals] best 0.000231184 (fails 7) via core_undivide noop
[387040 evals] best 0.000246099 (fails 7) via rotate 0/rrrr
[387120 evals] best 0.000262652 (fails 7) via core_undivide noop
[387200 evals] best 0.000280293 (fails 7) via core_divide noop
[388160 evals] best 0.000298055 (fails 7) via level_compound_fix noop
[389040 evals] best 0.000319938 (fails 7) via core_divide noop
[396640 evals] best 0.000321628 (fails 7) via level_fix noop
[398320 evals] best 0.000323351 (fails 7) via core_divide noop
[406160 evals] best 0.000364098 (fails 7) via undivide 0/rlrl
[406880 evals] best 0.000371359 (fails 7) via undivide 0/rlrl
[407040 evals] best 0.000386031 (fails 7) via level_fix noop
[409520 evals] best 0.000390844 (fails 7) via level_fix noop
[410160 evals] best 0.000533031 (fails 6) via crossover rlrl<->lrllr
[410800 evals] best 0.000594646 (fails 6) via core_divide noop
[411840 evals] best 0.000606993 (fails 6) via level_fix noop
[412480 evals] best 0.000624444 (fails 6) via level_fix noop
[412720 evals] best 0.000639509 (fails 6) via retype 0/rlrrr->ph1
[413680 evals] best 0.000646054 (fails 6) via core_undivide noop
[421040 evals] best 0.000662382 (fails 6) via retype 0/rlllrl->gp1
[421120 evals] best 0.000679955 (fails 6) via level_fix noop
[423120 evals] best 0.000692401 (fails 6) via core_divide noop
[424400 evals] best 0.000694282 (fails 6) via core_undivide noop
[425360 evals] best 0.000710894 (fails 6) via level_compound_fix noop
[426160 evals] best 0.00075164 (fails 6) via core_divide noop
[427760 evals] best 0.00076103 (fails 6) via level_retype noop
[429600 evals] best 0.000769686 (fails 6) via level_fix noop
[430320 evals] best 0.00078154 (fails 6) via core_divide noop
[431440 evals] best 0.00078639 (fails 6) via level_compound_fix noop
[433680 evals] best 0.000793532 (fails 6) via crossover lrlrl<->rlrrl
[433760 evals] best 0.000793974 (fails 6) via level_delete noop
[435280 evals] best 0.000796904 (fails 6) via level_compound_fix noop
[439520 evals] best 0.000798566 (fails 6) via level_fix noop
[440320 evals] best 0.000807961 (fails 6) via level_delete noop
[440800 evals] best 0.000814519 (fails 6) via level_fix noop
[440960 evals] best 0.000818432 (fails 6) via level_fix noop
[442080 evals] best 0.000823555 (fails 6) via level_fix noop
[444320 evals] best 0.000824738 (fails 6) via core_undivide noop
[446640 evals] best 0.000824751 (fails 6) via core_undivide noop
[446960 evals] best 0.000826176 (fails 6) via level_retype noop
[478400 evals] best 0.000846488 (fails 6) via retype 0/llrll->re1
[478480 evals] best 0.000854724 (fails 6) via retype 0/lllrr->t9
[478640 evals] best 0.000869142 (fails 6) via level_fix noop
[479200 evals] best 0.000889042 (fails 6) via core_undivide noop
[479520 evals] best 0.000905278 (fails 6) via crossover llrll<->rrlrr
[483040 evals] best 0.000908676 (fails 6) via level_fix noop
--- finishing (homemaker-py-3l6): unfold + polish 250000 evals ---
[finish] unfold: materialised 0 shared-leaf copies
[ 200 evals] best 0.000921035 (fails 6) via seed
[ 55320 evals] best 0.00143789 (fails 5) via swap 0/lrrl
[ 56600 evals] best 0.0014446 (fails 5) via level_fix noop
[ 57240 evals] best 0.00145004 (fails 5) via swap 0/llrl
[120440 evals] best 0.00145004 (fails 5) via crossover lrrr<->rlrlr
[157480 evals] best 0.00146631 (fails 5) via divide 0/lrlll
[160760 evals] best 0.00146672 (fails 5) via level_compound_fix noop
[161000 evals] best 0.00146707 (fails 5) via retype 0/lrlrr->de1
[161080 evals] best 0.00146735 (fails 5) via level_fix noop
[161880 evals] best 0.00146754 (fails 5) via level_retype noop
[162440 evals] best 0.00146757 (fails 5) via level_fix noop
--- collapse (homemaker-py-94g): finish-time cell→room relabel ---
[finish] collapse: 91 → 5 fails (applied)
--- done ---
elapsed : 112525.3s
evals : 750040 across 9374 topologies
best : 0.00146757 (5 fails) via level_fix noop+collapse
improvement history:
[ 80] 3.04007e-12 (share:construct/0)
[ 160] 7.74528e-12 (share:construct/1)
[ 240] 1.27278e-10 (share:construct/2)
[ 1040] 2.05075e-09 (share:construct/12)
[ 2080] 4.22403e-09 (share:rotate 0/lrrl)
[ 3120] 1.23776e-08 (share:undivide 0/lrrr)
[ 3760] 1.39455e-08 (share:level_retype noop)
[ 4800] 1.59195e-08 (share:level_fix noop)
[ 4880] 1.78293e-08 (share:undivide 0/lrll)
[ 4960] 2.07039e-08 (share:core_divide noop)
[ 5440] 2.26527e-08 (share:rotate 0/rlrr)
[ 6160] 2.28963e-08 (share:core_undivide noop)
[ 7280] 2.60466e-08 (share:level_compound_fix noop)
[ 8000] 2.66315e-08 (share:core_undivide noop)
[ 8640] 4.07528e-08 (share:crossover rlrrr<->rrrl)
[ 9840] 4.73414e-08 (share:core_undivide noop)
[ 9920] 4.98649e-08 (share:core_undivide noop)
[ 11280] 5.22342e-08 (share:core_undivide noop)
[ 11760] 5.44617e-08 (share:core_undivide noop)
[ 13760] 2.18035e-07 (share:rotate 0/lllr)
[ 14000] 2.27326e-07 (share:level_retype noop)
[ 15840] 2.37305e-07 (share:rotate 0/lrll)
[ 16320] 2.47589e-07 (share:rotate 0/lrrl)
[ 16640] 2.57045e-07 (share:level_fix noop)
[ 17600] 2.66584e-07 (share:core_undivide noop)
[ 17760] 2.75666e-07 (share:crossover rrrll<->lllrr)
[ 18000] 2.85305e-07 (share:level_fix noop)
[ 18080] 2.95039e-07 (share:swap 0/lllr)
[ 19520] 3.04447e-07 (share:core_undivide noop)
[ 20160] 3.1362e-07 (share:crossover lllrl<->rrlll)
[ 21760] 2.18239e-07 (share:retype 0/lrllr->O)
[ 22080] 2.49021e-07 (share:swap 0/lllr)
[ 22240] 2.73668e-07 (share:level_fix noop)
[ 23120] 2.86925e-07 (share:core_undivide noop)
[ 23520] 2.9861e-07 (share:core_divide noop)
[ 25600] 5.65963e-07 (share:core_undivide noop)
[ 25840] 5.91044e-07 (share:core_divide noop)
[ 26880] 6.19759e-07 (share:core_divide noop)
[ 28560] 6.49777e-07 (share:retype 0/lllrl->re1)
[ 29680] 6.73724e-07 (share:core_undivide noop)
[ 30160] 6.91667e-07 (share:core_undivide noop)
[ 32240] 7.05032e-07 (share:core_divide noop)
[ 35440] 7.20936e-07 (share:level_retype noop)
[ 36400] 7.36371e-07 (share:level_compound_fix noop)
[ 37760] 7.50241e-07 (share:crossover llrr<->llrr)
[ 38560] 7.86556e-07 (share:level_fix noop)
[ 40880] 8.21898e-07 (share:crossover lllrl<->lrrlr)
[ 41120] 8.45967e-07 (share:swap 0/llrl)
[ 41280] 8.48915e-07 (share:core_undivide noop)
[ 41600] 2.19176e-06 (share:crossover lrrl<->rlrrr)
[ 41760] 2.22064e-06 (share:core_undivide noop)
[ 42800] 2.24919e-06 (share:crossover rlrll<->rlrll)
[ 44160] 2.25054e-06 (share:level_fix noop)
[ 44320] 2.26364e-06 (share:level_retype noop)
[ 45840] 2.31398e-06 (share:level_compound_fix noop)
[ 46080] 2.39771e-06 (share:level_compound_fix noop)
[ 46400] 2.40706e-06 (share:level_compound_fix noop)
[ 47120] 2.42409e-06 (share:swap 0/rlrl)
[ 52720] 2.46086e-06 (share:level_retype noop)
[ 53520] 2.46716e-06 (share:core_divide noop)
[ 56720] 3.3283e-06 (share:crossover rllrl<->llrrr)
[ 58320] 3.33649e-06 (share:swap 0/lrlr)
[ 59280] 3.36563e-06 (share:core_undivide noop)
[ 59920] 3.37434e-06 (share:level_retype noop)
[ 61520] 3.37454e-06 (share:level_retype noop)
[ 73520] 3.54736e-06 (share:crossover rrlll<->lrlrl)
[ 75760] 3.7656e-06 (share:core_divide noop)
[ 76880] 3.83549e-06 (share:retype 0/lrlrr->mo1)
[ 77600] 3.88306e-06 (share:level_compound_fix noop)
[ 82480] 5.2071e-06 (share:undivide 0/rlrrr)
[ 83280] 5.26703e-06 (share:level_fix noop)
[ 86800] 5.30023e-06 (share:level_fix noop)
[ 90320] 5.30798e-06 (share:level_retype noop)
[122160] 3.21459e-05 (share:rotate 0/rrll)
[146560] 3.24042e-05 (share:crossover r<->r)
[162000] 3.26798e-05 (share:rotate 0/lrrl)
[166880] 3.93491e-05 (share:undivide 0/rlrrr)
[167840] 3.97222e-05 (share:level_compound_fix noop)
[169760] 3.99788e-05 (share:retype 0/rrlrr->kt1)
[172240] 4.05111e-05 (share:retype 0/llrlr->me1)
[174560] 4.05659e-05 (share:level_compound_fix noop)
[175520] 4.0576e-05 (share:crossover rrrrl<->llrll)
[176240] 4.05784e-05 (share:level_retype noop)
[180640] 4.55645e-05 (share:rotate 0/lrrl)
[182800] 4.72012e-05 (share:core_divide noop)
[184080] 4.7299e-05 (share:level_fix noop)
[184160] 4.73067e-05 (share:core_undivide noop)
[184800] 4.88281e-05 (share:level_retype noop)
[185200] 4.88309e-05 (share:level_compound_fix noop)
[194880] 4.88309e-05 (share:crossover rlrr<->llrl)
[199760] 4.88662e-05 (share:level_retype noop)
[201440] 4.88717e-05 (share:level_compound_fix noop)
[202240] 4.88744e-05 (share:core_undivide noop)
[208960] 4.91615e-05 (share:rotate 0/lllr)
[209840] 4.9167e-05 (share:retype 0/rlrlr->br1)
[209920] 4.94457e-05 (share:level_compound_fix noop)
[212640] 5.03271e-05 (share:core_divide noop)
[212880] 5.03298e-05 (share:core_undivide noop)
[215200] 5.82446e-05 (share:place_missing ph1 -> lrllr)
[216320] 5.85273e-05 (share:level_fix noop)
[216960] 5.87137e-05 (share:level_retype noop)
[217760] 6.01725e-05 (share:level_fix noop)
[221760] 6.05548e-05 (share:crossover rllrr<->rlrlr)
[224080] 6.07621e-05 (share:level_compound_fix noop)
[225920] 6.22317e-05 (share:crossover lrrlr<->rlrrl)
[277520] 9.80017e-05 (share:crossover rlll<->llll)
[278160] 9.94913e-05 (share:crossover rrrlr<->rrrlr)
[290880] 0.000119142 (share:place_missing ao1 -> rlllr)
[294240] 0.000120131 (share:level_compound_fix noop)
[296240] 0.000136504 (share:level_retype noop)
[296400] 0.000144238 (share:core_divide noop)
[297600] 0.000148308 (share:core_divide noop)
[298160] 0.000153088 (share:retype 0/rrlrl->wa1)
[298400] 0.00015708 (share:level_fix noop)
[298960] 0.00016023 (share:level_retype noop)
[299120] 0.000164088 (share:core_divide noop)
[300480] 0.000161836 (share:crossover rlrll<->rllrl)
[301200] 0.000165874 (share:level_compound_fix noop)
[304320] 0.000175611 (share:retype 0/lllrr->qr1)
[306080] 0.000179641 (share:core_divide noop)
[310880] 0.000183423 (share:level_retype noop)
[311600] 0.00020186 (share:core_undivide noop)
[314080] 0.000206088 (share:core_undivide noop)
[314320] 0.00020928 (share:level_fix noop)
[315920] 0.000212285 (share:core_undivide noop)
[316080] 0.000215156 (share:core_undivide noop)
[316880] 0.000217485 (share:crossover rlrll<->lrrlr)
[320000] 0.00021922 (share:core_divide noop)
[321760] 0.000221004 (share:crossover rrrll<->llrll)
[322480] 0.000221908 (share:level_retype noop)
[334560] 0.000222939 (share:core_divide noop)
[336560] 0.000224675 (share:level_compound_fix noop)
[336720] 0.000226466 (share:core_undivide noop)
[353600] 0.000226721 (share:level_fix noop)
[358240] 0.000228547 (share:level_fix noop)
[358320] 0.000229603 (share:level_compound_fix noop)
[362480] 0.000230019 (share:core_undivide noop)
[363920] 0.000231184 (share:core_undivide noop)
[387040] 0.000246099 (share:rotate 0/rrrr)
[387120] 0.000262652 (share:core_undivide noop)
[387200] 0.000280293 (share:core_divide noop)
[388160] 0.000298055 (share:level_compound_fix noop)
[389040] 0.000319938 (share:core_divide noop)
[396640] 0.000321628 (share:level_fix noop)
[398320] 0.000323351 (share:core_divide noop)
[406160] 0.000364098 (share:undivide 0/rlrl)
[406880] 0.000371359 (share:undivide 0/rlrl)
[407040] 0.000386031 (share:level_fix noop)
[409520] 0.000390844 (share:level_fix noop)
[410160] 0.000533031 (share:crossover rlrl<->lrllr)
[410800] 0.000594646 (share:core_divide noop)
[411840] 0.000606993 (share:level_fix noop)
[412480] 0.000624444 (share:level_fix noop)
[412720] 0.000639509 (share:retype 0/rlrrr->ph1)
[413680] 0.000646054 (share:core_undivide noop)
[421040] 0.000662382 (share:retype 0/rlllrl->gp1)
[421120] 0.000679955 (share:level_fix noop)
[423120] 0.000692401 (share:core_divide noop)
[424400] 0.000694282 (share:core_undivide noop)
[425360] 0.000710894 (share:level_compound_fix noop)
[426160] 0.00075164 (share:core_divide noop)
[427760] 0.00076103 (share:level_retype noop)
[429600] 0.000769686 (share:level_fix noop)
[430320] 0.00078154 (share:core_divide noop)
[431440] 0.00078639 (share:level_compound_fix noop)
[433680] 0.000793532 (share:crossover lrlrl<->rlrrl)
[433760] 0.000793974 (share:level_delete noop)
[435280] 0.000796904 (share:level_compound_fix noop)
[439520] 0.000798566 (share:level_fix noop)
[440320] 0.000807961 (share:level_delete noop)
[440800] 0.000814519 (share:level_fix noop)
[440960] 0.000818432 (share:level_fix noop)
[442080] 0.000823555 (share:level_fix noop)
[444320] 0.000824738 (share:core_undivide noop)
[446640] 0.000824751 (share:core_undivide noop)
[446960] 0.000826176 (share:level_retype noop)
[478400] 0.000846488 (share:retype 0/llrll->re1)
[478480] 0.000854724 (share:retype 0/lllrr->t9)
[478640] 0.000869142 (share:level_fix noop)
[479200] 0.000889042 (share:core_undivide noop)
[479520] 0.000905278 (share:crossover llrll<->rrlrr)
[483040] 0.000908676 (share:level_fix noop)
[500200] 0.000921035 (polish:seed)
[555320] 0.00143789 (polish:swap 0/lrrl)
[556600] 0.0014446 (polish:level_fix noop)
[557240] 0.00145004 (polish:swap 0/llrl)
[620440] 0.00145004 (polish:crossover lrrr<->rlrlr)
[657480] 0.00146631 (polish:divide 0/lrlll)
[660760] 0.00146672 (polish:level_compound_fix noop)
[661000] 0.00146707 (polish:retype 0/lrlrr->de1)
[661080] 0.00146735 (polish:level_fix noop)
[661880] 0.00146754 (polish:level_retype noop)
[662440] 0.00146757 (polish:level_fix noop)
written : /home/bruno/src/homemaker-layout/examples/health-centre/coldstart-500000-s2.dom

View file

@ -1,17 +1,18 @@
---
node:
- - -2.499098
- 3.896165
- - 16.284033
- 8.678435
- - 11.155808
- 29.106947
- - -8.073955
- 25.262724
- - -0.40619466787232916
- 7.945534625317068
- - 12.453678259018824
- 11.219717050727425
- - 8.942638574000743
- 25.206100654545047
- - -4.223021280218349
- 22.57415280833146
perimeter:
a: private
b: null
c: null
d: null
b: ~
c: ~
d: ~
type: O
rotation: 0
height: 3

View file

@ -229,7 +229,6 @@ spaces:
- br1
re1:
crinkliness: none # no window needed
usage: utility
name: Records Room
size:
@ -282,7 +281,6 @@ spaces:
# ---- SERVICE ----
me1:
crinkliness: none # no window needed
usage: utility
name: Plant / Mechanical Room
size:
@ -298,7 +296,6 @@ spaces:
- c
dp1:
crinkliness: none # no window needed
usage: utility
name: General Storage
size:
@ -349,26 +346,15 @@ spaces:
# Building constraints
storey_minimum: 1
storey_limit: 2
# homemaker-py-hxi (DESIGN.md §39.25): ENABLED. Fails a level that has no
# outdoor space at all -- Alexander's actual requirement, per level and with no
# quantity attached. It had been off in every corpus config, so the only thing
# expressing outdoor space was ratio_outside's arbitrary fraction.
force_roof_garden: 1
force_roof_garden: 0
# homemaker-py-hxi (DESIGN.md §39.24): disabled. The score is value/cost, a
# ratio, so the per-m2 economics (circulation worth 50 against a build cost of
# 200) is ALREADY a proportional pressure against circulation -- this said the
# same thing a second time, and with a curve where twice the corridor is far
# more than twice as bad. Its other side, "a building needs some circulation",
# was worth at most 13% here and is enforced structurally anyway by the access
# and connectivity checks. Set a [target, sigma] pair to re-enable.
ratio_circulation:
- 0.10
- 0.12
# homemaker-py-hxi (DESIGN.md §39.25): disabled. Alexander says every level
# should have accessible outside space; he does not say how much. The
# qualitative requirement is force_roof_garden below. Set a [target, sigma]
# pair to re-enable this quantitative one.
ratio_outside:
- 0.06
- 0.05
staircase_min: 1
staircase_max: 2
@ -376,9 +362,4 @@ staircase_max: 2
value_inside: 300.0
value_circulation: 50.0
value_outside: 100.0
# homemaker-py-ecx (DESIGN.md §39.19): an upper-level terrace is worth what
# outdoor space is worth (value_outside); it is the COST that differs by level
# (outside 10.0 vs outside_supported 110.0), not the value. At 300.0 -- the
# `value_inside` rate -- a terrace was worth more per square metre than a real
# internal room, which the owner ruled out.
value_supported: 100.0
value_supported: 300.0

View file

@ -1,660 +0,0 @@
node:
- - 0.0
- 0.0
- - 30.0
- 1.5
- - 29.0
- 28.0
- - 0.0
- 27.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 0
division:
- 0.5464598645587564
- 0.5464598645587564
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 3
division:
- 0.45299793782128434
- 0.45299793782128434
l:
rotation: 1
division:
- 0.5070312495911672
- 0.5070312495911672
l:
rotation: 1
division:
- 0.5033641421290929
- 0.5033641421290929
l:
rotation: 3
division:
- 0.6010610183987953
- 0.6010610183987953
l:
type: me1
rotation: 0
r:
rotation: 1
division:
- 0.416309216883104
- 0.416309216883104
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.501217497085463
- 0.501217497085463
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.5023793410843957
- 0.5023793410843957
l:
type: ur1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.46235803879777526
- 0.46235803879777526
l:
rotation: 1
division:
- 0.7112823022024215
- 0.7112823022024215
l:
rotation: 1
division:
- 0.5297305616953958
- 0.5297305616953958
l:
type: ef1
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 1
division:
- 0.46080415559703575
- 0.46080415559703575
l:
rotation: 3
division:
- 0.7855477410849808
- 0.7855477410849808
l:
rotation: 0
division:
- 0.7755916235918977
- 0.7755916235918977
l:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.3598376157982003
- 0.3598376157982003
l:
type: m
rotation: 0
r:
rotation: 2
division:
- 0.5394353312382297
- 0.5394353312382297
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.41991934342105464
- 0.41991934342105464
l:
rotation: 1
division:
- 0.33955324217012417
- 0.33955324217012417
l:
type: C
rotation: 0
r:
type: ws1
rotation: 1
r:
rotation: 3
division:
- 0.530948242932189
- 0.530948242932189
l:
rotation: 1
division:
- 0.6139595936852689
- 0.6139595936852689
l:
type: O
rotation: 0
r:
type: rc1
rotation: 0
r:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.4294138772787426
- 0.4294138772787426
l:
rotation: 1
division:
- 0.5882291917680589
- 0.5882291917680589
l:
rotation: 1
division:
- 0.7118312482034173
- 0.7118312482034173
l:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.551578125
- 0.551578125
l:
type: m
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.7197887008888686
- 0.7197887008888686
l:
type: da1
rotation: 0
r:
type: la1
rotation: 0
r:
rotation: 0
division:
- 0.7419831333522663
- 0.7419831333522663
l:
rotation: 0
division:
- 0.6937168238978216
- 0.6937168238978216
l:
rotation: 1
division:
- 0.7276257285510321
- 0.7276257285510321
l:
type: lr1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.6330880335881911
- 0.6330880335881911
l:
rotation: 2
division:
- 0.553345914363554
- 0.553345914363554
l:
type: C
rotation: 0
r:
type: m
rotation: 0
r:
type: ph1
rotation: 0
r:
rotation: 1
division:
- 0.5281099669161189
- 0.5281099669161189
l:
type: O
rotation: 0
r:
type: gh1
rotation: 0
above:
rotation: 0
division:
- 0.4238388578453006
- 0.4238388578453006
height: 3.0
l:
rotation: 0
division:
- 0.46438575333518434
- 0.46438575333518434
l:
rotation: 0
division:
- 0.4166401264441752
- 0.4166401264441752
l:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.7142077220782733
- 0.7142077220782733
l:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5009062001080014
- 0.5009062001080014
l:
type: lo1
rotation: 0
r:
type: en1
rotation: 0
r:
rotation: 0
division:
- 0.722466738677041
- 0.722466738677041
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: li1
rotation: 3
r:
rotation: 0
division:
- 0.375
- 0.375
l:
type: n
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.5057497794729796
- 0.5057497794729796
l:
rotation: 0
division:
- 0.9009009009009009
- 0.9009009009009009
l:
rotation: 0
division:
- 0.9
- 0.9
l:
type: n
rotation: 0
r:
type: ur2
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5759435403447517
- 0.5759435403447517
l:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 3
division:
- 0.3
- 0.3
l:
type: n
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 2
division:
- 0.5
- 0.5
l:
rotation: 2
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: py
rotation: 0
r:
type: py
rotation: 0
r:
rotation: 0
division:
- 0.6521739130434783
- 0.6521739130434783
l:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.501217497085463
- 0.501217497085463
l:
type: em
rotation: 0
r:
type: em
rotation: 0
above:
rotation: 0
division:
- 0.4630736037244258
- 0.4630736037244258
height: 3.0
l:
rotation: 0
division:
- 0.39191302769825365
- 0.39191302769825365
l:
rotation: 0
division:
- 0.6962360322921977
- 0.6962360322921977
l:
rotation: 0
division:
- 0.8262218507206094
- 0.8262218507206094
l:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.6244638253246562
- 0.6244638253246562
l:
rotation: 2
division:
- 0.5802219050635611
- 0.5802219050635611
l:
type: r
rotation: 0
r:
type: tt
rotation: 0
r:
type: tt
rotation: 0
r:
rotation: 0
division:
- 0.7142857142857143
- 0.7142857142857143
l:
rotation: 0
division:
- 0.4480527946704407
- 0.4480527946704407
l:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.5262783719397363
- 0.5262783719397363
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.7296421643247618
- 0.7296421643247618
l:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 2
division:
- 0.36486892968750007
- 0.36486892968750007
l:
type: gy1
rotation: 0
r:
type: O
rotation: 0
r:
type: O
rotation: 3
r:
rotation: 0
division:
- 0.5172413793103449
- 0.5172413793103449
l:
rotation: 0
division:
- 0.36861414301279055
- 0.36861414301279055
l:
type: ur3
rotation: 0
r:
rotation: 0
division:
- 0.5667442448821649
- 0.5667442448821649
l:
type: ut1
rotation: 0
r:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5048892464944565
- 0.5048892464944565
l:
rotation: 0
division:
- 0.2420950004581947
- 0.2420950004581947
l:
rotation: 0
division:
- 0.4
- 0.4
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.7124538661857902
- 0.7124538661857902
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.6099584935544302
- 0.6099584935544302
l:
type: tt
rotation: 0
r:
type: tt
rotation: 0
r:
rotation: 0
division:
- 0.5964611517116011
- 0.5964611517116011
l:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.7728737084050409
- 0.7728737084050409
l:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.30217800720576415
- 0.30217800720576415
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 2
division:
- 0.5
- 0.5
l:
rotation: 2
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
type: q1
rotation: 0
r:
rotation: 0
division:
- 0.34782608695652173
- 0.34782608695652173
l:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: r
rotation: 0
r:
type: r
rotation: 0

View file

@ -1,628 +0,0 @@
node:
- - 0.0
- 0.0
- - 30.0
- 1.5
- - 29.0
- 28.0
- - 0.0
- 27.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 0
division:
- 0.4217954377679881
- 0.4217954377679881
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.6532494109246466
- 0.6532494109246466
l:
rotation: 0
division:
- 0.44711624955524865
- 0.44711624955524865
l:
type: lr1
rotation: 1
r:
rotation: 1
division:
- 0.7493166529948532
- 0.7493166529948532
l:
rotation: 0
division:
- 0.3863510884777275
- 0.3863510884777275
l:
rotation: 3
division:
- 0.5821724940175944
- 0.5821724940175944
l:
type: O
rotation: 0
r:
type: m
rotation: 0
r:
type: da1
rotation: 0
r:
rotation: 3
division:
- 0.793622065044247
- 0.793622065044247
l:
type: k1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.5627507124161697
- 0.5627507124161697
l:
rotation: 1
division:
- 0.7176946455382021
- 0.7176946455382021
l:
type: ws1
rotation: 0
r:
rotation: 3
division:
- 0.8411548172275364
- 0.8411548172275364
l:
type: O
rotation: 0
r:
type: t
rotation: 0
r:
type: C
rotation: 3
r:
rotation: 1
division:
- 0.5441129737239778
- 0.5441129737239778
l:
rotation: 0
division:
- 0.7336405346012067
- 0.7336405346012067
l:
rotation: 1
division:
- 0.8147640010719923
- 0.8147640010719923
l:
rotation: 0
division:
- 0.7370554352753373
- 0.7370554352753373
l:
rotation: 3
division:
- 0.5516324878760346
- 0.5516324878760346
l:
type: C
rotation: 3
r:
rotation: 1
division:
- 0.5253642741676521
- 0.5253642741676521
l:
type: gh1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.4385942026805069
- 0.4385942026805069
l:
rotation: 0
division:
- 0.5280476136214016
- 0.5280476136214016
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
type: la1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.43281488988313327
- 0.43281488988313327
l:
type: me1
rotation: 1
r:
rotation: 0
division:
- 0.5029024891632398
- 0.5029024891632398
l:
type: C
rotation: 0
r:
type: ef1
rotation: 0
r:
rotation: 1
division:
- 0.7169837502876616
- 0.7169837502876616
l:
rotation: 1
division:
- 0.37098199882002875
- 0.37098199882002875
l:
rotation: 3
division:
- 0.5586244518828078
- 0.5586244518828078
l:
rotation: 0
division:
- 0.3790996831083391
- 0.3790996831083391
l:
type: m
rotation: 0
r:
rotation: 0
division:
- 0.5029024891632397
- 0.5029024891632397
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
rotation: 0
division:
- 0.3352683261088271
- 0.3352683261088271
l:
type: t
rotation: 0
r:
type: rc1
rotation: 0
r:
rotation: 2
division:
- 0.7358470481881225
- 0.7358470481881225
l:
rotation: 1
division:
- 0.7846898094392847
- 0.7846898094392847
l:
rotation: 0
division:
- 0.3855657020783567
- 0.3855657020783567
l:
type: ph1
rotation: 0
r:
type: O
rotation: 0
r:
type: m
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.4468629575793792
- 0.4468629575793792
l:
type: ur1
rotation: 0
r:
type: r
rotation: 0
above:
rotation: 0
division:
- 0.37008565034413465
- 0.37008565034413465
height: 3.0
l:
rotation: 0
division:
- 0.3989190519783494
- 0.3989190519783494
l:
rotation: 0
division:
- 0.4445387996631358
- 0.4445387996631358
l:
rotation: 0
division:
- 0.5029024891632397
- 0.5029024891632397
l:
type: n
rotation: 0
r:
type: n
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.498454417675536
- 0.498454417675536
l:
rotation: 0
division:
- 0.5262522543849433
- 0.5262522543849433
l:
type: n
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5235229688700246
- 0.5235229688700246
l:
rotation: 1
division:
- 0.5686495246625086
- 0.5686495246625086
l:
type: py
rotation: 0
r:
type: em
rotation: 0
r:
type: en1
rotation: 0
r:
rotation: 0
division:
- 0.457233409542185
- 0.457233409542185
l:
rotation: 0
division:
- 0.43055564736619417
- 0.43055564736619417
l:
rotation: 0
division:
- 0.6612900749499223
- 0.6612900749499223
l:
rotation: 0
division:
- 0.3
- 0.3
l:
type: O
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.5821724940175945
- 0.5821724940175945
l:
type: li1
rotation: 0
r:
type: ur2
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.7601464538562697
- 0.7601464538562697
l:
rotation: 0
division:
- 0.9090909090909091
- 0.9090909090909091
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: lo1
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: em
rotation: 0
r:
type: py
rotation: 0
r:
type: O
rotation: 0
r:
type: C
rotation: 0
above:
rotation: 0
division:
- 0.3892208111732773
- 0.3892208111732773
height: 3.0
l:
rotation: 0
division:
- 0.43255331098925165
- 0.43255331098925165
l:
rotation: 0
division:
- 0.28066838730628463
- 0.28066838730628463
l:
rotation: 0
division:
- 0.16666666666666666
- 0.16666666666666666
l:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.34155460722336733
- 0.34155460722336733
l:
rotation: 1
division:
- 0.5029024891632397
- 0.5029024891632397
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.8447025420273533
- 0.8447025420273533
l:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.7009836427732035
- 0.7009836427732035
l:
type: r
rotation: 0
r:
type: tt
rotation: 0
r:
rotation: 0
division:
- 0.6434201292371758
- 0.6434201292371758
l:
rotation: 0
division:
- 0.27709722975684414
- 0.27709722975684414
l:
rotation: 0
division:
- 0.4082488946798416
- 0.4082488946798416
l:
type: ut1
rotation: 0
r:
rotation: 1
division:
- 0.6120090509180269
- 0.6120090509180269
l:
type: ur3
rotation: 0
r:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.3333333333333333
- 0.3333333333333333
l:
type: q1
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.3352683261088271
- 0.3352683261088271
l:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.5974374068485503
- 0.5974374068485503
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5690539691736006
- 0.5690539691736006
l:
rotation: 0
division:
- 0.34088632491204374
- 0.34088632491204374
l:
rotation: 0
division:
- 0.8670584703450476
- 0.8670584703450476
l:
type: O
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.4484330800758139
- 0.4484330800758139
l:
type: gy1
rotation: 3
r:
rotation: 0
division:
- 0.7327434282057801
- 0.7327434282057801
l:
type: C
rotation: 0
r:
rotation: 1
division:
- 0.3352683261088271
- 0.3352683261088271
l:
type: tt
rotation: 0
r:
rotation: 1
division:
- 0.5060456297205106
- 0.5060456297205106
l:
type: tt
rotation: 0
r:
type: tt
rotation: 0
r:
rotation: 0
division:
- 0.21941800051545024
- 0.21941800051545024
l:
rotation: 0
division:
- 0.36363636363636365
- 0.36363636363636365
l:
type: O
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5442952443728626
- 0.5442952443728626
l:
type: O
rotation: 0
r:
rotation: 2
division:
- 0.4671703321376224
- 0.4671703321376224
l:
type: r
rotation: 0
r:
type: O
rotation: 0

View file

@ -1,543 +0,0 @@
WARNING: 338 m2 per storey needs ~70 m of daylit wall; the plot's non-private perimeter gives 55 m. Roughly 22 m2 of courtyard closes the gap. (DESIGN.md §38.3)
seed : /home/bruno/src/homemaker-layout/examples/maple-court/init.dom
programme : maple-court
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 1
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/maple-court/coldstart-500000-s1.dom
[ 80 evals] best 7.48546e-46 (fails 141) via construct/0
[ 160 evals] best 4.82423e-42 (fails 127) via construct/1
[ 480 evals] best 8.67067e-42 (fails 124) via construct/5
[ 800 evals] best 4.80398e-39 (fails 122) via construct/9
[ 1440 evals] best 6.36848e-40 (fails 118) via place_missing r -> rrrr
[ 2160 evals] best 1.32118e-39 (fails 117) via level_fix noop
[ 2400 evals] best 1.60106e-38 (fails 114) via place_missing em -> rlll
[ 3040 evals] best 3.2838e-38 (fails 113) via rotate 0/rrll
[ 3760 evals] best 3.65129e-38 (fails 113) via core_undivide noop
[ 4320 evals] best 5.79431e-37 (fails 109) via place_missing r -> rrrl
[ 4400 evals] best 5.8784e-37 (fails 109) via core_undivide noop
[ 4640 evals] best 2.78722e-36 (fails 107) via retype 1/rlllr->py
[ 5760 evals] best 4.90785e-34 (fails 100) via crossover lrrl<->rrrl
[ 8480 evals] best 5.06412e-34 (fails 100) via level_retype 2/rrlr<->0/rrrl
[ 8960 evals] best 1.00937e-33 (fails 99) via retype 1/rrlr->O
[ 9840 evals] best 2.11427e-33 (fails 98) via swap 0/lrr
[ 10480 evals] best 2.17495e-33 (fails 98) via swap 0/rlrl
[ 11040 evals] best 2.25388e-33 (fails 98) via core_divide noop
[ 12480 evals] best 4.78668e-33 (fails 98) via undivide 2/llr
[ 12720 evals] best 4.80876e-33 (fails 98) via core_divide noop
[ 13760 evals] best 9.1709e-33 (fails 96) via divide 2/llrr
[ 14560 evals] best 1.84586e-32 (fails 95) via core_undivide noop
[ 16880 evals] best 1.85284e-32 (fails 95) via crossover llrlr<->rlllr
[ 19840 evals] best 7.42595e-32 (fails 93) via core_undivide noop
[ 20800 evals] best 1.48504e-31 (fails 92) via core_undivide noop
[ 23680 evals] best 1.48739e-31 (fails 92) via core_undivide noop
[ 24560 evals] best 1.55172e-31 (fails 92) via core_divide noop
[ 25680 evals] best 1.56264e-31 (fails 92) via core_undivide noop
[ 26080 evals] best 6.36171e-31 (fails 90) via swap 2/rrr
[ 27040 evals] best 6.41788e-31 (fails 90) via level_retype 0/rrrl<->2/rllr
[ 28240 evals] best 1.02644e-30 (fails 89) via crossover lrl<->lrr
[ 29200 evals] best 1.04874e-30 (fails 89) via crossover llrrr<->llrrr
[ 30320 evals] best 3.66451e-30 (fails 88) via level_compound_fix k1: lvl2 → lvl0/rllll + insert lr1 into lrlr/lvl0
[ 30960 evals] best 1.09242e-29 (fails 86) via crossover rrlrr<->llrrl
[ 33120 evals] best 3.5356e-29 (fails 84) via crossover llrll<->lrll
[ 36160 evals] best 3.56494e-29 (fails 84) via level_retype 0/lrrr<->2/rllr
[ 40320 evals] best 4.93101e-29 (fails 84) via crossover lr<->lr
[ 40960 evals] best 4.96131e-29 (fails 84) via crossover rlrrr<->rlrrr
[ 42240 evals] best 8.67773e-29 (fails 83) via retype 2/rrrrr->t
[ 43920 evals] best 1.52112e-28 (fails 81) via crossover lllr<->rlrr
[ 46480 evals] best 1.52992e-28 (fails 81) via crossover lrr<->lrr
[ 48720 evals] best 3.06138e-28 (fails 80) via level_retype 2/lllr<->0/rlrlr
[ 51120 evals] best 3.07068e-28 (fails 80) via swap 2/llrr
[ 53440 evals] best 3.07434e-28 (fails 80) via swap 0/rlrr
[ 54560 evals] best 3.44534e-28 (fails 80) via crossover lrrl<->lllrl
[ 57600 evals] best 3.45695e-28 (fails 80) via core_divide noop
[ 58240 evals] best 3.46141e-28 (fails 80) via core_undivide noop
[ 61440 evals] best 3.46205e-28 (fails 80) via core_divide noop
[ 61840 evals] best 3.4624e-28 (fails 80) via core_divide noop
[ 62720 evals] best 3.46265e-28 (fails 80) via core_divide noop
[ 62800 evals] best 3.46265e-28 (fails 80) via core_undivide noop
[ 64880 evals] best 3.51879e-28 (fails 79) via level_fix k1: lvl2/rrlr → lvl0/rllll
[ 66240 evals] best 3.53264e-28 (fails 79) via retype 1/lrll->gh1
[ 66480 evals] best 3.55549e-28 (fails 79) via core_divide noop
[ 66800 evals] best 3.57445e-28 (fails 79) via crossover llrll<->llrll
[ 68000 evals] best 2.06412e-27 (fails 77) via level_fix k1: lvl2/rrlr → lvl0/rllll
[ 69120 evals] best 2.06883e-27 (fails 77) via core_divide noop
[ 71520 evals] best 2.76174e-27 (fails 76) via rotate 0/lr
[ 72640 evals] best 2.76227e-27 (fails 76) via core_undivide noop
[ 73520 evals] best 2.76276e-27 (fails 76) via core_divide noop
[ 75600 evals] best 2.7632e-27 (fails 76) via core_divide noop
[ 76320 evals] best 2.76358e-27 (fails 76) via core_undivide noop
[ 76960 evals] best 2.76389e-27 (fails 76) via core_undivide noop
[ 78880 evals] best 1.83174e-26 (fails 75) via level_retype 0/rrlrlr<->2/rlll
[ 78960 evals] best 1.87802e-26 (fails 75) via core_divide noop
[ 79360 evals] best 3.90146e-26 (fails 74) via swap 0/rlrl
[ 79520 evals] best 3.95859e-26 (fails 74) via rotate 0/llrr
[ 79600 evals] best 3.96056e-26 (fails 74) via crossover lrrl<->lllrl
[ 82720 evals] best 3.98751e-26 (fails 74) via core_undivide noop
[ 84240 evals] best 8.37192e-26 (fails 73) via crossover llrl<->lrr
[ 84640 evals] best 8.42852e-26 (fails 73) via rotate 2/rrrr
[ 84800 evals] best 3.5634e-25 (fails 71) via crossover rllr<->lrrl
[ 87040 evals] best 3.59072e-25 (fails 71) via rotate 0/rrll
[ 89120 evals] best 3.61957e-25 (fails 71) via retype 1/rlllr->lr1
[ 90800 evals] best 1.19078e-24 (fails 70) via crossover rlrrl<->rrlrr
[ 97680 evals] best 5.2661e-24 (fails 68) via rotate 0/lrl
[ 98560 evals] best 5.54831e-24 (fails 68) via retype 0/rlrlr->ur3
[103360 evals] best 5.61335e-24 (fails 68) via level_retype 2/llll<->1/rllll
[104400 evals] best 5.65917e-24 (fails 68) via core_divide noop
[106240 evals] best 5.68365e-24 (fails 68) via core_undivide noop
[108800 evals] best 1.16147e-23 (fails 67) via core_divide noop
[109760 evals] best 2.26647e-23 (fails 66) via swap 0/lrl
[112160 evals] best 2.27596e-23 (fails 66) via core_undivide noop
[112800 evals] best 9.05097e-23 (fails 64) via level_retype 0/llrll<->2/rrll
[115920 evals] best 9.55098e-23 (fails 64) via core_undivide noop
[117200 evals] best 9.59197e-23 (fails 64) via rotate 0/rlrl
[120080 evals] best 9.62542e-23 (fails 64) via core_undivide noop
[120160 evals] best 3.45118e-22 (fails 62) via crossover rrlrl<->rlrrr
[120400 evals] best 3.4623e-22 (fails 62) via core_divide noop
[121280 evals] best 3.47395e-22 (fails 62) via core_divide noop
[127040 evals] best 3.48617e-22 (fails 62) via crossover llrrr<->lrlr
[130400 evals] best 3.49897e-22 (fails 62) via crossover ll<->ll
[141760 evals] best 6.80652e-22 (fails 61) via swap 0/lrl
[143680 evals] best 9.54701e-22 (fails 61) via crossover rlrrl<->lrll
[151440 evals] best 9.57869e-22 (fails 61) via level_retype 2/rllr<->1/lrll
[153120 evals] best 9.61188e-22 (fails 61) via retype 0/llrll->n
[157360 evals] best 9.64666e-22 (fails 61) via retype 0/rlrlr->tt
[159680 evals] best 1.85943e-21 (fails 60) via undivide 0/rlrr
[161040 evals] best 1.86564e-21 (fails 60) via core_undivide noop
[161440 evals] best 1.87142e-21 (fails 60) via retype 1/lrrr->gh1
[170240 evals] best 2.15038e-21 (fails 60) via swap 0/llrr
[172160 evals] best 2.16303e-21 (fails 60) via core_undivide noop
[180800 evals] best 2.17437e-21 (fails 60) via swap 0/rlrl
[188640 evals] best 2.18483e-21 (fails 60) via core_undivide noop
[192560 evals] best 2.1924e-21 (fails 60) via core_undivide noop
[197280 evals] best 2.19779e-21 (fails 60) via crossover rlrlr<->rlrlr
[199040 evals] best 2.20487e-21 (fails 60) via swap 0/lrl
[205040 evals] best 2.21102e-21 (fails 60) via crossover rrr<->rrr
[206480 evals] best 2.21103e-21 (fails 60) via retype 0/rrlrll->gh1
[212000 evals] best 2.21402e-21 (fails 60) via core_undivide noop
[215760 evals] best 2.21403e-21 (fails 60) via retype 2/llrrl->tt
[215920 evals] best 2.21422e-21 (fails 60) via retype 0/rrlrll->gh1
[225600 evals] best 2.21422e-21 (fails 60) via rotate 2/llrr
[227200 evals] best 2.21441e-21 (fails 60) via rotate 2/llrr
[230720 evals] best 2.21445e-21 (fails 60) via core_undivide noop
[234720 evals] best 2.21445e-21 (fails 60) via swap 0/rrll
[240240 evals] best 2.7509e-20 (fails 56) via level_fix ws1: lvl1/rllll → lvl0/rllll
[268800 evals] best 6.17587e-20 (fails 55) via swap 0/lr
[271440 evals] best 6.21537e-20 (fails 55) via rotate 2/llrr
[272480 evals] best 6.21597e-20 (fails 55) via swap 0/lrr
[275920 evals] best 6.23221e-20 (fails 55) via core_undivide noop
[279920 evals] best 6.23222e-20 (fails 55) via core_undivide noop
[290320 evals] best 2.47209e-19 (fails 53) via undivide 0/lrr
[290640 evals] best 2.47209e-19 (fails 53) via level_retype 2/rrrrl<->0/llrlr
[338880 evals] best 2.54027e-19 (fails 53) via undivide 0/llrll
[344000 evals] best 2.54987e-19 (fails 53) via core_undivide noop
[345120 evals] best 2.54991e-19 (fails 53) via core_undivide noop
[365760 evals] best 2.54992e-19 (fails 53) via rotate 0/rrll
--- finishing (homemaker-py-3l6): unfold + polish 250000 evals ---
[finish] unfold: materialised 20 shared-leaf copies
[ 200 evals] best 5.2212e-35 (fails 105) via seed
[ 600 evals] best 5.31288e-35 (fails 105) via core_undivide noop
[ 4600 evals] best 5.34535e-35 (fails 105) via swap 0/rlrl
[ 5480 evals] best 5.50561e-35 (fails 105) via core_undivide noop
[ 8600 evals] best 5.91954e-35 (fails 105) via core_undivide noop
[ 11640 evals] best 5.95296e-35 (fails 105) via crossover lrlr<->lrlr
[ 12120 evals] best 1.08246e-34 (fails 104) via core_undivide noop
[ 12280 evals] best 2.18762e-34 (fails 103) via core_undivide noop
[ 13480 evals] best 4.4404e-34 (fails 102) via swap 2/lllr
[ 15720 evals] best 4.49169e-34 (fails 102) via crossover rlrlr<->rlllrl
[ 18120 evals] best 9.17439e-34 (fails 101) via divide 2/rlrl
[ 18200 evals] best 9.24149e-34 (fails 101) via core_undivide noop
[ 18360 evals] best 1.01588e-33 (fails 101) via undivide 2/rlrl
[ 20040 evals] best 1.02041e-33 (fails 101) via crossover rrllrr<->rrllrr
[ 20440 evals] best 1.09867e-33 (fails 101) via swap 0/rlrl
[ 23080 evals] best 1.10286e-33 (fails 101) via swap 0/rrr
[ 24920 evals] best 1.10506e-33 (fails 101) via level_retype 0/rllll<->1/lrrr
[ 28920 evals] best 1.11142e-33 (fails 101) via core_undivide noop
[ 29560 evals] best 1.11302e-33 (fails 101) via crossover rrlll<->rrlll
[ 30760 evals] best 2.88758e-33 (fails 100) via undivide 0/lll
[ 31640 evals] best 2.91448e-33 (fails 100) via core_undivide noop
[ 32680 evals] best 5.24826e-33 (fails 99) via crossover llrll<->rrlrl
[ 35560 evals] best 5.54405e-33 (fails 99) via retype 0/rlllrrr->rc1
[ 39080 evals] best 5.5603e-33 (fails 99) via rotate 0/rrlll
[ 39160 evals] best 5.57739e-33 (fails 99) via core_undivide noop
[ 42600 evals] best 5.5943e-33 (fails 99) via retype 0/rlrlr->li1
[ 42760 evals] best 5.69106e-33 (fails 99) via crossover rrllrr<->rrlllr
[ 42920 evals] best 6.73164e-33 (fails 99) via rotate 0/llrl
[ 51480 evals] best 6.83512e-33 (fails 99) via rotate 0/rlllr
[ 52200 evals] best 6.87955e-33 (fails 99) via core_undivide noop
[ 52680 evals] best 6.88824e-33 (fails 99) via core_undivide noop
[ 53080 evals] best 6.89371e-33 (fails 99) via retype 2/rlrrrl->lr1
[ 57160 evals] best 1.20103e-32 (fails 98) via rotate 0/rrl
[ 57480 evals] best 1.29e-32 (fails 98) via crossover llrlr<->rrlrll
[ 58280 evals] best 1.85811e-31 (fails 94) via rotate 0/rrllrr
[ 59560 evals] best 1.86354e-31 (fails 94) via crossover rrllrrr<->rrllrrr
[ 60360 evals] best 1.86497e-31 (fails 94) via retype 1/lllr->k1
[ 63000 evals] best 4.31216e-31 (fails 93) via crossover rrlll<->rrllr
[ 66120 evals] best 4.44199e-31 (fails 93) via level_retype 2/rlrrrrr<->1/rlllr
[ 66760 evals] best 4.51891e-31 (fails 93) via level_retype 2/llrrl<->0/rrllll
[ 67320 evals] best 8.4029e-31 (fails 92) via crossover rlrlr<->rrlrr
[ 69160 evals] best 8.60511e-31 (fails 92) via swap 0/rrlrl
[ 71400 evals] best 8.63911e-31 (fails 92) via core_undivide noop
[ 72600 evals] best 8.79881e-31 (fails 92) via crossover rrlll<->rrllrr
[ 73080 evals] best 8.83116e-31 (fails 92) via core_undivide noop
[ 74200 evals] best 8.85642e-31 (fails 92) via retype 1/rllrl->em
[ 75800 evals] best 8.87862e-31 (fails 92) via core_undivide noop
[ 76760 evals] best 8.8989e-31 (fails 92) via level_retype 0/rlrlr<->2/lrrrrl
[ 82040 evals] best 8.91395e-31 (fails 92) via crossover rrlllr<->rlrlr
[ 82120 evals] best 1.73329e-30 (fails 91) via undivide 0/rlrl
[ 83000 evals] best 1.77156e-30 (fails 91) via core_undivide noop
[ 83080 evals] best 1.78496e-30 (fails 91) via retype 0/llrll->me1
[ 83480 evals] best 3.57354e-30 (fails 90) via swap 2/lrrrr
[ 83960 evals] best 3.57541e-30 (fails 90) via crossover lr<->lr
[ 84120 evals] best 4.01301e-30 (fails 90) via divide 0/rlrr
[ 87400 evals] best 8.58213e-30 (fails 89) via crossover llrll<->lrlr
[ 88760 evals] best 9.11271e-30 (fails 89) via undivide 0/rrlll
[ 89320 evals] best 1.41927e-29 (fails 88) via rotate 0/rrlrl
[ 89720 evals] best 6.87803e-29 (fails 86) via undivide 0/rlrl
[ 93640 evals] best 6.98647e-29 (fails 86) via crossover rrllrrl<->rlrlr
[ 94280 evals] best 7.1026e-29 (fails 86) via level_retype 0/lrr<->1/rrr
[ 97800 evals] best 7.14826e-29 (fails 86) via retype 0/llrllr->m
[100760 evals] best 7.2509e-29 (fails 86) via rotate 2/rlrrrr
[101320 evals] best 7.2509e-29 (fails 86) via retype 2/llrrl->la1
[101640 evals] best 7.28113e-29 (fails 86) via level_retype 1/lrrll<->2/lrrrrl
[101960 evals] best 7.30664e-29 (fails 86) via level_retype 2/lllrlr<->1/rllrl
[106280 evals] best 7.34119e-29 (fails 86) via level_retype 1/llll<->0/rrllrrr
[111560 evals] best 7.34119e-29 (fails 86) via retype 1/rrllrl->lr1
[115320 evals] best 7.38547e-29 (fails 86) via core_undivide noop
[116040 evals] best 7.42718e-29 (fails 86) via crossover rlllrrl<->rrllll
[116760 evals] best 7.42718e-29 (fails 86) via retype 1/rllrl->ur2
[117080 evals] best 8.03623e-29 (fails 86) via retype 2/lllrrr->ws1
[118120 evals] best 8.09228e-29 (fails 86) via level_retype 0/rrlrlr<->2/rlrl
[118760 evals] best 8.1446e-29 (fails 86) via retype 1/rrlll->ws1
[121000 evals] best 3.02477e-28 (fails 84) via rotate 0/rl
[121480 evals] best 3.08711e-28 (fails 84) via retype 2/lrrrrr->ws1
[122760 evals] best 3.38962e-28 (fails 84) via retype 0/rrrr->ws1
[123400 evals] best 3.38962e-28 (fails 84) via crossover rlrl<->lrll
[123640 evals] best 3.50344e-28 (fails 84) via crossover lrr<->lrr
[124520 evals] best 3.52045e-28 (fails 84) via retype 2/rlrrrrl->me1
[124600 evals] best 3.56494e-28 (fails 84) via core_undivide noop
[125800 evals] best 6.73688e-28 (fails 83) via undivide 0/rlrr
[126760 evals] best 6.77494e-28 (fails 83) via crossover rrlll<->rrlll
[130280 evals] best 7.25183e-28 (fails 83) via rotate 2/rlrrrr
[131800 evals] best 1.43538e-27 (fails 82) via core_undivide noop
[132840 evals] best 1.43967e-27 (fails 82) via level_retype 2/rlrl<->1/rllrr
[134200 evals] best 1.44785e-27 (fails 82) via crossover rrllrrl<->rlllrrr
[143320 evals] best 1.45449e-27 (fails 82) via retype 2/lrrrl->la1
[143560 evals] best 1.45909e-27 (fails 82) via swap 0/rrr
[146120 evals] best 1.46026e-27 (fails 82) via retype 1/lrrr->rc1
[148520 evals] best 1.48466e-27 (fails 82) via retype 1/rllrr->q1
[150600 evals] best 3.27114e-27 (fails 80) via crossover rllll<->lr
[153800 evals] best 3.32861e-27 (fails 80) via retype 0/rrlrlll->py
[155640 evals] best 3.33504e-27 (fails 80) via retype 0/rrllll->la1
[159160 evals] best 2.55427e-26 (fails 77) via crossover rllllrr<->llrlll
[161720 evals] best 2.56973e-26 (fails 77) via level_retype 2/rrrrl<->0/rllllrl
[161800 evals] best 2.58293e-26 (fails 77) via core_undivide noop
[166040 evals] best 2.59423e-26 (fails 77) via core_undivide noop
[172440 evals] best 2.60068e-26 (fails 77) via core_undivide noop
[173960 evals] best 2.60902e-26 (fails 77) via crossover llrrl<->llrllr
[175080 evals] best 2.64008e-26 (fails 77) via rotate 2/lrrrr
[177240 evals] best 2.64316e-26 (fails 77) via retype 2/llll->rc1
[177400 evals] best 2.70036e-26 (fails 77) via level_retype 2/rlrrrrr<->0/rrlllr
[178040 evals] best 2.70318e-26 (fails 77) via level_retype 1/llll<->2/llrrl
[178920 evals] best 4.94916e-26 (fails 76) via swap 0/rlllr
[182120 evals] best 5.18746e-26 (fails 76) via core_undivide noop
[185240 evals] best 5.26932e-26 (fails 76) via swap 1/lll
[190120 evals] best 9.41818e-26 (fails 75) via core_undivide noop
[194760 evals] best 9.45567e-26 (fails 75) via swap 0/rlllrl
[197240 evals] best 9.49813e-26 (fails 75) via core_undivide noop
[201960 evals] best 9.55548e-26 (fails 75) via crossover llrrl<->rrrl
[202280 evals] best 9.62796e-26 (fails 75) via level_retype 2/rlrl<->0/rlllrll
[207320 evals] best 9.7119e-26 (fails 75) via core_undivide noop
[207800 evals] best 9.80185e-26 (fails 75) via swap 2/lrrrr
[213480 evals] best 9.83175e-26 (fails 75) via core_undivide noop
[220440 evals] best 9.8571e-26 (fails 75) via core_undivide noop
[222680 evals] best 9.93164e-26 (fails 75) via swap 0/rrll
[226360 evals] best 9.97687e-26 (fails 75) via rotate 2/llrr
[227080 evals] best 9.98918e-26 (fails 75) via swap 2/lrrrr
[228040 evals] best 1.02173e-25 (fails 75) via crossover rrllll<->rrllrl
[232200 evals] best 1.03412e-25 (fails 75) via core_undivide noop
[232920 evals] best 1.03464e-25 (fails 75) via crossover rrlrlll<->rrlrlll
[235160 evals] best 1.03475e-25 (fails 75) via crossover lrll<->lrll
[239320 evals] best 1.03698e-25 (fails 75) via core_undivide noop
[240040 evals] best 1.037e-25 (fails 75) via retype 1/lrrr->q1
[246760 evals] best 1.03703e-25 (fails 75) via level_retype 0/llrlr<->2/lrrrl
[249560 evals] best 4.61196e-25 (fails 73) via level_retype 0/rlrrr<->2/lrrrl
--- collapse (homemaker-py-94g): finish-time cell→room relabel ---
[finish] collapse: 227 → 73 fails (applied)
--- done ---
elapsed : 207109.5s
evals : 750040 across 9374 topologies
best : 4.61196e-25 (73 fails) via level_retype 0/rlrrr<->2/lrrrl+collapse
improvement history:
[ 80] 7.48546e-46 (share:construct/0)
[ 160] 4.82423e-42 (share:construct/1)
[ 480] 8.67067e-42 (share:construct/5)
[ 800] 4.80398e-39 (share:construct/9)
[ 1440] 6.36848e-40 (share:place_missing r -> rrrr)
[ 2160] 1.32118e-39 (share:level_fix noop)
[ 2400] 1.60106e-38 (share:place_missing em -> rlll)
[ 3040] 3.2838e-38 (share:rotate 0/rrll)
[ 3760] 3.65129e-38 (share:core_undivide noop)
[ 4320] 5.79431e-37 (share:place_missing r -> rrrl)
[ 4400] 5.8784e-37 (share:core_undivide noop)
[ 4640] 2.78722e-36 (share:retype 1/rlllr->py)
[ 5760] 4.90785e-34 (share:crossover lrrl<->rrrl)
[ 8480] 5.06412e-34 (share:level_retype 2/rrlr<->0/rrrl)
[ 8960] 1.00937e-33 (share:retype 1/rrlr->O)
[ 9840] 2.11427e-33 (share:swap 0/lrr)
[ 10480] 2.17495e-33 (share:swap 0/rlrl)
[ 11040] 2.25388e-33 (share:core_divide noop)
[ 12480] 4.78668e-33 (share:undivide 2/llr)
[ 12720] 4.80876e-33 (share:core_divide noop)
[ 13760] 9.1709e-33 (share:divide 2/llrr)
[ 14560] 1.84586e-32 (share:core_undivide noop)
[ 16880] 1.85284e-32 (share:crossover llrlr<->rlllr)
[ 19840] 7.42595e-32 (share:core_undivide noop)
[ 20800] 1.48504e-31 (share:core_undivide noop)
[ 23680] 1.48739e-31 (share:core_undivide noop)
[ 24560] 1.55172e-31 (share:core_divide noop)
[ 25680] 1.56264e-31 (share:core_undivide noop)
[ 26080] 6.36171e-31 (share:swap 2/rrr)
[ 27040] 6.41788e-31 (share:level_retype 0/rrrl<->2/rllr)
[ 28240] 1.02644e-30 (share:crossover lrl<->lrr)
[ 29200] 1.04874e-30 (share:crossover llrrr<->llrrr)
[ 30320] 3.66451e-30 (share:level_compound_fix k1: lvl2 → lvl0/rllll + insert lr1 into lrlr/lvl0)
[ 30960] 1.09242e-29 (share:crossover rrlrr<->llrrl)
[ 33120] 3.5356e-29 (share:crossover llrll<->lrll)
[ 36160] 3.56494e-29 (share:level_retype 0/lrrr<->2/rllr)
[ 40320] 4.93101e-29 (share:crossover lr<->lr)
[ 40960] 4.96131e-29 (share:crossover rlrrr<->rlrrr)
[ 42240] 8.67773e-29 (share:retype 2/rrrrr->t)
[ 43920] 1.52112e-28 (share:crossover lllr<->rlrr)
[ 46480] 1.52992e-28 (share:crossover lrr<->lrr)
[ 48720] 3.06138e-28 (share:level_retype 2/lllr<->0/rlrlr)
[ 51120] 3.07068e-28 (share:swap 2/llrr)
[ 53440] 3.07434e-28 (share:swap 0/rlrr)
[ 54560] 3.44534e-28 (share:crossover lrrl<->lllrl)
[ 57600] 3.45695e-28 (share:core_divide noop)
[ 58240] 3.46141e-28 (share:core_undivide noop)
[ 61440] 3.46205e-28 (share:core_divide noop)
[ 61840] 3.4624e-28 (share:core_divide noop)
[ 62720] 3.46265e-28 (share:core_divide noop)
[ 62800] 3.46265e-28 (share:core_undivide noop)
[ 64880] 3.51879e-28 (share:level_fix k1: lvl2/rrlr → lvl0/rllll)
[ 66240] 3.53264e-28 (share:retype 1/lrll->gh1)
[ 66480] 3.55549e-28 (share:core_divide noop)
[ 66800] 3.57445e-28 (share:crossover llrll<->llrll)
[ 68000] 2.06412e-27 (share:level_fix k1: lvl2/rrlr → lvl0/rllll)
[ 69120] 2.06883e-27 (share:core_divide noop)
[ 71520] 2.76174e-27 (share:rotate 0/lr)
[ 72640] 2.76227e-27 (share:core_undivide noop)
[ 73520] 2.76276e-27 (share:core_divide noop)
[ 75600] 2.7632e-27 (share:core_divide noop)
[ 76320] 2.76358e-27 (share:core_undivide noop)
[ 76960] 2.76389e-27 (share:core_undivide noop)
[ 78880] 1.83174e-26 (share:level_retype 0/rrlrlr<->2/rlll)
[ 78960] 1.87802e-26 (share:core_divide noop)
[ 79360] 3.90146e-26 (share:swap 0/rlrl)
[ 79520] 3.95859e-26 (share:rotate 0/llrr)
[ 79600] 3.96056e-26 (share:crossover lrrl<->lllrl)
[ 82720] 3.98751e-26 (share:core_undivide noop)
[ 84240] 8.37192e-26 (share:crossover llrl<->lrr)
[ 84640] 8.42852e-26 (share:rotate 2/rrrr)
[ 84800] 3.5634e-25 (share:crossover rllr<->lrrl)
[ 87040] 3.59072e-25 (share:rotate 0/rrll)
[ 89120] 3.61957e-25 (share:retype 1/rlllr->lr1)
[ 90800] 1.19078e-24 (share:crossover rlrrl<->rrlrr)
[ 97680] 5.2661e-24 (share:rotate 0/lrl)
[ 98560] 5.54831e-24 (share:retype 0/rlrlr->ur3)
[103360] 5.61335e-24 (share:level_retype 2/llll<->1/rllll)
[104400] 5.65917e-24 (share:core_divide noop)
[106240] 5.68365e-24 (share:core_undivide noop)
[108800] 1.16147e-23 (share:core_divide noop)
[109760] 2.26647e-23 (share:swap 0/lrl)
[112160] 2.27596e-23 (share:core_undivide noop)
[112800] 9.05097e-23 (share:level_retype 0/llrll<->2/rrll)
[115920] 9.55098e-23 (share:core_undivide noop)
[117200] 9.59197e-23 (share:rotate 0/rlrl)
[120080] 9.62542e-23 (share:core_undivide noop)
[120160] 3.45118e-22 (share:crossover rrlrl<->rlrrr)
[120400] 3.4623e-22 (share:core_divide noop)
[121280] 3.47395e-22 (share:core_divide noop)
[127040] 3.48617e-22 (share:crossover llrrr<->lrlr)
[130400] 3.49897e-22 (share:crossover ll<->ll)
[141760] 6.80652e-22 (share:swap 0/lrl)
[143680] 9.54701e-22 (share:crossover rlrrl<->lrll)
[151440] 9.57869e-22 (share:level_retype 2/rllr<->1/lrll)
[153120] 9.61188e-22 (share:retype 0/llrll->n)
[157360] 9.64666e-22 (share:retype 0/rlrlr->tt)
[159680] 1.85943e-21 (share:undivide 0/rlrr)
[161040] 1.86564e-21 (share:core_undivide noop)
[161440] 1.87142e-21 (share:retype 1/lrrr->gh1)
[170240] 2.15038e-21 (share:swap 0/llrr)
[172160] 2.16303e-21 (share:core_undivide noop)
[180800] 2.17437e-21 (share:swap 0/rlrl)
[188640] 2.18483e-21 (share:core_undivide noop)
[192560] 2.1924e-21 (share:core_undivide noop)
[197280] 2.19779e-21 (share:crossover rlrlr<->rlrlr)
[199040] 2.20487e-21 (share:swap 0/lrl)
[205040] 2.21102e-21 (share:crossover rrr<->rrr)
[206480] 2.21103e-21 (share:retype 0/rrlrll->gh1)
[212000] 2.21402e-21 (share:core_undivide noop)
[215760] 2.21403e-21 (share:retype 2/llrrl->tt)
[215920] 2.21422e-21 (share:retype 0/rrlrll->gh1)
[225600] 2.21422e-21 (share:rotate 2/llrr)
[227200] 2.21441e-21 (share:rotate 2/llrr)
[230720] 2.21445e-21 (share:core_undivide noop)
[234720] 2.21445e-21 (share:swap 0/rrll)
[240240] 2.7509e-20 (share:level_fix ws1: lvl1/rllll → lvl0/rllll)
[268800] 6.17587e-20 (share:swap 0/lr)
[271440] 6.21537e-20 (share:rotate 2/llrr)
[272480] 6.21597e-20 (share:swap 0/lrr)
[275920] 6.23221e-20 (share:core_undivide noop)
[279920] 6.23222e-20 (share:core_undivide noop)
[290320] 2.47209e-19 (share:undivide 0/lrr)
[290640] 2.47209e-19 (share:level_retype 2/rrrrl<->0/llrlr)
[338880] 2.54027e-19 (share:undivide 0/llrll)
[344000] 2.54987e-19 (share:core_undivide noop)
[345120] 2.54991e-19 (share:core_undivide noop)
[365760] 2.54992e-19 (share:rotate 0/rrll)
[500200] 5.2212e-35 (polish:seed)
[500600] 5.31288e-35 (polish:core_undivide noop)
[504600] 5.34535e-35 (polish:swap 0/rlrl)
[505480] 5.50561e-35 (polish:core_undivide noop)
[508600] 5.91954e-35 (polish:core_undivide noop)
[511640] 5.95296e-35 (polish:crossover lrlr<->lrlr)
[512120] 1.08246e-34 (polish:core_undivide noop)
[512280] 2.18762e-34 (polish:core_undivide noop)
[513480] 4.4404e-34 (polish:swap 2/lllr)
[515720] 4.49169e-34 (polish:crossover rlrlr<->rlllrl)
[518120] 9.17439e-34 (polish:divide 2/rlrl)
[518200] 9.24149e-34 (polish:core_undivide noop)
[518360] 1.01588e-33 (polish:undivide 2/rlrl)
[520040] 1.02041e-33 (polish:crossover rrllrr<->rrllrr)
[520440] 1.09867e-33 (polish:swap 0/rlrl)
[523080] 1.10286e-33 (polish:swap 0/rrr)
[524920] 1.10506e-33 (polish:level_retype 0/rllll<->1/lrrr)
[528920] 1.11142e-33 (polish:core_undivide noop)
[529560] 1.11302e-33 (polish:crossover rrlll<->rrlll)
[530760] 2.88758e-33 (polish:undivide 0/lll)
[531640] 2.91448e-33 (polish:core_undivide noop)
[532680] 5.24826e-33 (polish:crossover llrll<->rrlrl)
[535560] 5.54405e-33 (polish:retype 0/rlllrrr->rc1)
[539080] 5.5603e-33 (polish:rotate 0/rrlll)
[539160] 5.57739e-33 (polish:core_undivide noop)
[542600] 5.5943e-33 (polish:retype 0/rlrlr->li1)
[542760] 5.69106e-33 (polish:crossover rrllrr<->rrlllr)
[542920] 6.73164e-33 (polish:rotate 0/llrl)
[551480] 6.83512e-33 (polish:rotate 0/rlllr)
[552200] 6.87955e-33 (polish:core_undivide noop)
[552680] 6.88824e-33 (polish:core_undivide noop)
[553080] 6.89371e-33 (polish:retype 2/rlrrrl->lr1)
[557160] 1.20103e-32 (polish:rotate 0/rrl)
[557480] 1.29e-32 (polish:crossover llrlr<->rrlrll)
[558280] 1.85811e-31 (polish:rotate 0/rrllrr)
[559560] 1.86354e-31 (polish:crossover rrllrrr<->rrllrrr)
[560360] 1.86497e-31 (polish:retype 1/lllr->k1)
[563000] 4.31216e-31 (polish:crossover rrlll<->rrllr)
[566120] 4.44199e-31 (polish:level_retype 2/rlrrrrr<->1/rlllr)
[566760] 4.51891e-31 (polish:level_retype 2/llrrl<->0/rrllll)
[567320] 8.4029e-31 (polish:crossover rlrlr<->rrlrr)
[569160] 8.60511e-31 (polish:swap 0/rrlrl)
[571400] 8.63911e-31 (polish:core_undivide noop)
[572600] 8.79881e-31 (polish:crossover rrlll<->rrllrr)
[573080] 8.83116e-31 (polish:core_undivide noop)
[574200] 8.85642e-31 (polish:retype 1/rllrl->em)
[575800] 8.87862e-31 (polish:core_undivide noop)
[576760] 8.8989e-31 (polish:level_retype 0/rlrlr<->2/lrrrrl)
[582040] 8.91395e-31 (polish:crossover rrlllr<->rlrlr)
[582120] 1.73329e-30 (polish:undivide 0/rlrl)
[583000] 1.77156e-30 (polish:core_undivide noop)
[583080] 1.78496e-30 (polish:retype 0/llrll->me1)
[583480] 3.57354e-30 (polish:swap 2/lrrrr)
[583960] 3.57541e-30 (polish:crossover lr<->lr)
[584120] 4.01301e-30 (polish:divide 0/rlrr)
[587400] 8.58213e-30 (polish:crossover llrll<->lrlr)
[588760] 9.11271e-30 (polish:undivide 0/rrlll)
[589320] 1.41927e-29 (polish:rotate 0/rrlrl)
[589720] 6.87803e-29 (polish:undivide 0/rlrl)
[593640] 6.98647e-29 (polish:crossover rrllrrl<->rlrlr)
[594280] 7.1026e-29 (polish:level_retype 0/lrr<->1/rrr)
[597800] 7.14826e-29 (polish:retype 0/llrllr->m)
[600760] 7.2509e-29 (polish:rotate 2/rlrrrr)
[601320] 7.2509e-29 (polish:retype 2/llrrl->la1)
[601640] 7.28113e-29 (polish:level_retype 1/lrrll<->2/lrrrrl)
[601960] 7.30664e-29 (polish:level_retype 2/lllrlr<->1/rllrl)
[606280] 7.34119e-29 (polish:level_retype 1/llll<->0/rrllrrr)
[611560] 7.34119e-29 (polish:retype 1/rrllrl->lr1)
[615320] 7.38547e-29 (polish:core_undivide noop)
[616040] 7.42718e-29 (polish:crossover rlllrrl<->rrllll)
[616760] 7.42718e-29 (polish:retype 1/rllrl->ur2)
[617080] 8.03623e-29 (polish:retype 2/lllrrr->ws1)
[618120] 8.09228e-29 (polish:level_retype 0/rrlrlr<->2/rlrl)
[618760] 8.1446e-29 (polish:retype 1/rrlll->ws1)
[621000] 3.02477e-28 (polish:rotate 0/rl)
[621480] 3.08711e-28 (polish:retype 2/lrrrrr->ws1)
[622760] 3.38962e-28 (polish:retype 0/rrrr->ws1)
[623400] 3.38962e-28 (polish:crossover rlrl<->lrll)
[623640] 3.50344e-28 (polish:crossover lrr<->lrr)
[624520] 3.52045e-28 (polish:retype 2/rlrrrrl->me1)
[624600] 3.56494e-28 (polish:core_undivide noop)
[625800] 6.73688e-28 (polish:undivide 0/rlrr)
[626760] 6.77494e-28 (polish:crossover rrlll<->rrlll)
[630280] 7.25183e-28 (polish:rotate 2/rlrrrr)
[631800] 1.43538e-27 (polish:core_undivide noop)
[632840] 1.43967e-27 (polish:level_retype 2/rlrl<->1/rllrr)
[634200] 1.44785e-27 (polish:crossover rrllrrl<->rlllrrr)
[643320] 1.45449e-27 (polish:retype 2/lrrrl->la1)
[643560] 1.45909e-27 (polish:swap 0/rrr)
[646120] 1.46026e-27 (polish:retype 1/lrrr->rc1)
[648520] 1.48466e-27 (polish:retype 1/rllrr->q1)
[650600] 3.27114e-27 (polish:crossover rllll<->lr)
[653800] 3.32861e-27 (polish:retype 0/rrlrlll->py)
[655640] 3.33504e-27 (polish:retype 0/rrllll->la1)
[659160] 2.55427e-26 (polish:crossover rllllrr<->llrlll)
[661720] 2.56973e-26 (polish:level_retype 2/rrrrl<->0/rllllrl)
[661800] 2.58293e-26 (polish:core_undivide noop)
[666040] 2.59423e-26 (polish:core_undivide noop)
[672440] 2.60068e-26 (polish:core_undivide noop)
[673960] 2.60902e-26 (polish:crossover llrrl<->llrllr)
[675080] 2.64008e-26 (polish:rotate 2/lrrrr)
[677240] 2.64316e-26 (polish:retype 2/llll->rc1)
[677400] 2.70036e-26 (polish:level_retype 2/rlrrrrr<->0/rrlllr)
[678040] 2.70318e-26 (polish:level_retype 1/llll<->2/llrrl)
[678920] 4.94916e-26 (polish:swap 0/rlllr)
[682120] 5.18746e-26 (polish:core_undivide noop)
[685240] 5.26932e-26 (polish:swap 1/lll)
[690120] 9.41818e-26 (polish:core_undivide noop)
[694760] 9.45567e-26 (polish:swap 0/rlllrl)
[697240] 9.49813e-26 (polish:core_undivide noop)
[701960] 9.55548e-26 (polish:crossover llrrl<->rrrl)
[702280] 9.62796e-26 (polish:level_retype 2/rlrl<->0/rlllrll)
[707320] 9.7119e-26 (polish:core_undivide noop)
[707800] 9.80185e-26 (polish:swap 2/lrrrr)
[713480] 9.83175e-26 (polish:core_undivide noop)
[720440] 9.8571e-26 (polish:core_undivide noop)
[722680] 9.93164e-26 (polish:swap 0/rrll)
[726360] 9.97687e-26 (polish:rotate 2/llrr)
[727080] 9.98918e-26 (polish:swap 2/lrrrr)
[728040] 1.02173e-25 (polish:crossover rrllll<->rrllrl)
[732200] 1.03412e-25 (polish:core_undivide noop)
[732920] 1.03464e-25 (polish:crossover rrlrlll<->rrlrlll)
[735160] 1.03475e-25 (polish:crossover lrll<->lrll)
[739320] 1.03698e-25 (polish:core_undivide noop)
[740040] 1.037e-25 (polish:retype 1/lrrr->q1)
[746760] 1.03703e-25 (polish:level_retype 0/llrlr<->2/lrrrl)
[749560] 4.61196e-25 (polish:level_retype 0/rlrrr<->2/lrrrl)
written : /home/bruno/src/homemaker-layout/examples/maple-court/coldstart-500000-s1.dom

View file

@ -1,660 +0,0 @@
node:
- - 0.0
- 0.0
- - 30.0
- 1.5
- - 29.0
- 28.0
- - 0.0
- 27.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 0
division:
- 0.495698600316231
- 0.495698600316231
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.5683709666370568
- 0.5683709666370568
l:
rotation: 1
division:
- 0.46215929132095285
- 0.46215929132095285
l:
rotation: 1
division:
- 0.7471387331846713
- 0.7471387331846713
l:
type: lr1
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 3
division:
- 0.5304544217540867
- 0.5304544217540867
l:
rotation: 0
division:
- 0.6993298617044272
- 0.6993298617044272
l:
type: ws1
rotation: 0
r:
rotation: 1
division:
- 0.7877828260442032
- 0.7877828260442032
l:
type: C
rotation: 0
r:
type: t
rotation: 0
r:
type: da1
rotation: 0
r:
rotation: 3
division:
- 0.2568045109603507
- 0.2568045109603507
l:
rotation: 3
division:
- 0.43406506895086583
- 0.43406506895086583
l:
type: ph1
rotation: 0
r:
rotation: 0
division:
- 0.5074640705726834
- 0.5074640705726834
l:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
type: k1
rotation: 0
r:
rotation: 1
division:
- 0.7412499070689885
- 0.7412499070689885
l:
rotation: 0
division:
- 0.727687073818417
- 0.727687073818417
l:
rotation: 1
division:
- 0.5103475723684812
- 0.5103475723684812
l:
rotation: 1
division:
- 0.5585575406250274
- 0.5585575406250274
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 2
division:
- 0.6111449714698093
- 0.6111449714698093
l:
type: C
rotation: 0
r:
rotation: 3
division:
- 0.48669281705872525
- 0.48669281705872525
l:
type: m
rotation: 0
r:
rotation: 0
division:
- 0.5059079614653703
- 0.5059079614653703
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
type: gh1
rotation: 1
r:
rotation: 3
division:
- 0.5565594979517862
- 0.5565594979517862
l:
rotation: 0
division:
- 0.44353147517713065
- 0.44353147517713065
l:
type: la1
rotation: 0
r:
type: me1
rotation: 0
r:
rotation: 0
division:
- 0.6680420876810539
- 0.6680420876810539
l:
type: ur1
rotation: 0
r:
type: m
rotation: 0
r:
rotation: 1
division:
- 0.5957265680465451
- 0.5957265680465451
l:
rotation: 0
division:
- 0.5559722706874881
- 0.5559722706874881
l:
rotation: 1
division:
- 0.717257064976556
- 0.717257064976556
l:
rotation: 3
division:
- 0.7437776174633095
- 0.7437776174633095
l:
type: ef1
rotation: 0
r:
type: C
rotation: 0
r:
type: rc1
rotation: 0
r:
rotation: 3
division:
- 0.5733232068406672
- 0.5733232068406672
l:
rotation: 0
division:
- 0.33542653619771207
- 0.33542653619771207
l:
type: t
rotation: 0
r:
rotation: 1
division:
- 0.5059792656599588
- 0.5059792656599588
l:
type: t
rotation: 0
r:
type: t
rotation: 0
r:
type: m
rotation: 0
r:
rotation: 1
division:
- 0.6279974814441083
- 0.6279974814441083
l:
type: O
rotation: 3
r:
type: C
rotation: 0
above:
rotation: 0
division:
- 0.3470841095800587
- 0.3470841095800587
height: 3.0
l:
rotation: 0
division:
- 0.3308121716241943
- 0.3308121716241943
l:
rotation: 0
division:
- 0.7142077220782733
- 0.7142077220782733
l:
rotation: 2
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: ur2
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: n
rotation: 0
r:
type: n
rotation: 0
r:
rotation: 0
division:
- 0.5226049692080454
- 0.5226049692080454
l:
rotation: 0
division:
- 0.3244080692865534
- 0.3244080692865534
l:
type: py
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.5311431206405173
- 0.5311431206405173
l:
type: n
rotation: 0
r:
rotation: 1
division:
- 0.3089291397165622
- 0.3089291397165622
l:
type: em
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.35573412281977423
- 0.35573412281977423
l:
rotation: 0
division:
- 0.2938645997045906
- 0.2938645997045906
l:
rotation: 0
division:
- 0.38461538461538464
- 0.38461538461538464
l:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5229240775023966
- 0.5229240775023966
l:
type: n
rotation: 0
r:
type: em
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 3
division:
- 0.3
- 0.3
l:
type: py
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.7488857483298845
- 0.7488857483298845
l:
rotation: 0
division:
- 0.25
- 0.25
l:
type: lo1
rotation: 0
r:
type: li1
rotation: 0
r:
rotation: 0
division:
- 0.22366883102487625
- 0.22366883102487625
l:
type: en1
rotation: 0
r:
type: C
rotation: 0
above:
rotation: 0
division:
- 0.47357426572751193
- 0.47357426572751193
height: 3.0
l:
rotation: 0
division:
- 0.4441993871185282
- 0.4441993871185282
l:
rotation: 0
division:
- 0.6006620198037802
- 0.6006620198037802
l:
rotation: 0
division:
- 0.8159341477596873
- 0.8159341477596873
l:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.4311802854294584
- 0.4311802854294584
l:
rotation: 1
division:
- 0.5187523557449092
- 0.5187523557449092
l:
type: tt
rotation: 0
r:
type: tt
rotation: 0
r:
rotation: 1
division:
- 0.5013640478121326
- 0.5013640478121326
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.5252799507324595
- 0.5252799507324595
l:
type: O
rotation: 1
r:
rotation: 0
division:
- 0.3680417219349658
- 0.3680417219349658
l:
rotation: 1
division:
- 0.5194148364333797
- 0.5194148364333797
l:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.46010581808809997
- 0.46010581808809997
l:
rotation: 0
division:
- 0.1517364388825379
- 0.1517364388825379
l:
type: ur3
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: r
rotation: 0
r:
rotation: 0
division:
- 0.27709722975684414
- 0.27709722975684414
l:
rotation: 0
division:
- 0.34577528339320307
- 0.34577528339320307
l:
type: tt
rotation: 0
r:
rotation: 1
division:
- 0.6621162517562142
- 0.6621162517562142
l:
type: gy1
rotation: 0
r:
type: r
rotation: 3
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.46010581808809997
- 0.46010581808809997
l:
rotation: 0
division:
- 0.4891616829369616
- 0.4891616829369616
l:
rotation: 0
division:
- 0.13294152965495246
- 0.13294152965495246
l:
rotation: 1
division:
- 0.8326531307680889
- 0.8326531307680889
l:
type: r
rotation: 0
r:
rotation: 1
division:
- 0.6320128817423628
- 0.6320128817423628
l:
type: r
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 0
division:
- 0.4581335263739215
- 0.4581335263739215
l:
type: r
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.16973381519774997
- 0.16973381519774997
l:
type: O
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.5
- 0.5
l:
rotation: 0
division:
- 0.27709722975684414
- 0.27709722975684414
l:
rotation: 0
division:
- 0.46514955816425135
- 0.46514955816425135
l:
type: C
rotation: 0
r:
type: ut1
rotation: 1
r:
rotation: 3
division:
- 0.6585943771196408
- 0.6585943771196408
l:
rotation: 3
division:
- 0.5386344295901344
- 0.5386344295901344
l:
type: r
rotation: 0
r:
type: tt
rotation: 0
r:
type: C
rotation: 3
r:
rotation: 0
division:
- 0.27709722975684414
- 0.27709722975684414
l:
rotation: 0
division:
- 0.5516021415935491
- 0.5516021415935491
l:
type: q1
rotation: 0
r:
type: r
rotation: 1
r:
type: C
rotation: 0

View file

@ -1,537 +0,0 @@
WARNING: 338 m2 per storey needs ~70 m of daylit wall; the plot's non-private perimeter gives 55 m. Roughly 22 m2 of courtyard closes the gap. (DESIGN.md §38.3)
seed : /home/bruno/src/homemaker-layout/examples/maple-court/init.dom
programme : maple-court
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 2
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/maple-court/coldstart-500000-s2.dom
[ 80 evals] best 4.31031e-40 (fails 120) via construct/0
[ 1360 evals] best 5.82834e-38 (fails 118) via core_undivide noop
[ 1520 evals] best 1.66001e-37 (fails 117) via place_missing n -> rlrl
[ 1840 evals] best 3.62731e-36 (fails 107) via crossover rlll<->llrll
[ 2800 evals] best 3.14742e-35 (fails 104) via swap 0/llrr
[ 3600 evals] best 4.59088e-33 (fails 102) via place_missing tt -> rllr
[ 4160 evals] best 9.2155e-33 (fails 101) via swap 2/llrl
[ 4320 evals] best 9.28173e-33 (fails 101) via crossover lllll<->rlrll
[ 4400 evals] best 2.12991e-31 (fails 97) via level_retype 2/rlrl<->0/lrrll
[ 7440 evals] best 4.82473e-31 (fails 97) via core_divide rrrr (3 floors)
[ 8240 evals] best 8.3715e-31 (fails 95) via place_missing py -> rlrl
[ 10320 evals] best 1.73553e-29 (fails 90) via crossover rllll<->llrlr
[ 15120 evals] best 5.50371e-29 (fails 89) via swap 0/rrl
[ 16560 evals] best 1.36527e-28 (fails 87) via divide 1/rlrr
[ 17360 evals] best 1.3874e-28 (fails 87) via level_retype 0/lrrlr<->2/llrll
[ 18240 evals] best 4.52246e-26 (fails 80) via core_divide lrlr (3 floors)
[ 23200 evals] best 5.93841e-26 (fails 80) via divide 1/lll
[ 23360 evals] best 1.7257e-25 (fails 78) via place_missing py -> lrrr
[ 23760 evals] best 2.23563e-25 (fails 78) via crossover rlrrl<->lllll
[ 24240 evals] best 9.34508e-25 (fails 76) via crossover rlrrl<->rrlrr
[ 25920 evals] best 2.26323e-24 (fails 75) via crossover llllr<->rrrl
[ 27760 evals] best 2.14476e-24 (fails 74) via swap 0/rrll
[ 29520 evals] best 5.22955e-24 (fails 74) via level_fix ut1: lvl0/lrlrr → lvl2/rlll
[ 30320 evals] best 1.66122e-23 (fails 72) via place_missing n -> lrrr
[ 30560 evals] best 1.6949e-23 (fails 72) via rotate 0/rll
[ 31120 evals] best 1.92888e-23 (fails 72) via level_retype 0/lllr<->2/lrrr
[ 31840 evals] best 3.88073e-23 (fails 71) via rotate 2/llrl
[ 33520 evals] best 3.98572e-23 (fails 71) via undivide 0/rlrl
[ 35920 evals] best 7.53511e-23 (fails 70) via swap 0/llll
[ 36560 evals] best 7.94808e-23 (fails 70) via retype 1/rrlr->rc1
[ 37520 evals] best 8.1121e-23 (fails 70) via core_undivide noop
[ 37600 evals] best 1.56464e-22 (fails 69) via crossover rllrl<->rlrrr
[ 38160 evals] best 1.63217e-22 (fails 69) via divide 1/rllr
[ 39040 evals] best 1.64548e-22 (fails 69) via retype 1/rrrl->tt
[ 40400 evals] best 1.65094e-22 (fails 69) via retype 1/rrlr->O
[ 42400 evals] best 1.65488e-22 (fails 69) via level_retype 1/llll<->2/lrlr
[ 42560 evals] best 1.66645e-22 (fails 69) via rotate 0/rlr
[ 46320 evals] best 3.19675e-22 (fails 68) via undivide 2/llrl
[ 48240 evals] best 6.91742e-22 (fails 67) via crossover llll<->llrll
[ 48320 evals] best 6.95777e-22 (fails 67) via core_undivide noop
[ 48480 evals] best 7.14958e-22 (fails 67) via crossover rrlrr<->rlrrr
[ 48800 evals] best 7.16285e-22 (fails 67) via core_undivide noop
[ 50480 evals] best 7.17477e-22 (fails 67) via core_undivide noop
[ 50640 evals] best 1.39355e-21 (fails 66) via level_fix ph1: lvl2/rrlrlr → lvl0/lrr
[ 53200 evals] best 5.77265e-21 (fails 64) via rotate 0/rlr
[ 55600 evals] best 5.79924e-21 (fails 64) via crossover rlrll<->rlrrl
[ 58400 evals] best 5.81883e-21 (fails 64) via retype 1/rlrll->ur1
[ 62400 evals] best 9.76592e-21 (fails 63) via core_undivide noop
[ 63280 evals] best 1.07501e-20 (fails 63) via crossover rlrll<->rllrl
[ 65680 evals] best 1.15706e-20 (fails 63) via swap 0/rllr
[ 66320 evals] best 1.1586e-20 (fails 63) via level_retype 0/llll<->1/lrrl
[ 69680 evals] best 1.20599e-20 (fails 63) via core_undivide noop
[ 70800 evals] best 1.28103e-20 (fails 63) via retype 1/rlrlr->t
[ 71760 evals] best 1.82742e-20 (fails 62) via undivide 2/rllr
[ 73040 evals] best 2.56638e-20 (fails 62) via level_fix ur1: lvl1/rlrll → lvl0/lrr
[ 74000 evals] best 2.63265e-20 (fails 62) via swap 0/rrl
[ 74480 evals] best 6.24895e-20 (fails 61) via divide 2/rlll
[ 78960 evals] best 6.26967e-20 (fails 61) via swap 0/rlrl
[ 80560 evals] best 6.26967e-20 (fails 61) via core_undivide noop
[ 88560 evals] best 2.11893e-19 (fails 59) via crossover r<->r
[ 95840 evals] best 2.13379e-19 (fails 59) via crossover rrllr<->rrllr
[ 97360 evals] best 2.14849e-19 (fails 59) via core_undivide noop
[102080 evals] best 4.89088e-19 (fails 58) via swap 2/rllr
[115920 evals] best 5.35652e-19 (fails 58) via core_undivide noop
[116240 evals] best 5.39906e-19 (fails 58) via core_undivide noop
[117920 evals] best 5.40548e-19 (fails 58) via crossover llrr<->llrll
[125760 evals] best 8.66067e-19 (fails 57) via rotate 0/rlrl
[144640 evals] best 2.83792e-18 (fails 55) via crossover llrr<->lrl
[153040 evals] best 2.85323e-18 (fails 55) via core_undivide noop
[155600 evals] best 2.86486e-18 (fails 55) via core_undivide noop
[157760 evals] best 3.22807e-18 (fails 55) via divide 0/llrlr
[158400 evals] best 5.72902e-18 (fails 54) via undivide 2/rrlrl
[163600 evals] best 7.12352e-18 (fails 54) via swap 2/rllr
[164000 evals] best 7.23944e-18 (fails 54) via rotate 0/rlrr
[165680 evals] best 7.27269e-18 (fails 54) via level_retype 0/lrll<->2/llrl
[167840 evals] best 7.30749e-18 (fails 54) via swap 0/rrr
[168720 evals] best 7.3439e-18 (fails 54) via retype 0/rlrlr->ef1
[188800 evals] best 1.43357e-17 (fails 53) via swap 0/llrl
[193840 evals] best 3.11483e-17 (fails 52) via rotate 0/lr
[194080 evals] best 3.13028e-17 (fails 52) via level_retype 0/lrr<->2/rllrl
[196800 evals] best 3.13837e-17 (fails 52) via core_undivide noop
[207920 evals] best 3.1393e-17 (fails 52) via core_undivide noop
[208160 evals] best 3.17987e-17 (fails 52) via crossover rrll<->rrll
[222320 evals] best 3.72977e-17 (fails 52) via core_divide lrlr (3 floors)
[223920 evals] best 6.33334e-17 (fails 51) via swap 0/llrl
[227280 evals] best 7.07114e-17 (fails 51) via level_fix k1: lvl1/lrlrr → lvl0/lrr
[233200 evals] best 7.61239e-17 (fails 51) via retype 2/rrlrr->O
[239680 evals] best 1.33703e-16 (fails 50) via level_fix rc1: lvl2/lrlrr → lvl0/lrr
[255520 evals] best 1.34474e-16 (fails 50) via level_fix rc1: lvl2/lrlrr → lvl0/lrr
[255920 evals] best 1.34475e-16 (fails 50) via retype 1/lllr->ph1
[267200 evals] best 1.43929e-16 (fails 50) via level_fix k1: lvl1/lrlrr → lvl0/lrr
[280880 evals] best 1.44209e-16 (fails 50) via swap 0/rlrl
[285760 evals] best 1.44897e-16 (fails 50) via crossover rlr<->rlr
[290640 evals] best 1.46495e-16 (fails 50) via rotate 0/rlrr
[294800 evals] best 1.4687e-16 (fails 50) via swap 2/rrlr
[302240 evals] best 1.47593e-16 (fails 50) via core_undivide noop
[303200 evals] best 1.51095e-16 (fails 50) via crossover rrrl<->llrlr
[308400 evals] best 1.51414e-16 (fails 50) via crossover lrll<->rrlrr
[310560 evals] best 1.51745e-16 (fails 50) via retype 1/rrlr->m
[313120 evals] best 1.52084e-16 (fails 50) via retype 1/rrll->ur2
[314960 evals] best 1.52441e-16 (fails 50) via level_retype 1/rrll<->0/rlrrr
[316240 evals] best 1.5514e-16 (fails 50) via core_undivide noop
[316400 evals] best 2.98902e-16 (fails 49) via core_undivide noop
[319440 evals] best 3.04842e-16 (fails 49) via level_retype 0/rrllll<->1/lrrrl
[320800 evals] best 3.06083e-16 (fails 49) via swap 0/rlrl
[323040 evals] best 3.07396e-16 (fails 49) via core_undivide noop
[324320 evals] best 3.17316e-16 (fails 49) via undivide 0/rrrl
[326800 evals] best 3.18549e-16 (fails 49) via crossover rlrll<->lrll
[327600 evals] best 3.19798e-16 (fails 49) via crossover rrllll<->rlllrr
[333040 evals] best 3.22121e-16 (fails 49) via core_undivide noop
[334400 evals] best 3.29134e-16 (fails 49) via crossover rrrr<->lrlrl
[337200 evals] best 3.29777e-16 (fails 49) via level_retype 1/rrrr<->0/rllll
[349760 evals] best 3.30314e-16 (fails 49) via core_undivide noop
[353440 evals] best 3.34503e-16 (fails 49) via undivide 0/rrrl
[353680 evals] best 5.9728e-16 (fails 48) via rotate 0/rrl
[369600 evals] best 5.98058e-16 (fails 48) via core_undivide noop
[371920 evals] best 5.98874e-16 (fails 48) via retype 0/rllr->gh1
[377520 evals] best 5.99301e-16 (fails 48) via core_undivide noop
[381760 evals] best 5.99551e-16 (fails 48) via crossover rllr<->rllr
[390160 evals] best 6.19047e-16 (fails 48) via crossover rlrl<->rlrr
[403440 evals] best 6.54129e-16 (fails 48) via swap 2/rrlr
[408960 evals] best 6.55008e-16 (fails 48) via retype 0/rlrll->n
[413440 evals] best 6.55469e-16 (fails 48) via crossover rrllll<->rrllr
[413680 evals] best 6.55739e-16 (fails 48) via core_undivide noop
[445280 evals] best 6.56519e-16 (fails 48) via core_undivide noop
[446960 evals] best 6.57378e-16 (fails 48) via retype 2/llrl->k1
[447840 evals] best 6.57828e-16 (fails 48) via retype 0/rlrll->ut1
[451040 evals] best 6.58047e-16 (fails 48) via core_undivide noop
[471120 evals] best 6.81318e-16 (fails 48) via rotate 0/rlrl
[471840 evals] best 6.81796e-16 (fails 48) via crossover rrlrl<->rrlrl
[472960 evals] best 6.83308e-16 (fails 48) via swap 0/rlllr
[488880 evals] best 2.62087e-15 (fails 46) via retype 2/rlllrr->C
--- finishing (homemaker-py-3l6): unfold + polish 250000 evals ---
[finish] unfold: materialised 16 shared-leaf copies
[ 200 evals] best 1.97032e-30 (fails 96) via seed
[ 520 evals] best 2.08938e-30 (fails 96) via level_fix lo1: lvl2/rrlrl → lvl1/rlll
[ 2680 evals] best 8.05781e-30 (fails 94) via core_undivide noop
[ 4600 evals] best 1.67532e-29 (fails 93) via undivide 2/rrrlr
[ 5080 evals] best 6.36782e-29 (fails 91) via core_undivide noop
[ 7240 evals] best 6.69626e-29 (fails 91) via rotate 0/rrlr
[ 8040 evals] best 1.28594e-28 (fails 90) via core_undivide noop
[ 8760 evals] best 2.58909e-28 (fails 89) via crossover rrlrll<->rlrrr
[ 9400 evals] best 2.63823e-28 (fails 89) via crossover rlllrrl<->rlllrrl
[ 10520 evals] best 2.68237e-28 (fails 89) via level_retype 0/llrll<->1/rrrl
[ 11240 evals] best 2.70487e-28 (fails 89) via retype 0/rlllrl->ut1
[ 12120 evals] best 2.83799e-28 (fails 89) via level_fix k1: lvl2/llrl → lvl0/lrr
[ 12680 evals] best 2.15148e-27 (fails 86) via divide 2/lllrrr
[ 14600 evals] best 2.15702e-27 (fails 86) via core_undivide noop
[ 15720 evals] best 2.16177e-27 (fails 86) via retype 2/rrlll->gh1
[ 18440 evals] best 2.16617e-27 (fails 86) via level_retype 0/rlrll<->1/rllrl
[ 20680 evals] best 9.04856e-27 (fails 84) via level_retype 2/rrlrl<->1/rlll
[ 21960 evals] best 9.08795e-27 (fails 84) via retype 2/lrll->ef1
[ 23080 evals] best 9.09323e-27 (fails 84) via rotate 0/rlllr
[ 25000 evals] best 9.09677e-27 (fails 84) via retype 1/lrrrl->r
[ 26360 evals] best 9.09918e-27 (fails 84) via crossover rrlrr<->rrlrr
[ 26520 evals] best 1.81375e-26 (fails 83) via rotate 2/rrllr
[ 27240 evals] best 1.81551e-26 (fails 83) via crossover rrlrll<->rrlrr
[ 29000 evals] best 1.81633e-26 (fails 83) via core_undivide noop
[ 31880 evals] best 1.81666e-26 (fails 83) via retype 0/rllr->t
[ 32280 evals] best 3.6551e-26 (fails 82) via swap 2/llrr
[ 32520 evals] best 3.77014e-26 (fails 82) via core_undivide noop
[ 36120 evals] best 3.79918e-26 (fails 82) via level_retype 0/rlllrrrl<->2/llrrll
[ 36600 evals] best 3.80959e-26 (fails 82) via rotate 0/rlllrr
[ 38760 evals] best 3.81721e-26 (fails 82) via core_undivide noop
[ 39400 evals] best 3.82451e-26 (fails 82) via crossover llr<->llr
[ 40200 evals] best 3.83189e-26 (fails 82) via retype 0/rlrrl->tt
[ 40360 evals] best 3.83775e-26 (fails 82) via core_undivide noop
[ 43720 evals] best 7.93753e-26 (fails 81) via swap 2/lllr
[ 44360 evals] best 2.94032e-25 (fails 79) via rotate 0/llr
[ 46040 evals] best 2.94247e-25 (fails 79) via swap 0/rlr
[ 49880 evals] best 2.9432e-25 (fails 79) via retype 0/rlrll->py
[ 51720 evals] best 2.97242e-25 (fails 79) via level_retype 2/rrlll<->0/llrll
[ 53480 evals] best 6.13057e-25 (fails 78) via swap 2/lllr
[ 56120 evals] best 1.17142e-24 (fails 77) via swap 0/rlllr
[ 58360 evals] best 1.17179e-24 (fails 77) via swap 0/rrlrlr
[ 60200 evals] best 1.2077e-24 (fails 77) via divide 2/lllrr
[ 65640 evals] best 1.21155e-24 (fails 77) via rotate 0/rlllr
[ 66760 evals] best 1.21184e-24 (fails 77) via level_retype 2/rrlrl<->0/rlllrl
[ 67560 evals] best 1.2148e-24 (fails 77) via retype 0/rrllll->ws1
[ 68200 evals] best 2.453e-24 (fails 76) via divide 2/lllrl
[ 70040 evals] best 4.72814e-24 (fails 75) via crossover rlrrl<->rlrrr
[ 73480 evals] best 1.84713e-23 (fails 73) via divide 2/rrlrl
[ 74280 evals] best 3.49568e-23 (fails 72) via level_fix t: lvl2/llrrll → lvl0/lrr
[ 74360 evals] best 3.71306e-23 (fails 72) via level_retype 1/rrll<->0/rlrrr
[ 74440 evals] best 3.73449e-23 (fails 72) via core_undivide noop
[ 76200 evals] best 7.31239e-23 (fails 71) via swap 0/rlrl
[ 76600 evals] best 7.47722e-23 (fails 71) via rotate 0/rrll
[ 82520 evals] best 7.51045e-23 (fails 71) via divide 2/lrrr
[ 83400 evals] best 7.52013e-23 (fails 71) via level_retype 2/rlrr<->0/lrlrr
[ 83800 evals] best 7.55416e-23 (fails 71) via retype 2/llrrlr->la1
[ 85960 evals] best 7.58616e-23 (fails 71) via core_undivide noop
[ 86280 evals] best 2.33507e-21 (fails 66) via crossover llrlrl<->rlrrr
[ 88920 evals] best 2.34342e-21 (fails 66) via swap 0/rrlrlr
[ 91240 evals] best 2.3512e-21 (fails 66) via level_retype 1/llrl<->0/rlrlr
[ 93560 evals] best 4.27125e-21 (fails 65) via rotate 0/llrlr
[ 95240 evals] best 4.2813e-21 (fails 65) via retype 1/llrl->q1
[ 96840 evals] best 4.29019e-21 (fails 65) via crossover rrlrll<->rrllr
[ 97000 evals] best 8.2752e-21 (fails 64) via core_undivide noop
[103560 evals] best 1.69921e-20 (fails 63) via level_retype 2/rrlll<->1/rlll
[103640 evals] best 1.70564e-20 (fails 63) via core_undivide noop
[104440 evals] best 1.70857e-20 (fails 63) via retype 2/llrrll->k1
[106840 evals] best 3.11621e-20 (fails 62) via level_fix k1: lvl1/rrrl → lvl0/lrr
[107640 evals] best 3.12166e-20 (fails 62) via core_undivide noop
[111400 evals] best 6.83341e-20 (fails 61) via undivide 2/lrrlrr
[113960 evals] best 6.85765e-20 (fails 61) via crossover rrlrll<->rrlrll
[118360 evals] best 6.88217e-20 (fails 61) via crossover lr<->lr
[122120 evals] best 6.94995e-20 (fails 61) via retype 1/rrll->rc1
[122440 evals] best 6.96038e-20 (fails 61) via core_undivide noop
[127640 evals] best 1.37224e-19 (fails 60) via rotate 2/rrlrl
[128040 evals] best 1.37417e-19 (fails 60) via core_undivide noop
[128200 evals] best 1.37589e-19 (fails 60) via crossover rrlrlrr<->rrlrlrl
[128520 evals] best 1.37737e-19 (fails 60) via retype 0/rlllrrl->me1
[129240 evals] best 1.37857e-19 (fails 60) via core_undivide noop
[133320 evals] best 1.39644e-19 (fails 60) via retype 2/llrrll->en1
[139320 evals] best 2.68968e-19 (fails 59) via swap 0/llrlr
[140040 evals] best 2.69157e-19 (fails 59) via retype 0/rrlrr->n
[141080 evals] best 2.69496e-19 (fails 59) via retype 2/lllrll->em
[145240 evals] best 2.70023e-19 (fails 59) via retype 2/lllrrl->ph1
[145800 evals] best 2.7045e-19 (fails 59) via crossover rlllrrrr<->rlllrrrr
[146600 evals] best 5.91845e-19 (fails 58) via swap 0/lll
[146840 evals] best 5.92808e-19 (fails 58) via core_undivide noop
[148360 evals] best 5.93267e-19 (fails 58) via crossover rlllrrl<->rrlrlrr
[149320 evals] best 5.93688e-19 (fails 58) via core_undivide noop
[153160 evals] best 5.94023e-19 (fails 58) via crossover rrlrll<->rrlrlrl
[156440 evals] best 6.27259e-19 (fails 58) via crossover rllll<->lrlr
[159720 evals] best 6.27401e-19 (fails 58) via level_retype 0/lrll<->2/lrrll
[162840 evals] best 6.27428e-19 (fails 58) via core_undivide noop
[168760 evals] best 6.27429e-19 (fails 58) via level_retype 0/llrlrr<->2/llrrr
[169080 evals] best 6.27429e-19 (fails 58) via retype 0/rlrlr->me1
[170040 evals] best 6.2743e-19 (fails 58) via core_undivide noop
[170200 evals] best 6.2743e-19 (fails 58) via retype 2/rllrl->la1
[170840 evals] best 6.2743e-19 (fails 58) via level_retype 2/rrlrll<->0/rlrrl
[185960 evals] best 6.30704e-19 (fails 58) via undivide 2/rrllr
[186280 evals] best 6.31736e-19 (fails 58) via core_undivide noop
[188760 evals] best 6.32694e-19 (fails 58) via retype 0/rlrlr->ef1
[189160 evals] best 6.33027e-19 (fails 58) via swap 2/llrrl
[192040 evals] best 2.52641e-18 (fails 56) via rotate 0/rrlll
[199000 evals] best 2.53262e-18 (fails 56) via core_undivide noop
[203400 evals] best 2.5385e-18 (fails 56) via core_undivide noop
[204840 evals] best 2.54413e-18 (fails 56) via retype 0/lrr->tt
[205320 evals] best 2.54413e-18 (fails 56) via core_undivide noop
[205640 evals] best 2.54413e-18 (fails 56) via level_retype 2/llrrlr<->1/rlll
[209560 evals] best 2.54413e-18 (fails 56) via level_retype 2/rrlrll<->1/rlrll
[210680 evals] best 2.54413e-18 (fails 56) via core_undivide noop
[211400 evals] best 2.54413e-18 (fails 56) via core_undivide noop
[215560 evals] best 2.54413e-18 (fails 56) via core_undivide noop
[224360 evals] best 2.54414e-18 (fails 56) via core_undivide noop
[226840 evals] best 2.59039e-18 (fails 56) via divide 2/rrllr
[227400 evals] best 2.59059e-18 (fails 56) via swap 2/llrrl
[232680 evals] best 2.59124e-18 (fails 56) via core_undivide noop
[234120 evals] best 2.59193e-18 (fails 56) via rotate 0/rlllr
[235320 evals] best 1.79054e-17 (fails 53) via level_compound_fix r: lvl1 → lvl2/rllll
[235800 evals] best 1.79122e-17 (fails 53) via swap 2/lllr
[239880 evals] best 1.7918e-17 (fails 53) via swap 0/rlrr
--- collapse (homemaker-py-94g): finish-time cell→room relabel ---
[finish] collapse: 181 → 55 fails (applied)
--- done ---
elapsed : 197085.4s
evals : 750040 across 9374 topologies
best : 4.66229e-18 (55 fails) via swap 0/rlrr+collapse
improvement history:
[ 80] 4.31031e-40 (share:construct/0)
[ 1360] 5.82834e-38 (share:core_undivide noop)
[ 1520] 1.66001e-37 (share:place_missing n -> rlrl)
[ 1840] 3.62731e-36 (share:crossover rlll<->llrll)
[ 2800] 3.14742e-35 (share:swap 0/llrr)
[ 3600] 4.59088e-33 (share:place_missing tt -> rllr)
[ 4160] 9.2155e-33 (share:swap 2/llrl)
[ 4320] 9.28173e-33 (share:crossover lllll<->rlrll)
[ 4400] 2.12991e-31 (share:level_retype 2/rlrl<->0/lrrll)
[ 7440] 4.82473e-31 (share:core_divide rrrr (3 floors))
[ 8240] 8.3715e-31 (share:place_missing py -> rlrl)
[ 10320] 1.73553e-29 (share:crossover rllll<->llrlr)
[ 15120] 5.50371e-29 (share:swap 0/rrl)
[ 16560] 1.36527e-28 (share:divide 1/rlrr)
[ 17360] 1.3874e-28 (share:level_retype 0/lrrlr<->2/llrll)
[ 18240] 4.52246e-26 (share:core_divide lrlr (3 floors))
[ 23200] 5.93841e-26 (share:divide 1/lll)
[ 23360] 1.7257e-25 (share:place_missing py -> lrrr)
[ 23760] 2.23563e-25 (share:crossover rlrrl<->lllll)
[ 24240] 9.34508e-25 (share:crossover rlrrl<->rrlrr)
[ 25920] 2.26323e-24 (share:crossover llllr<->rrrl)
[ 27760] 2.14476e-24 (share:swap 0/rrll)
[ 29520] 5.22955e-24 (share:level_fix ut1: lvl0/lrlrr → lvl2/rlll)
[ 30320] 1.66122e-23 (share:place_missing n -> lrrr)
[ 30560] 1.6949e-23 (share:rotate 0/rll)
[ 31120] 1.92888e-23 (share:level_retype 0/lllr<->2/lrrr)
[ 31840] 3.88073e-23 (share:rotate 2/llrl)
[ 33520] 3.98572e-23 (share:undivide 0/rlrl)
[ 35920] 7.53511e-23 (share:swap 0/llll)
[ 36560] 7.94808e-23 (share:retype 1/rrlr->rc1)
[ 37520] 8.1121e-23 (share:core_undivide noop)
[ 37600] 1.56464e-22 (share:crossover rllrl<->rlrrr)
[ 38160] 1.63217e-22 (share:divide 1/rllr)
[ 39040] 1.64548e-22 (share:retype 1/rrrl->tt)
[ 40400] 1.65094e-22 (share:retype 1/rrlr->O)
[ 42400] 1.65488e-22 (share:level_retype 1/llll<->2/lrlr)
[ 42560] 1.66645e-22 (share:rotate 0/rlr)
[ 46320] 3.19675e-22 (share:undivide 2/llrl)
[ 48240] 6.91742e-22 (share:crossover llll<->llrll)
[ 48320] 6.95777e-22 (share:core_undivide noop)
[ 48480] 7.14958e-22 (share:crossover rrlrr<->rlrrr)
[ 48800] 7.16285e-22 (share:core_undivide noop)
[ 50480] 7.17477e-22 (share:core_undivide noop)
[ 50640] 1.39355e-21 (share:level_fix ph1: lvl2/rrlrlr → lvl0/lrr)
[ 53200] 5.77265e-21 (share:rotate 0/rlr)
[ 55600] 5.79924e-21 (share:crossover rlrll<->rlrrl)
[ 58400] 5.81883e-21 (share:retype 1/rlrll->ur1)
[ 62400] 9.76592e-21 (share:core_undivide noop)
[ 63280] 1.07501e-20 (share:crossover rlrll<->rllrl)
[ 65680] 1.15706e-20 (share:swap 0/rllr)
[ 66320] 1.1586e-20 (share:level_retype 0/llll<->1/lrrl)
[ 69680] 1.20599e-20 (share:core_undivide noop)
[ 70800] 1.28103e-20 (share:retype 1/rlrlr->t)
[ 71760] 1.82742e-20 (share:undivide 2/rllr)
[ 73040] 2.56638e-20 (share:level_fix ur1: lvl1/rlrll → lvl0/lrr)
[ 74000] 2.63265e-20 (share:swap 0/rrl)
[ 74480] 6.24895e-20 (share:divide 2/rlll)
[ 78960] 6.26967e-20 (share:swap 0/rlrl)
[ 80560] 6.26967e-20 (share:core_undivide noop)
[ 88560] 2.11893e-19 (share:crossover r<->r)
[ 95840] 2.13379e-19 (share:crossover rrllr<->rrllr)
[ 97360] 2.14849e-19 (share:core_undivide noop)
[102080] 4.89088e-19 (share:swap 2/rllr)
[115920] 5.35652e-19 (share:core_undivide noop)
[116240] 5.39906e-19 (share:core_undivide noop)
[117920] 5.40548e-19 (share:crossover llrr<->llrll)
[125760] 8.66067e-19 (share:rotate 0/rlrl)
[144640] 2.83792e-18 (share:crossover llrr<->lrl)
[153040] 2.85323e-18 (share:core_undivide noop)
[155600] 2.86486e-18 (share:core_undivide noop)
[157760] 3.22807e-18 (share:divide 0/llrlr)
[158400] 5.72902e-18 (share:undivide 2/rrlrl)
[163600] 7.12352e-18 (share:swap 2/rllr)
[164000] 7.23944e-18 (share:rotate 0/rlrr)
[165680] 7.27269e-18 (share:level_retype 0/lrll<->2/llrl)
[167840] 7.30749e-18 (share:swap 0/rrr)
[168720] 7.3439e-18 (share:retype 0/rlrlr->ef1)
[188800] 1.43357e-17 (share:swap 0/llrl)
[193840] 3.11483e-17 (share:rotate 0/lr)
[194080] 3.13028e-17 (share:level_retype 0/lrr<->2/rllrl)
[196800] 3.13837e-17 (share:core_undivide noop)
[207920] 3.1393e-17 (share:core_undivide noop)
[208160] 3.17987e-17 (share:crossover rrll<->rrll)
[222320] 3.72977e-17 (share:core_divide lrlr (3 floors))
[223920] 6.33334e-17 (share:swap 0/llrl)
[227280] 7.07114e-17 (share:level_fix k1: lvl1/lrlrr → lvl0/lrr)
[233200] 7.61239e-17 (share:retype 2/rrlrr->O)
[239680] 1.33703e-16 (share:level_fix rc1: lvl2/lrlrr → lvl0/lrr)
[255520] 1.34474e-16 (share:level_fix rc1: lvl2/lrlrr → lvl0/lrr)
[255920] 1.34475e-16 (share:retype 1/lllr->ph1)
[267200] 1.43929e-16 (share:level_fix k1: lvl1/lrlrr → lvl0/lrr)
[280880] 1.44209e-16 (share:swap 0/rlrl)
[285760] 1.44897e-16 (share:crossover rlr<->rlr)
[290640] 1.46495e-16 (share:rotate 0/rlrr)
[294800] 1.4687e-16 (share:swap 2/rrlr)
[302240] 1.47593e-16 (share:core_undivide noop)
[303200] 1.51095e-16 (share:crossover rrrl<->llrlr)
[308400] 1.51414e-16 (share:crossover lrll<->rrlrr)
[310560] 1.51745e-16 (share:retype 1/rrlr->m)
[313120] 1.52084e-16 (share:retype 1/rrll->ur2)
[314960] 1.52441e-16 (share:level_retype 1/rrll<->0/rlrrr)
[316240] 1.5514e-16 (share:core_undivide noop)
[316400] 2.98902e-16 (share:core_undivide noop)
[319440] 3.04842e-16 (share:level_retype 0/rrllll<->1/lrrrl)
[320800] 3.06083e-16 (share:swap 0/rlrl)
[323040] 3.07396e-16 (share:core_undivide noop)
[324320] 3.17316e-16 (share:undivide 0/rrrl)
[326800] 3.18549e-16 (share:crossover rlrll<->lrll)
[327600] 3.19798e-16 (share:crossover rrllll<->rlllrr)
[333040] 3.22121e-16 (share:core_undivide noop)
[334400] 3.29134e-16 (share:crossover rrrr<->lrlrl)
[337200] 3.29777e-16 (share:level_retype 1/rrrr<->0/rllll)
[349760] 3.30314e-16 (share:core_undivide noop)
[353440] 3.34503e-16 (share:undivide 0/rrrl)
[353680] 5.9728e-16 (share:rotate 0/rrl)
[369600] 5.98058e-16 (share:core_undivide noop)
[371920] 5.98874e-16 (share:retype 0/rllr->gh1)
[377520] 5.99301e-16 (share:core_undivide noop)
[381760] 5.99551e-16 (share:crossover rllr<->rllr)
[390160] 6.19047e-16 (share:crossover rlrl<->rlrr)
[403440] 6.54129e-16 (share:swap 2/rrlr)
[408960] 6.55008e-16 (share:retype 0/rlrll->n)
[413440] 6.55469e-16 (share:crossover rrllll<->rrllr)
[413680] 6.55739e-16 (share:core_undivide noop)
[445280] 6.56519e-16 (share:core_undivide noop)
[446960] 6.57378e-16 (share:retype 2/llrl->k1)
[447840] 6.57828e-16 (share:retype 0/rlrll->ut1)
[451040] 6.58047e-16 (share:core_undivide noop)
[471120] 6.81318e-16 (share:rotate 0/rlrl)
[471840] 6.81796e-16 (share:crossover rrlrl<->rrlrl)
[472960] 6.83308e-16 (share:swap 0/rlllr)
[488880] 2.62087e-15 (share:retype 2/rlllrr->C)
[500200] 1.97032e-30 (polish:seed)
[500520] 2.08938e-30 (polish:level_fix lo1: lvl2/rrlrl → lvl1/rlll)
[502680] 8.05781e-30 (polish:core_undivide noop)
[504600] 1.67532e-29 (polish:undivide 2/rrrlr)
[505080] 6.36782e-29 (polish:core_undivide noop)
[507240] 6.69626e-29 (polish:rotate 0/rrlr)
[508040] 1.28594e-28 (polish:core_undivide noop)
[508760] 2.58909e-28 (polish:crossover rrlrll<->rlrrr)
[509400] 2.63823e-28 (polish:crossover rlllrrl<->rlllrrl)
[510520] 2.68237e-28 (polish:level_retype 0/llrll<->1/rrrl)
[511240] 2.70487e-28 (polish:retype 0/rlllrl->ut1)
[512120] 2.83799e-28 (polish:level_fix k1: lvl2/llrl → lvl0/lrr)
[512680] 2.15148e-27 (polish:divide 2/lllrrr)
[514600] 2.15702e-27 (polish:core_undivide noop)
[515720] 2.16177e-27 (polish:retype 2/rrlll->gh1)
[518440] 2.16617e-27 (polish:level_retype 0/rlrll<->1/rllrl)
[520680] 9.04856e-27 (polish:level_retype 2/rrlrl<->1/rlll)
[521960] 9.08795e-27 (polish:retype 2/lrll->ef1)
[523080] 9.09323e-27 (polish:rotate 0/rlllr)
[525000] 9.09677e-27 (polish:retype 1/lrrrl->r)
[526360] 9.09918e-27 (polish:crossover rrlrr<->rrlrr)
[526520] 1.81375e-26 (polish:rotate 2/rrllr)
[527240] 1.81551e-26 (polish:crossover rrlrll<->rrlrr)
[529000] 1.81633e-26 (polish:core_undivide noop)
[531880] 1.81666e-26 (polish:retype 0/rllr->t)
[532280] 3.6551e-26 (polish:swap 2/llrr)
[532520] 3.77014e-26 (polish:core_undivide noop)
[536120] 3.79918e-26 (polish:level_retype 0/rlllrrrl<->2/llrrll)
[536600] 3.80959e-26 (polish:rotate 0/rlllrr)
[538760] 3.81721e-26 (polish:core_undivide noop)
[539400] 3.82451e-26 (polish:crossover llr<->llr)
[540200] 3.83189e-26 (polish:retype 0/rlrrl->tt)
[540360] 3.83775e-26 (polish:core_undivide noop)
[543720] 7.93753e-26 (polish:swap 2/lllr)
[544360] 2.94032e-25 (polish:rotate 0/llr)
[546040] 2.94247e-25 (polish:swap 0/rlr)
[549880] 2.9432e-25 (polish:retype 0/rlrll->py)
[551720] 2.97242e-25 (polish:level_retype 2/rrlll<->0/llrll)
[553480] 6.13057e-25 (polish:swap 2/lllr)
[556120] 1.17142e-24 (polish:swap 0/rlllr)
[558360] 1.17179e-24 (polish:swap 0/rrlrlr)
[560200] 1.2077e-24 (polish:divide 2/lllrr)
[565640] 1.21155e-24 (polish:rotate 0/rlllr)
[566760] 1.21184e-24 (polish:level_retype 2/rrlrl<->0/rlllrl)
[567560] 1.2148e-24 (polish:retype 0/rrllll->ws1)
[568200] 2.453e-24 (polish:divide 2/lllrl)
[570040] 4.72814e-24 (polish:crossover rlrrl<->rlrrr)
[573480] 1.84713e-23 (polish:divide 2/rrlrl)
[574280] 3.49568e-23 (polish:level_fix t: lvl2/llrrll → lvl0/lrr)
[574360] 3.71306e-23 (polish:level_retype 1/rrll<->0/rlrrr)
[574440] 3.73449e-23 (polish:core_undivide noop)
[576200] 7.31239e-23 (polish:swap 0/rlrl)
[576600] 7.47722e-23 (polish:rotate 0/rrll)
[582520] 7.51045e-23 (polish:divide 2/lrrr)
[583400] 7.52013e-23 (polish:level_retype 2/rlrr<->0/lrlrr)
[583800] 7.55416e-23 (polish:retype 2/llrrlr->la1)
[585960] 7.58616e-23 (polish:core_undivide noop)
[586280] 2.33507e-21 (polish:crossover llrlrl<->rlrrr)
[588920] 2.34342e-21 (polish:swap 0/rrlrlr)
[591240] 2.3512e-21 (polish:level_retype 1/llrl<->0/rlrlr)
[593560] 4.27125e-21 (polish:rotate 0/llrlr)
[595240] 4.2813e-21 (polish:retype 1/llrl->q1)
[596840] 4.29019e-21 (polish:crossover rrlrll<->rrllr)
[597000] 8.2752e-21 (polish:core_undivide noop)
[603560] 1.69921e-20 (polish:level_retype 2/rrlll<->1/rlll)
[603640] 1.70564e-20 (polish:core_undivide noop)
[604440] 1.70857e-20 (polish:retype 2/llrrll->k1)
[606840] 3.11621e-20 (polish:level_fix k1: lvl1/rrrl → lvl0/lrr)
[607640] 3.12166e-20 (polish:core_undivide noop)
[611400] 6.83341e-20 (polish:undivide 2/lrrlrr)
[613960] 6.85765e-20 (polish:crossover rrlrll<->rrlrll)
[618360] 6.88217e-20 (polish:crossover lr<->lr)
[622120] 6.94995e-20 (polish:retype 1/rrll->rc1)
[622440] 6.96038e-20 (polish:core_undivide noop)
[627640] 1.37224e-19 (polish:rotate 2/rrlrl)
[628040] 1.37417e-19 (polish:core_undivide noop)
[628200] 1.37589e-19 (polish:crossover rrlrlrr<->rrlrlrl)
[628520] 1.37737e-19 (polish:retype 0/rlllrrl->me1)
[629240] 1.37857e-19 (polish:core_undivide noop)
[633320] 1.39644e-19 (polish:retype 2/llrrll->en1)
[639320] 2.68968e-19 (polish:swap 0/llrlr)
[640040] 2.69157e-19 (polish:retype 0/rrlrr->n)
[641080] 2.69496e-19 (polish:retype 2/lllrll->em)
[645240] 2.70023e-19 (polish:retype 2/lllrrl->ph1)
[645800] 2.7045e-19 (polish:crossover rlllrrrr<->rlllrrrr)
[646600] 5.91845e-19 (polish:swap 0/lll)
[646840] 5.92808e-19 (polish:core_undivide noop)
[648360] 5.93267e-19 (polish:crossover rlllrrl<->rrlrlrr)
[649320] 5.93688e-19 (polish:core_undivide noop)
[653160] 5.94023e-19 (polish:crossover rrlrll<->rrlrlrl)
[656440] 6.27259e-19 (polish:crossover rllll<->lrlr)
[659720] 6.27401e-19 (polish:level_retype 0/lrll<->2/lrrll)
[662840] 6.27428e-19 (polish:core_undivide noop)
[668760] 6.27429e-19 (polish:level_retype 0/llrlrr<->2/llrrr)
[669080] 6.27429e-19 (polish:retype 0/rlrlr->me1)
[670040] 6.2743e-19 (polish:core_undivide noop)
[670200] 6.2743e-19 (polish:retype 2/rllrl->la1)
[670840] 6.2743e-19 (polish:level_retype 2/rrlrll<->0/rlrrl)
[685960] 6.30704e-19 (polish:undivide 2/rrllr)
[686280] 6.31736e-19 (polish:core_undivide noop)
[688760] 6.32694e-19 (polish:retype 0/rlrlr->ef1)
[689160] 6.33027e-19 (polish:swap 2/llrrl)
[692040] 2.52641e-18 (polish:rotate 0/rrlll)
[699000] 2.53262e-18 (polish:core_undivide noop)
[703400] 2.5385e-18 (polish:core_undivide noop)
[704840] 2.54413e-18 (polish:retype 0/lrr->tt)
[705320] 2.54413e-18 (polish:core_undivide noop)
[705640] 2.54413e-18 (polish:level_retype 2/llrrlr<->1/rlll)
[709560] 2.54413e-18 (polish:level_retype 2/rrlrll<->1/rlrll)
[710680] 2.54413e-18 (polish:core_undivide noop)
[711400] 2.54413e-18 (polish:core_undivide noop)
[715560] 2.54413e-18 (polish:core_undivide noop)
[724360] 2.54414e-18 (polish:core_undivide noop)
[726840] 2.59039e-18 (polish:divide 2/rrllr)
[727400] 2.59059e-18 (polish:swap 2/llrrl)
[732680] 2.59124e-18 (polish:core_undivide noop)
[734120] 2.59193e-18 (polish:rotate 0/rlllr)
[735320] 1.79054e-17 (polish:level_compound_fix r: lvl1 → lvl2/rllll)
[735800] 1.79122e-17 (polish:swap 2/lllr)
[739880] 1.7918e-17 (polish:swap 0/rlrr)
written : /home/bruno/src/homemaker-layout/examples/maple-court/coldstart-500000-s2.dom

View file

@ -107,7 +107,6 @@ spaces:
- c
me1:
crinkliness: none # no window needed
usage: utility
name: Mechanical/Electrical Room
size:
@ -121,7 +120,6 @@ spaces:
- c
ur1:
crinkliness: none # no window needed
usage: utility
name: Ground Floor Storage
size:
@ -269,7 +267,6 @@ spaces:
count: 4
ur2:
crinkliness: none # no window needed
usage: utility
name: First Floor Storage
size:
@ -344,7 +341,6 @@ spaces:
- o
ut1:
crinkliness: none # no window needed
usage: utility
name: Utilities Closet
size:
@ -358,7 +354,6 @@ spaces:
- c
ur3:
crinkliness: none # no window needed
usage: utility
name: Second Floor Storage
size:
@ -384,7 +379,6 @@ spaces:
level: 2
adjacency:
- c
- r # Brand: a WC beside sleeping space can be knocked through later
count: 4
q1:
@ -403,28 +397,17 @@ spaces:
# Building constraints
storey_minimum: 3
storey_limit: 4
# homemaker-py-hxi (DESIGN.md §39.25): ENABLED. Fails a level that has no
# outdoor space at all -- Alexander's actual requirement, per level and with no
# quantity attached. It had been off in every corpus config, so the only thing
# expressing outdoor space was ratio_outside's arbitrary fraction.
force_roof_garden: 1
force_roof_garden: 0
# Circulation ratio (allow more circulation for larger building)
# homemaker-py-hxi (DESIGN.md §39.24): disabled. The score is value/cost, a
# ratio, so the per-m2 economics (circulation worth 50 against a build cost of
# 200) is ALREADY a proportional pressure against circulation -- this said the
# same thing a second time, and with a curve where twice the corridor is far
# more than twice as bad. Its other side, "a building needs some circulation",
# was worth at most 13% here and is enforced structurally anyway by the access
# and connectivity checks. Set a [target, sigma] pair to re-enable.
ratio_circulation:
- 0.08
- 0.15
# Outside space ratio (courtyard requirement)
# homemaker-py-hxi (DESIGN.md §39.25): disabled. Alexander says every level
# should have accessible outside space; he does not say how much. The
# qualitative requirement is force_roof_garden below. Set a [target, sigma]
# pair to re-enable this quantitative one.
ratio_outside:
- 0.15
- 0.10
# Staircase requirements (main + secondary)
staircase_min: 2
@ -434,9 +417,4 @@ staircase_max: 2
value_inside: 300.0
value_circulation: 50.0
value_outside: 100.0
# homemaker-py-ecx (DESIGN.md §39.19): an upper-level terrace is worth what
# outdoor space is worth (value_outside); it is the COST that differs by level
# (outside 10.0 vs outside_supported 110.0), not the value. At 300.0 -- the
# `value_inside` rate -- a terrace was worth more per square metre than a real
# internal room, which the owner ruled out.
value_supported: 100.0
value_supported: 300.0

View file

@ -1,96 +0,0 @@
node:
- - 1.67100188077385
- 11.9169190395339
- - 8.72124918939699
- 13.7119442286569
- - 6.79637028658874
- 21.3797854212389
- - -0.42152047183069
- 19.9368564494913
perimeter:
a: private
b: null
c: null
d: null
rotation: 3
division:
- 0.4404714364553455
- 0.4404714364553455
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.7110151156970064
- 0.7110151156970064
l:
type: b2
rotation: 0
r:
rotation: 1
division:
- 0.6031384135803968
- 0.6031384135803968
l:
type: C
rotation: 0
r:
type: t3
rotation: 0
r:
rotation: 1
division:
- 0.6798158021111778
- 0.6798158021111778
l:
type: l1
rotation: 0
r:
rotation: 1
division:
- 0.5251755040884536
- 0.5251755040884536
l:
type: t2
rotation: 0
r:
type: C
rotation: 0
above:
rotation: 0
division:
- 0.61355312064873
- 0.61355312064873
height: 3.0
l:
rotation: 0
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.8
- 0.8
l:
type: b1
rotation: 0
r:
rotation: 2
division:
- 0.5
- 0.5
l:
type: t1
rotation: 0
r:
type: C
rotation: 0

View file

@ -1,134 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/programme-house/init.dom
programme : programme-house
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 0
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/programme-house/coldstart-500000-s0.dom
[ 80 evals] best 9.96032e-11 (fails 17) via construct/0
[ 160 evals] best 5.18243e-09 (fails 16) via construct/1
[ 320 evals] best 9.65534e-06 (fails 7) via construct/3
[ 1920 evals] best 1.96478e-05 (fails 7) via place_missing noop
[ 2480 evals] best 1.9751e-05 (fails 7) via place_missing noop
[ 3360 evals] best 1.99208e-05 (fails 7) via core_undivide noop
[ 3600 evals] best 7.04674e-05 (fails 5) via undivide 0/rl
[ 5200 evals] best 0.000116027 (fails 5) via undivide 0/rr
[ 6480 evals] best 0.000116602 (fails 5) via place_missing noop
[ 6720 evals] best 1.52309e-05 (fails 4) via level_fix l1: lvl1/lr → lvl0/ll
[ 7440 evals] best 1.67782e-05 (fails 4) via place_missing noop
[ 9520 evals] best 1.80279e-05 (fails 4) via retype 1/rr->b2
[ 13600 evals] best 4.43351e-05 (fails 2) via undivide 0/rl
[ 13680 evals] best 4.4362e-05 (fails 2) via level_fix noop
[ 15280 evals] best 4.43676e-05 (fails 2) via level_fix noop
[ 17840 evals] best 4.43679e-05 (fails 2) via crossover rl<->ll
[ 17920 evals] best 4.67272e-05 (fails 2) via level_add (3 storeys)
[ 20000 evals] best 4.93528e-05 (fails 2) via retype 0/ll->t2
[ 21360 evals] best 5.11016e-05 (fails 2) via crossover rl<->ll
[ 21600 evals] best 5.12228e-05 (fails 2) via core_undivide noop
[ 23040 evals] best 5.13069e-05 (fails 2) via crossover lr<->lr
[ 24320 evals] best 5.13735e-05 (fails 2) via core_undivide noop
[ 25280 evals] best 0.000434895 (fails 2) via retype 2/ll->O
[ 25920 evals] best 0.000435111 (fails 2) via core_undivide noop
[ 26480 evals] best 0.000435218 (fails 2) via level_fix noop
[ 34240 evals] best 0.000435236 (fails 2) via crossover root<->root
[ 34480 evals] best 0.000435344 (fails 2) via level_compound_fix noop
[ 35600 evals] best 0.000435397 (fails 2) via crossover rr<->rr
[ 65840 evals] best 0.000460088 (fails 2) via level_fix noop
[ 66400 evals] best 0.000462499 (fails 2) via core_undivide noop
[ 67200 evals] best 0.000462633 (fails 2) via level_fix noop
[ 70160 evals] best 0.00195825 (fails 2) via retype 1/ll->O
[ 70400 evals] best 6.42152e-05 (fails 1) via level_delete (2 storeys)
[ 77040 evals] best 6.45477e-05 (fails 1) via level_delete (2 storeys)
[ 80960 evals] best 6.45918e-05 (fails 1) via level_retype 1/rl<->0/rrl
[ 86320 evals] best 6.45969e-05 (fails 1) via crossover rrl<->rrl
[105200 evals] best 6.4915e-05 (fails 1) via level_delete (2 storeys)
[106400 evals] best 6.49234e-05 (fails 1) via crossover lrl<->rrr
[107200 evals] best 6.49603e-05 (fails 1) via level_delete (2 storeys)
[154720 evals] best 0.0022262 (fails 1) via retype 1/ll->O
[160240 evals] best 0.00223095 (fails 1) via crossover r<->r
[167520 evals] best 0.00223373 (fails 1) via crossover lrr<->lrr
[169280 evals] best 0.0022349 (fails 1) via core_undivide noop
[173200 evals] best 0.00223525 (fails 1) via crossover ll<->ll
[174160 evals] best 0.00223545 (fails 1) via crossover lrl<->rrr
[177760 evals] best 0.00223574 (fails 1) via core_undivide noop
[233840 evals] best 0.00511709 (fails 1) via retype 1/lr->O
[238560 evals] best 0.00578375 (fails 1) via core_undivide noop
[243040 evals] best 0.00587257 (fails 1) via level_retype 0/rrr<->1/rrr
[243920 evals] best 0.00587423 (fails 1) via crossover root<->root
--- finishing (homemaker-py-3l6): unfold + polish 250000 evals ---
[finish] unfold: materialised 0 shared-leaf copies
[ 200 evals] best 0.00587685 (fails 1) via seed
--- collapse (homemaker-py-94g): finish-time cell→room relabel ---
[finish] collapse: 28 → 1 fails (applied)
--- done ---
elapsed : 19387.7s
evals : 750040 across 9374 topologies
best : 0.00587685 (1 fails) via seed+collapse
improvement history:
[ 80] 9.96032e-11 (share:construct/0)
[ 160] 5.18243e-09 (share:construct/1)
[ 320] 9.65534e-06 (share:construct/3)
[ 1920] 1.96478e-05 (share:place_missing noop)
[ 2480] 1.9751e-05 (share:place_missing noop)
[ 3360] 1.99208e-05 (share:core_undivide noop)
[ 3600] 7.04674e-05 (share:undivide 0/rl)
[ 5200] 0.000116027 (share:undivide 0/rr)
[ 6480] 0.000116602 (share:place_missing noop)
[ 6720] 1.52309e-05 (share:level_fix l1: lvl1/lr → lvl0/ll)
[ 7440] 1.67782e-05 (share:place_missing noop)
[ 9520] 1.80279e-05 (share:retype 1/rr->b2)
[ 13600] 4.43351e-05 (share:undivide 0/rl)
[ 13680] 4.4362e-05 (share:level_fix noop)
[ 15280] 4.43676e-05 (share:level_fix noop)
[ 17840] 4.43679e-05 (share:crossover rl<->ll)
[ 17920] 4.67272e-05 (share:level_add (3 storeys))
[ 20000] 4.93528e-05 (share:retype 0/ll->t2)
[ 21360] 5.11016e-05 (share:crossover rl<->ll)
[ 21600] 5.12228e-05 (share:core_undivide noop)
[ 23040] 5.13069e-05 (share:crossover lr<->lr)
[ 24320] 5.13735e-05 (share:core_undivide noop)
[ 25280] 0.000434895 (share:retype 2/ll->O)
[ 25920] 0.000435111 (share:core_undivide noop)
[ 26480] 0.000435218 (share:level_fix noop)
[ 34240] 0.000435236 (share:crossover root<->root)
[ 34480] 0.000435344 (share:level_compound_fix noop)
[ 35600] 0.000435397 (share:crossover rr<->rr)
[ 65840] 0.000460088 (share:level_fix noop)
[ 66400] 0.000462499 (share:core_undivide noop)
[ 67200] 0.000462633 (share:level_fix noop)
[ 70160] 0.00195825 (share:retype 1/ll->O)
[ 70400] 6.42152e-05 (share:level_delete (2 storeys))
[ 77040] 6.45477e-05 (share:level_delete (2 storeys))
[ 80960] 6.45918e-05 (share:level_retype 1/rl<->0/rrl)
[ 86320] 6.45969e-05 (share:crossover rrl<->rrl)
[105200] 6.4915e-05 (share:level_delete (2 storeys))
[106400] 6.49234e-05 (share:crossover lrl<->rrr)
[107200] 6.49603e-05 (share:level_delete (2 storeys))
[154720] 0.0022262 (share:retype 1/ll->O)
[160240] 0.00223095 (share:crossover r<->r)
[167520] 0.00223373 (share:crossover lrr<->lrr)
[169280] 0.0022349 (share:core_undivide noop)
[173200] 0.00223525 (share:crossover ll<->ll)
[174160] 0.00223545 (share:crossover lrl<->rrr)
[177760] 0.00223574 (share:core_undivide noop)
[233840] 0.00511709 (share:retype 1/lr->O)
[238560] 0.00578375 (share:core_undivide noop)
[243040] 0.00587257 (share:level_retype 0/rrr<->1/rrr)
[243920] 0.00587423 (share:crossover root<->root)
[500200] 0.00587685 (polish:seed)
written : /home/bruno/src/homemaker-layout/examples/programme-house/coldstart-500000-s0.dom

View file

@ -1,96 +0,0 @@
node:
- - 1.67100188077385
- 11.9169190395339
- - 8.72124918939699
- 13.7119442286569
- - 6.79637028658874
- 21.3797854212389
- - -0.42152047183069
- 19.9368564494913
perimeter:
a: private
b: null
c: null
d: null
rotation: 1
division:
- 0.678520486748628
- 0.678520486748628
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.4857106780525208
- 0.4857106780525208
l:
rotation: 1
division:
- 0.6020205699844519
- 0.6020205699844519
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: l1
rotation: 1
r:
rotation: 1
division:
- 0.30659045622347697
- 0.30659045622347697
l:
type: t3
rotation: 0
r:
type: b2
rotation: 0
above:
rotation: 0
division:
- 0.5096611719837818
- 0.5096611719837818
height: 3.0
l:
rotation: 0
division:
- 0.810439317043183
- 0.810439317043183
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: O
rotation: 0
r:
type: C
rotation: 0
r:
type: b1
rotation: 0
r:
rotation: 0
division:
- 0.15762442509997923
- 0.15762442509997923
l:
type: t2
rotation: 0
r:
rotation: 1
division:
- 0.4162714156244671
- 0.4162714156244671
l:
type: C
rotation: 0
r:
type: t1
rotation: 0

View file

@ -1,122 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/programme-house/init.dom
programme : programme-house
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 1
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/programme-house/coldstart-500000-s1.dom
[ 80 evals] best 4.73547e-07 (fails 11) via construct/0
[ 160 evals] best 9.37107e-07 (fails 9) via construct/1
[ 2720 evals] best 2.72402e-05 (fails 7) via swap 0/ll
[ 2800 evals] best 1.02861e-05 (fails 6) via crossover llr<->llr
[ 3040 evals] best 1.08389e-05 (fails 6) via level_fix noop
[ 3600 evals] best 2.65188e-05 (fails 5) via undivide 0/ll
[ 3920 evals] best 2.68577e-05 (fails 5) via retype 1/rl->b2
[ 6960 evals] best 2.71134e-05 (fails 5) via level_compound_fix noop
[ 8080 evals] best 0.000534598 (fails 3) via swap 0/rr
[ 9520 evals] best 0.000552787 (fails 3) via retype 1/rl->t3
[ 11760 evals] best 0.000562919 (fails 3) via core_undivide noop
[ 18080 evals] best 0.000614306 (fails 3) via place_missing t2 -> ll
[ 18400 evals] best 0.000650367 (fails 3) via level_retype 1/lll<->0/rl
[ 22400 evals] best 0.00094194 (fails 3) via divide 1/rr
[ 23440 evals] best 0.000998712 (fails 3) via crossover llr<->llr
[ 23920 evals] best 0.00117838 (fails 3) via core_undivide noop
[ 24080 evals] best 0.00122788 (fails 3) via core_divide noop
[ 24720 evals] best 0.00123449 (fails 3) via place_missing noop
[ 26560 evals] best 0.00124116 (fails 3) via crossover l<->l
[ 26800 evals] best 0.00125494 (fails 3) via level_compound_fix noop
[ 27200 evals] best 0.000596296 (fails 2) via crossover llr<->rrr
[ 27520 evals] best 0.000664798 (fails 2) via retype 0/llr->C
[ 28160 evals] best 0.000764779 (fails 2) via level_retype 0/rr<->1/lr
[ 28240 evals] best 0.00077279 (fails 2) via core_divide noop
[ 29520 evals] best 0.000806654 (fails 2) via rotate 0/root
[ 29680 evals] best 0.000834624 (fails 2) via level_compound_fix noop
[ 30720 evals] best 0.000844674 (fails 2) via swap 0/r
[ 31120 evals] best 0.000845753 (fails 2) via core_divide noop
[ 32240 evals] best 0.00085792 (fails 2) via undivide 0/ll
[ 32560 evals] best 0.000858981 (fails 2) via place_missing noop
[ 38560 evals] best 0.000859059 (fails 2) via level_compound_fix noop
[176480 evals] best 0.00412056 (fails 1) via divide 1/ll
[178160 evals] best 0.00427693 (fails 1) via level_retype 1/lr<->0/rl
[184640 evals] best 0.00436811 (fails 1) via place_missing noop
[185280 evals] best 0.00439571 (fails 1) via level_fix noop
[185360 evals] best 0.00440821 (fails 1) via level_compound_fix noop
[212320 evals] best 0.00518807 (fails 1) via rotate 0/ll
[212960 evals] best 0.00526235 (fails 1) via crossover r<->r
[213040 evals] best 0.00526441 (fails 1) via place_missing noop
[214080 evals] best 0.00526462 (fails 1) via place_missing noop
[215600 evals] best 0.00526787 (fails 1) via swap 0/r
[217440 evals] best 0.00527131 (fails 1) via swap 0/ll
[279840 evals] best 0.00533313 (fails 1) via crossover lr<->lr
[280720 evals] best 0.00534008 (fails 1) via level_retype 0/rl<->1/lr
--- finishing (homemaker-py-3l6): unfold + polish 250000 evals ---
[finish] unfold: materialised 0 shared-leaf copies
[ 200 evals] best 0.0053408 (fails 1) via seed
--- collapse (homemaker-py-94g): finish-time cell→room relabel ---
[finish] collapse: 5 → 1 fails (applied)
--- done ---
elapsed : 17963.6s
evals : 750040 across 9374 topologies
best : 0.0053408 (1 fails) via seed+collapse
improvement history:
[ 80] 4.73547e-07 (share:construct/0)
[ 160] 9.37107e-07 (share:construct/1)
[ 2720] 2.72402e-05 (share:swap 0/ll)
[ 2800] 1.02861e-05 (share:crossover llr<->llr)
[ 3040] 1.08389e-05 (share:level_fix noop)
[ 3600] 2.65188e-05 (share:undivide 0/ll)
[ 3920] 2.68577e-05 (share:retype 1/rl->b2)
[ 6960] 2.71134e-05 (share:level_compound_fix noop)
[ 8080] 0.000534598 (share:swap 0/rr)
[ 9520] 0.000552787 (share:retype 1/rl->t3)
[ 11760] 0.000562919 (share:core_undivide noop)
[ 18080] 0.000614306 (share:place_missing t2 -> ll)
[ 18400] 0.000650367 (share:level_retype 1/lll<->0/rl)
[ 22400] 0.00094194 (share:divide 1/rr)
[ 23440] 0.000998712 (share:crossover llr<->llr)
[ 23920] 0.00117838 (share:core_undivide noop)
[ 24080] 0.00122788 (share:core_divide noop)
[ 24720] 0.00123449 (share:place_missing noop)
[ 26560] 0.00124116 (share:crossover l<->l)
[ 26800] 0.00125494 (share:level_compound_fix noop)
[ 27200] 0.000596296 (share:crossover llr<->rrr)
[ 27520] 0.000664798 (share:retype 0/llr->C)
[ 28160] 0.000764779 (share:level_retype 0/rr<->1/lr)
[ 28240] 0.00077279 (share:core_divide noop)
[ 29520] 0.000806654 (share:rotate 0/root)
[ 29680] 0.000834624 (share:level_compound_fix noop)
[ 30720] 0.000844674 (share:swap 0/r)
[ 31120] 0.000845753 (share:core_divide noop)
[ 32240] 0.00085792 (share:undivide 0/ll)
[ 32560] 0.000858981 (share:place_missing noop)
[ 38560] 0.000859059 (share:level_compound_fix noop)
[176480] 0.00412056 (share:divide 1/ll)
[178160] 0.00427693 (share:level_retype 1/lr<->0/rl)
[184640] 0.00436811 (share:place_missing noop)
[185280] 0.00439571 (share:level_fix noop)
[185360] 0.00440821 (share:level_compound_fix noop)
[212320] 0.00518807 (share:rotate 0/ll)
[212960] 0.00526235 (share:crossover r<->r)
[213040] 0.00526441 (share:place_missing noop)
[214080] 0.00526462 (share:place_missing noop)
[215600] 0.00526787 (share:swap 0/r)
[217440] 0.00527131 (share:swap 0/ll)
[279840] 0.00533313 (share:crossover lr<->lr)
[280720] 0.00534008 (share:level_retype 0/rl<->1/lr)
[500200] 0.0053408 (polish:seed)
written : /home/bruno/src/homemaker-layout/examples/programme-house/coldstart-500000-s1.dom

View file

@ -1,148 +0,0 @@
node:
- - 1.67100188077385
- 11.9169190395339
- - 8.72124918939699
- 13.7119442286569
- - 6.79637028658874
- 21.3797854212389
- - -0.42152047183069
- 19.9368564494913
perimeter:
a: private
b: null
c: null
d: null
rotation: 1
division:
- 0.5356815548737125
- 0.5356815548737125
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.48744474801155124
- 0.48744474801155124
l:
rotation: 3
division:
- 0.5040666628633002
- 0.5040666628633002
l:
type: C
rotation: 0
r:
type: C
rotation: 0
r:
type: C
rotation: 1
r:
rotation: 1
division:
- 0.5430891656879034
- 0.5430891656879034
l:
rotation: 2
division:
- 0.6357435711673266
- 0.6357435711673266
l:
type: l1
rotation: 0
r:
type: t3
rotation: 0
r:
type: b2
rotation: 0
above:
rotation: 0
division:
- 0.422710624129746
- 0.422710624129746
height: 3.0
l:
rotation: 0
division:
- 0.8171577162760618
- 0.8171577162760618
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: t1
rotation: 0
r:
type: b1
rotation: 0
r:
rotation: 0
division:
- 0.4016497398054913
- 0.4016497398054913
l:
type: O
rotation: 0
r:
type: O
rotation: 0
above:
rotation: 0
division:
- 0.422710624129746
- 0.422710624129746
height: 3.0
l:
rotation: 0
division:
- 0.8171577162760618
- 0.8171577162760618
l:
rotation: 1
division:
- 0.5
- 0.5
l:
type: C
rotation: 0
r:
type: t2
rotation: 0
r:
rotation: 1
division:
- 0.5002825736306157
- 0.5002825736306157
l:
type: O
rotation: 0
r:
type: O
rotation: 0
r:
rotation: 0
division:
- 0.4016497398054913
- 0.4016497398054913
l:
type: O
rotation: 0
r:
rotation: 1
division:
- 0.5020331882778841
- 0.5020331882778841
l:
type: O
rotation: 0
r:
type: O
rotation: 0

View file

@ -1,168 +0,0 @@
seed : /home/bruno/src/homemaker-layout/examples/programme-house/init.dom
programme : programme-house
budget : 500000
pop : 16
child_budget : 80
workers : 1
rng seed : 2
leaf sharing : True (factor=3)
superpose : False
multi_use : False
conn grade : False
use tiers : False
bridge circulation : False
ruin recreate : False
collapse in-search : True
shapecurve warmstart : False
shapecurve prune : False
output : /home/bruno/src/homemaker-layout/examples/programme-house/coldstart-500000-s2.dom
[ 80 evals] best 8.34088e-08 (fails 14) via construct/0
[ 160 evals] best 3.25056e-07 (fails 13) via construct/1
[ 480 evals] best 4.05065e-07 (fails 8) via construct/5
[ 2320 evals] best 4.76094e-07 (fails 8) via core_divide noop
[ 2640 evals] best 4.87216e-07 (fails 8) via core_divide noop
[ 4800 evals] best 5.01285e-07 (fails 8) via swap 0/lr
[ 5040 evals] best 1.05925e-06 (fails 7) via swap 0/ll
[ 5200 evals] best 1.15811e-06 (fails 7) via place_missing noop
[ 6080 evals] best 1.15978e-06 (fails 7) via place_missing noop
[ 6480 evals] best 1.15987e-06 (fails 7) via place_missing noop
[ 6720 evals] best 4.22518e-06 (fails 4) via level_retype 2/rl<->0/lll
[ 7200 evals] best 7.78334e-06 (fails 4) via retype 0/rrr->t2
[ 7360 evals] best 4.89625e-05 (fails 4) via level_retype 0/rl<->1/rr
[ 8400 evals] best 3.13343e-05 (fails 3) via crossover llr<->lll
[ 9120 evals] best 5.70453e-05 (fails 3) via core_undivide noop
[ 11040 evals] best 7.50021e-05 (fails 3) via level_fix noop
[ 11360 evals] best 2.80185e-05 (fails 2) via level_retype 0/llr<->2/lrl
[ 11600 evals] best 3.37736e-05 (fails 2) via retype 1/lr->l1
[ 12480 evals] best 0.000635808 (fails 2) via undivide 2/lr
[ 13760 evals] best 0.0007325 (fails 2) via level_compound_fix noop
[ 14800 evals] best 0.000782161 (fails 2) via crossover rrr<->rrr
[ 15280 evals] best 0.000823097 (fails 2) via level_retype 2/rr<->0/rrl
[ 15760 evals] best 0.000825665 (fails 2) via core_undivide noop
[ 16480 evals] best 0.000826726 (fails 2) via level_fix noop
[ 16800 evals] best 0.00082769 (fails 2) via crossover rl<->rl
[ 16960 evals] best 0.000846272 (fails 2) via swap 0/ll
[ 17040 evals] best 0.000862002 (fails 2) via crossover llr<->llr
[ 19680 evals] best 0.000879214 (fails 2) via level_fix noop
[ 21600 evals] best 0.00127147 (fails 1) via retype 2/rl->O
[ 27280 evals] best 0.00127374 (fails 1) via crossover rrr<->rrr
[ 29200 evals] best 0.00127915 (fails 1) via level_fix noop
[ 38320 evals] best 0.00131908 (fails 1) via undivide 0/lr
[ 39200 evals] best 0.00131972 (fails 1) via level_fix noop
[ 49280 evals] best 0.00133897 (fails 1) via swap 0/ll
[ 68720 evals] best 0.00136878 (fails 1) via rotate 0/rr
[ 68880 evals] best 0.00144686 (fails 1) via undivide 0/lr
[ 71840 evals] best 0.00151517 (fails 1) via level_fix noop
[ 72000 evals] best 0.00153784 (fails 1) via crossover rl<->rl
[ 72960 evals] best 0.00154496 (fails 1) via level_fix noop
[ 80400 evals] best 0.00158092 (fails 1) via divide 2/rr
[ 81040 evals] best 0.00162435 (fails 1) via level_retype 0/llr<->2/lll
[ 84960 evals] best 0.00162755 (fails 1) via core_undivide noop
[ 85440 evals] best 0.00165285 (fails 1) via level_fix noop
[ 94640 evals] best 0.00165285 (fails 1) via undivide 0/lr
[ 95920 evals] best 0.00166211 (fails 1) via swap 2/rr
[103200 evals] best 0.00178978 (fails 1) via level_retype 1/rl<->0/rrl
[103440 evals] best 0.00182512 (fails 1) via level_retype 0/rrr<->1/lr
[103600 evals] best 0.00183656 (fails 1) via crossover rrr<->rrr
[111120 evals] best 0.00184342 (fails 1) via level_fix noop
[119680 evals] best 0.00200171 (fails 1) via rotate 0/ll
[120320 evals] best 0.00201261 (fails 1) via core_undivide noop
[121040 evals] best 0.00201391 (fails 1) via retype 0/rl->t1
[122640 evals] best 0.00203552 (fails 1) via rotate 0/ll
[122880 evals] best 0.00204467 (fails 1) via level_fix noop
[152160 evals] best 0.00216646 (fails 1) via level_fix noop
[154880 evals] best 0.00221636 (fails 1) via level_fix noop
[174080 evals] best 0.00222694 (fails 1) via level_compound_fix noop
[182480 evals] best 0.00222773 (fails 1) via retype 0/rlr->b2
[184160 evals] best 0.00225027 (fails 1) via crossover l<->l
[185120 evals] best 0.00225822 (fails 1) via level_fix noop
[206640 evals] best 0.00225918 (fails 1) via crossover llr<->lll
[208240 evals] best 0.00226116 (fails 1) via crossover r<->r
[211760 evals] best 0.00226381 (fails 1) via level_retype 2/lll<->1/lll
[224560 evals] best 0.00226381 (fails 1) via crossover l<->l
[281520 evals] best 0.00226563 (fails 1) via divide 2/rr
[346400 evals] best 0.00226631 (fails 1) via divide 1/rr
[480000 evals] best 0.00226655 (fails 1) via divide 2/lr
--- finishing (homemaker-py-3l6): unfold + polish 250000 evals ---
[finish] unfold: materialised 0 shared-leaf copies
[ 200 evals] best 0.00226757 (fails 1) via seed
--- collapse (homemaker-py-94g): finish-time cell→room relabel ---
[finish] collapse: 13 → 1 fails (applied)
--- done ---
elapsed : 26218.8s
evals : 750040 across 9374 topologies
best : 0.00226757 (1 fails) via seed+collapse
improvement history:
[ 80] 8.34088e-08 (share:construct/0)
[ 160] 3.25056e-07 (share:construct/1)
[ 480] 4.05065e-07 (share:construct/5)
[ 2320] 4.76094e-07 (share:core_divide noop)
[ 2640] 4.87216e-07 (share:core_divide noop)
[ 4800] 5.01285e-07 (share:swap 0/lr)
[ 5040] 1.05925e-06 (share:swap 0/ll)
[ 5200] 1.15811e-06 (share:place_missing noop)
[ 6080] 1.15978e-06 (share:place_missing noop)
[ 6480] 1.15987e-06 (share:place_missing noop)
[ 6720] 4.22518e-06 (share:level_retype 2/rl<->0/lll)
[ 7200] 7.78334e-06 (share:retype 0/rrr->t2)
[ 7360] 4.89625e-05 (share:level_retype 0/rl<->1/rr)
[ 8400] 3.13343e-05 (share:crossover llr<->lll)
[ 9120] 5.70453e-05 (share:core_undivide noop)
[ 11040] 7.50021e-05 (share:level_fix noop)
[ 11360] 2.80185e-05 (share:level_retype 0/llr<->2/lrl)
[ 11600] 3.37736e-05 (share:retype 1/lr->l1)
[ 12480] 0.000635808 (share:undivide 2/lr)
[ 13760] 0.0007325 (share:level_compound_fix noop)
[ 14800] 0.000782161 (share:crossover rrr<->rrr)
[ 15280] 0.000823097 (share:level_retype 2/rr<->0/rrl)
[ 15760] 0.000825665 (share:core_undivide noop)
[ 16480] 0.000826726 (share:level_fix noop)
[ 16800] 0.00082769 (share:crossover rl<->rl)
[ 16960] 0.000846272 (share:swap 0/ll)
[ 17040] 0.000862002 (share:crossover llr<->llr)
[ 19680] 0.000879214 (share:level_fix noop)
[ 21600] 0.00127147 (share:retype 2/rl->O)
[ 27280] 0.00127374 (share:crossover rrr<->rrr)
[ 29200] 0.00127915 (share:level_fix noop)
[ 38320] 0.00131908 (share:undivide 0/lr)
[ 39200] 0.00131972 (share:level_fix noop)
[ 49280] 0.00133897 (share:swap 0/ll)
[ 68720] 0.00136878 (share:rotate 0/rr)
[ 68880] 0.00144686 (share:undivide 0/lr)
[ 71840] 0.00151517 (share:level_fix noop)
[ 72000] 0.00153784 (share:crossover rl<->rl)
[ 72960] 0.00154496 (share:level_fix noop)
[ 80400] 0.00158092 (share:divide 2/rr)
[ 81040] 0.00162435 (share:level_retype 0/llr<->2/lll)
[ 84960] 0.00162755 (share:core_undivide noop)
[ 85440] 0.00165285 (share:level_fix noop)
[ 94640] 0.00165285 (share:undivide 0/lr)
[ 95920] 0.00166211 (share:swap 2/rr)
[103200] 0.00178978 (share:level_retype 1/rl<->0/rrl)
[103440] 0.00182512 (share:level_retype 0/rrr<->1/lr)
[103600] 0.00183656 (share:crossover rrr<->rrr)
[111120] 0.00184342 (share:level_fix noop)
[119680] 0.00200171 (share:rotate 0/ll)
[120320] 0.00201261 (share:core_undivide noop)
[121040] 0.00201391 (share:retype 0/rl->t1)
[122640] 0.00203552 (share:rotate 0/ll)
[122880] 0.00204467 (share:level_fix noop)
[152160] 0.00216646 (share:level_fix noop)
[154880] 0.00221636 (share:level_fix noop)
[174080] 0.00222694 (share:level_compound_fix noop)
[182480] 0.00222773 (share:retype 0/rlr->b2)
[184160] 0.00225027 (share:crossover l<->l)
[185120] 0.00225822 (share:level_fix noop)
[206640] 0.00225918 (share:crossover llr<->lll)
[208240] 0.00226116 (share:crossover r<->r)
[211760] 0.00226381 (share:level_retype 2/lll<->1/lll)
[224560] 0.00226381 (share:crossover l<->l)
[281520] 0.00226563 (share:divide 2/rr)
[346400] 0.00226631 (share:divide 1/rr)
[480000] 0.00226655 (share:divide 2/lr)
[500200] 0.00226757 (polish:seed)
written : /home/bruno/src/homemaker-layout/examples/programme-house/coldstart-500000-s2.dom

View file

@ -79,28 +79,17 @@ spaces:
# Building constraints
storey_minimum: 2
storey_limit: 5
# homemaker-py-hxi (DESIGN.md §39.25): ENABLED. Fails a level that has no
# outdoor space at all -- Alexander's actual requirement, per level and with no
# quantity attached. It had been off in every corpus config, so the only thing
# expressing outdoor space was ratio_outside's arbitrary fraction.
force_roof_garden: 1
force_roof_garden: 0
# Circulation ratio (penalise excessive corridors)
# homemaker-py-hxi (DESIGN.md §39.24): disabled. The score is value/cost, a
# ratio, so the per-m2 economics (circulation worth 50 against a build cost of
# 200) is ALREADY a proportional pressure against circulation -- this said the
# same thing a second time, and with a curve where twice the corridor is far
# more than twice as bad. Its other side, "a building needs some circulation",
# was worth at most 13% here and is enforced structurally anyway by the access
# and connectivity checks. Set a [target, sigma] pair to re-enable.
ratio_circulation:
- 0.00
- 0.15
# Outside space ratio
# homemaker-py-hxi (DESIGN.md §39.25): disabled. Alexander says every level
# should have accessible outside space; he does not say how much. The
# qualitative requirement is force_roof_garden below. Set a [target, sigma]
# pair to re-enable this quantitative one.
ratio_outside:
- 0.30
- 0.15
# Staircase requirements
staircase_min: 1
@ -110,9 +99,4 @@ staircase_max: 1
value_inside: 300.0
value_circulation: 50.0
value_outside: 100.0
# homemaker-py-ecx (DESIGN.md §39.19): an upper-level terrace is worth what
# outdoor space is worth (value_outside); it is the COST that differs by level
# (outside 10.0 vs outside_supported 110.0), not the value. At 300.0 -- the
# `value_inside` rate -- a terrace was worth more per square metre than a real
# internal room, which the owner ruled out.
value_supported: 100.0
value_supported: 300.0

View file

@ -1,271 +0,0 @@
"""Search A/B for the crinkliness reformulation (`homemaker-py-9gj`).
Two independent changes to `quality_uncrinkliness`, either or both:
crinkliness_tail="ramp" below FAIL_THRESHOLD. The factor evaluates a
gaussian at `x = 1/crink`, whose exponent
grows like 1/crink^2, so the failing tail
spans quality 1e-300..1e-1 -- all of it
numerically zero beside a passing leaf's ~1.
The ramp makes that tail a straight line in
crinkliness. (DESIGN.md §39.13. Measured a
complete null on its own: 12 of 12 pairs
byte-identical.)
crinkliness_shape="daylight" above it. `1/crink` is the room's mean depth
from its daylit wall in storey-heights, and
the stock gaussian is TWO-sided on it, so a
room with more daylight than target is
penalised for it -- while the cost model
already charges that wall via
`exterior_wall`/`boundary_wall`. "daylight"
clips that side to 1.0. (DESIGN.md §39.14.)
**Why stock scoring is valid here** (the §38.9 trap, and the one case the
`9gj` bead flags as exempt): the ramp is continuous at FAIL_THRESHOLD and
strictly below it, so no leaf changes which side of the threshold it is on.
The fail set is byte-identical on every corpus artefact -- asserted in
`tests/test_fitness_crinkliness_tail.py`, not assumed here. An arm therefore
cannot win by deleting a fail category, and both arms are scored under stock.
**Two experiment shapes**, because they answer different questions:
--start plateau (default) seed each run from that programme's
`coldstart-500000-s<k>.dom`. This is the ESCAPE
test the bead asks for: the ramp has signal only
where a search has already built partially-lit
rooms, and the corpus `init.dom` files show a
+0.000% score delta -- there is nothing for it to
grade at the start of a search.
--start init cold start, for comparison.
Pairing is on (starting layout, RNG seed), so `--seeds N` over `--starts M`
gives N*M paired samples per programme.
Usage::
python experiments/ab_9gj_crinkliness.py --budget 8000 --seeds 2 --starts 3
python experiments/ab_9gj_crinkliness.py --start init --budget 8000 --seeds 6
Sharding, because one run is minutes and the job list is 4x that. Each shard
keeps BOTH arms of a pair together, so the two halves of a comparison never
land on differently-loaded processes::
for i in 0 1 2 3; do
python experiments/ab_9gj_crinkliness.py --budget 8000 --seeds 2 --starts 3 \
--shard $i --nshards 4 &
done; wait
python experiments/ab_9gj_crinkliness.py --report
A POWERED run needs more than the in-session pilot could afford. §39.12 puts
harbor's minimum detectable difference at n=3 at 13.7 fails; the plateau-escape
deltas here are single-digit, so budget for n >= 8 pairs per programme
(`--seeds 3 --starts 3` gives 9) and a budget large enough for either arm to
move at all -- the pilot's 8000 evals is 1.6% of what produced the plateau::
for i in $(seq 0 3); do
python experiments/ab_9gj_crinkliness.py --budget 100000 --seeds 3 --starts 3 \
--shard $i --nshards 4 &
done; wait
"""
from __future__ import annotations
import argparse
import collections
import copy
import csv
import time
from pathlib import Path
from homemaker_layout import dom as dom_mod
from homemaker_layout import driver, fitness
CORPUS = ["examples/harbor-house", "examples/maple-court"]
# Each arm names a crinkliness configuration. "stock" must stay first: it is
# the baseline every other arm is paired against, and the yardstick all arms
# are SCORED under.
ARM_CONF = {
"stock": {},
"ramp": {"crinkliness_tail": "ramp"},
"daylight": {"crinkliness_shape": "daylight"},
"daylight+ramp": {"crinkliness_shape": "daylight",
"crinkliness_tail": "ramp"},
# homemaker-py-ecx (§39.18): orthogonal to the crinkliness arms -- it
# changes how the factors are COMBINED, not what any of them says.
"geomean": {"quality_aggregate": "geometric_mean"},
"geomean+daylight": {"quality_aggregate": "geometric_mean",
"crinkliness_shape": "daylight",
"crinkliness_tail": "ramp"},
}
ARMS = ["stock", "daylight", "daylight+ramp"]
def _with_arm(arm: str):
"""Patch `fitness.load_config` so every evaluator built during the run --
the driver's, the inner loop's, the seeder's -- sees the arm's overrides.
`driver.search` has no parameter for them and `driver._fitness_for` is
lru_cached, so the cache is cleared around the patch (see ab_ssz_search).
"""
orig = fitness.load_config
arm_ov = ARM_CONF[arm]
def patched(directory, overrides=None):
ov = dict(overrides or {})
ov.update(arm_ov)
return orig(directory, overrides=ov)
return orig, patched
def tiers(fails) -> tuple[int, int]:
c = collections.Counter(fitness.classify_fail_tier(f) for f in fails)
return c["hard"], c["soft"]
def run_arm(progdir: str, start: Path, seed: int, tail: str, budget: int,
child_budget: int) -> dict:
orig, patched = _with_arm(tail)
fitness.load_config = patched
driver._fitness_for.cache_clear()
t0 = time.perf_counter()
try:
res = driver.search(dom_mod.load(str(start)), progdir, budget=budget,
seed=seed, child_budget=child_budget, n_workers=1)
root = copy.deepcopy(res.best.root)
finally:
fitness.load_config = orig
driver._fitness_for.cache_clear()
conf, cost = orig(progdir, overrides={"leaf_sharing": True,
"collapse_insearch": True})
score, fails = fitness.Fitness(conf, cost).score_with_fails(copy.deepcopy(root))
h, s = tiers(fails)
return dict(programme=Path(progdir).name, start=start.name, seed=seed,
tail=tail, hard=h, soft=s, total=h + s, score=score,
elapsed_s=round(time.perf_counter() - t0, 1))
def starting_points(progdir: str, kind: str, n: int) -> list[Path]:
"""The distinct layouts to start from.
`--starts` applies to plateau mode only: there is exactly one `init.dom`,
and repeating it would give several jobs the same (start, seed) pairing key,
which `_report` would silently collapse to one. In init mode the RNG seed
is the only sampling dimension, so use `--seeds`.
"""
d = Path(progdir)
if kind == "init":
return [d / "init.dom"]
found = sorted(d.glob("coldstart-500000-s*.dom"))[:n]
if not found:
raise SystemExit(f"no coldstart-500000-s*.dom in {d} for --start plateau")
return found
def main() -> None:
ap = argparse.ArgumentParser(description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
ap.add_argument("--budget", type=int, default=8000)
ap.add_argument("--child-budget", type=int, default=80)
ap.add_argument("--seeds", type=int, default=2, help="RNG seeds per start")
ap.add_argument("--starts", type=int, default=3,
help="plateau layouts to start from (plateau mode only)")
ap.add_argument("--start", choices=("plateau", "init"), default="plateau")
ap.add_argument("--corpus", nargs="+", default=CORPUS)
ap.add_argument("--arms", nargs="+", default=ARMS,
choices=sorted(ARM_CONF), help="first arm is the baseline")
ap.add_argument("--out", default="experiments/results/ab_9gj_crinkliness.csv")
ap.add_argument("--shard", type=int, default=0,
help="run only jobs i where i %% nshards == shard")
ap.add_argument("--nshards", type=int, default=1,
help="split the job list across N processes; each writes "
"<out>.shard<i>. Use --report to merge and analyse.")
ap.add_argument("--report", action="store_true",
help="merge <out>.shard* (or <out>) and print the analysis "
"only -- runs nothing")
args = ap.parse_args()
out = Path(args.out)
out.parent.mkdir(parents=True, exist_ok=True)
if args.report:
rows = []
shards = sorted(out.parent.glob(out.name + ".shard*")) or (
[out] if out.exists() else [])
for sh in shards:
with sh.open() as fh:
for r in csv.DictReader(fh):
for k in ("total", "hard", "soft", "seed"):
r[k] = int(r[k])
r["score"] = float(r["score"])
rows.append(r)
if len(shards) > 1:
with out.open("w", newline="") as fh:
w = csv.DictWriter(fh, fieldnames=list(rows[0]))
w.writeheader()
w.writerows(rows)
_report(rows, args.corpus, args.arms)
print(f"\nmerged {len(rows)} runs from {len(shards)} file(s) into {out}")
return
# Build the whole job list first so sharding is deterministic and every
# (start, seed) pair keeps BOTH arms in the same shard -- the comparison is
# paired, and splitting a pair across processes would let machine load
# differ between the two halves of one pair.
jobs = []
for progdir in args.corpus:
for start in starting_points(progdir, args.start, args.starts):
for seed in range(args.seeds):
jobs.append((progdir, start, seed))
rows: list[dict] = []
dest = (out if args.nshards == 1
else out.with_name(out.name + f".shard{args.shard}"))
for i, (progdir, start, seed) in enumerate(jobs):
if i % args.nshards != args.shard:
continue
for tail in args.arms:
r = run_arm(progdir, start, seed, tail, args.budget,
args.child_budget)
rows.append(r)
print(f" {r['programme']:<14} {start.name:<26} seed={seed} "
f"{tail:<9} {r['hard']}h/{r['soft']}s = {r['total']:3d} "
f"score {r['score']:.4g} {r['elapsed_s']}s", flush=True)
with dest.open("w", newline="") as fh:
w = csv.DictWriter(fh, fieldnames=list(rows[0]))
w.writeheader()
w.writerows(rows)
if args.nshards == 1:
_report(rows, args.corpus, args.arms)
print(f"\nwrote {dest}")
def _report(rows, corpus, arms=None) -> None:
"""homemaker-py-tco: state what this N could resolve, beside the result."""
from ab_report import format_report, paired_report
seen = []
for r in rows:
if r["tail"] not in seen:
seen.append(r["tail"])
arms = [a for a in (arms or seen) if a in seen] or seen
base = arms[0]
for progdir in corpus:
name = Path(progdir).name
by: dict[tuple, dict] = {}
for r in rows:
if r["programme"] == name:
by.setdefault((r["start"], r["seed"]), {})[r["tail"]] = r["total"]
for arm in arms[1:]:
keys = sorted(k for k, v in by.items() if base in v and arm in v)
if len(keys) < 2:
continue
print(f"\n--- {name}: {arm} vs {base} (stock-scored total fails) ---")
print(format_report(paired_report(
[by[k][base] for k in keys], [by[k][arm] for k in keys],
base, arm)))
if __name__ == "__main__":
main()

View file

@ -45,7 +45,8 @@ from homemaker_layout import driver, fitness, geometry
from homemaker_layout import graph as graph_mod
from homemaker_layout import operators, programme
MODES = ("urb", "floor", "compact_ok", "exempt_circulation")
MODES = ("urb", "floor", "compact_ok", "exempt_circulation",
"usage_daylight")
def make_fitness(progdir: str, mode: str) -> fitness.Fitness:

View file

@ -1,168 +0,0 @@
"""Paired A/B reporting that states what the sample could actually resolve.
Motivation (`homemaker-py-tco`). Two findings in DESIGN.md §38.19 and §38.21 say
this project's A/B protocols are routinely underpowered for the margins they
report:
* programme-house needed N=60 to resolve an effect its own protocol claimed at
N=20 -- at N=20 the current answer is p ~= 0.069, a null;
* harbor's paired sd is ~6.2 fails, so n=3 resolves nothing finer than ~15
fails. Every recorded harbor margin is below that, and 25% of 3-seed subsets
show a clean 3/3 sweep by chance.
Both were only discovered years later. The cheap prevention is to print, beside
every verdict, the smallest difference the sample could have detected -- so an
underpowered result is visible AT THE POINT IT IS MADE.
minimum detectable difference (MDD) = t_crit(0.975, N-1) * sd / sqrt(N)
A margin below the MDD is not a weak result, it is an ABSENT one: the experiment
could not have distinguished it from zero however it came out. `paired_report`
flags exactly that, and reports the N that would be needed instead.
Usage as a library::
from ab_report import paired_report, format_report
print(format_report(paired_report(off_list, on_list, "OFF", "ON")))
Usage as a CLI over a results TSV with `tag seed arm value [...]` rows::
python experiments/ab_report.py results/0wr_qpk_harbor_n24.tsv off on
"""
from __future__ import annotations
import csv
import math
import statistics
import sys
try: # scipy is a hard dep of the
from scipy import stats as _sps # project, but keep the
except ImportError: # report usable without it
_sps = None
def _t_crit(df: int, alpha: float = 0.05) -> float:
if _sps is not None:
return float(_sps.t.ppf(1 - alpha / 2, df))
return 1.96 if df > 30 else 2.2 # crude, only for a scipy-less fallback
def paired_report(a: list[float], b: list[float],
label_a: str = "A", label_b: str = "B",
alpha: float = 0.05) -> dict:
"""Paired comparison of two arms measured on the same seeds.
``a`` and ``b`` are aligned per seed. Positive ``mean_diff`` means ``b``
scored LOWER than ``a`` -- for fail counts, that is ``b`` winning.
"""
if len(a) != len(b):
raise ValueError(f"unpaired input: {len(a)} vs {len(b)}")
n = len(a)
if n < 2:
raise ValueError("need at least 2 paired observations")
diffs = [x - y for x, y in zip(a, b)]
mean = statistics.mean(diffs)
sd = statistics.stdev(diffs)
se = sd / math.sqrt(n)
tc = _t_crit(n - 1, alpha)
mdd = tc * se # smallest |mean| this N could resolve
# Degenerate case: every seed gave the SAME difference, so sd == 0 and the
# MDD collapses to 0. Without this, an all-ties comparison (mean 0, sd 0)
# reports "margin exceeds the MDD" and endorses a zero margin as a verdict,
# which is worse than saying nothing. t/p are nan here too.
degenerate = sd == 0.0
out = {
"n": n, "label_a": label_a, "label_b": label_b,
"mean_a": statistics.mean(a), "mean_b": statistics.mean(b),
"wins_b": sum(1 for d in diffs if d > 0),
"losses_b": sum(1 for d in diffs if d < 0),
"ties": sum(1 for d in diffs if d == 0),
"mean_diff": mean, "sd": sd, "se": se,
"ci": (mean - tc * se, mean + tc * se),
"mdd": mdd,
"degenerate": degenerate,
"identical": degenerate and mean == 0.0,
"underpowered": (not degenerate) and abs(mean) < mdd,
"t": None, "p": None, "wilcoxon_p": None, "n_needed": None,
}
if _sps is not None and not degenerate:
t, p = _sps.ttest_rel(a, b)
out["t"], out["p"] = float(t), float(p)
if any(d != 0 for d in diffs):
try:
out["wilcoxon_p"] = float(_sps.wilcoxon(a, b).pvalue)
except ValueError:
pass
if mean and not degenerate: # N that would resolve THIS margin
k = n
while k < 100000 and _t_crit(k - 1, alpha) * sd / math.sqrt(k) >= abs(mean):
k += 1
out["n_needed"] = k
return out
def format_report(r: dict, indent: str = " ") -> str:
L = []
A, B = r["label_a"], r["label_b"]
L.append(f"{indent}N={r['n']} {A} mean {r['mean_a']:.2f} {B} mean {r['mean_b']:.2f} "
f"{r['wins_b']}W/{r['losses_b']}L/{r['ties']}T (for {B})")
L.append(f"{indent}mean diff {r['mean_diff']:+.3f} sd {r['sd']:.3f} "
f"95% CI [{r['ci'][0]:+.3f}, {r['ci'][1]:+.3f}]")
if r["p"] is not None:
w = "" if r["wilcoxon_p"] is None else f" wilcoxon p={r['wilcoxon_p']:.4f}"
L.append(f"{indent}t={r['t']:.3f} p={r['p']:.4f}{w}")
if r["identical"]:
L.append(f"{indent}** NO DIFFERENCE: the two arms scored identically on every seed.")
L.append(f"{indent} Nothing to test -- do not report a winner.")
return "\n".join(L)
if r["degenerate"]:
L.append(f"{indent}** Every seed gave the same difference ({r['mean_diff']:+.3f}), "
f"so the variance is zero.")
L.append(f"{indent} Consistent, but a t-test is undefined here; treat N as the "
f"evidence and check the arms are genuinely independent.")
return "\n".join(L)
L.append(f"{indent}minimum detectable difference at N={r['n']}: {r['mdd']:.3f}")
if r["underpowered"]:
need = r["n_needed"]
L.append(f"{indent}** UNDERPOWERED: the observed margin ({abs(r['mean_diff']):.3f}) is "
f"BELOW what N={r['n']} can resolve.")
L.append(f"{indent} This experiment could not distinguish it from zero however it "
f"came out. Do not declare a winner.")
if need:
L.append(f"{indent} N ~= {need} would be needed for a margin this size.")
else:
L.append(f"{indent} margin exceeds the MDD -- the sample can support a verdict.")
return "\n".join(L)
def main() -> int:
if len(sys.argv) < 4:
print(__doc__.strip().splitlines()[-1], file=sys.stderr)
print("usage: ab_report.py <results.tsv> <arm_a> <arm_b> [value_col=3]",
file=sys.stderr)
return 2
path, arm_a, arm_b = sys.argv[1], sys.argv[2], sys.argv[3]
col = int(sys.argv[4]) if len(sys.argv) > 4 else 3
by: dict = {}
with open(path) as fh:
for row in csv.reader(fh, delimiter="\t"):
if len(row) <= col or not row[1].lstrip("-").isdigit():
continue # header / short row
by.setdefault(int(row[1]), {})[row[2]] = float(row[col])
seeds = sorted(s for s, v in by.items() if arm_a in v and arm_b in v)
if len(seeds) < 2:
print(f"only {len(seeds)} paired seed(s) for {arm_a!r}/{arm_b!r}", file=sys.stderr)
return 1
a = [by[s][arm_a] for s in seeds]
b = [by[s][arm_b] for s in seeds]
print(f"{path} {arm_a} vs {arm_b}")
print(format_report(paired_report(a, b, arm_a, arm_b)))
return 0
if __name__ == "__main__":
raise SystemExit(main())

View file

@ -7,7 +7,7 @@ been measured against what `ssz`'s acceptance criteria actually asks for: a
fixed-budget search, hard/soft fail split, on harbor-house and maple-court.
**The scoring discipline is the point of this script.** `compact_ok`,
`exempt_circulation` and `compact_ok` all return 1.0 for leaves that stock
`exempt_circulation` and `usage_daylight` all return 1.0 for leaves that stock
scores below FAIL_THRESHOLD, so scoring an arm under its own objective deletes
a fail category for free and every arm "wins". Two numbers are therefore
reported per arm:
@ -24,7 +24,7 @@ A mode passes on `urb`, not on `own`.
Usage::
python experiments/ab_ssz_search.py --budget 3000 --seeds 3
python experiments/ab_ssz_search.py --modes urb compact_ok --seeds 2
python experiments/ab_ssz_search.py --modes urb usage_daylight --seeds 2
"""
from __future__ import annotations
@ -40,7 +40,7 @@ from homemaker_layout import dom as dom_mod
from homemaker_layout import driver, fitness
CORPUS = ["examples/harbor-house", "examples/maple-court"]
MODES = ["urb", "floor", "compact_ok", "exempt_circulation"]
MODES = ["urb", "floor", "compact_ok", "exempt_circulation", "usage_daylight"]
def _with_mode(mode: str):
@ -126,26 +126,6 @@ def main() -> None:
w.writeheader()
w.writerows(rows)
# homemaker-py-tco: report what this N could actually resolve, beside the
# result, so an underpowered verdict is visible when it is made. §38.19 and
# §38.21 are both cases where that was only noticed years later.
from ab_report import format_report, paired_report
base = args.modes[0]
for progdir in args.corpus:
name = Path(progdir).name
for mode in args.modes[1:]:
by = {}
for r in rows:
if r["programme"] == name and r["mode"] in (base, mode):
by.setdefault(r["seed"], {})[r["mode"]] = r["urb_hard"] + r["urb_soft"]
seeds = sorted(s for s, v in by.items() if base in v and mode in v)
if len(seeds) < 2:
continue
print(f"\n--- {name}: {mode} vs {base} (stock-scored total fails) ---")
print(format_report(paired_report(
[by[s][base] for s in seeds], [by[s][mode] for s in seeds], base, mode)))
print(f"\n=== stock-objective (urb) fail counts, budget {args.budget} ===")
print(f" {'programme':<14}{'mode':<22}{'hard':<14}{'soft':<14}total")
print(" " + "-" * 70)

View file

@ -0,0 +1,81 @@
#!/usr/bin/env python3
"""Acceptance run for the geometry inner loop (homemaker-py-1p0).
Gate (DESIGN.md §4.5, issue acceptance criteria): reproduce or exceed the
Nelder-Mead diagnostic gains x1.24 / x1.67 / x1.59, no new failures on
2f45907, candidate-002 and c964435, using the batched compass search.
Usage: accept_innerloop.py [budget] [method] (default: 200 oracle evals, cma)
"""
from __future__ import annotations
import shutil
import sys
import tempfile
import time
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, innerloop, oracle # noqa: E402
URB = Path("/home/bruno/src/urb")
EX = URB / "examples" / "programme-house"
# name -> reference x-gain. Current bars are the occlusion-disabled re-baseline
# (homemaker-py-gp2): the deterministic-seed CMA run at budget 400 under
# URB_NO_OCCLUSION=1 — set that env var to reproduce. (The original §4.5
# Nelder-Mead bars, flag-off, were 1.24 / 1.67 / 1.59; the inner loop met them
# within noise, homemaker-py-1p0.)
GATE = {
"2f45907abd9accac2a124d311732f749.dom": 1.63,
"candidate-002.dom": 1.70,
"c964435454c459f86c3ed9a5a7621132.dom": 1.68,
}
# Bars are single optimiser draws and per-run variance brackets them
# (candidate-002 drew 0.0117-0.0160 against a 0.0123 flag-off bar).
# Reproduction within 1% counts as met — decision approved 2026-06-12
# (homemaker-py-1p0); chasing the last fraction with seed rolls would be
# cherry-picking.
NOISE_TOL = 0.99
def main() -> int:
budget = int(sys.argv[1]) if len(sys.argv) > 1 else 200
method = sys.argv[2] if len(sys.argv) > 2 else "cma"
print(f"method={method} budget={budget}")
all_ok = True
with tempfile.TemporaryDirectory(prefix="accept_innerloop_") as tmp:
scratch = Path(tmp)
shutil.copy(EX / "patterns.config", scratch)
for name, bar in GATE.items():
# Baseline = the UNMODIFIED original file, exactly as §4.5 measured
# it. The inner loop's own x0 score is the equal-offset *projection*
# of the original (a==b forced, clipped), which is lower for legacy
# designs with unequal cuts — gains must not be measured from there.
s_orig = oracle.score(shutil.copy(EX / name, scratch), URB)
root = dom.load(str(EX / name))
t0 = time.perf_counter()
r = innerloop.optimise(root, EX, budget=budget, method=method, urb_root=URB)
dt = time.perf_counter() - t0
gain = r.fitness / s_orig.fitness if s_orig.fitness else float("inf")
ok = gain >= bar * NOISE_TOL and r.n_fails <= s_orig.n_fails
all_ok &= ok
print(
f"{name:42s} dof={len(r.x):2d} "
f"orig={s_orig.fitness:.6g}(fails {s_orig.n_fails}) "
f"projected x0={r.x0_fitness:.6g}(fails {r.x0_n_fails}) "
f"opt={r.fitness:.6g}(fails {r.n_fails}) "
f"x{gain:.2f} (bar x{bar:.2f}) "
f"{r.n_evals} evals / {r.n_oracle_calls} oracle calls / {dt:.0f}s "
f"{'PASS' if ok else 'FAIL'}",
flush=True,
)
print("\nGATE " + ("PASSED" if all_ok else "FAILED"))
return 0 if all_ok else 1
if __name__ == "__main__":
sys.exit(main())

View file

@ -1,20 +1,17 @@
"""Are the crinkliness failures the objective emits real defects? (`homemaker-py-ssz`)
Not an A/B. This asks a correctness question the search cannot answer: of the
`crinkliness` failures the GLOBAL-target objective reports -- one daylight
requirement for every space, which is what the engine did before §38.10 -- how
many are on a space that does not want daylight at all?
`crinkliness` failures the STOCK objective reports, how many are on a space
that architecturally wants daylight at all?
A `crinkliness` fail says "this leaf has too little exposed wall for its area".
For anything occupied day to day that is a real defect. For a cupboard, a store
or a plant room it is not.
For a bedroom or a living room that is a real defect. For a broom cupboard, a
WC, a plant room, an internal corridor or a covered courtyard it is not -- those
are ordinary buried architecture, and the fail is an artefact of applying one
daylight requirement to every space regardless of use (DESIGN.md §38.8).
**The classification is read from the corpus, not guessed here.** A fail counts
as a non-defect exactly when that space declares `crinkliness: none` in its own
`patterns.config`. An earlier version of this script inferred it from `usage:`
instead and got a much larger, wrong answer -- it exempted corridors, WCs,
laundries and reception, none of which the owner exempts (DESIGN.md §38.11).
Corridors, courtyards and every occupied room want daylight.
Every fail is classified by the leaf's DECLARED `usage:` (§39.7), so nothing
here rests on how a code is spelled.
Usage::
@ -39,12 +36,6 @@ from homemaker_layout import operators, programme
CORPUS = ["examples/harbor-house", "examples/maple-court", "examples/health-centre"]
# Ruled by the project owner: only rooms that are not occupied from day to day
# -- a cupboard, a store, a plant room -- do without daylight. Corridors need
# it. So does everything else: WCs, laundries, reception, waiting rooms,
# offices, consulting rooms. Which spaces those are is read from the configs
# themselves (a declared `crinkliness: none`), never inferred here.
def stock_fitness(progdir: str) -> fitness.Fitness:
"""Stock objective -- `crinkliness_mode` left at its "urb" default."""
@ -66,12 +57,7 @@ def constructed(progdir: str, s: int) -> dom_mod.Node:
def audit(fit: fitness.Fitness, root: dom_mod.Node) -> collections.Counter:
"""label -> count over the leaves that fail under ONE GLOBAL daylight target.
Each is labelled with the leaf's usage, and marked exempt when that space
declares `crinkliness: none` -- i.e. when the failure the old objective
emitted was not a defect.
"""
"""usage -> count, over the leaves that emit a stock `crinkliness` fail."""
tree = copy.deepcopy(root)
geometry.clear_cache()
dom_mod.canonicalize_shares(tree)
@ -86,33 +72,23 @@ def audit(fit: fitness.Fitness, root: dom_mod.Node) -> collections.Counter:
for leaf in lvl.leaves():
if dom_mod.is_outside(leaf) and not dom_mod.is_covered(leaf):
continue
# the PRE-§38.10 objective: one global target for every leaf
crink = fit.crinkliness(leaf, graphs[li], groups)
if crink:
distance, sigma = fit.conf("uncrinkliness")
q = fitness.gaussian(1 / crink, 1.0, distance, sigma)
else:
q = 0.0
if q >= fitness.FAIL_THRESHOLD:
continue # not a failure even then
label = fit.usage_of(leaf) or f"<generic {leaf.type}>"
if fit.crinkliness_params(leaf) is None:
label += " [declares crinkliness: none]"
out[label] += 1
if fit.quality_uncrinkliness(leaf, graphs[li], groups) >= fitness.FAIL_THRESHOLD:
continue # not a failure
out[fit.usage_of(leaf) or f"<generic {leaf.type}>"] += 1
return out
def report(label: str, tally: collections.Counter) -> tuple[int, int]:
total = sum(tally.values())
real = sum(n for u, n in tally.items() if "crinkliness: none" not in u)
real = sum(n for u, n in tally.items() if u in programme.DAYLIGHT_USAGES)
print(f"=== {label}: {total} crinkliness fails")
if not total:
print(" none\n")
return 0, 0
for usage, n in tally.most_common():
verdict = ("not a defect -- not occupied day to day"
if "crinkliness: none" in usage else "REAL DEFECT")
print(f" {usage:<44}{n:>4} {verdict}")
verdict = ("REAL DEFECT" if usage in programme.DAYLIGHT_USAGES
else "not a defect -- no daylight wanted")
print(f" {usage:<18}{n:>4} {verdict}")
print(f" -> {total - real}/{total} ({100 * (total - real) / total:.0f}%) "
f"are reported against spaces that do not want daylight\n")
return real, total

View file

@ -23,17 +23,6 @@ demanding a corner; a rectangular storey has only four corners, so a programme
wanting more corner rooms than the plot has corners is over-subscribed before
the search starts.
**Two different questions, and §39.1 answered only the weaker one**
(`homemaker-py-u5q`, DESIGN.md §39.15). Sweeping the whole tolerance box asks
"is SOME shape in this spec's box feasible?" and every corpus spec passes it.
But a tolerance is not a design intent: the author declared a target area and a
target aspect, and those are the room they asked for. Asking "is the room AS
DECLARED feasible?" is a different question, and six corpus specs fail it —
all on daylight, all of them the big rooms. `at-target` below is that column.
A spec can be "feasible" only at the bottom of its area tolerance and the top
of its aspect tolerance, which means the search can satisfy it only by building
something the author did not ask for.
Usage::
python experiments/audit_programme_config.py
@ -107,52 +96,9 @@ def audit_code(fit: fitness.Fitness, code: str, height: float,
if bool((swp & crink_ok).any()):
result["needs"] = name
break
# ...and the sharper question: the room AS DECLARED, not merely some room
# inside its tolerances. Target area at target aspect is what the author
# asked for; a spec feasible only at the edge of its box is one the search
# can satisfy only by building something else. (u5q, §39.15)
result.update(_audit_at_target(fit, code, height, hi, lo))
return result
def _audit_at_target(fit: fitness.Fitness, code: str, height: float,
hi: float, lo: float) -> dict:
"""Score the declared target area at the declared target aspect."""
sp = fit.spaces.get(code)
if sp is None:
return {"at_target": None, "at_target_needs": None}
size = fit.get_space_params(code, "size")
prop = fit.get_space_params(code, "proportion")
wid = fit.get_space_params(code, "width")
area, ratio = size[0], prop[0]
if not (area > 0 and ratio >= 1):
return {"at_target": None, "at_target_needs": None}
long_side, short_side = math.sqrt(area * ratio), math.sqrt(area / ratio)
bad = []
if fitness.gaussian(area, 1.0, size[0], size[1]) < fitness.FAIL_THRESHOLD:
bad.append("size")
if fitness._clipped_gaussian(short_side, wid[0], wid[1],
"above") < fitness.FAIL_THRESHOLD:
bad.append("width")
if fitness._clipped_gaussian(ratio, prop[0], prop[1],
"below") < fitness.FAIL_THRESHOLD:
bad.append("proportion")
needs = None
declares_light = "crinkliness" not in sp or sp.get("crinkliness") is not None
if declares_light:
for name, length_of in EXPOSURE:
L = length_of(long_side, short_side)
if area / (hi * height) <= L <= area / (lo * height):
needs = name
break
if needs is None:
bad.append("crinkliness")
return {"at_target": bad, "at_target_needs": needs}
# The SEMANTIC (usage) prefixes. Unlike the generic types these classify
# PROGRAMME CODES by first letter, and they are still prefix-based by design —
# it is how Urb encodes room usage. graph.has_circulation strips edges based on
@ -239,11 +185,6 @@ def audit_namespace(progdir: str) -> int:
return skipped
def _multi_aspect(pattern: str) -> bool:
"""True if this exposure pattern needs more than one wall to the outside."""
return any(k in pattern for k in ("corner", "opposite", "3 sides", "4 sides"))
def audit(progdir: str, verbose: bool) -> tuple[int, int]:
reqs = programme.load_programme_dir(progdir)
conf, cost = fitness.load_config(progdir)
@ -252,25 +193,14 @@ def audit(progdir: str, verbose: bool) -> tuple[int, int]:
height = seed.get("height") or 3.0
print(f"=== {Path(progdir).name} (height {height} m)")
hdr = (f" {'code':<7}{'count':<7}{'area ok':<18}{'min width':<11}"
f"{'max aspect':<12}{'needs (anywhere in box)':<26}at declared target")
hdr = f" {'code':<7}{'count':<7}{'area ok':<18}{'min width':<11}{'max aspect':<12}needs"
print(hdr)
print(" " + "-" * (len(hdr) - 2))
impossible = corner_demand = as_declared = as_declared_corner = 0
impossible = corner_demand = 0
for code in sorted(reqs) + ["C", "O"]:
count = reqs[code].count if code in reqs else 0
r = audit_code(fit, code, height)
at = r.get("at_target")
if at:
as_declared += max(count, 1)
target_col = "FAILS " + ",".join(at)
elif at is None:
target_col = "-"
else:
target_col = (r.get("at_target_needs") or "ok")
if _multi_aspect(target_col):
as_declared_corner += max(count, 1)
if not r["swp"]:
verdict = "IMPOSSIBLE (size/width/proportion contradict)"
impossible += max(count, 1)
@ -279,39 +209,19 @@ def audit(progdir: str, verbose: bool) -> tuple[int, int]:
impossible += max(count, 1)
else:
verdict = r["needs"]
if _multi_aspect(verdict):
if "corner" in verdict or "opposite" in verdict or "3 sides" in verdict \
or "4 sides" in verdict:
corner_demand += max(count, 1)
area_col = "%.1f-%.1f m2" % (r["amin"], r["amax"])
width_col = "%.2f m" % r["wmin"]
aspect_col = "%.2f" % r["rmax"]
count_col = str(count) if count else "-"
print(f" {code:<7}{count_col:<7}{area_col:<18}"
f"{width_col:<11}{aspect_col:<12}{verdict:<26}{target_col}")
f"{width_col:<11}{aspect_col:<12}{verdict}")
print(f"\n room instances that are impossible as specified : {impossible}")
print(f" room instances requiring >=2 exposed sides : {corner_demand}"
f" (a rectangular storey has 4 corners)")
print(f" room instances that FAIL AS DECLARED : {as_declared}"
f" (target area at target aspect)")
print(f" room instances needing >=2 sides AS DECLARED : "
f"{as_declared_corner}")
if as_declared_corner:
need = -(-as_declared_corner // 4) # ceil
print(f" ^ a rectangular storey offers 4 corners, so these alone need "
f">= {need} storey(s)\n"
f" and claim {as_declared_corner} of the 4*S corners a "
f"S-storey building has, leaving\n"
f" 4*S - {as_declared_corner} for every other room. They are "
f"satisfiable single-aspect only by\n"
f" shrinking toward the bottom of their area tolerance and "
f"stretching toward the\n"
f" top of their aspect one -- i.e. by building something "
f"other than what was\n"
f" asked for. (The seed init.dom is one storey for every "
f"corpus programme;\n"
f" the search grows the rest, so the corner budget is not "
f"fixed in advance.)")
print()
f" (a rectangular storey has 4 corners)\n")
return impossible, corner_demand

View file

@ -0,0 +1,224 @@
#!/usr/bin/env python3
"""Inner-loop optimiser bake-off at equal oracle budgets (homemaker-py-d0s).
DESIGN.md §7 Phase 1(b), §8.3. DOF is only rooms1 (67 on the corpus), so
the question is fitness gained per oracle evaluation, not asymptotic power.
Candidates:
nm multi-start Nelder-Mead (scipy) the §4.5 diagnostic optimiser.
Inherently sequential: ONE dom per oracle call, so the Perl
startup never amortises (§4.6).
cma multi-phase CMA-ES (innerloop.cma_search), one batched oracle
call per generation.
compass single-start batched compass search with pattern moves + random
augmentation (innerloop.compass_search).
compass-ms multi-start compass: budget split across restarts (x0 first,
then random starts), global best kept.
Protocol: cold start from each file's equal-offset projection (x_current),
one run per (method, file, seed), best-so-far recorded after every oracle
call. Fitness-at-budget-B is read off the trace (evals B), so methods are
compared at exactly equal budgets regardless of batch granularity; checkpoint
budgets bracket the driver's real operating points (child_budget=80 warm,
seed_budget=200 cold). Wall-clock and oracle-invocation counts are recorded
per run.
Runs under URB_NO_OCCLUSION=1 (set by this script the gp2 re-baseline flag;
all benchmarks must use it).
Usage: python3 experiments/bakeoff_innerloop.py [budget] [out.json]
(defaults: budget 200, experiments/bakeoff_innerloop.json)
"""
from __future__ import annotations
import json
import os
import shutil
import sys
import tempfile
import time
from pathlib import Path
import numpy as np
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, innerloop, oracle # noqa: E402
URB = Path("/home/bruno/src/urb")
EX = URB / "examples" / "programme-house"
FILES = (
"2f45907abd9accac2a124d311732f749.dom",
"candidate-002.dom",
"c964435454c459f86c3ed9a5a7621132.dom",
)
SEEDS = (0, 1, 2)
CHECKPOINTS = (40, 80, 120, 200)
class TracingEvaluator(innerloop.OracleEvaluator):
"""Records (cumulative evals, batch-best fitness) after every oracle call."""
def __init__(self, *a, **kw):
super().__init__(*a, **kw)
self.trace: list[tuple[int, float]] = []
def evaluate(self, xs):
scores = super().evaluate(xs)
self.trace.append((self.n_evals, max(s.fitness for s in scores)))
return scores
def best_at(self, budget: int) -> float:
vals = [f for n, f in self.trace if n <= budget]
return max(vals) if vals else float("nan")
class _BudgetExhausted(Exception):
pass
def nm_search(ev, x0, budget=200, seed=0):
"""Multi-start Nelder-Mead: x0 first, random restarts until the budget is
spent. Sequential every evaluation is its own oracle invocation."""
from scipy.optimize import minimize
rng = np.random.default_rng(seed)
n = len(x0)
x = np.clip(np.asarray(x0, dtype=float), innerloop._EPS, 1 - innerloop._EPS)
s = ev.evaluate([x])[0]
best = innerloop.Result(
x=x.copy(), fitness=s.fitness, n_fails=s.n_fails, fail_lines=s.fail_lines,
x0_fitness=s.fitness, x0_n_fails=s.n_fails, n_evals=0, n_oracle_calls=0,
)
def f(xi):
if ev.n_evals >= budget:
raise _BudgetExhausted
sc = ev.evaluate([np.asarray(xi, dtype=float)])[0]
if sc.fitness > best.fitness:
best.x = np.asarray(xi, dtype=float).copy()
best.fitness = sc.fitness
best.n_fails = sc.n_fails
best.fail_lines = sc.fail_lines
return -sc.fitness
start = x.copy()
while ev.n_evals < budget:
try:
minimize(
f, start, method="Nelder-Mead",
bounds=[(innerloop._EPS, 1 - innerloop._EPS)] * n,
options={"maxfev": budget - ev.n_evals, "xatol": 1e-3, "fatol": 1e-10},
)
except _BudgetExhausted:
break
start = rng.uniform(0.1, 0.9, n) # restart
best.n_evals = ev.n_evals
best.n_oracle_calls = ev.n_oracle_calls
return best
def compass_ms_search(ev, x0, budget=200, seed=0, n_starts=3):
"""Multi-start compass: budget split evenly; first start is x0, the rest
random. compass_search counts against ev.n_evals, so phase budgets are
cumulative caps."""
rng = np.random.default_rng(seed)
n = len(x0)
best = None
for phase in range(n_starts):
phase_end = ev.n_evals + (budget - ev.n_evals) // (n_starts - phase)
start = np.asarray(x0, dtype=float) if phase == 0 else rng.uniform(0.1, 0.9, n)
r = innerloop.compass_search(ev, start, budget=phase_end, seed=seed + phase)
if best is None or r.fitness > best.fitness:
keep_x0 = best.x0_fitness if best is not None else r.x0_fitness
keep_x0f = best.x0_n_fails if best is not None else r.x0_n_fails
best = r
best.x0_fitness, best.x0_n_fails = keep_x0, keep_x0f
if ev.n_evals >= budget:
break
best.n_evals = ev.n_evals
best.n_oracle_calls = ev.n_oracle_calls
return best
METHODS = {
"nm": nm_search,
"cma": innerloop.cma_search,
"compass": innerloop.compass_search,
"compass-ms": compass_ms_search,
}
def main() -> int:
budget = int(sys.argv[1]) if len(sys.argv) > 1 else 200
out_path = Path(sys.argv[2]) if len(sys.argv) > 2 else (
Path(__file__).parent / "bakeoff_innerloop.json")
os.environ["URB_NO_OCCLUSION"] = "1"
checkpoints = [c for c in CHECKPOINTS if c <= budget] or [budget]
if checkpoints[-1] != budget:
checkpoints.append(budget)
# Baselines: the UNMODIFIED originals (gains measured from there, not from
# the equal-offset projection — accept_innerloop.py convention).
orig: dict[str, oracle.Score] = {}
with tempfile.TemporaryDirectory(prefix="bakeoff_orig_") as tmp:
shutil.copy(EX / "patterns.config", tmp)
for name in FILES:
orig[name] = oracle.score(shutil.copy(EX / name, tmp), URB)
runs = []
for name in FILES:
for method in METHODS:
for seed in SEEDS:
root = dom.load(str(EX / name))
with TracingEvaluator(root, EX, URB) as ev:
x0 = ev.x_current
t0 = time.perf_counter()
r = METHODS[method](ev, x0, budget=budget, seed=seed)
dt = time.perf_counter() - t0
run = {
"file": name, "method": method, "seed": seed,
"dof": len(x0),
"orig_fitness": orig[name].fitness,
"orig_n_fails": orig[name].n_fails,
"x0_fitness": r.x0_fitness, "x0_n_fails": r.x0_n_fails,
"best_at": {str(c): ev.best_at(c) for c in checkpoints},
"final_fitness": r.fitness, "final_n_fails": r.n_fails,
"n_evals": ev.n_evals, "n_oracle_calls": ev.n_oracle_calls,
"wall_s": dt,
}
runs.append(run)
gains = " ".join(
f"@{c}:x{run['best_at'][str(c)] / orig[name].fitness:.2f}"
for c in checkpoints)
print(
f"{name[:12]:12s} {method:10s} seed={seed} {gains} "
f"fails {orig[name].n_fails}->{r.n_fails} "
f"{ev.n_evals}ev/{ev.n_oracle_calls}calls {dt:.0f}s",
flush=True,
)
out_path.write_text(json.dumps(
{"budget": budget, "checkpoints": checkpoints, "runs": runs}, indent=1))
print(f"\nwrote {out_path}")
# Summary: mean gain over original at each checkpoint, mean s/eval.
print(f"\n{'method':10s} " + "".join(f"{'x@' + str(c):>8s}" for c in checkpoints)
+ f"{'s/eval':>8s}{'calls':>7s}{'fails+':>7s}")
for method in METHODS:
rs = [r for r in runs if r["method"] == method]
cols = ""
for c in checkpoints:
g = np.mean([r["best_at"][str(c)] / r["orig_fitness"] for r in rs])
cols += f"{g:8.2f}"
spe = np.mean([r["wall_s"] / r["n_evals"] for r in rs])
calls = np.mean([r["n_oracle_calls"] for r in rs])
newf = sum(r["final_n_fails"] > r["orig_n_fails"] for r in rs)
print(f"{method:10s} {cols}{spe:8.2f}{calls:7.0f}{newf:7d}")
return 0
if __name__ == "__main__":
sys.exit(main())

View file

@ -0,0 +1,207 @@
#!/usr/bin/env python3
"""Inner-loop optimiser bake-off with native fitness (homemaker-py-d6d).
Re-runs the Phase 1 oracle bakeoff (bakeoff_innerloop.py / homemaker-py-d0s)
using the native Python fitness evaluator instead of the Perl oracle. The
oracle's 1 s/eval startup cost previously penalised sequential methods (NM);
with native fitness at ~70 evals/s that constraint is gone.
Candidates: nm, cma, compass, compass-ms (same as Phase 1).
Protocol: cold start from each file's equal-offset projection, one run per
(method, file, seed), best-so-far traced after every eval. Gains measured
relative to native baseline (native score of the unmodified original).
Usage: python3 experiments/bakeoff_native.py [budget] [out.json]
(defaults: budget 200, experiments/bakeoff_native.json)
"""
from __future__ import annotations
import json
import os
import sys
import time
from pathlib import Path
import numpy as np
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, fitness as fit_mod, innerloop, solver # noqa: E402
EX = Path("/home/bruno/src/urb/examples/programme-house")
FILES = (
"2f45907abd9accac2a124d311732f749.dom",
"candidate-002.dom",
"c964435454c459f86c3ed9a5a7621132.dom",
)
SEEDS = (0, 1, 2)
CHECKPOINTS = (40, 80, 120, 200)
class NativeTracingEvaluator(innerloop.NativeEvaluator):
"""NativeEvaluator that records (cumulative evals, batch-best fitness)."""
def __init__(self, *a, **kw):
super().__init__(*a, **kw)
self.trace: list[tuple[int, float]] = []
def evaluate(self, xs):
scores = super().evaluate(xs)
self.trace.append((self.n_evals, max(s.fitness for s in scores)))
return scores
def best_at(self, budget: int) -> float:
vals = [f for n, f in self.trace if n <= budget]
return max(vals) if vals else float("nan")
class _BudgetExhausted(Exception):
pass
def nm_search(ev, x0, budget=200, seed=0):
"""Multi-start Nelder-Mead: x0 first, random restarts until budget spent."""
from scipy.optimize import minimize
rng = np.random.default_rng(seed)
n = len(x0)
x = np.clip(np.asarray(x0, dtype=float), innerloop._EPS, 1 - innerloop._EPS)
s = ev.evaluate([x])[0]
best = innerloop.Result(
x=x.copy(), fitness=s.fitness, n_fails=s.n_fails, fail_lines=s.fail_lines,
x0_fitness=s.fitness, x0_n_fails=s.n_fails, n_evals=0, n_oracle_calls=0,
)
def f(xi):
if ev.n_evals >= budget:
raise _BudgetExhausted
sc = ev.evaluate([np.asarray(xi, dtype=float)])[0]
if sc.fitness > best.fitness:
best.x = np.asarray(xi, dtype=float).copy()
best.fitness = sc.fitness
best.n_fails = sc.n_fails
best.fail_lines = sc.fail_lines
return -sc.fitness
start = x.copy()
while ev.n_evals < budget:
try:
minimize(
f, start, method="Nelder-Mead",
bounds=[(innerloop._EPS, 1 - innerloop._EPS)] * n,
options={"maxfev": budget - ev.n_evals, "xatol": 1e-3, "fatol": 1e-10},
)
except _BudgetExhausted:
break
start = rng.uniform(0.1, 0.9, n)
best.n_evals = ev.n_evals
best.n_oracle_calls = ev.n_oracle_calls
return best
def compass_ms_search(ev, x0, budget=200, seed=0, n_starts=3):
"""Multi-start compass: budget split evenly; first start is x0."""
rng = np.random.default_rng(seed)
n = len(x0)
best = None
for phase in range(n_starts):
phase_end = ev.n_evals + (budget - ev.n_evals) // (n_starts - phase)
start = np.asarray(x0, dtype=float) if phase == 0 else rng.uniform(0.1, 0.9, n)
r = innerloop.compass_search(ev, start, budget=phase_end, seed=seed + phase)
if best is None or r.fitness > best.fitness:
keep_x0 = best.x0_fitness if best is not None else r.x0_fitness
keep_x0f = best.x0_n_fails if best is not None else r.x0_n_fails
best = r
best.x0_fitness, best.x0_n_fails = keep_x0, keep_x0f
if ev.n_evals >= budget:
break
best.n_evals = ev.n_evals
best.n_oracle_calls = ev.n_oracle_calls
return best
METHODS = {
"nm": nm_search,
"cma": innerloop.cma_search,
"compass": innerloop.compass_search,
"compass-ms": compass_ms_search,
}
def native_baseline(path: Path) -> innerloop._NativeScore:
"""Native fitness of the unmodified file."""
root = dom.load(str(path))
conf, cost = fit_mod.load_config(EX)
fit = fit_mod.Fitness(conf, cost)
score, fails = fit.score_with_fails(root)
return innerloop._NativeScore(fitness=score, fail_lines=tuple(fails))
def main() -> int:
budget = int(sys.argv[1]) if len(sys.argv) > 1 else 200
out_path = Path(sys.argv[2]) if len(sys.argv) > 2 else (
Path(__file__).parent / "bakeoff_native.json")
os.environ["URB_NO_OCCLUSION"] = "1"
checkpoints = [c for c in CHECKPOINTS if c <= budget] or [budget]
if checkpoints[-1] != budget:
checkpoints.append(budget)
orig: dict[str, innerloop._NativeScore] = {}
for name in FILES:
orig[name] = native_baseline(EX / name)
runs = []
for name in FILES:
for method in METHODS:
for seed in SEEDS:
root = dom.load(str(EX / name))
ev = NativeTracingEvaluator(root, EX)
x0 = ev.x_current
t0 = time.perf_counter()
r = METHODS[method](ev, x0, budget=budget, seed=seed)
dt = time.perf_counter() - t0
run = {
"file": name, "method": method, "seed": seed,
"dof": len(x0),
"orig_fitness": orig[name].fitness,
"orig_n_fails": orig[name].n_fails,
"x0_fitness": r.x0_fitness, "x0_n_fails": r.x0_n_fails,
"best_at": {str(c): ev.best_at(c) for c in checkpoints},
"final_fitness": r.fitness, "final_n_fails": r.n_fails,
"n_evals": ev.n_evals, "n_oracle_calls": ev.n_oracle_calls,
"wall_s": dt,
}
runs.append(run)
gains = " ".join(
f"@{c}:x{run['best_at'][str(c)] / orig[name].fitness:.2f}"
for c in checkpoints)
print(
f"{name[:12]:12s} {method:10s} seed={seed} {gains} "
f"fails {orig[name].n_fails}->{r.n_fails} "
f"{ev.n_evals}ev {dt:.1f}s",
flush=True,
)
out_path.write_text(json.dumps(
{"budget": budget, "checkpoints": checkpoints, "runs": runs}, indent=1))
print(f"\nwrote {out_path}")
print(f"\n{'method':10s} " + "".join(f"{'x@' + str(c):>8s}" for c in checkpoints)
+ f"{'s/eval':>8s}{'fails+':>7s}")
for method in METHODS:
rs = [r for r in runs if r["method"] == method]
cols = ""
for c in checkpoints:
g = np.mean([r["best_at"][str(c)] / r["orig_fitness"] for r in rs])
cols += f"{g:8.3f}"
spe = np.mean([r["wall_s"] / r["n_evals"] for r in rs])
newf = sum(r["final_n_fails"] > r["orig_n_fails"] for r in rs)
print(f"{method:10s} {cols}{spe:8.4f}{newf:7d}")
return 0
if __name__ == "__main__":
sys.exit(main())

View file

@ -0,0 +1,67 @@
#!/usr/bin/env python3
"""Validate and benchmark the batched oracle (homemaker-py-av5).
Copies the 35-file programme-house corpus into a scratch directory, scores
every file via single-file oracle calls and again via one batched invocation,
then checks the per-file fitness and failure sets are identical and reports
measured s/dom for both modes.
"""
from __future__ import annotations
import math
import shutil
import sys
import tempfile
import time
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import oracle # noqa: E402
URB = Path("/home/bruno/src/urb")
CORPUS = URB / "examples" / "programme-house"
def main() -> int:
with tempfile.TemporaryDirectory(prefix="bench_batch_") as tmp:
scratch = Path(tmp)
shutil.copy(CORPUS / "patterns.config", scratch)
doms = sorted(CORPUS.glob("*.dom"))
paths = [shutil.copy(d, scratch) for d in doms]
paths = [Path(p) for p in paths]
print(f"{len(paths)} corpus files -> {scratch}")
t0 = time.perf_counter()
singles = [oracle.score(p, URB) for p in paths]
t_single = time.perf_counter() - t0
t0 = time.perf_counter()
batch = oracle.score_batch(paths, URB)
t_batch = time.perf_counter() - t0
# Urb's score is nondeterministic at the ~1 ULP level (Perl hash-order
# summation), so compare fitness with a tight relative tolerance; any
# real semantic difference (e.g. occlusion handling) would be far larger.
mismatches = 0
for p, s, b in zip(paths, singles, batch):
if not math.isclose(s.fitness, b.fitness, rel_tol=1e-12) or s.fail_lines != b.fail_lines:
mismatches += 1
print(f"MISMATCH {p.name}: single {s.fitness:.12g} ({s.n_fails} fails) "
f"vs batch {b.fitness:.12g} ({b.n_fails} fails)")
print(f" single-only: {sorted(set(s.fail_lines) - set(b.fail_lines))}")
print(f" batch-only: {sorted(set(b.fail_lines) - set(s.fail_lines))}")
n = len(paths)
print(f"\nsingle-file: {t_single:.2f} s total, {t_single / n:.3f} s/dom")
print(f"batched: {t_batch:.2f} s total, {t_batch / n:.3f} s/dom")
print(f"speedup: x{t_single / t_batch:.2f}")
if mismatches:
print(f"\nFAIL: {mismatches}/{n} files differ between single and batch")
return 1
print(f"\nOK: all {n} files identical (fitness to 1e-12 rel, exact failure set) in both modes")
return 0
if __name__ == "__main__":
sys.exit(main())

View file

@ -0,0 +1,133 @@
#!/usr/bin/env python3
"""Phase-2 gate: memetic loop vs urb-evolve at equal oracle-eval budgets
(homemaker-py-way).
Protocol: 3 seed designs x 2000-evaluation runs; the 1000-eval tier is read
from each run's own best-so-far log (no extra oracle time). urb-evolve runs
at two population sizes (its default 128, which only allows ~16 generations
at this budget, and 16, which allows ~130) and gets credit for its better
one. urb-evolve counts evaluations via the MAX_EVALS patch; the memetic
driver accounts natively. Both run under URB_NO_OCCLUSION=1 with the same
patterns.config; every final design is re-scored through urb-fitness.pl as
the common deterministic yardstick.
URB_NO_OCCLUSION=1 python3 experiments/benchmark_vs_urbevolve.py [budget]
"""
from __future__ import annotations
import os
import re
import shutil
import subprocess
import sys
from concurrent.futures import ThreadPoolExecutor
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import oracle # noqa: E402
URB = Path("/home/bruno/src/urb")
EX = URB / "examples" / "programme-house"
HERE = Path(__file__).resolve().parent
WORK = HERE.parent / "scratch" / "benchmark"
SEEDS = ["init.dom", "c964435454c459f86c3ed9a5a7621132.dom",
"2f45907abd9accac2a124d311732f749.dom"]
CHECKPOINT_FRACTION = 0.5
def run_homemaker(seed: str, budget: int, cell: Path) -> dict:
out = cell / "best.dom"
proc = subprocess.run(
[sys.executable, str(HERE / "run_search.py"), str(budget), "0",
str(EX / seed), str(out)],
capture_output=True, text=True, env={**os.environ, "URB_NO_OCCLUSION": "1"},
)
(cell / "run.log").write_text(proc.stdout + proc.stderr)
series = [(int(m[1]), float(m[2])) for m in
re.finditer(r"\[\s*(\d+) evals\] best ([\d.e-]+)", proc.stdout)]
return {"series": series, "best_dom": out, "log_ok": proc.returncode == 0}
def run_urbevolve(seed: str, budget: int, cell: Path, pop: int) -> dict:
shutil.copy(EX / "patterns.config", cell)
shutil.copy(EX / seed, cell)
proc = subprocess.run(
["perl", f"-I{URB}/lib", str(URB / "bin" / "urb-evolve.pl"), seed],
cwd=cell, capture_output=True, text=True,
env={**os.environ, "URB_NO_OCCLUSION": "1", "MAX_EVALS": str(budget),
"MAX_POP": str(pop), "MAX_ITERATIONS": "100000"},
)
(cell / "run.log").write_text(proc.stderr)
series = []
evals = None
for line in proc.stderr.splitlines():
if m := re.search(r"Evals: (\d+)", line):
evals = int(m[1])
elif (m := re.search(r"Fitness: ([\d.e-]+)", line)) and evals is not None:
series.append((evals, float(m[1])))
out_hash = proc.stdout.strip().split()[-1] if proc.stdout.strip() else None
best = cell / f"{out_hash}.dom" if out_hash else None
return {"series": series, "best_dom": best,
"log_ok": proc.returncode == 0 and best is not None and best.exists()}
def best_at(series: list[tuple[int, float]], budget: int) -> float:
vals = [f for e, f in series if e <= budget]
return max(vals) if vals else float("nan")
def main() -> int:
budget = int(sys.argv[1]) if len(sys.argv) > 1 else 2000
checkpoint = int(budget * CHECKPOINT_FRACTION)
if WORK.exists():
shutil.rmtree(WORK)
cells = []
for seed in SEEDS:
cells.append((seed, "memetic", run_homemaker, {}))
cells.append((seed, "urb-evolve p16", run_urbevolve, {"pop": 16}))
cells.append((seed, "urb-evolve p128", run_urbevolve, {"pop": 128}))
def run_cell(args):
seed, label, fn, kw = args
cell = WORK / f"{seed.split('.')[0][:8]}_{label.replace(' ', '_')}"
cell.mkdir(parents=True, exist_ok=True)
print(f"start: {seed} / {label}", flush=True)
res = fn(seed, budget, cell, **kw)
print(f"done: {seed} / {label} ({len(res['series'])} log points)", flush=True)
return (seed, label), res
with ThreadPoolExecutor(max_workers=3) as pool:
results = dict(pool.map(run_cell, cells))
# common yardstick: re-score every final design through urb-fitness.pl
for key, res in results.items():
if res["best_dom"] and Path(res["best_dom"]).exists():
s = oracle.score(res["best_dom"], URB)
res["final"], res["fails"] = s.fitness, s.n_fails
else:
res["final"], res["fails"] = float("nan"), -1
print(f"\n{'seed':10s} {'system':16s} {'best@' + str(checkpoint):>12s} "
f"{'final@' + str(budget):>12s} {'fails':>6s}")
verdicts = []
for seed in SEEDS:
rows = {label: results[(seed, label)] for label in
("memetic", "urb-evolve p16", "urb-evolve p128")}
for label, res in rows.items():
print(f"{seed[:10]:10s} {label:16s} {best_at(res['series'], checkpoint):12.6g} "
f"{res['final']:12.6g} {res['fails']:6d}")
hm = rows["memetic"]["final"]
urb = max(rows["urb-evolve p16"]["final"], rows["urb-evolve p128"]["final"])
verdicts.append(hm > urb)
print(f"{'':10s} -> memetic {'BEATS' if hm > urb else 'LOSES TO'} "
f"urb-evolve ({hm:.6g} vs {urb:.6g})")
print(f"\nGATE: memetic wins {sum(verdicts)}/{len(verdicts)} seeds "
f"-> {'GO' if all(verdicts) else 'REVIEW'}")
return 0
if __name__ == "__main__":
sys.exit(main())

View file

@ -21,6 +21,7 @@ from scipy.optimize import minimize
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, innerloop # noqa: E402
URB = Path("/home/bruno/src/urb")
EX = URB / "examples" / "programme-house"
NAME = "2f45907abd9accac2a124d311732f749.dom"
@ -51,7 +52,7 @@ def main() -> None:
f"({ev.n_evals - n0} evals)", flush=True)
root = dom.load(str(EX / NAME))
r = innerloop.optimise(root, EX, budget=200, method="cma", sigmas=(0.05,))
r = innerloop.optimise(root, EX, budget=200, method="cma", sigmas=(0.05,), urb_root=URB)
print(f"CMA sigma 0.05: {r.fitness:.6g} fails {r.n_fails} ({r.n_evals} evals)")

View file

@ -129,7 +129,7 @@ def _measure(fit, pdir, seed_root, reqs, types, s, balanced, sharing, factor):
after_tree = copy.deepcopy(topo)
with _force_sharing(sharing):
innerloop.optimise(after_tree, str(pdir), x0=None, budget=BUDGET,
method="nm")
method="nm", use_native=True)
_s2, fails2 = fit.score_with_fails(copy.deepcopy(after_tree))
after = {"n_leaves": n_leaves, "total": len(fails2), **_bucket(fails2),
**_maldist(after_tree, fit, reqs)}

View file

@ -105,7 +105,7 @@ def _measure(fit, pdir, seed_root, reqs, types, s, sharing, factor):
after_tree = copy.deepcopy(topo)
with _force_sharing(sharing):
innerloop.optimise(after_tree, str(pdir), x0=None, budget=BUDGET,
method="nm")
method="nm", use_native=True)
_s2, fails2 = fit.score_with_fails(copy.deepcopy(after_tree))
after = {"n_leaves": n_leaves, "total": len(fails2), **_bucket(fails2)}
return before, after

View file

@ -134,7 +134,7 @@ def _run_seed(pdir, fit, reqs, types, seed_root, s):
after_tree = copy.deepcopy(topo)
r = innerloop.optimise(after_tree, str(pdir), x0=None, budget=BUDGET,
method="nm")
method="nm", use_native=True)
after = _measure(after_tree, fit, reqs)
after["n_evals"] = r.n_evals
return before, after, _leaf_ratios(topo, fit, reqs)

View file

@ -0,0 +1,99 @@
#!/usr/bin/perl
# Parity oracle for homemaker-py-gnw: per-leaf quality factors and per-storey
# cost/value from Urb's programme-driven fitness.
#
# Stock urb-fitness.pl cannot emit the per-leaf DEBUG lines: Leaf.pm/Storey.pm
# copy $Urb::Dom::Fitness::DEBUG into a package var at *compile* time, before
# Fitness.pm's own `our $DEBUG = $ENV{DEBUG}` line has run, so the flag is
# permanently false. This wrapper sets those package vars after loading and
# also wraps process_storey to print each storey's cost/value subtotal.
#
# Usage (from the corpus directory, URB_NO_OCCLUSION required):
# cd examples/programme-house
# URB_NO_OCCLUSION=1 perl -I$URB/lib dump_leaf_quality.pl a.dom b.dom ...
#
# Output (stdout):
# === FILE <name>
# ...Leaf.pm debug lines (' quality perpendicular: <f>' x7, then
# 'leaf level: L id: I type: T rate: R area: A width: W proportion: P')
# STOREY <level_id> cost: <c> value: <v>
# INITIAL_COST <c>
# FAIL <message> (one per failure)
# SCORE <fitness>
use strict;
use warnings;
use 5.010;
use Urb::Dom;
use Urb::Dom::Fitness;
use Urb::Dom::Fitness::ProgrammeDriven;
use YAML;
use Carp;
die "URB_NO_OCCLUSION=1 required: native fitness ports simple crinkliness only\n"
unless $ENV{URB_NO_OCCLUSION};
# Re-enable the per-leaf/storey debug gates (see header) and route everything
# to STDOUT so output interleaves deterministically.
$Urb::Dom::Fitness::Leaf::DEBUG = 1;
$Urb::Dom::Fitness::Storey::DEBUG = 1;
$Urb::Dom::Fitness::DEBUG = 1;
{
no warnings 'redefine';
*Urb::Dom::Fitness::debug = sub { print join(' ', @_), "\n"; return 1 };
*Urb::Dom::Fitness::Base::debug = sub {
my @text = @_;
shift @text if ref $text[0]; # method form: drop $self
print join(' ', @text), "\n";
return 1;
};
}
my $orig_process_storey = \&Urb::Dom::Fitness::Storey::process_storey;
{
no warnings 'redefine';
*Urb::Dom::Fitness::Storey::process_storey = sub {
my @args = @_;
my $result = $orig_process_storey->(@args);
printf "STOREY %s cost: %.17g value: %.17g\n",
$args[5], $result->{cost}, $result->{value};
return $result;
};
}
# Config loading exactly as urb-fitness.pl (project-level then local).
my $config = undef;
for my $path ('../patterns.config', 'patterns.config')
{
next unless -e $path;
my $config_temp = YAML::LoadFile ($path);
$config->{$_} = $config_temp->{$_} for keys %{$config_temp};
}
my $costs = undef;
for my $path ('../costs.config', 'costs.config')
{
next unless -e $path;
my $costs_temp = YAML::LoadFile ($path);
$costs->{$_} = $costs_temp->{$_} for keys %{$costs_temp};
}
die "no spaces config: wrapper only supports programme-driven mode\n"
unless $config && exists $config->{spaces};
my $assessor = Urb::Dom::Fitness::ProgrammeDriven->new ($config, $costs);
for my $path_yaml (@ARGV)
{
my @items = YAML::LoadFile ($path_yaml);
next unless scalar @items;
my $dom = Urb::Dom->new;
$dom->Deserialise (@items);
say "=== FILE $path_yaml";
printf "INITIAL_COST %.17g\n", $assessor->Cost ('plot') * $dom->Area;
my $score = $assessor->_apply ($dom);
say "FAIL $_" for ($dom->Failures);
printf "SCORE %.17g\n", $score;
$dom->DESTROY;
}
0;

View file

@ -0,0 +1,56 @@
#!/usr/bin/env python3
"""Genome round-trip fitness parity (homemaker-py-k2g acceptance).
decode(encode(load(f))) canonicalises dead fields (inherited-cut divisions,
below-linked rotations, internal types) that the corpus carries in drifted
form. This scores every original and its round-tripped twin through the
oracle and demands identical fitness (1e-12 rel, Urb's ~1-ULP jitter) and
identical failure sets.
Run under the go-forward fitness: URB_NO_OCCLUSION=1 python3 experiments/genome_parity.py
"""
from __future__ import annotations
import math
import shutil
import sys
import tempfile
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, genome, oracle # noqa: E402
URB = Path("/home/bruno/src/urb")
CORPUS = URB / "examples" / "programme-house"
def main() -> int:
with tempfile.TemporaryDirectory(prefix="genome_parity_") as tmp:
scratch = Path(tmp)
shutil.copy(CORPUS / "patterns.config", scratch)
originals, twins = [], []
for src in sorted(CORPUS.glob("*.dom")):
o = Path(shutil.copy(src, scratch))
t = scratch / ("rt_" + src.name)
dom.dump(genome.decode(genome.encode(dom.load(str(src)))), str(t))
originals.append(o)
twins.append(t)
s_orig = oracle.score_batch(originals, URB)
s_twin = oracle.score_batch(twins, URB)
bad = 0
for o, a, b in zip(originals, s_orig, s_twin):
if not math.isclose(a.fitness, b.fitness, rel_tol=1e-12) or a.fail_lines != b.fail_lines:
bad += 1
print(f"MISMATCH {o.name}: {a.fitness:.17g} ({a.n_fails} fails) vs "
f"{b.fitness:.17g} ({b.n_fails} fails)")
n = len(originals)
print(f"{'FAIL' if bad else 'OK'}: {n - bad}/{n} files fitness-identical "
f"after genome round-trip")
return 1 if bad else 0
if __name__ == "__main__":
sys.exit(main())

183
experiments/leaf_parity.py Normal file
View file

@ -0,0 +1,183 @@
#!/usr/bin/env python3
"""homemaker-py-gnw acceptance: per-leaf quality factors and per-storey
cost/value parity between homemaker.fitness and Urb's programme-driven fitness.
Runs experiments/dump_leaf_quality.pl (URB_NO_OCCLUSION oracle with per-leaf
DEBUG re-enabled) over the corpus, parses its output, and diffs against the
native evaluation: 7 quality factors + rate + area per leaf, cost/value per
storey, initial (plot) cost, and the leaf-scope failure set.
Usage: python3 experiments/leaf_parity.py [corpus_dir]
"""
from __future__ import annotations
import math
import re
import subprocess
import sys
from collections import defaultdict
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, fitness, graph # noqa: E402
URB = Path("/home/bruno/src/urb")
CORPUS = Path(sys.argv[1]) if len(sys.argv) > 1 else URB / "examples" / "programme-house"
WRAPPER = Path(__file__).resolve().parent / "dump_leaf_quality.pl"
REL_TOL = 1e-9
# Failures emitted by the gnw scope (leaf quality + cost functions + the two
# per-leaf structural checks in process_storey). All carry a "level/" prefix —
# requiring it excludes building-level fails like 'no outside public access'
# (homemaker-py-hgg scope), which would otherwise match the ' access' suffix.
_LEAF_FAIL_RE = re.compile(
r"^\d+/.* (perpendicular|proportion|size|width|crinkliness|daylight|access"
r"|edge too long|unsupported covered outside|covered outside above ground)$"
)
_FACTOR_RE = re.compile(r"^ quality (\w+): (\S+)$")
_LEAF_RE = re.compile(
r"^leaf level: (\d+) id: ([lr]*) type: (\S+) rate: (\S+) area: (\S+) "
r"width: (\S+) proportion: (\S+)$"
)
_STOREY_RE = re.compile(r"^STOREY (\d+) cost: (\S+) value: (\S+)$")
def run_oracle(files: list[str]) -> dict[str, dict]:
"""Run the wrapper over all files; return per-file parsed records."""
proc = subprocess.run(
["perl", f"-I{URB}/lib", str(WRAPPER)] + files,
cwd=CORPUS,
env={"URB_NO_OCCLUSION": "1", "PATH": "/usr/bin:/bin"},
capture_output=True,
text=True,
)
if proc.returncode != 0:
sys.exit(f"wrapper failed:\n{proc.stderr}")
out: dict[str, dict] = {}
rec = None
pending: dict[str, float] = {}
for line in proc.stdout.splitlines():
if line.startswith("=== FILE "):
rec = out[line[len("=== FILE "):]] = {
"leaves": {}, "storeys": {}, "fails": [], "initial_cost": None,
"score": None,
}
pending = {}
continue
if rec is None:
continue
m = _FACTOR_RE.match(line)
if m:
pending[m.group(1)] = float(m.group(2))
continue
m = _LEAF_RE.match(line)
if m:
level, lid = int(m.group(1)), m.group(2)
rec["leaves"][(level, lid)] = {
"type": m.group(3),
"rate": float(m.group(4)),
"area": float(m.group(5)),
"factors": pending,
}
pending = {}
continue
m = _STOREY_RE.match(line)
if m:
rec["storeys"][int(m.group(1))] = (float(m.group(2)), float(m.group(3)))
continue
if line.startswith("INITIAL_COST "):
rec["initial_cost"] = float(line.split()[1])
elif line.startswith("FAIL "):
rec["fails"].append(line[len("FAIL "):])
elif line.startswith("SCORE "):
rec["score"] = float(line.split()[1])
return out
def native_eval(path: Path, fit: fitness.Fitness) -> dict:
root = dom.load(str(path))
fails: list[str] = []
fit.preprocess_building(root)
dom.merge_divided(root)
graphs = graph.build_graphs(root)
rec: dict = {"leaves": {}, "storeys": {}, "fails": fails,
"initial_cost": fit.plot_cost(root)}
for li, lvl in enumerate(dom.levels(root)):
se = fit.process_storey(lvl, graphs[li], li, fails.append)
rec["storeys"][li] = (se.cost, se.value)
for le in se.leaves:
rec["leaves"][(le.level, le.id)] = {
"type": le.type, "rate": le.rate, "area": le.area,
"factors": le.factors,
}
return rec
def close(a: float, b: float) -> bool:
return math.isclose(a, b, rel_tol=REL_TOL, abs_tol=1e-12)
def main() -> int:
files = sorted(p.name for p in CORPUS.glob("*.dom"))
conf, cost = fitness.load_config(CORPUS)
fit = fitness.Fitness(conf, cost)
oracle = run_oracle(files)
n_leaves = n_factors = 0
bad: dict[str, list[str]] = defaultdict(list)
for name in files:
o = oracle[name]
n = native_eval(CORPUS / name, fit)
if not close(o["initial_cost"], n["initial_cost"]):
bad[name].append(
f"initial cost {o['initial_cost']} != {n['initial_cost']}")
if set(o["leaves"]) != set(n["leaves"]):
bad[name].append(
f"leaf sets differ: oracle-only {sorted(set(o['leaves']) - set(n['leaves']))}, "
f"native-only {sorted(set(n['leaves']) - set(o['leaves']))}")
for key in sorted(set(o["leaves"]) & set(n["leaves"])):
ol, nl = o["leaves"][key], n["leaves"][key]
n_leaves += 1
for fld in ("rate", "area"):
if not close(ol[fld], nl[fld]):
bad[name].append(f"leaf {key} {fld}: {ol[fld]} != {nl[fld]}")
if ol["type"] != nl["type"]:
bad[name].append(f"leaf {key} type: {ol['type']} != {nl['type']}")
for fac, ov in ol["factors"].items():
n_factors += 1
nv = nl["factors"].get(fac)
if nv is None or not close(ov, nv):
bad[name].append(f"leaf {key} {fac}: {ov} != {nv}")
for li, (oc, ov) in o["storeys"].items():
nc, nv = n["storeys"].get(li, (None, None))
if nc is None or not close(oc, nc):
bad[name].append(f"storey {li} cost: {oc} != {nc}")
if nv is None or not close(ov, nv):
bad[name].append(f"storey {li} value: {ov} != {nv}")
o_fails = sorted(f for f in o["fails"] if _LEAF_FAIL_RE.search(f))
n_fails = sorted(n["fails"])
if o_fails != n_fails:
bad[name].append(
f"leaf fails differ:\n oracle: {o_fails}\n native: {n_fails}")
for name in sorted(bad):
print(f"MISMATCH {name}")
for msg in bad[name]:
print(f" {msg}")
print(f"\n{len(files)} files, {n_leaves} leaves, {n_factors} factors compared; "
f"{len(bad)} files with mismatches")
return 1 if bad else 0
if __name__ == "__main__":
sys.exit(main())

View file

@ -1,83 +0,0 @@
"""Declare `crinkliness:` where a space needs no window (`homemaker-py-ssz`).
One-shot migration for DESIGN.md §38.10. The compact side of the crinkliness
gaussian IS the daylight requirement, so a space that does not need daylight
says so in its own `crinkliness:` target -- there is no separate attribute.
Ruled by the project owner: everything a person occupies wants a window --
WCs and bathrooms included, reception/waiting/foyer included, offices and
consulting rooms included. Only stores, plant, records and laundry
(`usage: utility`) do not. Internal corridors do not either, but those are
generic `C` leaves with no `spaces:` entry, so they are handled by the
`uncrinkliness_circulation` key rather than here.
Edits the file as text, preserving comments and layout. Idempotent: a space
that already declares `crinkliness:` is left alone unless `--force`.
Usage::
python experiments/migrate_crinkliness_key.py --check # dry run
python experiments/migrate_crinkliness_key.py # apply
"""
from __future__ import annotations
import argparse
import re
from pathlib import Path
import yaml
CORPUS = Path(__file__).resolve().parent.parent / "examples"
NO_DAYLIGHT_USAGES = {"utility"}
def migrate(path: Path, check: bool, force: bool) -> tuple[int, int]:
text = path.read_text()
spaces = (yaml.safe_load(text) or {}).get("spaces") or {}
space_key = re.compile(r"^ ([A-Za-z_][\w-]*):\s*$")
written = skipped = 0
out: list[str] = []
for line in text.splitlines(keepends=True):
m = space_key.match(line)
code = m.group(1) if m and m.group(1) in spaces else None
if force and re.match(r"^ crinkliness:\s", line):
continue
out.append(line)
if code is None:
continue
c = spaces[code]
if c.get("usage") not in NO_DAYLIGHT_USAGES:
continue
if "crinkliness" in c and not force:
skipped += 1
else:
out.append(" crinkliness: none # no window needed\n")
written += 1
if not check and written:
path.write_text("".join(out))
return written, skipped
def main() -> int:
ap = argparse.ArgumentParser(description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
ap.add_argument("--check", action="store_true", help="dry run")
ap.add_argument("--force", action="store_true",
help="rewrite a crinkliness: already present")
args = ap.parse_args()
for cfg in sorted(CORPUS.glob("*/patterns.config")):
written, skipped = migrate(cfg, args.check, args.force)
verb = "would declare" if args.check else "declared"
print(f" {cfg.parent.name:<20} {verb} crinkliness:none on {written:>2} "
f"space(s), already present {skipped}")
return 0
if __name__ == "__main__":
raise SystemExit(main())

View file

@ -0,0 +1,103 @@
#!/usr/bin/env python3
"""Operator validity + locality measurement (homemaker-py-nyb acceptance).
For each operator: apply 5 seeded instances per corpus design, score every
child through the oracle (validity = scores without error), and report
locality as (a) mean relative fitness perturbation and (b) mean geometry
perturbation the fraction of leaf rooms whose (type, footprint) changed.
High-locality operators keep both small, so warm-started inner loops stay
cheap (DESIGN.md §5).
Run under the go-forward fitness:
URB_NO_OCCLUSION=1 python3 experiments/operator_locality.py
"""
from __future__ import annotations
import shutil
import sys
import tempfile
from collections import Counter
from pathlib import Path
import numpy as np
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, genome, geometry, operators, oracle, programme # noqa: E402
URB = Path("/home/bruno/src/urb")
CORPUS = URB / "examples" / "programme-house"
FILES = ["2f45907abd9accac2a124d311732f749.dom", "candidate-002.dom",
"c964435454c459f86c3ed9a5a7621132.dom"]
SEEDS = range(5)
def leaf_signature(root: dom.Node) -> Counter:
sig = Counter()
for li, lvl in enumerate(dom.levels(root)):
for leaf in lvl.leaves():
corners = tuple(tuple(round(c, 6) for c in geometry.coordinate(leaf, i))
for i in range(4))
sig[(li, leaf.type, corners)] += 1
return sig
def geometry_perturbation(parent_sig: Counter, child: dom.Node) -> float:
child_sig = leaf_signature(child)
common = sum((parent_sig & child_sig).values())
return 1.0 - common / max(parent_sig.total(), child_sig.total())
def main() -> int:
types = sorted(programme.load_programme(str(CORPUS / "patterns.config"))) + ["C", "O"]
roots = {f: genome.decode(genome.encode(dom.load(str(CORPUS / f)))) for f in FILES}
with tempfile.TemporaryDirectory(prefix="op_locality_") as tmp:
scratch = Path(tmp)
shutil.copy(CORPUS / "patterns.config", scratch)
parents = {}
paths = []
for f, root in roots.items():
p = scratch / f
dom.dump(root, str(p))
paths.append(p)
for f, s in zip(roots, oracle.score_batch(paths, URB)):
parents[f] = s
jobs: list[tuple[str, str, dom.Node]] = [] # (op, desc, child)
for f, root in roots.items():
for name, op in operators.MUTATIONS.items():
for seed in SEEDS:
child, desc = op(root, np.random.default_rng(seed), types)
jobs.append((name, f, child))
for seed in SEEDS:
ca, cb, _ = operators.crossover(roots[FILES[0]], roots[FILES[1]],
np.random.default_rng(seed))
jobs.append(("crossover", FILES[0], ca))
jobs.append(("crossover", FILES[1], cb))
paths = []
for i, (_, _, child) in enumerate(jobs):
p = scratch / f"child_{i:03d}.dom"
dom.dump(child, str(p))
paths.append(p)
scores = oracle.score_batch(paths, URB) # raises if any child is invalid
sigs = {f: leaf_signature(root) for f, root in roots.items()}
stats: dict[str, list[tuple[float, float]]] = {}
for (name, f, child), s in zip(jobs, scores):
df = abs(s.fitness - parents[f].fitness) / parents[f].fitness
dg = geometry_perturbation(sigs[f], child)
stats.setdefault(name, []).append((df, dg))
print(f"{'operator':14s} {'n':>3s} {'mean |dF|/F':>12s} {'mean geom-pert':>15s}")
for name in sorted(stats):
dfs, dgs = zip(*stats[name])
print(f"{name:14s} {len(dfs):3d} {np.mean(dfs):12.3f} {np.mean(dgs):15.3f}")
print(f"\nall {len(jobs)} children scored by the oracle without error")
return 0
if __name__ == "__main__":
sys.exit(main())

View file

@ -0,0 +1,89 @@
"""Full-fitness frozen-topology optimisation.
Drive the equal-offset division ratios with a derivative-free optimiser against
the REAL oracle fitness (the whole objective, not an area proxy) on a fixed
topology. This removes both confounds of the earlier sweeps (partial objective,
proxy target) and answers the only question that matters next:
Is there geometry headroom above the EA's designs, or are they already
geometry-optima (=> the bottleneck is topology + the 0.5^n cliff)?
For each candidate: report fitness/fails before and after.
"""
import sys
from pathlib import Path
import numpy as np
from scipy.optimize import minimize
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, oracle, solver # noqa: E402
URB = Path("/home/bruno/src/urb")
EX = URB / "examples/programme-house"
SCRATCH = Path(__file__).resolve().parents[1] / "scratch"
_EPS = 0.02
CANDIDATES = [
"candidate-002.dom", # ~0.0074 (MCP-refined)
"c964435454c459f86c3ed9a5a7621132.dom", # ~0.0037 (MCP baseline)
]
def optimise(src: Path, maxfev: int = 200):
import shutil
shutil.copy(src, SCRATCH / "orig.dom")
s0 = oracle.score(SCRATCH / "orig.dom", URB)
root = dom.load(str(src))
free = solver.free_branches(root)
x0 = np.array([b.division[0] for b in free], dtype=float)
opt_path = SCRATCH / "opt.dom"
best = {"f": s0.fitness, "fails": s0.n_fails, "x": x0.copy()}
def neg_fitness(x: np.ndarray) -> float:
xc = np.clip(x, _EPS, 1 - _EPS)
for j, b in enumerate(free):
b.division = [float(xc[j]), float(xc[j])]
dom.dump(root, str(opt_path))
try:
s = oracle.score(opt_path, URB)
except Exception: # noqa: BLE001
return 1e9
if s.fitness > best["f"]:
best.update(f=s.fitness, fails=s.n_fails, x=xc.copy())
return -s.fitness
minimize(
neg_fitness, x0, method="Nelder-Mead",
options={"maxfev": maxfev, "xatol": 1e-3, "fatol": 1e-12},
)
return s0, best, len(free)
def main() -> None:
SCRATCH.mkdir(exist_ok=True)
import shutil
shutil.copy(EX / "patterns.config", SCRATCH / "patterns.config")
maxfev = int(sys.argv[1]) if len(sys.argv) > 1 else 200
for name in CANDIDATES:
s0, best, ndof = optimise(EX / name, maxfev)
ratio = best["f"] / s0.fitness if s0.fitness else float("inf")
verdict = "IMPROVED" if best["f"] > s0.fitness * 1.001 else "no gain"
print(
f"{name:42s} dof={ndof:2d} "
f"orig={s0.fitness:.5g}(fails {s0.n_fails}) "
f"opt={best['f']:.5g}(fails {best['fails']}) "
f"x{ratio:.2f} {verdict}",
flush=True,
)
if __name__ == "__main__":
main()

View file

@ -109,12 +109,6 @@ def main() -> int:
conf = dict(conf)
conf["leaf_sharing"] = True
conf["max_share"] = 3
# homemaker-py-4ok: driver.search_staged runs its inner evaluator with
# collapse_insearch=True (its default), and no example patterns.config
# sets the key, so without pinning it here the re-score below silently
# used a DIFFERENT objective than the search it is reporting on -- the
# same MISMATCH class fixed in run_staged_search.py.
conf["collapse_insearch"] = True
return conf, cost
fitness.load_config = _load_with_sharing

View file

@ -0,0 +1,71 @@
#!/usr/bin/env python3
"""Re-baseline the corpus under URB_NO_OCCLUSION=1 (homemaker-py-gp2).
Occlusion/daylight is disabled in Urb behind the URB_NO_OCCLUSION env flag
(daylight -> 1 everywhere, CIEsky illumination factor pinned to 1, i.e.
simple crinkliness). Flipping the flag changes every score, so this script
records the new baseline in one pass:
- per-file flag-on vs flag-off score and failure-set deltas (35 corpus files)
- batched oracle throughput under the flag
Run the inner-loop reference gains separately:
URB_NO_OCCLUSION=1 python3 experiments/accept_innerloop.py 400 cma
"""
from __future__ import annotations
import math
import os
import shutil
import sys
import tempfile
import time
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import oracle # noqa: E402
URB = Path("/home/bruno/src/urb")
CORPUS = URB / "examples" / "programme-house"
def score_corpus(paths: list[Path], flag: bool) -> tuple[list[oracle.Score], float]:
os.environ.pop("URB_NO_OCCLUSION", None)
if flag:
os.environ["URB_NO_OCCLUSION"] = "1"
t0 = time.perf_counter()
scores = oracle.score_batch(paths, URB)
return scores, time.perf_counter() - t0
def main() -> int:
with tempfile.TemporaryDirectory(prefix="rebaseline_") as tmp:
scratch = Path(tmp)
shutil.copy(CORPUS / "patterns.config", scratch)
paths = [Path(shutil.copy(d, scratch)) for d in sorted(CORPUS.glob("*.dom"))]
off, t_off = score_corpus(paths, flag=False)
on, t_on = score_corpus(paths, flag=True)
n_changed_score = n_changed_fails = 0
print(f"{'file':42s} {'flag-off':>12s} {'flag-on':>12s} {'ratio':>7s} fails off->on")
for p, a, b in zip(paths, off, on):
score_changed = not math.isclose(a.fitness, b.fitness, rel_tol=1e-9)
fails_changed = a.fail_lines != b.fail_lines
n_changed_score += score_changed
n_changed_fails += fails_changed
ratio = b.fitness / a.fitness if a.fitness else float("inf")
mark = "*" if fails_changed else " "
print(f"{p.name:42s} {a.fitness:12.6g} {b.fitness:12.6g} {ratio:7.3f} "
f"{a.n_fails}->{b.n_fails}{mark}")
n = len(paths)
print(f"\nscore changed: {n_changed_score}/{n} failure set changed: {n_changed_fails}/{n}")
print(f"batched s/dom: flag-off {t_off / n:.3f}, flag-on {t_on / n:.3f} "
f"(x{t_off / t_on:.2f})")
return 0
if __name__ == "__main__":
sys.exit(main())

View file

@ -0,0 +1,79 @@
"""Population sweep: warm-start refine every evolved candidate and tally results.
For each real .dom in the example dir, score it, run the solver as a geometry
optimiser (warm-start, no strip), and re-score. Reports how often bottom-up
sizing improves vs regresses total fitness, plus aggregate fail-count change.
This is a breadth check on the solver-as-optimiser role; raw fitness is still
confounded by the 0.5^n failure cliff and any topological defects, so the
fail-count and per-candidate detail matter as much as the win/loss tally.
"""
import shutil
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, oracle, programme, solver # noqa: E402
URB = Path("/home/bruno/src/urb")
EX = URB / "examples/programme-house"
def _is_candidate(p: Path) -> bool:
# real designs: 32-hex hashes or candidate-NNN; skip init and our scratch
name = p.stem
return name not in {"init", "original", "roundtrip", "solved", "refined"}
def main() -> None:
scratch = Path(__file__).resolve().parents[1] / "scratch"
scratch.mkdir(exist_ok=True)
shutil.copy(EX / "patterns.config", scratch / "patterns.config")
targets = programme.load_programme(str(EX / "patterns.config"))
doms = sorted(p for p in EX.glob("*.dom") if _is_candidate(p))
win = loss = tie = 0
fails_before = fails_after = 0
rows = []
for src in doms:
try:
shutil.copy(src, scratch / "orig.dom")
s0 = oracle.score(scratch / "orig.dom", URB)
root = dom.load(str(src))
# gentlest refiner: nudge cut POSITIONS for programme-room area only,
# keep evolved cut angles and leave circulation/shape untouched.
solver.solve_ratios(
root, targets, strip=False, perpendicular=False,
weight_width=0.0, weight_proportion=0.0, min_width_generic=0.0,
)
dom.dump(root, str(scratch / "ref.dom"))
s1 = oracle.score(scratch / "ref.dom", URB)
except Exception as e: # noqa: BLE001
rows.append(f" {src.name:40s} ERROR {e}")
continue
fails_before += s0.n_fails
fails_after += s1.n_fails
if s1.fitness > s0.fitness * 1.001:
win += 1
mark = ""
elif s1.fitness < s0.fitness * 0.999:
loss += 1
mark = ""
else:
tie += 1
mark = "="
rows.append(
f" {mark} {src.name:40s} {s0.fitness:.4g} -> {s1.fitness:.4g}"
f" fails {s0.n_fails}->{s1.n_fails}"
)
print("\n".join(rows))
n = win + loss + tie
print(f"\n{n} candidates: {win} improved, {loss} regressed, {tie} tied")
print(f"total fails: {fails_before} -> {fails_after}")
if __name__ == "__main__":
main()

View file

@ -1,29 +0,0 @@
#!/usr/bin/env bash
# Re-run the 1ph protocol (DESIGN.md §20): programme-house init.dom, budget 3000,
# 4 workers, ON vs OFF, BOTH arms finished with --collapse.
# Usage: rerun_1ph_protocol.sh <worktree> <tag> <out.tsv> [lo] [hi]
# env: PROG (default programme-house), BUDGET (3000), WORKERS (4), APPEND=1
set -u
W="$1"; TAG="$2"; OUT="$3"; LO="${4:-1}"; HI="${5:-20}"
PROG="${PROG:-programme-house}"; BUDGET="${BUDGET:-3000}"; WORKERS="${WORKERS:-4}"
cd "$W/examples/$PROG"
[ "${APPEND:-0}" = "1" ] || : > "$OUT"
for seed in $(seq "$LO" "$HI"); do
for arm in on off; do
flag=""; [ "$arm" = "off" ] && flag="--no-collapse-insearch"
t0=$(date +%s)
PYTHONPATH="$W/src" timeout 600 python -m homemaker_layout.evolve init.dom \
--budget "$BUDGET" --seed "$seed" --workers "$WORKERS" --collapse $flag \
--output "$OUT.$arm.dom" > "$OUT.$arm.log" 2>&1
t1=$(date +%s)
n=$(PYTHONPATH="$W/src" python - "$OUT.$arm.dom" <<'PY'
import copy, sys
from homemaker_layout import dom, fitness
conf, cost = fitness.load_config(".")
_, f = fitness.Fitness(conf, cost).score_with_fails(copy.deepcopy(dom.load(sys.argv[1])))
print(len(f))
PY
)
echo -e "$TAG\t$seed\t$arm\t$n\t$((t1-t0))" >> "$OUT"
done
done

View file

@ -0,0 +1,90 @@
"""Go/no-go experiment for bottom-up sizing.
Take a real evolved .dom, throw away its division ratios, and re-solve them from
the programme's target sizes alone. Score three versions through the Perl oracle:
original -- the evolved .dom as-is (baseline)
roundtrip -- loaded and re-emitted unmodified (checks dump fidelity)
solved -- ratios stripped to 0.5 then solved from programme targets
If `solved` scores >= `original`, sizing can be recovered from the programme
without the evolved geometry, and the EA only needs to search topology.
Usage:
python experiments/resolve_ratios.py [source.dom] [--urb /path/to/urb]
"""
import argparse
import shutil
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from homemaker_layout import dom, oracle, programme, solver # noqa: E402
DEFAULT_URB = Path("/home/bruno/src/urb")
DEFAULT_SRC = DEFAULT_URB / "examples/programme-house/candidate-002.dom"
def _score_in(scratch: Path, name: str, root: dom.Node, urb: Path) -> oracle.Score:
path = scratch / name
dom.dump(root, str(path))
return oracle.score(path, urb)
def main() -> None:
ap = argparse.ArgumentParser()
ap.add_argument("source", nargs="?", default=str(DEFAULT_SRC))
ap.add_argument("--urb", default=str(DEFAULT_URB))
args = ap.parse_args()
src = Path(args.source).resolve()
urb = Path(args.urb).resolve()
config = src.parent / "patterns.config"
scratch = Path(__file__).resolve().parents[1] / "scratch"
scratch.mkdir(exist_ok=True)
shutil.copy(config, scratch / "patterns.config")
targets = programme.load_programme(str(config))
# baseline: score the original file as-is
orig_copy = scratch / "original.dom"
shutil.copy(src, orig_copy)
s_orig = oracle.score(orig_copy, urb)
# roundtrip: load + re-emit unmodified
s_round = _score_in(scratch, "roundtrip.dom", dom.load(str(src)), urb)
# solved: strip ratios and re-solve from programme targets
root = dom.load(str(src))
print("--- programme leaves BEFORE solve (ratios intact) ---")
print(solver.area_report(root, targets))
res = solver.solve_ratios(root, targets, strip=True)
print("\n--- programme leaves AFTER solve (from targets, ratios stripped) ---")
print(solver.area_report(root, targets))
print(f"\nsolver: cost={res.cost:.4f} nfev={res.nfev} success={res.success}")
s_solved = _score_in(scratch, "solved.dom", root, urb)
# refined: warm-start from the evolved ratios (solver as geometry optimiser)
root2 = dom.load(str(src))
solver.solve_ratios(root2, targets, strip=False)
s_refined = _score_in(scratch, "refined.dom", root2, urb)
print("\n=== FITNESS (via urb-fitness.pl oracle) ===")
for label, s in (
("original", s_orig),
("roundtrip", s_round),
("solved", s_solved),
("refined", s_refined),
):
print(f" {label:9s} fitness={s.fitness:.10g} fails={s.n_fails}")
print("\nVERDICT:")
print(f" solved (strip, frozen topology): {'>=' if s_solved.fitness >= s_orig.fitness else '<'} original")
print(f" refined (warm-start optimiser): {'>=' if s_refined.fitness >= s_orig.fitness else '<'} original")
if __name__ == "__main__":
main()

Some files were not shown because too many files have changed in this diff Show more