It has been interesting to watch all this new development in producing hard sudukos the last couple of weeks. Good work!
However, it is disapointing to discover, that most solvers did not produce a constant rating of a puzzle, when the puzzle is scrampled. You should expect that. The new discovered solver, Sudoku Explainer, seems to be better in this regard, and in the same time it is able to break all known sudokus. The rating from the Explainer is based on the worst chain (I suppose longest) used in the solving proces. It do not rate the number of steps. I have counted the number of steps for some of the top sudokus below:
- Code: Select all
Sudoku name Explainer Explainer steps Ravel solver
rating rated >=4 steps
Ocean #7/18: 9.9 61 12
Ocean #3/3: 9.9 51 11
top1465 #77: 9,8 46 10
Ocean #6/18: 9.8 53 10
Ocean #1/3: 9.5 45 11
Ocean #1/18 9.5 54 7
Ocean #11/18 9.4 68 15
tso #7/31: 9.4 43 12
tso #3/31: 9.4 52 7
top1465 #89: 9,3 51 10
However some of the steps may not be nescessary in order to solve the puzzle. Well I don't think the table above make any new discoveries.
The rating from the Explainer is like this (copy from Explainer web-site):
1.0: Last value in block, row or column
1.2: Hidden Single in block
1.5: Hidden Single in row or column
1.7: Direct Pointing
1.9: Direct Claiming
2.0: Direct Hidden Pair
2.3: Naked Single
2.5: Direct Hidden Triplet
2.6: Pointing
2.8: Claiming
3.0, 3.2, 3.4: Naked Pair, X-Wing, Hidden Pair
3.6, 3.8, 4.0: Naked Triplet, Swordfish, Hidden Triplet
4.2, 4.4: XY-Wing, XYZ-Wing
4.5 - 5.0: Unique rectangles and loops
5.0, 5.2, 5.4: Naked Quad, Jellyfish, Hidden Quad
5.6 - 6.0: Bivalue Universal Graves
6.2: Aligned Pair Exclusion
6.5 - 7.5: Bidirectioal X-Cycles and Y-Cycles
6.6 - 7.6: Forcing X-Chains
7.0 - 8.0: Forcing Chains, Bidirectional Cycles
7.5 - 8.5: Nishio
8.0 - 9.0: Cell/Region Forcing Chains
8.5 - 9.5: Dynamic Forcing Chains
9.0 - 10.0: Dynamic Forcing Chains (+)
Can anyone tell the difference between the last four lines?
The Sudoku Explainer do also have some shortcommings. In the example below an elimination of a candidate can be made manually using 22 links (with no special tricks). The Explainer uses 52 links (I think so). Possibly such a "monster chain" cause the rating by the Explainer to increase abnormally for a puzzle. The Explainer errornets produce a contradiction on a candidate value in a cell to be true or false.
The contradiction, "empty cell" is never used and therefore extra links may be needed to reach a contradiction. Another reason could be, that is just not able to find the shortest chain.
The number of links to produce the rating 9.9 seems to be 68 for Ocean #7/18.
Example from no.89 of top1465:
- Code: Select all
1469 124 468 | 3 267 78 | 5 24689 4689
469 5 2468 | 69 1 28 | 7 3 468
39 238 7 | 5689 256 4 | 69 2689 1
----------------------+----------------------+----------------------
2 378 9 | 158 357 13578 | 4 1678 3568
345 6 348 | 12458 9 123578 | 138 178 358
345 3478 1 | 458 3457 6 | 389 789 2
----------------------+----------------------+----------------------
8 14 346 | 7 3456 135 | 2 1469 3469
7 9 2346 | 1246 8 123 | 136 5 346
1346 1234 5 | 146 2346 9 | 138 1468 7
My manual errornet for eliminating 3 from r7c9 is like this:
- Code: Select all
[r7c9](-3-[r7c3])
(-3-[r45c9])
(-3-[r8c9])
=9=[r7c8]-9-[r6c8]=9=[r6c7]=3=[r5c7]-3-[r5c3]=3=[r8c3]=2=[r9c2]-2-[r13c2]=2=[r2c3]
-2-[r2c6](-8-[r2c9])
-8-[r1c6]-7-[r5c6]=7=[r5c8]=1=[r4c8]=6=[r4c9](-6-[r2c9])
-6-[r8c9]-4-[r2c9]
=> empty cell r2c9 => r7c9<>3
This errornet produce the contradiction (empty cell) using 22 links.
The exsact same puzzle was given to the Sudoku Explainer. It produces the elimination using 52 links and the contradicion is the value being 6 or not 6. Here is the text copied from the program:
Dynamic Contradiction Forcing Chains
With this rule, we will prove the two following assertions:
If R7C9 contains the value 3, then R4C8 must contain the value 6
If R7C9 contains the value 3, then R4C8 cannot contain the value 6
Because the same assumption yields to contradictory results, we can conclude that the assumption is false, that is, R7C9 cannot contain the value 3.
Each assertion is proved by a different chain of simple rules. The chains can be dynamic, which means that the conclusions of multiple sub-chains must be combined in some cases.
The details of each chain are given below. Use the view selector below the grid to switch between the graphical illustrations of the two different chains.
Chain 1: If R7C9 contains the value 3, then R4C8 cannot contain the value 6 (View 1):
(1) If R7C9 contains the value 3, then R7C9 cannot contain the value 9 (the cell can contain only one value)
(2) If R7C9 does not contain the value 9, then R7C8 must contain the value 9 (only remaining possible position in the block)
(3) If R7C8 contains the value 9, then R6C8 cannot contain the value 9 (the value can occur only once in the column)
(4) If R6C8 does not contain the value 9, then R6C7 must contain the value 9 (only remaining possible position in the block)
(5) If R6C7 contains the value 9, then R6C7 cannot contain the value 3 (the cell can contain only one value)
(6) If R7C9 contains the value 3 (initial assumption), then R4C9 cannot contain the value 3 (the value can occur only once in the column)
(7) If R7C9 contains the value 3 (initial assumption), then R5C9 cannot contain the value 3 (the value can occur only once in the column)
(8) If R5C9 does not contain the value 3, R4C9 does not contain the value 3 (6) and R6C7 does not contain the value 3 (5), then R5C7 must contain the value 3 (only remaining possible position in the block)
(9) If R5C7 contains the value 3, then R5C3 cannot contain the value 3 (the value can occur only once in the row)
(10) If R7C9 contains the value 3 (initial assumption), then R7C3 cannot contain the value 3 (the value can occur only once in the row)
(11) If R7C3 does not contain the value 3 and R5C3 does not contain the value 3 (9), then R8C3 must contain the value 3 (only remaining possible position in the column)
(12) If R8C3 contains the value 3, then R8C3 cannot contain the value 2 (the cell can contain only one value)
(13) If R8C3 does not contain the value 2, then R2C3 must contain the value 2 (only remaining possible position in the column)
(14) If R2C3 contains the value 2, then R2C6 cannot contain the value 2 (the value can occur only once in the row)
(15) If R2C6 does not contain the value 2, then R2C6 must contain the value 8 (only remaining possible value in the cell)
(16) If R2C6 contains the value 8, then R2C9 cannot contain the value 8 (the value can occur only once in the row)
(17) If R7C9 does not contain the value 9 (1), then R1C9 must contain the value 9 (only remaining possible position in the column)
(18) If R1C9 contains the value 9, then R3C7 cannot contain the value 9 (the value can occur only once in the block)
(19) If R3C7 does not contain the value 9, then R3C7 must contain the value 6 (only remaining possible value in the cell)
(20) If R3C7 contains the value 6, then R2C9 cannot contain the value 6 (the value can occur only once in the block)
(21) If R2C9 does not contain the value 6 and R2C9 does not contain the value 8 (16), then R2C9 must contain the value 4 (only remaining possible value in the cell)
(22) If R2C9 contains the value 4, then R1C8 cannot contain the value 4 (the value can occur only once in the block)
(23) If R7C8 contains the value 9 (2), then R7C8 cannot contain the value 4 (the cell can contain only one value)
(24) If R7C8 does not contain the value 4 and R1C8 does not contain the value 4 (22), then R9C8 must contain the value 4 (only remaining possible position in the column)
(25) If R9C8 contains the value 4, then R9C8 cannot contain the value 6 (the cell can contain only one value)
(26) If R3C7 contains the value 6 (19), then R1C8 cannot contain the value 6 (the value can occur only once in the block)
(27) If R3C7 contains the value 6 (19), then R3C8 cannot contain the value 6 (the value can occur only once in the block)
(28) If R7C8 contains the value 9 (2), then R7C8 cannot contain the value 6 (the cell can contain only one value)
(29) If R7C8 does not contain the value 6, R3C8 does not contain the value 6 (27), R1C8 does not contain the value 6 (26) and R9C8 does not contain the value 6 (25), then R4C8 must contain the value 6 (only remaining possible position in the column)
Chain 2: If R4C8 must contain the value 6, then R4C8 cannot contain the value 6 (View 2):
(1) If R7C9 contains the value 3, then R7C9 cannot contain the value 9 (the cell can contain only one value)
(2) If R7C9 does not contain the value 9, then R7C8 must contain the value 9 (only remaining possible position in the block)
(3) If R7C8 contains the value 9, then R6C8 cannot contain the value 9 (the value can occur only once in the column)
(4) If R6C8 does not contain the value 9, then R6C7 must contain the value 9 (only remaining possible position in the block)
(5) If R6C7 contains the value 9, then R6C7 cannot contain the value 3 (the cell can contain only one value)
(6) If R7C9 contains the value 3 (initial assumption), then R4C9 cannot contain the value 3 (the value can occur only once in the column)
(7) If R7C9 contains the value 3 (initial assumption), then R5C9 cannot contain the value 3 (the value can occur only once in the column)
(8) If R5C9 does not contain the value 3, R4C9 does not contain the value 3 (6) and R6C7 does not contain the value 3 (5), then R5C7 must contain the value 3 (only remaining possible position in the block)
(9) If R5C7 contains the value 3, then R5C3 cannot contain the value 3 (the value can occur only once in the row)
(10) If R7C9 contains the value 3 (initial assumption), then R7C3 cannot contain the value 3 (the value can occur only once in the row)
(11) If R7C3 does not contain the value 3 and R5C3 does not contain the value 3 (9), then R8C3 must contain the value 3 (only remaining possible position in the column)
(12) If R8C3 contains the value 3, then R8C3 cannot contain the value 2 (the cell can contain only one value)
(13) If R8C3 does not contain the value 2, then R2C3 must contain the value 2 (only remaining possible position in the column)
(14) If R2C3 contains the value 2, then R2C6 cannot contain the value 2 (the value can occur only once in the row)
(15) If R2C6 does not contain the value 2, then R2C6 must contain the value 8 (only remaining possible value in the cell)
(16) If R2C6 contains the value 8, then R1C6 cannot contain the value 8 (the value can occur only once in the block)
(17) If R1C6 does not contain the value 8, then R1C6 must contain the value 7 (only remaining possible value in the cell)
(18) If R1C6 contains the value 7, then R5C6 cannot contain the value 7 (the value can occur only once in the column)
(19) If R5C6 does not contain the value 7, then R5C8 must contain the value 7 (only remaining possible position in the row)
(20) If R5C8 contains the value 7, then R5C8 cannot contain the value 1 (the cell can contain only one value)
(21) If R5C7 contains the value 3 (8), then R5C7 cannot contain the value 1 (the cell can contain only one value)
(22) If R5C7 does not contain the value 1 and R5C8 does not contain the value 1 (20), then R4C8 must contain the value 1 (only remaining possible position in the block)
(23) If R4C8 contains the value 1, then R4C8 cannot contain the value 6 (the cell can contain only one value)
/Viggo