What it uses. The fixed nudge's loop, plus the pushing book's fitted trees. The trees are loaded from that book's file and not fitted again. What it does. Geometry lists every legal push. The trees put the list in order. The arm makes the first push on the list. What it costs. Nothing to train and nothing to rent. Only arm time.
Contents#
- Introduction
- A film of five tables
- The trees can still read the table
- What it scored
- Where the three tables went
- Why the trees choose worse here
- Two repairs that were measured and not kept
1. Introduction#
This page answers one question. Does choosing from every legal push beat taking the one push a rule names, once the overhead camera is gone? It is for a reader who has read the fixed nudge's chapter just before it. It also assumes you know the main idea of the ranked chooser from the pushing book. That idea is not explained again here.
This solution is the fixed nudge with one step replaced. The code checks this.
GeometryRanked is OneFixedNudge with one method changed. A test checks that
every other method is the same object as in the fixed nudge. So any difference
in the score comes from that one step. The code is in
02-geometry-ranked/,
and the test is
test_geometry_ranked.py.
The trees are the boosted trees from the pushing book. This solution is also the teacher in this book. The learned solutions later on copy its recorded answers, as the project's demonstrations page says.
The answer to the question is no. The next section shows the first sign of it on film.
2. A film of five tables#
The introduction said the answer is no. The film shows it on tables 10001 to 10005. The counts below are for the first of them, table 10001.
Both solutions separate table 10001, and neither breaks a glass. But this one
uses 32 answers, 5 of them pushes, and 35 arm seconds. The
fixed nudge's film
needs fewer of each. The trees picked different pushes, and the different
pushes were not better ones. The numbers are from table 10001 in
results-tables.json.
Before blaming the trees, one thing must be checked. Can they read a table that the arm sees only in patches?
3. The trees can still read the table#
The film showed the trees choosing pushes. This section checks that their inputs still make sense without the overhead camera.
The trees take eight inputs. Three of them are about a glass's neighbours. In the pushing book the whole table was handed over at once. Here the arm sees only what is in front of its hand.
All eight can still be computed, and none had to be dropped. There are two reasons. First, the inputs are lengths, counts and ratios between glasses, not positions on the table. A relation between the glasses seen so far is still a number. Second, the arm looks round the whole table before it decides anything. So the arm's picture of the table is usually complete.
One input no longer means anything here. It is the distance from where the glass ends up to the drying rack. Nothing is racked in this book. That input carried only 0.05 of the trees' importance, and it was left in. Removing it would mean fitting the trees again. Then a difference could come from the new fit, not from the new problem.
So the trees can read the table. The next section gives what they scored.
4. What it scored#
The inputs work. This section sets the score beside the fixed nudge's on the same held-out queue.
Read each row across. The left column is this solution, and the right column is
the fixed nudge. Both are from each solution's results.json:
this one
and
the fixed nudge's.
| Ranked | Fixed nudge | |
|---|---|---|
| Tables attempted | 25 | 26 |
| Tables separated | 7 | 10 |
| Tables failed by a topple | 0 | 0 |
| Glasses freed | +19 | +25 |
| Share of glasses with room at the end | 0.582 | 0.627 |
| Glasses broken | 0 | 0 |
| Said "done" while still crowded | 17 | 14 |
| Arm time used | 899.23 s | 899.98 s |
| Arm time for a separated table | 41.7 s | 43.6 s |
| Answers | 796 | 813 |
All three walks gave the same numbers, for the same reason as the fixed nudge. The trees are read from a file and never change. Nothing is drawn at random.
The 3 extra "done while crowded" tables are the 3 lost tables. Both solutions said "done" on 24 tables. A table that ends "done" is either separated or crowded.
The ranked chooser loses by 3 tables and 6 glasses. The next section finds where they went.
5. Where the three tables went#
The score showed a loss of 3 tables. This section finds the tables that make it up, using each solution's per-table rows.
Both solutions reached tables 10,000 to 10,024. On 20 of those 25 tables, the
outcome was the same. The whole difference is in 5 tables. The ranked chooser
won one of them, 10,006. It lost four: 10,008, 10,014, 10,015 and 10,017.
These come from
its results-tables.json.
Three easy explanations are ruled out.
- It was not the clock or a topple. All five tables ended with the solution saying "done". Nothing broke, and the interlock never fired.
- It was not the shorter queue. The fixed nudge's 26th table freed nothing. Only one of the six glasses came from reaching further. On table 10,024 the fixed nudge had time to free a glass. This one did not.
- It did not just give up early. On table 10,014 both spent 94 arm seconds. This one freed 2 fewer glasses there.
Its lower time for a separated table is not a sign of speed. That average counts only the tables a solution won. On the 6 tables both separated, this one spent 246 arm seconds against 191. That is 29% more.
The tables were lost to the trees' choices. The next section asks why the trees choose worse here than in the pushing book.
6. Why the trees choose worse here#
The last section put the loss on the trees' choices. This section says what changed for the trees.
The trees disagree with the rule most of the time. On the 20 tuning tables there were 128 choices with at least one legal push. On 115 of them the trees picked a push that the rule ranks lower.
In perfect play the
gap is even clearer. On the 50 held-out tables the
rule separates 34 tables in 86 pushes. The trees separate 29 in 110 pushes.
These are from
ceiling.json
and
ceiling-ranked.json.
The reason is the tables the trees learned on. In the pushing book, every glass with room was lifted away before the next choice. So the trees never saw a glass with room standing on the table. Here every such glass stays, and it gets in the way.
The trees also lean on the wrong facts for this. Two inputs carry four fifths of their importance. One is how high the push is compared with where the glass would tip (0.43). The other is the width of the glass's foot (0.38). Both are about the glass's own shape. Neither is about the room around it. And the room around a glass is what changed most between the two books.
These numbers come from the project's
02-geometry-ranked/README.md.
Two repairs looked likely to help. The next section says how each was measured.
7. Two repairs that were measured and not kept#
The last section said why the trees choose worse. This section gives two fixes that were tried, and why neither was kept.
A price on push length. Perhaps the trees prefer long pushes. Then charging for each millimetre of push should help. Four prices were tried on 40 tuning tables, from nothing up to 0.3 per millimetre. Read the table below down the rows. Each row is one price.
| Price for each millimetre of push | Tables separated of 40 | Glasses freed | Glasses broken |
|---|---|---|---|
| nothing | 15 | +40 | 0 |
| 0.05 | 15 | +40 | 0 |
| 0.1 | 14 | +39 | 0 |
| 0.3 | 15 | +39 | 0 |
Nothing moved at any price. So the trees' fault is not long pushes.
A stale input. One input is the jaw's top edge divided by the glass's foot. The jaw's top edge was 65 mm when the trees were fitted. It is now 107 mm, because the pushing book moved to the real gripper. About 24% of that input's values here lie outside the range the trees saw.
That input can be recomputed and the trees fitted again on the same labels. In perfect play on 300 tuning tables, read across each row:
| Perfect play, 300 tables | Tables separated | Pushes used |
|---|---|---|
| the rule | 215 | 543 |
| the trees as shipped | 206 | 753 |
| the trees, input corrected | 209 | 646 |
The correction wins back 3 of the 9 lost tables. But under the clock it does worse. On three clocked queues below the held-out line, it separated 12 tables against the shipped trees' 14. So it was not kept. The labels were also measured with the old jaw, and only new pushes can fix those. That repair has not been tried.
Both tables are from the project's
02-geometry-ranked/README.md.
How this solution sits beside all six is in
the results.
The questions page comes next. It answers short questions about these findings.
← One fixed nudge — questions and answers · Questions and answers →