Drop7 Research
approaches/lifetime-objective/survival-instinct/README.mdxMDX86 lines · 4.5 KB
---
title: Survival instinct — never place a disc where it can't clear vertically
family: lifetime-objective
summary: Adds one human rule to the depth-4 search by refusing risky drops above a disc's vertical safe zone, then tests whether the rule extends life.
status: preregistered
evidence: none
reads: public
---

Give the depth-4 search one human rule at the root — refuse to drop a 3 or
higher above the row where it could still clear vertically, and measure on
fresh paired games whether refusing extends life, and how often the rule
actually has to override the search's own choice.

<EvidenceLabel status="preregistered" evidence="none" reads="public" />

## The intuition

The owner's observation, from watching play: the search lets a 3 or a 4 land
as the fifth or sixth disc of a column, where it can never clear downward, and
a few rises later the game ends under it. A human treats that placement as a
danger — "it must be cracked horizontally now", and simply does not make it
when there is a choice. The
[entombed-disc analysis](/approaches/lifetime-objective/entombed-discs) showed
the observation is real (three quarters of the search's deaths end with such a
disc on the board, with about two rises of warning) but that the search's
board scorer already *values* those positions correctly. What it left open is
the action: was the entombing move avoidable at acceptable cost?

This experiment asks exactly that, in the smallest form an "emergency mode"
can take: a trigger computed from the public board and a constraint that
overrides the search's preferred column.

## How it works, step by step

1. **The trigger.** Before each move the policy looks at the next disc's value
   *n* and each legal column's height. A column is packed by gravity, so a
   disc landing as the (*n*+1)-th disc or higher can never clear vertically.
   The landing row run is also known before any chance event.
2. **Two strengths of the rule.** *Strict* refuses a column only when the disc
   would be vertically dead *and* already entombed by its row (run longer than
   *n*). *Literal* (the owner's wording) refuses every vertically dead
   landing unless the disc clears on arrival. Values 1 and 2 are exempt; the
   scorer already prices them.
3. **The same search chooses among what remains.** The filtered search is the
   bit-exact fast fair-D4 search with a root mask (generated from the gated
   source by a checked substitution); with every column allowed it is the
   reference move for move. If the rule refuses every column, the unfiltered
   search decides.
4. **Coverage is measured, not assumed.** At every root where the rule refuses
   something, the unfiltered search is also run, so the artifact records how
   often the rule actually changed the decision.
5. **One paired screen.** Three arms (unchanged, strict, literal) play the
   same 128 never-read seeds at depth 4 with five chance samples. The gate,
   fixed before the seeds are opened: strict beats unchanged with a positive
   95% lower bound, no lower-quartile regression, both halves positive, and an
   override rate of at least 2% (otherwise the rule barely applied and the
   run is inconclusive).

<Callout title="The coordinator's prior, stated before the run" tone="info">
The corpus numbers — about two moves of life per entombed disc at equal
occupancy — predict an effect below what 128 paired games can resolve (about
33,000 points). A null result is expected and would be a non-measurement for
smaller effects; a clear positive would mean the entombing move was a genuine
avoidable blunder, which the owner's eye says and the occupancy arithmetic
doubts. Either answer is recorded.
</Callout>

<TechnicalDetails title="The record">

Theory `TH-20260822-survival-instinct-vertical-clear-26f173b5`; experiment
`EX-20260822-survival-instinct-root-filter-8531cbd9` (frozen, SCREEN); lease
`SL-20260822T060000Z-a52c0000` (seeds `0xa52c0000``0xa52c007f` for the screen,
the remainder reserved for replication). CHECK gates in
`runs/RUN-20260822T063817Z-a5d4c143/gates.log`: mask unit cases, parity of the
all-allowed filtered search with `FastSearch`, mirrored masks and actions,
thread-count determinism. The screen (`RUN-20260822T063900Z-a4baa04e`) is
queued behind the leaf-evolution screen so the two never share the machine.

</TechnicalDetails>

## Sources

- `filter.hpp`: the trigger (vertically dead landing; strict and literal rules)
- `build.sh` — generates `FilteredFastSearch` from `fast-search.hpp` with a diff guard
- `gate.cpp`, `run.cpp` — CHECK gates and the three-arm paired cohort runner