Tie-breaking
support-onlyevidence: repository-verifiedpublic informationWhen two columns are worth exactly the same, something has to choose — this measures how much that arbitrary choice is worth over a whole game.
Every policy in this repository ends up with two columns it likes exactly equally. The rule it uses to pick between them is arbitrary — and this program measures whether "arbitrary" is harmless.
The intuition
Here is a position that is symmetric down the middle. A 3 is coming, and columns 1 and 5 are mirror images of each other:
The engine's output for this position and this move: the 3 lands on the 3 already in column 1, the column run reaches three, both discs clear for 14 points, and the gray disc beneath them is hit once and cracks.
Dropping the same 3 into column 5 does the identical thing on the other side — the same two discs cleared, the same 14 points, the same single crack — and leaves the exact mirror image of the board above:
Real ties are rarer than mirror images, but near-ties are everywhere: two moves whose scores differ by less than the noise in the evaluation. Whichever column the loop reaches first wins them all, so a fixed order like "left to right" is a silent, permanent bias in the policy. If that bias is worth a few percent of score, then a comparison between two candidates that use different orders is partly measuring the order.
How it works
- Play complete games with a simple one-move-ahead policy: for each legal column, play the move a few times with different imagined reveals, average the immediate points plus a hand-written board score, and keep the best.
- The comparison is strict — a later column has to be better, not equal, to displace an earlier one — so the order in which columns are visited decides every exact tie.
- Run the whole thing four times, changing only that order: left-to-right, centre-outwards, edges-first, and a paired order.
- Then, as a second family, run three deterministic rules that use no evaluation at all: always play the lowest legal column; prefer a column whose new height would equal the disc's number (a guaranteed vertical clear); or prefer the column already holding the most copies of that number. Each falls back to the lowest column, centre-first.
- Report mean score, mean moves and best score for each of the seven variants over the same games.
Everything it reads is public. It is not a candidate policy: the point is the spread between the variants, not the level any of them reaches.
What happened
No retained result. The experiment index lists this source as support-only and repository-verified, and audit 04 §B.2 lists it among the sources whose question has no lane and no retained output. Nothing in this repository records how large the tie-breaking effect is.
What can be said without a run: the fixed order matters enough that the
repository standardised on one. The native search policies use the centre-first
order 3, 2, 4, 1, 5, 0, 6, and the fair depth-4 audit
(audit 02) refers to positions that "fall
through to kColumnOrder tie-breaking" as a normal, frequent event rather than
an edge case.
The technical record
Status: support-only — repository-verified. No ledger entry, no task record, no retained output.
Defaults in main.ts: 64 games from seed 0x1d700500, four imagined reveals
per candidate column, a 1,000-move cap. Orders tested: left = 0…6,
center = 3,2,4,1,5,0,6, edge = 0,6,1,5,2,4,3, paired = 0,1,6,5,2,3,4.
Rule policies: shortest, vertical, grouped. The evaluator is
evaluateHeuristic(..., "combined") from
src/core/typescript/heuristic.ts, and the tie is resolved by the strict
value > bestValue comparison, i.e. first-in-order wins.
Reading the output correctly: these are seven variants of a weak one-move policy, so their absolute scores say nothing about the strength of any research candidate. Only the difference between the seven rows is the measurement, and 64 games is a small cohort for a heavy-tailed score.
Source: main.ts.
What this taught us, and what is still open
- A fixed column order is a real degree of freedom in every policy here, not a formality, and near-ties are common enough for it to have an effect.
- Nobody has recorded how big that effect is. This is one of the cheapest unanswered questions in the repository: seven complete-game arms on a documented seed range, no training, no model.
- The result that would matter most is not on the weak policy above but on the depth-4 reference: if changing only its tie order moves its mean by an amount comparable to the differences experiments are gated on, then some past gate decisions were partly measuring column order.
Source files
README.mdxmain.ts