# Solving Methods

### Basic methods:

In version 4.4 I use three basic methods.

(1) **Last digit**. When there is only one cell left unsolved in a unit (box/row/column), the only missing digit is filled in.

(2) **Hidden single**. If there is only one cell in a unit that has a digit as a candidate, e.g. 2, that cell is set to 2. Units are searched in the order boxes, rows, columns, and digits 1–9 within units.

(3) **Naked single**. If a cell has one candidate, that candidate is filled in. I have put this as the last basic technique because it may be difficult to spot when solving on paper.
### Advanced methods:

(4) **Intersection** consists of four methods: box versus row/column (pointing pair or pointing triple) and row/column versus box (box/line reduction).

(5) **Locked sets** are naked and hidden pairs, triples and quads. My program currently only tests for naked sets, so e.g. a hidden triple in a box with 8 unsolved cells is shown as a locked set with 8–3=5 matching digits. Units are searched in the order boxes, rows, columns, and within units 2, 3, ... matching digits.

(6) An **xy wing** is formed by three cells, one pivot cell with xy as (the only) candidates, and two pincer pincer cells with candidates xz and yz. xy wings also include the xyz wing and wings with more than two pincer cells (sometimes called wxy/wxyz wings for three pincer cells). This is shown as *xy and *xyz.

(7) What I call **n-wing** (2-wing, 3-wing, 4-wing), is commonly known as X-wing, swordfish and jellyfish (or n-fish), but I found these names obscure. In mathematics it is common to let 'n' denote an unknown interger and also an n-wing is a special case of nishio, so you can interpret "n-wing" as "nishio wing".

(8) **Nishio** is a powerful single digit technique. It works in a similar way as chains and candidate testing by setting one cell and then following the consequences. A digit is set, and if this leeds to a contradiction (looking only at one digit at a time), it is eliminated. The order is 1–9, the cells searched from top to bottom within digits. Nishio is practically equivalent to POM (Pattern Overlay Method), but the programming approach is different. POM calculates all the valid ways to place one digit (1–9) and then removes candidates which don't belong to a valid pattern.

(9) **Chains** are performed on all cells with two candidates (bi-value) in two steps: (a) if setting one of the candidates leeds to a contradiction, it is eliminated. (b) if setting the different candidates of one cell leeds to the same elimination in another cell, the candidate in that other cell is eliminated. It may also leed to setting the same candidate in another cell, but this is unusual. Chains are only followed within the set of bi-value cells, but a contradiction or elimination may occur anywhere on the board.
### Complete eliminaton:

(10) **Candidate testing** in one step. Each candidate is tried is the same way as if the it had been a given using the advanced methods chosen. There are three possible results: (a) setting the candidate leeds to a contradiction, that is a cell without candidates or a unit where a digit can't be set (b) a solution is found (c) there are still unsolved cells left. I have divided the set of candidates into two subsets. The first consist of candidates in bi-value cells and candidates with two possible placements in one unit (bi-location). The other subset is the rest of the candidates.

(11) **Ariadne's thread** is candidate testing in multiple steps, the ultimate eliminator. It is only needed for the most extreme sudokus (and incomplete boards with several solutions). If setting one candidate leaves unsolved cells, further candidates are set recursively (bifurcation) until we have a solution or no candidate in one cell leed to solution. In the latter case we have a contradiction and can remove one candidate. Here too we try bi-values and bi-locations first, denoted "(two)".
More detailed descriptions with examples and graphics will be added shortly.

For further terminology and examples see e.g. __www.sudokuwiki.org__ or __www.sudocue.net__.

A good book source for solving methods is *The Logic of Sudoku* by **Andrew C Stuart**, for which I have compiled an Errata List.

© Mats Anderbok 2009

*Last modifed 2009-02-19*