Skip to content

Count progress as reaching the top tier, not as beating a score margin - #92

Merged
rasros merged 1 commit into
mainfrom
staleness-top-tier
Aug 17, 2026
Merged

Count progress as reaching the top tier, not as beating a score margin#92
rasros merged 1 commit into
mainfrom
staleness-top-tier

Conversation

@rasros

@rasros rasros commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Patience counted "tasks since the best score improved", where the best score was the weighted blend. Now that ranking is a dominance relation over the objective vector, progress can be defined the same way:

an improvement is a new candidate reaching the top Copeland tier

Read off the dominance relation, so it needs no blended score, no magnitude and no threshold on one. The same setting means the same thing on any image and survives a change to the objectives or their number. The check moves from per-result to generation close, because a candidate cannot be known to have reached the top tier before it has been ranked against one.

--epoch-min-delta deleted

It set the margin a score had to beat to count as progress. With no magnitude compared anywhere, it has nothing left to mean — so it goes entirely rather than staying as a flag that reads as configurable and is not.

Why this and not a pool statistic

Four candidates were measured against the improvement rate that actually followed them, on a run whose end was decided by the wall clock rather than by any criterion, so the improvement curve is uncensored. Partial correlations, time trend removed from both sides:

statistic raw partial
tier count / N +0.43 −0.00
score spread +0.54 +0.08
top tier share −0.30 +0.09
dominated share +0.21 −0.10

None of them predicts whether improvement is still coming; spread's apparent signal was entirely the shared time trend. Improvements arrive from lucky mutations, not from pool structure, so the pool's internal state cannot forecast them — the only observable that tracks the arrival of improvements is the arrival of improvements, which is what patience measures.

Not established

That the top-tier definition is better than the score-margin one. It is the coherent replacement given rank-based selection, and it measures the same event; whether it ends epochs at better moments wants a run. It also changes when epochs end, which is worth knowing before merging.

@rasros
rasros force-pushed the run-observability branch from af4910a to daac4aa Compare August 17, 2026 15:45
@rasros
rasros force-pushed the staleness-top-tier branch from 9e991f1 to 8cfd257 Compare August 17, 2026 15:45
@rasros
rasros force-pushed the run-observability branch from daac4aa to 12316a4 Compare August 17, 2026 15:47
@rasros
rasros changed the base branch from run-observability to main August 17, 2026 15:47
@rasros
rasros force-pushed the staleness-top-tier branch from 8cfd257 to 0b14bf3 Compare August 17, 2026 15:50
@rasros
rasros merged commit 59906f7 into main Aug 17, 2026
1 check passed
@rasros
rasros deleted the staleness-top-tier branch August 17, 2026 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant