Who found it, and when

A long run shows itself early

A restart schedule that learns only from failures was shown to be a fixed list in disguise, unable to beat the cutoff hindsight would choose. A run reports more than whether it has finished, though, and the search for a lettering of the rhombille patch already counts the one thing worth reading: how often its loop test has refused it. Read at node fifty, the count separates the runs. Of fifty runs refused eight times or more, one finishes within a hundred nodes; of seventy refused fewer times, twenty-two do. Restarting on that count costs 387 nodes in expectation against 483 for the best fixed cutoff — and chosen on half the runs and priced on the other half, 437 and 435 against 541 and 579, which on one half is cheaper than that half's own hindsight. The search literature's answer was right, and on a crease pattern it needs one number.

Assumes A failure teaches a schedule nothing and What the hindsight was worth.

What the hindsight was worth priced a borrowed idea on a folding search. The search looks for a consistent mountain-and-valley lettering of a patch of the rhombille tessellation, it has a heavy tail — it finishes in eighty-odd nodes on its best runs and not at all inside twenty thousand on two runs in five — and stopping every attempt at a cutoff and starting again with a fresh seed is far cheaper than letting each run finish. The best cutoff was read off 120 measured runs afterwards. A failure teaches a schedule nothing then proved that no schedule which learns from its own failures can do better: a failed attempt reports only that it failed, which is what knowing nothing already predicted, so every such schedule is a fixed list, and no list beats the cutoff hindsight chooses.

It ended where the search literature had gone in 2002, when Henry Kautz, Eric Horvitz and their colleagues proposed restart policies that watch a run from the inside, read features of its early behaviour, and restart the runs that look long. A schedule can beat hindsight about a run’s length only by using information about the run’s interior, and the essay named the features a lettering search could report — the deepest backtrack so far, the creases still free, the vertices whose letters were forced — and said that testing any of them would need the runs split into ones a policy learns from and ones it is tested on.

This is that test, on the same 120 runs, and it needs one feature, which the search was already counting.

What a run already reports

The lettering search assigns a letter to a crease, propagates whatever the vertex conditions force, and asks one more question at every node: whether the letters so far close a loop of panels each lying above the next, which no folded state can contain. When they do, the branch is abandoned; that is a loop refusal, and the search keeps a running count of them. Nothing about the count was designed as a predictor. It is bookkeeping.

The search keeps a second count beside it, of the times a vertex had no lettering left consistent with the letters already chosen. On this patch that count never moves early. In the first fifty nodes of all 120 runs the vertex conditions refuse nothing at all: propagation forces every letter a vertex can force, so no vertex is ever left with nothing to choose, and every dead end the search meets that early is a loop. That is why one count is enough. A run cannot be in trouble at node fifty in any way the search would notice except by closing loops, so a run in trouble is a run with many loop refusals.

The search is deterministic once its seed is fixed, so the count a run had reached by node fifty can be read without changing anything: run the same seed with a budget of fifty nodes, and it stops at exactly the point the full run passed, with its count in hand. Doing that for each of the 120 seeds gives every run two numbers, its refusals by node fifty and the nodes it took to finish.

A long run shows itself earlyOne hundred and twenty searches for a lettering of the rhombille patch, each placed by how many times the loop test had refused it by node 50 and by how many nodes it went on to take, with the runs that never finished at the top. The dial moves the node at which the count is read. Runs refused many times early are long or never finish.each run, read at node 50, against how long it turned out to bethe top band is runs still unfinished at 20,000 nodes1234048121620times the loop test has refused the run so farnodes the run takes to finish, log₁₀finishes inside the cutofffinishes laternever finishesupright line: the refusalcount that restarts a runlevel line: the cutoff
Fig. 1 The 120 runs, each placed by how many times the loop test had refused it by node fifty and by how many nodes it went on to take, with the runs that never finished in twenty thousand along the top. The upright line is the refusal count that best predicts a long run, and the level line the cutoff the best policy uses otherwise. The dial moves the node at which the count is read, from twenty-five to a hundred.

The picture separates without being asked. Runs that finish quickly — the ones a cutoff near a hundred and fifty nodes keeps — sit almost entirely at three to seven refusals. Runs that never finish sit in two places: a few at the same low counts, and a large group at sixteen or seventeen. Of the fifty runs refused eight times or more by node fifty, one finishes within a hundred nodes, and twenty-eight never finish at all. Of the seventy refused fewer times, twenty-two finish within a hundred.

The cluster at sixteen is the shape the earlier essay predicted in words. The order that proves nothing exists found that a refutation’s cost is set by how many free choices sit above the contradiction. A run that is refused sixteen times in its first fifty nodes has made an early choice that dooms everything below it and is discovering that one branch at a time; each new attempt beneath the bad choice closes a loop almost at once. The count rises fast exactly because the run is trapped, and it rises fast early, which is when a restart is cheap.

How many refusals should end a run

The policy that uses the count is the plainest possible. At node fifty, look at the count. If it is at least some threshold, abandon the run and start again with a fresh seed. Otherwise let it continue to a cutoff, and if it has not finished by then, abandon it too.

Its expected cost is computed as a fixed cutoff’s is: what one attempt costs on average, divided by its chance of being the attempt that finishes. A run that finishes before node fifty costs its own length; a run abandoned at node fifty costs fifty; any other costs the lesser of its length and the cutoff.

How many refusals should end a runThe expected cost of finding a lettering of the rhombille patch when a run is abandoned at node 50 if the loop test has refused it at least so many times, and otherwise cut at the best cutoff for that threshold, against the threshold. The curve dips well below the best fixed cutoff, dashed, and rises on both sides.5101520100020003000400050006000refusals by node 50 that end a runexpected nodes to a lettering8 refusals, cut at 151: 387the best fixed cutoff over every whole number of nodes is 166, at 483 nodes, dashed
Fig. 2 The expected cost of a lettering when a run is abandoned at node fifty if the loop test has refused it at least so many times, and otherwise cut at the best cutoff for that threshold, against the threshold. The best fixed cutoff, which reads nothing, is dashed.

The best fixed cutoff, searched over every whole number of nodes, is 166, at 483 nodes in expectation — a little under the 512 the earlier essays read off a list of round cutoffs, because a handful of runs finish between 150 and 166 and a cutoff fitted to the node catches them. The refusal policy at its best restarts at eight refusals and otherwise cuts at 151, and costs 387 nodes: four fifths of the best fixed cutoff.

The curve has the shape it should. A threshold of two or three refusals throws away runs that would have finished, because most good runs have been refused three or four times by node fifty, and the policy pays for restarting them. A threshold of sixteen or twenty catches only the most obviously trapped runs and leaves the ones at eight to fifteen, which are almost as hopeless, to run on to the cutoff. Between them, at eight, the count does the most work.

Cheaper failures, not more successes

The policy’s advantage is not where it might be expected. It does not finish more often. An attempt under the refusal policy succeeds a quarter of the time, against 31 per cent for the best fixed cutoff; restarting at eight refusals throws away the one quick run in that group and several that a cutoff of 166 would have caught. What it changes is what a failure costs. An attempt under the fixed cutoff costs 149 nodes on average, because every doomed run is carried all the way to 166; an attempt under the policy costs 97, because more than half of the runs it fails on are dropped at fifty rather than carried to the cutoff. Expected cost is the ratio of the two, attempt cost over success rate, and the policy improves the numerator by a third while giving up a fifth of the denominator: 97 over a quarter is 387, and 149 over 0.31 is 483.

That is the general shape of a good restart rule, and it is worth having in that form. A restart policy is paid for in the cost of its failures, because on a heavy-tailed search most attempts fail whatever the policy does. Any information that lets a failure be recognised earlier is worth having even if it also condemns some runs that would have succeeded, and the threshold is set exactly where condemning one more good run costs more than the doomed runs it releases.

When to read the count

Fifty nodes was the number the earlier essay picked. It is not obviously the right one, and the dial on the first figure moves it.

When to read the countThe best restart policy that reads the loop test's refusals at node 25, 50, 75 or 100, with its threshold, its cutoff and its expected cost, beside the best fixed cutoff. Reading early says little, reading at fifty or seventy-five nodes cuts the cost by a fifth to a quarter, and reading at a hundred is too late to save anything.where in a run the count is worth readingeach row's threshold and cutoff are the best for that reading node; the last row is the best fixed cutoff, which reads nothingread at noderefusals that end a runcutoff otherwiseexpected nodesagainst the best fixed cutoff25315545895%50815138780%751618635573%100never166483100%——166483100%
Fig. 3 The best refusal policy reading the count at node 25, 50, 75 or 100, with its threshold, its cutoff and its expected cost, beside the best fixed cutoff, which reads nothing.

Read at node twenty-five, the count has had little time to separate the runs, and the best policy costs 458, only five per cent under the fixed cutoff. Read at fifty it costs 387; at seventy-five, 355, a quarter under, with a threshold of sixteen — by then the trapped runs have reached the cluster at sixteen and nearly nothing else has. Read at a hundred, the count is useless: the best policy never restarts on it, because the useful cutoff is itself around a hundred and fifty and a run that is going to finish quickly has mostly done so. The count is worth reading at the point where a trapped run has had time to show it and a good run has not yet had time to finish, and on this patch that is between fifty and seventy-five nodes.

Chosen on one half, paid on the other

Everything above was chosen and priced on the same runs. The fixed cutoff of 166 is hindsight, and so are the threshold of eight and the cutoff of 151; a policy with two numbers to tune has more room to fit the accidents of 120 runs than a policy with one. The earlier essay said what the honest version needs: the runs split, the choices made on one half, the prices paid on the other.

Chosen on one half, paid on the otherThe best fixed cutoff and the best refusal policy read at node 50, each chosen on one half of the 120 runs and priced on the other half, with that other half's own hindsight cutoff for comparison. The policy keeps its advantage on runs it never saw.every choice made on one half of the runs, every price paid on the other, reading at node 50the last column is what hindsight about the test half itself would have chosen, which no schedule can know in advancefitted onpriced onfixed cutoffits costrefusal policyits costthe test half's own hindsightruns 1–60runs 61–1201015417 refusals, cut at 101437417 at 161runs 61–120runs 1–601615798 refusals, cut at 161435456 at 101
Fig. 4 The best fixed cutoff and the best refusal policy read at node fifty, each chosen on one half of the runs and priced on the other half, with the other half’s own hindsight cutoff beside them.

Chosen on runs 1 to 60, the fixed cutoff is 101 and costs 541 on runs 61 to 120; the refusal policy chosen on the same runs is seven refusals and a cutoff of 101, and costs 437. Chosen on runs 61 to 120, the fixed cutoff is 161 and costs 579 on runs 1 to 60; the policy is eight refusals and 161, and costs 435. On both halves the policy keeps four fifths of the fixed cutoff’s cost or less on runs it never saw.

And on the second half it does better than hindsight. Runs 1 to 60, priced by the best fixed cutoff that could have been chosen knowing those runs, cost 456 — and the refusal policy, chosen without them, costs 435. That is the precise sense in which watching a run is worth more than hindsight about runs: the best list for those sixty runs, written down after seeing them, is beaten by a rule written down before, because the rule uses something no list has — what each run is doing while it runs. On the first half the policy comes within five per cent of that half’s hindsight, 437 against 417.

The literature’s answer, reduced to one number

The policies Kautz, Horvitz and their colleagues built were statistical models: dozens of features of a solver’s early behaviour, a decision tree or a Bayesian classifier trained on many previous runs, and a prediction of whether this run would be long. The cure was named first and the tail was named somewhere else recorded how much of this subject’s search behaviour arrived already described by that literature, and the dynamic policy is the last piece of it.

What the crease pattern adds is how little it takes. A single count, kept for another reason, at a single node, with a single threshold, recovers a fifth of the cost and holds up on runs it was not fitted to. The reason it is enough here is particular to this search. A loop refusal is the search discovering, again, that the letters it holds cannot be stacked — and on this patch a doomed early choice produces refusals in bulk, sixteen in fifty nodes, while a sound one produces a few. The feature is good because the failure it signals is loud. On a search whose doomed runs failed quietly — by exhausting vertex options rather than by closing loops, say — the same count would say nothing, and the policy would need the richer features the literature used.

The fourth thing this search met second

These essays have been a record of one search meeting, one by one, results the study of combinatorial search had already written down. The heavy tail was there first; the restart that cures it was there first; the universal schedule was there first, in 1993, with the impossibility of beating hindsight from failures implicit in it; and the policy that watches a run from the inside was there in 2002. Found by people not folding paper counted the same pattern in geometry — a shortest Möbius strip with a literature in differential geometry and none in origami — and found before it was designed in buckling, where a crushed cylinder published a crease pattern twenty years before anyone designed with it.

What is different this time is direction. Each earlier rediscovery found the folding version to be a case of the general result. Here the folding version is a simplification of it: the general policy needs a trained model over many features because general solvers fail in many ways, and this solver, on this patch, fails in one way so loudly that a single counter carries the whole signal. A rediscovery can return something to the field it came from, and what a crease pattern returns here is a worked case of how little a dynamic restart policy can need.

What the measurements assume

One patch. Every number is about the rhombille patch that gave the earlier essays their heavy tail. The other four patches of the same construction finish without a tail worth restarting, so nothing here could be tested on them, and whether a loud refusal count is a property of this search or of this patch is open.

One hundred and twenty runs, split once. The held-out test uses one split, first half against second, both ways. A different split would give different numbers, and with sixty runs a side the costs carry an uncertainty of tens of nodes. The direction — the policy cheaper than the fixed cutoff on unseen runs, by a fifth or more — holds on both halves, which is what was asked of it.

A budget that truncates. Runs that had not finished by twenty thousand nodes are counted as unfinished, which both the fixed cutoff and the policy treat the same way, since neither ever lets a run go that far.

Why sixteen, and whether a better count exists

Why sixteen. The trapped runs pile up at sixteen and seventeen refusals rather than spreading out, which suggests a particular early choice that every one of them makes and then spends its fifty nodes trying to repair. Which crease that is, and whether it is the same crease on every trapped run, would say what the count is actually counting.

Whether a better feature exists. The count was the first thing tried, because it was already there, and it worked. The depth of the deepest backtrack, the free creases, the forced letters — the features the earlier essay listed — were not measured, and any of them might separate the runs more cleanly.

The probe is the run, stopped early

The count at node fifty is the full run’s count at node fifty. The search is deterministic given its seed, and the probe is the same search with the same seed stopped at a budget of fifty; the runs’ lengths are the ones the earlier essays’ figures use, from the same seeds.

Every price is an exact expectation over the measured runs, an attempt’s average cost over its chance of success, with thresholds from two to twenty and cutoffs searched over every whole number from the reading node to six hundred; every useful cutoff on this patch is under two hundred, and the best fixed cutoff is the same searched to twenty thousand. The figures require the refusal policy to beat the best fixed cutoff by more than a tenth on all 120 runs, to beat a fixed cutoff chosen the same way by more than fifteen per cent on each held-out half, and to beat a half’s own hindsight cutoff on at least one of them.

Stopping early costs less than finishingWhat a cutoff-and-restart strategy would have cost on the one patch whose search has a long tail. Each bar is the expected total for stopping every attempt at that many nodes and starting again with a fresh order: one attempt's cost divided by the chance that attempt succeeds.the bar is what the whole job costs if every attempt is stopped thereon the rhombille patch, read off 120 measured runsstop at 10051219% of runs finish by thenstop at 15151827% of runs finish by thenstop at 16648331% of runs finish by thenstop at 20053033% of runs finish by thenstop at 30069834% of runs finish by thenstop at 1000162442% of runs finish by thenstop at 5000569749% of runs finish by thena run that never finished counts as above every cutoff, so the tail is read conservatively
Fig. 5 The expected cost of a lettering under a fixed cutoff, read off the same 120 runs, at cutoffs from 50 to 5,000, including 151 and 166 — the cutoffs the refusal policy and the best fixed cutoff settle on. A fixed cutoff reads nothing about a run but its length.

The last figure is the yardstick the earlier essays used — stopping is cheaper than finishing drew it first — drawn again at the two cutoffs this one settled on. It is the ceiling every schedule built from failures lives under, and the refusal policy is the first thing here to get beneath it.

Still open: which crease traps a run

The cluster at sixteen refusals is the lead. If the trapped runs share an early choice, the policy could be replaced by a rule about the choice itself — never take that letter on that crease first — which would cost nothing at all to apply and would turn a restart strategy into a better search. Recording, for each trapped run, the letters it held when its count passed eight, and looking for the crease they agree on, is a short measurement with a definite answer.

The other direction is the one the earlier essay raised and this one makes testable. The propagation that never had to work found the rhombille patch to be the one where the construction did real work, and the difficulty was in the coin located its tail in the randomised letter order. Whether a loud refusal count belongs to the rhombille’s irregular tiles or to the search — whether a degree-six or a crumpled pattern, searched the same way, traps its runs as loudly — would say whether a policy written on one patch could be carried to another.

The habit worth carrying is about the data a process already keeps. Before designing a measurement of a process from outside, read the counters it keeps for its own reasons. The search had been counting its refusals since it was written, to report how much the loop test pruned; the number that tells a long run from a short one was sitting in that report the whole time.

What this makes readable

Essays that name this one as a prerequisite.

Named alongside this one

Essays reaching for the same objects. Nobody chose these; they are what the concept index makes visible.

What links here

Every essay whose body links to this one.

The objects this essay names

Each one links to every other essay that touches it.

HeuristicRandomised algorithmRediscoveryRestartSearch cost