From 8db952dcd4abc2ae1bf3c0d9549408b3f1d3bc6a Mon Sep 17 00:00:00 2001 From: ddidderr Date: Sat, 25 Apr 2026 21:32:14 +0200 Subject: [PATCH] docs: add solver visual guide Add a seven-page visual PDF that explains how the Sudoku solver parses input, builds row/column/block constraints, stores candidates as bit masks, applies naked and hidden singles, and orders recursive search branches. The guide is authored as plain HTML/CSS/SVG so the diagrams stay reviewable and can be regenerated without a separate design tool. The README now links to the PDF artifact for quick discovery. Test Plan: - cargo test - pdfinfo docs/solver-visual-guide.pdf - Raster-inspected exported PDF pages with pdftoppm Refs: none --- README.md | 3 + docs/solver-visual-guide.html | 774 ++++++++++++++++++++++++++++++++++ docs/solver-visual-guide.pdf | Bin 0 -> 736196 bytes 3 files changed, 777 insertions(+) create mode 100644 docs/solver-visual-guide.html create mode 100644 docs/solver-visual-guide.pdf diff --git a/README.md b/README.md index fb0f13e..34ee5a8 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,9 @@ cargo run -- sudoku-examples/hard.sudoku cargo run -- sudoku-examples/extreme.sudoku ``` +A visual explanation of the solver is available in +[`docs/solver-visual-guide.pdf`](docs/solver-visual-guide.pdf). + ## Project Decomposition - Command-line interface: `src/main.rs` diff --git a/docs/solver-visual-guide.html b/docs/solver-visual-guide.html new file mode 100644 index 0000000..6b6cbfe --- /dev/null +++ b/docs/solver-visual-guide.html @@ -0,0 +1,774 @@ + + + + + sudoku-ai solver visual guide + + + +
+

sudoku-ai visual guide

+
+
+

How the solver turns blanks into certainty

+

The engine is a compact constraint solver: it models every empty cell as a bit mask, repeatedly applies deterministic Sudoku deductions, then searches only when deduction stalls.

+
+ plain text input + row / column / block units + u128 candidates + naked singles + hidden singles + guided backtracking +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1348 + 7683 + 82174 + 54968 + 91582 + 835 + 3596871 + 64 + 172 + + + 2 4 6 + 7 + + + +
+ +
+
ParseRead whitespace-separated rows and validate the shape.
+
ModelPrecompute units and peers for each cell.
+
MaskTrack every candidate set as bits in a u128.
+
DeducePropagate placements, naked singles, hidden singles.
+
BranchPick the tightest unsolved cell and order values by impact.
+
SolveReturn the first complete state that survives constraints.
+
+
01 / overview
+
+ +
+

1. Input becomes a constraint model

+

The grid is square, but the solver thinks in units and peers

+

After parsing, each cell knows the three units it belongs to: one row, one column, and one block. The union of those units, excluding the cell itself, becomes its peer list.

+ +
+
+
0 2 3 0 +0 0 0 1 +1 0 0 0 +0 4 2 0
+

Blank cells are written as 0. A 4x4 puzzle uses 2x2 blocks; a 9x9 puzzle uses 3x3 blocks; the same machinery handles both.

+
+
3unit kinds per cell
+
27units in a 9x9 puzzle
+
20peers for a 9x9 cell
+
1state object to search
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + cell + + + + + row peers + same horizontal unit + + column peers + same vertical unit + + block peers + same sub-square + + selected cell + + + +

Peers are precomputed once, so assigning a value later is just a quick walk over affected cells.

+
+
+
02 / model
+
+ +
+

2. Candidates are bits, not lists

+

A cell’s possible values fit into one u128

+

Each value maps to one bit. Eliminating a candidate clears its bit; placing a value replaces the whole mask with exactly that bit.

+ +
+
+ + + + 9x9 full mask + values 1 through 9 are initially possible + + + 123 + 456 + 789 + + + + + + + + + + 11111 + 1111 + + + + + After peers place 1, 5, 8 + + + + + + + + + + 111111 + + + 000 + + + + + + mask & !value_bit(value) + + + +
+ +
+
+

Why masks work well here

+

Bit masks make candidate checks tiny: membership is mask & bit != 0, removal is mask &= !bit, and a naked single is count_ones() == 1.

+
+
+
+

Full mask

+

(1 << size) - 1 turns on every legal value bit.

+
+
+

Placed value

+

Once a cell is assigned, its candidate mask becomes exactly value_bit(value).

+
+
+

Contradiction

+

If an unsolved cell’s mask becomes zero, that path is rejected.

+
+
+
+
+
03 / candidates
+
+ +
+

3. Deduction runs until it stalls

+

Every assignment immediately removes pressure from the board

+

The solver loops over simple, strong rules. If any rule places a value, it starts another pass because that placement may unlock more forced moves.

+ +
+ + + + + + + + + + + + assign value + set value and exact mask + + + + propagate + clear this value from peers + + + + naked singles + one remaining candidate + + + + hidden singles + one place in a unit + + + repeat + until stable + + + +
+
+

Naked single

+

A cell with one remaining candidate is forced. The solver detects this with count_ones() == 1, assigns it, and propagates again.

+
+
+

Hidden single

+

For each row, column, and block, the solver checks every value. If only one unsolved cell in that unit can still hold the value, that cell is forced.

+
+
If a unit has no legal place for a value, or a candidate mask goes empty, that path is rejected as a contradiction.
+
+
+
04 / deduction
+
+ +
+

4. Search begins only after deduction stalls

+

The branch point is chosen to make guessing as constrained as possible

+

When no rule can place another value, the solver picks one unresolved cell and tries each candidate in a cloned state.

+ +
+
+ + + + Choose branch cell + Fewest candidates wins; ties prefer more unsolved peers. + + + {2,7} + 2 candidates + 13 open peers + + {1,5,9} + 3 candidates + 18 open peers + + {4,6} + 2 candidates + 17 open peers + selected + + + Order selected candidates + Impact = peers that would lose this value as a candidate. + + + + try 6 first + 17 + + + + + then 4 + 12 + + + + +
+ +
+
+

Cell heuristic

+

The solver scans unresolved cells and keeps the cell with the fewest candidate bits. If two cells are equally tight, it picks the one touching more unsolved peers.

+
+
+

Candidate heuristic

+

For that cell, values are sorted by impact. A value has higher impact when more peer cells currently contain that same value as a candidate.

+
+
+

Tie break

+

If candidate impacts are equal, the smaller value is tried first for deterministic output.

+
+
+
+
05 / search
+
+ +
+

5. Backtracking is just recursive state cloning

+

Every assumption either solves the board or collapses quickly

+

Search clones the current state, assigns one candidate, and immediately re-enters deduction. Failed branches vanish; successful branches return the solved grid.

+ +
+ + + + + deduced state + not solved, no forced moves + + + + + + try value 6 + contradiction during deduction + + + try value 4 + deduction continues + + + + + + more branching + same rules, deeper tree + + + complete grid + return solution + + + + + + + + +
+
+

The core rhythm

+
    +
  • Run deduction before every search decision.
  • +
  • If all cells are filled, return the state.
  • +
  • Otherwise choose one branch cell.
  • +
  • Try candidates in impact order.
  • +
  • Discard any branch that hits a contradiction.
  • +
+
+
Key idea
Most of the “intelligence” is in shrinking the search tree before guessing and making each guess remove as much uncertainty as possible.
+
+
+
06 / backtracking
+
+ +
+

Implementation map

+

Where to look in the code

+

The solver is small enough that the visual model maps directly onto a few functions in src/lib.rs.

+ +
+
+

Parsing

+

Puzzle::parse validates square dimensions, block layout, and value ranges before solving starts.

+
+
+

Constraint model

+

Solver::new creates row, column, and block units; build_peers turns them into peer lists.

+
+
+

Candidate masks

+

full_mask and value_bit encode possible values into a single integer.

+
+
+

Propagation

+

assign places a value, checks duplicate peers, and clears that value from every unsolved peer.

+
+
+

Deduction

+

deduce repeatedly applies naked singles and hidden singles until no rule progresses.

+
+
+

Search

+

search clones states, tries ordered candidates, and returns the first branch that reaches a complete solution.

+
+
+ +
+
Correctness guardContradictions stop invalid givens and impossible branches early.
+
Performance trickPeer lists and bit masks make the hot path small.
+
Search controlFewest candidates narrows the branch factor.
+
Impact orderingHigher-impact values test stronger assumptions first.
+
+
07 / code map
+
+ + diff --git a/docs/solver-visual-guide.pdf b/docs/solver-visual-guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0bd2385fbafa7df8c32a3eecd0b8ad0c42755029 GIT binary patch literal 736196 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