pierrenay2 wrote:I have been looking for a solver/ rating system while testing an AI classic Sudoku generator, i came across Hodoko which appears to work quite in delivering a simple score/time based rating system and can be batch processed. as a non master sudoku player, could I ask if the Hodoku rating system is somewhat of the gold standard ? or are there other systems out there ?
denis_berthier wrote:pierrenay2 wrote:I have been looking for a solver/ rating system while testing an AI classic Sudoku generator, i came across Hodoko which appears to work quite in delivering a simple score/time based rating system and can be batch processed. as a non master sudoku player, could I ask if the Hodoku rating system is somewhat of the gold standard ? or are there other systems out there ?
The Hodoku rating system is worth 0.
The only generally accepted system is the Sudoku Explainer Rating.
I have some doubts about an AI generator, unless it includes a non-AI very fast solver.
pierrenay2 wrote:Sudoku Explainer default label of HARD = Difficulty rating: 1.7 > 2.5 (Direct Hidden Pair)
The term HARD doesn't necessarily indicate that the puzzle is HARD to solve although it sits 3rd tier up the rank in difficulty / i.e. : difficulty rating more based on difficulty to generate.
therefore, Are the labels used in S.Explainer such as HARD the standard to refer to ( as per excel screen grab? )
How does the Sudoku Explainer rate the difficulty of a Sudoku?
The difficulty is rated by the hardest solving technique that is required to solve it. This is not necessary the best rating scheme, and many other solvers might use different rating for some solving techniques (see previous question).
More precisely, the Sudoku Explainer uses the following difficulty ratings of the solving techniques:
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 (+)
> 9.5: Nested Forcing Chains
It seems that the difficulties 1.2, 1.5, 1.7 and >= 2 correspond to the degrees 1, 2, 3 and 4 of some newspapers. Note that many solvers are rating Naked Singles easier than Hidden Singles (which is reasonable when candidates are always visible). According to some sources, "diabolical" Sudokus are those that are not solvable without trial and error. But there is a great controversy on what "trial and error" means.
pierrenay2 wrote: as for Ai solvers, as far as i know , there are simple backtracking algorithms using grunt force, not much use really.
ghfick wrote:Sudoku Explainer [SE] uses 3 facets of a puzzle's difficulty : explainer rating (ER), the pearl rating (EP) and the diamond rating (ED).
ghfick wrote:For example, SE might give an ER of 11.0 but the actual solution path might contain just one 11.0 step or many such steps at 11.0 or close to 11.0. So should the puzzle with many 11.0 steps be rated harder than a puzzle with just one 11.0 step?
ghfick wrote:Both HoDoKu and SE are not current. champagne has detailed a 'potential hardest' list based on SE but he has also separated off these really hard puzzles [based on SE] into those that can now be solved with steps like Junior Exocet, MSLS and other more recently developed techniques.
denis_berthier wrote:pierrenay2 wrote:Sudoku Explainer default label of HARD = Difficulty rating: 1.7 > 2.5 (Direct Hidden Pair)
The term HARD doesn't necessarily indicate that the puzzle is HARD to solve although it sits 3rd tier up the rank in difficulty / i.e. : difficulty rating more based on difficulty to generate.
therefore, Are the labels used in S.Explainer such as HARD the standard to refer to ( as per excel screen grab? )
How does the Sudoku Explainer rate the difficulty of a Sudoku?
The difficulty is rated by the hardest solving technique that is required to solve it. This is not necessary the best rating scheme, and many other solvers might use different rating for some solving techniques (see previous question).
More precisely, the Sudoku Explainer uses the following difficulty ratings of the solving techniques:
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 (+)
> 9.5: Nested Forcing Chains
It seems that the difficulties 1.2, 1.5, 1.7 and >= 2 correspond to the degrees 1, 2, 3 and 4 of some newspapers. Note that many solvers are rating Naked Singles easier than Hidden Singles (which is reasonable when candidates are always visible). According to some sources, "diabolical" Sudokus are those that are not solvable without trial and error. But there is a great controversy on what "trial and error" means.
denis_berthier wrote: The only AI solver I know of is mine: https://github.com/denis-berthier/CSP-Rules-V2.1
It will be of no use for generating puzzles. But it can be used to filter puzzles generated by a fast generator. I do it when I propose a puzzle in the "Puzzles" section.
1.0 Single
1.2 Hidden Single in box
1.5 Hidden Single in line
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 Naked Pair
3.2 X-Wing
3.4 Hidden Pair
3.6 Naked Triplet
3.8 Swordfish
4.0 Hidden Triplet
4.2 XY-Wing
4.3 [Direct Hidden Quad]
4.4 XYZ-Wing
4.5 UR Types 1 or 2 or 4 or 3 w/ hidden pair
4.6 UR Type 3 w/ naked pair or hidden triplet
UL Types 1 or 2 or 4 or 3 w/ hidden pair (6 cells)
4.69 UL Type 3 w/ a naked pair or hidden triplet (6 cells)
4.7 UR Type 3 w/ naked triplet or hidden quad
UL Types 1 or 2 or 4 or 3 w/ hidden pair (8 cells)
4.8 UR Type 3 w/ naked quad
UL Type 3 w/ naked triplet [or hidden quad] (6 cells)
UL Type 3 w/ naked pair or hidden triplet (8 cells)
4.89 UL Type 3 w/ naked quad (6 cells)
4.9 [UL Type 3 w/ naked triplet or hidden quad (8 cells)]
5.0 Naked Quad or UL 1 or 2 or 4 (>=10 cells)
5.1 UL Type 3 w/ naked pair (>=10 cells)
5.2 Jellyfish
5.3 Unknown
5.4 Hidden Quad
5.5 Unknown
5.6 BUG Type 1
5.7 BUG Type 2 or 4
5.8 BUG Type 3 w/ naked pair
5.9 BUG Type 3 w/ naked triplet
6.0 BUG Type 3 w/ naked quad
6.1 BUG Type 3 w/ naked quint
6.2 Aligned Pair Exclusion
6.3 Unknown
6.4 Unknown
6.5 Bidirectional X-Cycle or Bidirectional Y-Cycle (1-4 nodes)
6.6 Turbot Fish
Forcing X-chain or Bidirectional Y-Cycle (5-6 nodes)
6.69 Forcing X-Chain (7-8 nodes)
6.7 Bidirectional Y-cycle (7-8 nodes)
6.8 Forcing X-Chain or Bidirectional Y-cycle (9-12 nodes)
6.9 Forcing X-Chain or Bidirectional Y-cycle (13-16 nodes)
7.0 Bidirectional Y-cycle (17-24 nodes)
Forcing Chain or Bidirectional Cycle (1-4 nodes)
7.1 Forcing Chain or Bidirectional Cycle (5-6 nodes)
7.2 Forcing Chain or Bidirectional Cycle (7-8 nodes)
7.3 Forcing Chain or Bidirectional Cycle (9-12 nodes)
7.4 Forcing Chain (13-16 nodes)
7.5 Forcing Chain (17-24 nodes)
Aligned Triplet Exclusion
7.6 Forcing Chain (25-36 nodes)
Nishio Forcing Chain (5-6 nodes)
7.7 Nishio Forcing Chain (7-8 nodes)
7.8 Nishio Forcing Chain (9-12 nodes)
7.9 Nishio Forcing Chain (13-16 nodes)
8.0 Nishio Forcing Chain (17-24 nodes)
8.1 Nishio Forcing Chain (25-36 nodes)
8.2 Multiple (7-8 nodes) Region Forcing Chains
8.3 Multiple (9-12 nodes) Cell/Region Forcing Chains
8.4 Multiple (13-16 nodes) Cell/Region Forcing Chains
8.5 Multiple (17-24 nodes) Cell/Region Forcing Chains
8.6 Multiple (25-36 nodes)
Dynamic (5-6 nodes) Cell/Region Forcing Chains
8.7 Dynamic (7-8 nodes) Cell/Region Forcing Chains
8.8 Dynamic (9-12 nodes) CRCD Forcing Chains
8.9 Dynamic (13-16 nodes) CRCD Forcing Chains
9.0 Dynamic (17-24 nodes) CRCD Forcing Chains
9.1 Dynamic (25-36 nodes) CRCD Forcing Chains
9.2 Dynamic (37-48 nodes) CRCD Forcing Chains
9.3 Dynamic (49-72 nodes)
Dynamic + (9-12 nodes) CRCD Forcing Chains
9.4 Dynamic (73-96 nodes)
Dynamic + (13-16 nodes) CRCD Forcing Chains
9.5 Dynamic + (17-24 nodes) CRCD Forcing Chains
9.6 Dynamic + (25-36 nodes) CRCD Forcing Chains
9.7 Dynamic + (37-48 nodes) CRCD Forcing Chains
9.8 Dynamic + (49-72 nodes) CRCD Forcing Chains
9.9 Dynamic + (73-96 nodes) CRCD Forcing Chains
10.0 Dynamic + (97-144 nodes)
Dynamic + Forcing Chains (17-24 nodes) CRCD Forcing Chains
10.1 Dynamic + (145-192 nodes)
Dynamic + Forcing Chains (25-36 nodes) CRCD Forcing Chains
10.2 Dynamic + Forcing Chains (37-48 nodes) CRCD Forcing Chains
10.3 Dynamic + Forcing Chains (49-72 nodes) CRCD Forcing Chains
10.4 Dynamic + Forcing Chains (73-96 nodes) CRCD Forcing Chains
10.5 Dynamic + Forcing Chains (97-144 nodes) CRCD Forcing Chains
10.6 Dynamic + Forcing Chains (145-192 nodes) CRCD Forcing Chains
10.7 Dynamic + Forcing Chains (193-288 nodes) CRCD Forcing Chains
10.8 Dynamic + Forcing Chains (289-384 nodes) CRCD Forcing Chains
10.9 Dynamic + Multiple Forcing Chains (73-96 nodes) CRCD Forcing Chains
11.0 Dynamic + Multiple Forcing Chains (97-144 nodes) CRCD Forcing Chains
11.1 Dynamic + Multiple Forcing Chains (145-192 nodes) CRCD Forcing Chains
11.2 Dynamic + Multiple Forcing Chains (193-288 nodes) CRCD Forcing Chains
11.3 Dynamic + Multiple Forcing Chains (289-384 nodes) CRCD Forcing Chains
11.4 Dynamic + Multiple Forcing Chains (385-576 nodes) CRCD Forcing Chains
11.4 [Dynamic + Dynamic Forcing Chains (73-96 nodes) Region/Contradiction Forcing Chains]
11.5 [Dynamic + Dynamic Forcing Chains (97-144 nodes) Region Forcing Chains]
11.6 [Dynamic + Dynamic Forcing Chains (145-192 nodes) Cell Forcing Chains]
11.7 [Dynamic + Dynamic Forcing Chains (193-288 nodes) Double Forcing Chains]
CRCD=Cell/Region/Contradiction/Double
UL=Unique Loop
UR=Unique Rectangle
BUG=Bivalue Universal Grave
1to9only wrote:Here is a finer breakdown of SE Ratings I copied off a very old thread here, found it whilst browsing/searching for somethings else!
1to9only wrote:Here is a finer breakdown of SE Ratings I copied off a very old thread here, found it whilst browsing/searching for somethings else!
pierrenay2 wrote:in terms of sudoku generator, aside from the experimental AI generator mentioned earlier : I have been using QQWING, assume there is no issue there
denis_berthier wrote:pierrenay2 wrote:in terms of sudoku generator, aside from the experimental AI generator mentioned earlier : I have been using QQWING, assume there is no issue there
I had never heard of it before. As long as it produces puzzles with a unique solution (preferably minimal), I don't think there can be any problem.
You could compare generation speed with other generators, for instance the classical top-down suexg-td.c - which I have included here for reference: https://github.com/denis-berthier/Controlled-bias_Sudoku_generator_and_collection/tree/master/PROGRAMS
You're probably already aware that different types of generators output different distributions of puzzles (wrt complexity). Otherwise, see chapter 6 of [PBCS].