- Walkers. 24 walkers run and tumble on the composition simplex of Hf, Mo, Nb, Ta, Ti, V, W, Zr: each holds a composition and a heading, steps 0.05 along it, keeps the heading while the circuit scores the new point higher and turns when it does not; ten steps a round (
forager/search/forage.py, FlyGenerator in forager/search/generate.py).
- Proposals. After each round the four best-scoring positions that lie more than 0.05 L1 from everything already proposed go to the verifier; if fewer than four are new, uniform draws fill the batch.
- The circuit. The score comes from the whole MaleCNS v1.0 connectome, 164,506 neurons and 25,135,527 edges, each edge signed by its presynaptic neuron's measured transmitter. The composition is broadcast onto 17,479 afferent neurons (olfactory, mechanosensory, visual and compass inputs), propagated four steps, and read by a linear readout, learned from the reward, over 794 LAL, DNa and MBON neurons plus the PFL and descending cells the plastic sites add (
runs/e224_A_s0.log); the Kenyon-cell-to-MBON synapses are plastic, as in the fly's mushroom body. Each walker's step and patience are scaled by fixed random gains: the head's own gain field was the worst of three options on the clean reward (E198b) and is off.
- The reward. Rung 0 prices each proposal with the embedded cluster expansion in the DFT frame: its formation energy over random decorations, minus T·Smix at 90 K, is the driving force d to separate into the bcc pure elements. The verdict is p = 1/(1 + ed/25 meV) and the readout is taught 2p − 1. A proposal qualifies at d ≤ −40 meV/atom (p ≥ 0.832). MACE's off-lattice hull only vetoes beyond 100 meV/atom. Every search on this page was paid by the v5 expansion (
runs/ece_v5_pureref9); the ladder has since moved to E237's ensemble.
These searches ran on the refractory eight above; chromium, the ninth element of the goal, was not in them.
How it is scored
One seed is 200 rounds of 4 proposals: 800 verifications. Two finds within 0.15 in L1 (the sum of absolute differences in atomic fraction) are the same alloy, so finds are clustered greedily in the order they were made and each cluster counts once: that is distinct finds (forager/search/trial.py). AUC_Q is the running count of distinct finds averaged over the run's 800 verifications, so an arm that finds its alloys early scores above one that finds the same number late. Arms are compared seed by seed.
What the controlled comparisons found
1. The learning had been starved (E61)
A generator that learns has to beat its own frozen twin: the same wiring, walkers and step size, with plasticity off. At first this one did not; on the 5,311-neuron mushroom-body circuit it led the twin by +0.45 ± 0.51 AUC_Q, p = 0.40 (E60). The Kenyon-cell threshold had been calibrated on raw input, and recurrent inhibition then silenced most of what cleared it: on the fly's own proposals 0.07 % of the 4,064 Kenyon cells were active, three cells, against a 10 % target. Calibrating against the code that actually fires fixed it.
| fly − frozen twin, AUC_Q | p (Wilcoxon) | seeds won |
| starved code, learning rate 0.1 | +0.45 ± 0.51 | 0.40 | 6 of 8 |
| starved code, learning rate 1.0 | +2.66 ± 1.14 | 0.020 | 7 of 8 |
| code at its intended density, 0.1 | +4.68 ± 1.40 | 0.0039 | 8 of 8 |
On eight fresh seeds (100 to 107) the difference was +5.02 ± 0.90; over all sixteen the fly won sixteen of sixteen, p = 1.2 × 10−5. That was on the rung-0 screen of that week, 60 rounds of 4 proposals (E61). The frozen twin is E224's arm D.
2. The fly against elitist (E201b, E195c)
Elitist keeps the eight best compositions it has seen and proposes jittered copies. It has no model and no notion of direction, so it is the bar a learning generator has to clear. Three seeds each, the same verifier and budget:
| seed 0 | seed 1 | seed 2 | mean ± sd |
|---|
| fly (whole-brain head) | 300 135.4 | 268 138.4 | 330 167.5 | 299.3 ± 31.0 147.1 ± 17.7 |
| elitist (keep the best, mutate) | 249 156.2 | 243 134.3 | 223 143.9 | 238.3 ± 13.6 144.8 ± 11.0 |
Distinct finds, with AUC_Q beneath; E201b seed 0 · E201b seed 1 · E195c seed 2. From runs/odt_map/stage_b_e201b.json and stage_b_e195c.json.
The fly makes +61 distinct finds on elitist, about 2 seed-sd, at the same rate: AUC_Q +2.3, a tie. Two things qualify that lead. Its finds are shallower, −66.8 against −73.7 meV/atom on average over E201b's two seeds. And FlyGenerator carries three diversity devices elitist never had: a filter that proposes nothing within 0.05 L1 of anything proposed before, a uniform restart after six moves without improvement, and 24 walkers. Its stream of finds holds no near-duplicates where elitist's holds 3 to 9 %. It finds wider, not better, and width is what the count rewards. E224's arm F gives elitist the same three devices.
3. E224: does the measured wiring matter?
The decisive test, pre-registered on 22 September (E224): eight arms, paired by seed, five seeds each, 800 verifications per seed. A is the generator above, on the measured wiring. B is a degree-preserving rewire of the whole graph: 98.4 % of the 25,135,527 edges move, every neuron keeps its in-degree, out-degree and transmitter sign (runs/e224_B_s*_control.log). C is a random digraph with the same neurons and edge count, degrees resampled. D is the frozen twin, E elitist, F elitist given the fly's diversity devices, G a ridge readout driving the same swarm, H MAP-Elites at its own budget. The primary test is A against B on distinct finds; the bar is that all five paired differences share a sign and their median is at least 31. The referees put the wiring's chance of clearing it below 15 %.
| A · real wiring | B · rewire, degrees kept | C · random head | D · frozen twin | A − B |
|---|
| seed 0 | 333 155.6 | 301 159.3 | 290 141.6 | 116 76.9 | +32 |
| seed 1 | 278 150.8 | 332 161.7 | 245 111.9 | 54 33.0 | −54 |
| seed 2 | 333 183.0 | 315 165.4 | 319 167.3 | 122 66.8 | +18 |
| seed 3 | 15 1.7 | 240 115.1 | 1 0.0 | 0 0.0 | −225 |
| seed 4 | 203 88.8 | 334 158.1 | 330 178.3 | running | −131 |
Distinct finds, with AUC_Q beneath. Computed from runs/odt_map/stage_b_e224_<arm>_s<seed>.json; the distinct counts are recomputed from the recorded winners and agree with the dumps.
The bar is not met. The five paired differences A − B are +32, −54, +18, −225, −131: their signs disagree, median −54. On distinct finds the measured wiring does not beat a degree-preserving rewire of itself. Against the random head (C), which keeps neither the degrees nor the edge signs, A − C is +43, +33, +14, +14, −127.
Seed 3 is a cold-start stall. Qualifying proposals per 50 rounds: real wiring 0 / 0 / 1 / 34, random head 0 / 0 / 0 / 1, rewire 113 / 191 / 194 / 198. With the same seed and the same walker gains, the real and random heads qualify nothing for 150 rounds; the rewired head starts at once. The dumps keep only winners, so the stalled rounds cannot be reconstructed from them; a replay of arm A seed 3 with a per-decision ledger is queued behind the remaining arms.
Still running on the Mac: D (frozen twin) 4 of 5 seeds; E (elitist) not started; F (elitist + dedup + restarts) not started; G (ridge readout on the same swarm) not started; H (MAP-Elites at its own budget) not started. The pre-registered scorecard (scripts/search/e224_score.py) runs when the chain finishes.