DEV Community

SEN LLC
SEN LLC

Posted on

Aqre: the clue budget is the partition — and the solver ladder is hollow in the middle

Aqre in the browser with four rule sets inside. Shade some cells
of an n×n grid: the black cells form one orthogonally connected group, a
region printed with a number contains exactly that many black cells, and
no four consecutive cells in any row or column share a color — the
run rule binds black and white alike, so an empty board is already
illegal at any size past 3. Puzzle #39 in the solver series.

Demo: https://sen.ltd/portfolio/aqre/
Repo: https://github.com/sen-ltd/aqre

Aqre

I picked this puzzle for two reasons.

The clue budget is the partition

The previous puzzle in this series, Nurimisaki, was the puzzle where the
setter never chooses a clue position: the answer forces every circle, and
all the setter can do is erase numbers. Aqre is the opposite extreme.
Clues sit on regions, and the region partition is drawn freely before
any number is printed. Small regions mean many numbers; big regions mean
few; borders drawn along the answer's color boundaries make every region
all-or-nothing, so the counting rule finishes the board alone. The
setter owns the information supply.
With the two extremes back to back
in the series — forced clue positions, then a fully owned clue budget — I
measured what the dial actually does, end to end.

The run rule binds both colors

The no-four-in-a-row rule is not a black-only rule. Every 1×4 window owes
both colors a cell before a single number is read. That symmetry pins
black density into a band: across random legal configurations the black
share has median 55.6% on 6×6 (range 44.4–69.4%) and 58.0% on 10×10
(51.0–64.0%) — the band barely moves as the board grows. Counting all
clue-free legal configurations (black connected, no monochrome run of
four) gives 14 on 2×2, 219 on 3×3, and 798 on 4×4 — the first size with
any 1×4 window keeps just 798 of 65,536 shadings, 1.2% of the space.

The four rule sets

level rule
quota region counts, both directions: number reached — the rest is white; free cells exactly the missing blacks — all black. Alone it never crosses a region border: from an empty board it can only fire on regions numbered 0 or their full size
quad no run of four one color, either color, either axis: three decided cells in a 1×4 window turn the fourth
bridge black connectivity made local by one articulation-point DFS: a free cell sealed off from the black group can never be black (pocket), the only route between two black cells must be black (bridge)
probe assume one color on one cell, run the rules below to a fixpoint, drop the assumption if it contradicts

The ladder is hollow in the middle

300 raw generator boards per size — random partition (regions up to 5
cells), random legal configuration, every region numbered. Fraction
finished by the fixpoint alone, no guessing:

board quota +quad +bridge +probe unique in the raw stream
6×6 0.0% 0.3% 1.3% 21.3% 22.3%
8×8 0.0% 0.0% 0.0% 7.7% 8.3%
10×10 0.0% 0.0% 0.0% 0.7% 1.0%

A strange table. The quota column is 0.0% at every size — the only
rule that reads a clue cannot finish a single random-partition board by
itself, because it never crosses a region border. Past 6×6 the incremental
gain of quad and bridge is 0.0 points too, and then probe jumps the
rate from zero to everything
. The siblings' ladders were staircases you
climb rung by rung. Aqre's looks like a ladder where only the top rung
works.

Ablation: the hollow middle is all load-bearing

So are quad and bridge useless? Full ladder minus one rule, same
boards:

board full −quota −quad −bridge
6×6 21.3% 0.0% 0.0% 1.0%
8×8 7.7% 0.0% 0.0% 0.0%
10×10 0.7% 0.0% 0.0% 0.0%

Removing any single rule collapses everything. Take out quad — the
rule whose incremental gain was 0.3 points at best — and even 6×6 drops
from 21.3% to 0.0%. There is no contradiction: probe works by assuming a
color and watching the rules below refute it, so the lower rules are the
sensors through which probe perceives the board
. A rule that cannot walk
a single step on its own carries full load inside the probe. This is the
exact mirror of a lesson from earlier in the series (Kurotto): there,
incremental-only measurement made redundant rules look essential; here,
incremental-only measurement makes essential rules look useless. You need
both directions to see a ladder's true shape.

Nurimisaki's ablation also showed zero redundancy — but for a different
reason. Its boards were too information-starved to afford spares. Aqre's
middle rungs simply cannot walk alone by design, and only work when the
probe carries them.

Two dials — one dead, one that sweeps everything

The setter can turn two dials: clue density (the fraction of regions that
keep their number) and partition granularity. Density first, 8×8, 150
boards per point:

density unique probe solves bridge solves numbers kept
0.00 0.0% 0.0% 0.0% 0.0
0.25 0.0% 0.0% 0.0% 6.0
0.50 0.0% 0.0% 0.0% 12.9
0.75 0.0% 0.0% 0.0% 19.3
1.00 8.0% 7.3% 0.0% 26.0

The density dial is nearly dead: at 0.75 — nineteen printed numbers —
not one board in 150 is unique. But turn the granularity dial (maximum
region size, full disclosure):

maxSize regions (mean) unique probe solves quota-only solves
1 64.0 100.0% 100.0% 100.0%
2 46.0 46.0% 44.7% 0.0%
3 36.4 22.0% 22.0% 0.0%
5 26.3 3.3% 3.3% 0.0%
8 18.8 2.0% 0.7% 0.0%
12 13.6 0.7% 0.0% 0.0%

One dial sweeps from 100% to 0.7%. maxSize 1 prints the answer itself
(every cell is its own region numbered 0 or 1), so 100% is no surprise —
the surprise is that one click later, at maxSize 2, quota-only solving is
already stone dead at 0.0% and uniqueness has halved. Where the siblings'
density sweeps were gentle slopes, Aqre's granularity dial is a staircase
of cliffs. Nurimisaki had no dial at all; Aqre's reaches past both ends.

The bank: grades the dial can build, and grades it cannot

Generating the shipped bank acts this story out. A quota-graded board
never comes out of a random partition (that 0.0% column), but drawing
monochrome regions along the answer's color boundaries
makes every
number 0 or the region's size — a quota-solvable board at any size you
like, the dial turned all the way down. Meanwhile fishing with random
partitions produced zero quad-graded boards at 8×8 and beyond, and zero
bridge-graded boards at 10×10
, across thousands of attempts. The middle
difficulty grades don't exist at scale, and the UI greys out what a size
cannot produce. In Nurimisaki the bottom grades vanished with size; in
Aqre only the middle vanishes — the easiest grade survives because the
setter can construct it, the hardest because probability keeps supplying
it.

The shipped boards are adversarially thinned: at 10×10 a median of 39
numbers survives out of a median 57 regions. Proving uniqueness takes a
median of 0 search guesses at 6×6 and 8×8 (the fixpoint alone is the
proof for most boards) and 32.5 at 10×10.

The probe = uniqueness law breaks a second time

The law "probe solve rate = uniqueness rate" broke for the first time in
this series with Kurotto, then came back at every measured point in
Nurimisaki. In Aqre it breaks again — that small gap between the probe
and unique columns in the first table. Unique boards the probe fixpoint
cannot finish: 3 of 67 at 6×6, 2 of 25 at 8×8, 1 of 3 at 10×10. Some
alternative solutions can only be excluded by rearranging several cells at
once, which no single-cell assumption ever sees. Thirty-nine puzzles in,
the verdict on the law: usually true, never guaranteed.

Bonus: the generator that hung for eight hours

While measuring, two 10×10 board-generation runs from fixed seeds hung
for over eight hours — both stuck on the same board. The generator is a
randomized DFS propagating quad and bridge at every node; almost
every attempt finishes in a few dozen nodes, but a rare unlucky early
guess commits the search to an astronomically large dead subtree. That
heavy-tailed runtime is a classic pathology of randomized backtracking,
and the classic cure is a Las Vegas restart: abandon any attempt that
exceeds 5,000 nodes and redraw from the random stream. Restarts fire on
well under 1% of attempts, determinism per seed is preserved, and the
hang is gone.

Verification

  • Solution-count cross-check: a brute force that shares no code with the rule ladder (row-major DFS, pruned only by restatements of the printed rules, every leaf scored by a standalone validator) agrees with the propagating search at all four levels on every (board, level) pair that finished — 534/534. Twenty-six weak-level searches hit the 300k-guess cap and are reported as skipped rather than silently shaping the claim.
  • Exhaustive anchors: the clue-free 2×2, 3×3 and 4×4 boards are enumerated three independent ways — a plain bitmask loop, the brute force, and the searching engine — all returning 14 / 219 / 798.
  • Bank integrity: all 45 shipped boards are re-verified unique by the searching engine and graded by the weakest level that finishes them without guessing.

38 tests. npm test runs them all.

Takeaways

  • Aqre's clue budget is the region partition, and the setter owns it outright. The granularity dial sweeps uniqueness from 100% to 0.7%; the density dial barely works at all.
  • The ladder looks hollow in the middle — 0.0-point incremental gains — yet ablation collapses on removing any rule. Rules that cannot walk alone carry full load as the probe's sensors. Measure both directions.
  • The middle difficulty grades don't exist at scale: no quad-graded boards past 6×6, no bridge-graded boards at 10×10. The easy end is constructible, the hard end is probable; only the middle dies.
  • Probe = uniqueness breaks for the second time in the series: at 10×10, 1 unique board in 3 resists the probe fixpoint.
  • A randomized generator with heavy-tailed runtime hung for 8+ hours; a 5,000-node Las Vegas restart fixed it without losing determinism.

TypeScript + Vite, no runtime dependencies. All the code is public.

Repo: https://github.com/sen-ltd/aqre

Top comments (0)