0%

Chapter 3 · Section 1 of 2

What is different

6 min read8 of 22 in Clearing the Table
On this page

What it uses. Arithmetic only. Nothing in it is fitted to data. What it does. It looks round the table, pushes one glass, looks again, and says "done" when it finds no push it is willing to make. What it costs. Arm time, and nothing else.

Contents#

  1. Introduction
  2. A film of five tables
  3. What it borrows and what it adds
  4. Glasses that already have room
  5. What it scored
  6. Tables it called done while still crowded
  7. Why the three walks give one answer

1. Introduction#

This page answers one question. What changed in the fixed nudge when the overhead camera and the push-by-push hand-over were taken away? It is for a reader who has read the first two chapters of this book. It also assumes you know the main idea of the fixed nudge from the pushing book. That method is not explained again here.

This solution is the floor of this book. The floor is the score that costs nothing to reach. Every other solution pays for data, training or a borrowed model. A solution that cannot beat this one has bought nothing with that money.

Its code is in 01-one-fixed-nudge/ in the project.

The next section shows the solution at work on five tables, before any of its parts are named.

2. A film of five tables#

The introduction said what this solution is for. The film shows what it does. It shows tables 10001 to 10005 in a row. At the end of each table, the film prints what that table cost and how it ended.

The fixed nudge on tables 10001 to 10005, 107 seconds and no sound

On the first table, 10001, the solution gives 26 answers. Only 3 of them are pushes. The other 23 move the camera. After 28 arm seconds every glass has room, and the solution says it is finished. Most of the arm's time goes on looking, and looking, remembering and stopping explains why. The numbers come from the project's film table and from table 10001 in results-tables.json.

So which parts in the film are the pushing book's, and which are new?

3. What it borrows and what it adds#

The film showed a loop of looks and pushes. This section splits that loop into old parts and new parts.

The part that chooses a push is borrowed from the pushing book. It is imported from that project folder, not copied, so the two cannot drift apart. It still repeats instead of predicting.

Four parts are new. Each one does a job the overhead camera or the hand-over used to do.

  • tour.py says where the arm stands to look.
  • remembered.py keeps what the arm has seen.
  • jaw_paths.py writes a push as a path for the jaw.
  • nudge.py runs the loop: look, choose, push, look again, say "done".

These parts are shared by every solution in this book. So the chapter before this one explains each of them once. Its sections are the ring of eight stands, the belief, the ranging push and how a solution says it is done.

One more new piece is a guard of 4 pushes for each glass. Nothing outside the solution counts pushes now. The guard stops one hard glass from using up the whole clock.

Which glasses does the borrowed chooser get to see? That question needed one change of its own.

4. Glasses that already have room#

The last section said the chooser is borrowed. This section names the one thing it was never asked to handle before.

In the pushing book, a glass with room was lifted onto the rack at once. So the chooser never saw such a glass. Here nothing is lifted, as nothing is racked explains. A glass with room stays on the table.

Without a change, the chooser would push that glass again and again. The glass needs nothing, so the clock would run out on it. So the solution holds back every glass that already has room. The chooser sees only the crowded ones.

With that change in place, the next question is what the solution scored.

5. What it scored#

The parts are now named. This section gives the score on the held-out queue, which the examiner describes.

Read the table as one walk of the queue. All three walks gave the same numbers, and the last section says why. The numbers are from results.json.

Tables attempted26 of the 50 offered
Glasses on them102
Tables separated10
Tables failed by a topple0
Tables left unfinished16
Glasses with room39 at the start, 64 at the end
Glasses freed+25
Share of glasses with room at the end0.627
Glasses broken0
Said "done" while still crowded14
Paths the interlock refused0
Arm time used899.98 s of 900
Arm time for a separated table43.6 s
Answers813, at 15 ms of thinking each

Three rows matter most.

Nothing broke. The interlock never had to refuse a path in 813 answers. So the care is the solution's own. The cell never had to save it.

Five tables cost one lap of looking and nothing else. Each took 8.05 arm seconds and 9 answers. The chooser found no push it would make on them. A quick refusal is cheap, and it leaves time for the next table.

The 26th table was worth little. The clock stopped the solution after 2.28 s and 3 answers there.

The 14 tables it called "done" while crowded need a closer look, because that row looks like a mistake.

6. Tables it called done while still crowded#

The score above has 14 tables that ended "done" with a glass still crowded. This section says what those tables record.

The solution says "done" only when the chooser has no push left that it will make. Before it says so, it looks round the whole table again. How a solution says it is done gives the full rule. So the 14 tables are not glasses it failed to see. They are glasses the geometry chose not to touch.

The project's tuning run shows the reasons. It used 20 tables below the held-out band. The solution left 22 glasses because they tipped when tried. It left 16 more because it found nowhere clear to push them. These counts come from calibration.json.

Refusing a glass is the safe way to be wrong. A refused glass is a result, just as in the pushing book.

One more thing about the score is unusual. It has no spread, and the next section says why.

7. Why the three walks give one answer#

The examiner walks the queue three times. This section explains why this solution gives the same numbers each time.

Every count was the same on all three walks. Every table had the same outcome, the same arm seconds and the same number of answers. Only the laptop's thinking time moved, from 11.68 s to 12.14 s. That measures the computer, not the method.

The reason is simple. Nothing in the solution is drawn at random. The push is worked out from the measurements. The ranging and test pushes have fixed lengths. The arm walks its eight places in a fixed order.

So this page gives no spread. Writing "± 0" would claim a measured zero. The truth is that there is nothing to vary. The learned solutions do draw at random, and for them the three walks are the measurement itself.

The questions page comes next. It answers short questions about these differences.

← What every solution had to add — questions and answers · Questions and answers →