Skip to content

v0.36.1 — the monitor and the brief stop rewarding a tie

Choose a tag to compare

@vkurenkov vkurenkov released this 23 Sep 02:05
· 100 commits to main since this release
ed84ec1

Two fixes, both the same shape: a threshold that was easier than the rule it stood for.

The monitor marked wins the loop had rejected. Progress showed "▲ new best" on iterations the iteration list called "no gain". Run.incumbent averaged the incumbent with sum()/len(); story.this_cell averaged the candidate with statistics.mean. On real scores those land one ULP apart — 0.062096559999999995 against 0.06209656 — and because a bot is kept only when it strictly beats the cell, a rejected iteration ties its incumbent exactly, which is the one place an ULP decides the answer. Every score the monitor compares now goes through a single progress_mean, the same arithmetic the harness scores candidates with.

The brief printed its bar rounded down. target to beat: {target:.3f} turned a best-so-far of 0.0672706… into "0.067", so a bot that reproduced that exact program reported "beating 0.067" — true of the number it was shown, false of the rule — and stopped there. Bars now round up: clearing what is printed always clears what is enforced.

A cell could hold a bot another elite dominates. A change that helps some identities and ties the rest left the tied cells holding the older, strictly worse bot, and those cells hand out parents — so the mutator kept being given a tree behind the archive, whose one visible route to the target was a change already banked elsewhere. A tied cell now goes to a program that strictly improves somewhere else. The tie is not reported as an improvement; only the occupant changes.

And the brief asks for more. It now states the bar it enforces and asks for a point beyond it: a change that moves the average by less than 0.01 is not worth making. The enforced rule is unchanged — anything strictly better is still kept, because a cell whose elite never moves is what caused the rediscovery in the first place.

Sandbox images are re-pinned; the arena rebuild is classified at major 2 — no scoring-path change, so the verified corpus carries over.