Logical Sudoku Solver

A powerful algorithmic tool designed to conquer even the most challenging Sudoku puzzles without resorting to brute force, guessing, or backtracking. This solver showcases a refined approach to puzzle solving, providing users with detailed insights at every step.
XWing example
Techniques
Solo Candidate
The solo candidate technique is a simple technique for identifying the value of cells where a cell has only one candidate, therefore the cell must be that candidate. This technique has been implemented using a O(N^{2}) complexity algorithm as every cell in the grid must be checked. Multiple solo candidates can be observed in one pass of the algorithm. Using only this strategy is not sufficient enough to solve any 17clue Sudoku.
Hidden Candidate
The hidden candidate technique is another simple technique for identifying the value of cells. If a candidate is valid in only one cell within a column, row or sector then that cell must be that value. This technique has been implemented using a O(N^{3}) complexity algorithm as each cell in a structure (column, row, sector) must be checked against each candidate. Using only the Single Candidate and Hidden Candidate techniques, 44.6% of the 49,151 17clue Sudoku were solved. However, these two strategies are sufficient enough to solve every simple Sudoku.
Subset Cover (Pairs/Triples/Quads/Quints)
The subset cover technique eliminates candidates within a column, row or sector. If a subset of N cells within a structure covers N different candidates (i.e. union of candidates in the N cells is of size N) then the candidates must be contained within these N cells and cannot appear elsewhere in the structure. This technique is only valid for 2<=N<=5 as any subset of size N greater than 5 will automatically be composed of a smaller subset of size (9N) which will be simpler to solve.
Pointing Pairs/Triples
The pointing pairs/triples technique eliminates candidates within a column or row. If a candidate occurs either two or three times within a sector and these cells are all within the same column/row, then the value must be located within the sector and cannot occur elsewhere the column/row. This technique has been implemented using a O(N^{3}) complexity algorithm as each cell in every sector must be checked for each candidate.
Box/Line intersection
The box/line intersection technique eliminates candidates within a sector. If a candidate value in a column/row only appears within one sector, then that candidate must occur in the sector in that column/row, and so the candidate can be eliminated from the other cells in the same sector. This technique has been implemented using a O(N^{3}) complexity algorithm as each cell in a column/row must be checked for every column/row.
XWing
The XWing technique is a subset of single value chaining strategies where a candidate is restricted in two cells along a column in two different columns that all share the same rows. The technique can also be expressed as two conjugate pairs joined by two weak links where the four cells form a rectangle. This technique has been implemented using a O(N^{3}) complexity algorithm.
Singles Chain
The singles chain technique firstly identifies for a given candidate all the conjugate pairs. Then constructs a connected graph of conjugate pairs with nodes of alternating state (ON/OFF). The conjugate pairs are used to find either violations of cells in the graph (two cells of the same state that are in the same structure) or cells not in the graph that can see nodes of both states. This technique has been implemented using an adjacency list to store the graph on conjugate pairs leading to an algorithmic complexity of O(N^{3}).
YWing
The YWing technique is a bivalue chaining strategy that uses three bivalue cells to eliminate candidates. The head of the YWing has candidates AB, there are two wings that share the same structure as the head with candidates AC and BC respectively. Whatever the actual value of the head, either wing must be C. Therefore any cells that intersect with both wings can remove C as a candidate. This technique has been implemented using a O(N^{3}) complexity algorithm.
Unique Rectangles
The Unique Rectangle technique eliminates candidates by preventing a state where there exist multiple solutions. A Unique Rectangle is a group of four cells that form a rectangle of which the cells occupy exactly two sectors. Additionally, three of the cells in the rectangle must be AB and the remaining cell must contain at least AB. This cell cannot be A or B as it would form a rectangle where the A or B are interchangeable.
Swordfish
The Swordfish technique is an extension of the XWing technique but where a candidate is restricted in three cells along a column in three different columns that all share the same rows.
Jellyfish
The Jellyfish technique is an extension of both the XWing and Swordfish techniques, but with a candidate restricted in four cells along a column in four different columns that all share the same rows.
BiValue Universal Grave
The BiValue Universal Grave (BUG) is a state that a Sudoku can reach where all unsolved cells in the Sudoku have only 2 candidates, except a single cell that has 3 candidates. The aim of this technique to detect the BUG state and use it to eliminate candidates. This technique has been implemented using a O(N^{2}) complexity algorithm.
XYZWing
The XYZWing technique is an extension of the YWing technique but with the head containing 3 candidates instead of 2. The head of the XYZWing has candidates XYZ, there are two wings that share the same structure as the head with candidates XZ and YZ respectively. Any cells that intersect with all 3 cells of the XYZWing cannot contain the candidate Z. This technique has been implemented using a O(N^{3}) complexity algorithm.
WXYZWing
The WXYZWing technique is a further extension of YWing and XYZWing but with the head containing 4 candidates and three wings that share candidates with the head and have a single common candidate between all 4 cells. If all cells in the WXYZWing have candidate Z, then candidate Z can be removed from every cell that intersects with all 4 cells of the WXYZWing.