I held off posting the latest hardest with ER (and new -q1 from my solver) ratings
because for the longest time I couldn't factor out isomorphisms from the proposition logic
after stepping away from it for a week it became clear that knee-jerk coding optimizations were the culprit
i.e., the more optimizations the more the rating algorithms became susceptable to
differences between isomorphic puzzle permutations
its still not perfect (some differences still surface between isomorphic permutations)
but the differences seem to be under 1%
as with the inferior and superior step counting threads from last year, batching moves
(eliminations and placements) plays a big part in counting steps across equivalent puzzles
the harder puzzles require single propositions to solve
and more recently the hardest puzzles require paired propositions with singles and
box-line (locked candidate) constraints
here is the -q1 rating setup:
first, let the
degree of a candidate be the number of choices the candidate is part of
e.g., the degree of a clue (given) is 1, the degree of each candidate in a bivalue cell is 2,
the degree of a candidate at one end of a strong link is 2
the degree of each candidate in a cell with
n candidates is at most
n, but may
be less depending on the links to each candidate
when singles fail to progress the solution:
1-candidate propositions using singles are attempted for all candidates with degree 2
if that fails to progress the solution then degrees 3 .. 9 are tried in order
stopping at the degree that progresses the solution and restarting with singles
(stepping by degree is the backtrack tree search heuristic that explores the most
constrained paths first with the hopes of early pruning -- without this ordering, counting all
propositions for the hardest puzzles would explode)
if 1-candidate propositions fail to progress the solution:
2-candidate propositions (paired/nested) using singles are attempted for all candidates with degree 2
2x3, 2x4, ..., 3x3, 3x4, ..., 9x9 and so on until paired candidates with degrees
d,e progress the solution
if 2-candidate propositions using singles fail to progress the solution:
the whole process is restarted with propositions using singles and box-line constraints
(the hardest of the recent hardest fall to propositions using singles and box-line)
the rating counts singles steps as in the inferior and superior threads, and counts
all proposition constraint iterations, with some extra weight for box-line constraints
constraint iterations counts the number of times the basic constraints (singles box-line)
are reapplied, after an initial candidate placement, to reach steady state
i.e., after a placement the singles constraints may induce more placements, and those more placements, and so on
eventually reapplication of the constraints will either solve the puzzle or stop making new placements
but nobody solves with just singles and box-line!
true, but observing how puzzles react to singles (box-line) with 1 and 2 candidate propositions
precipitates the puzzles into strata that reasonably match the progression of hardness
we've seen in this forum
I've compiled the 651 puzzles in CSV form with a #! schema header so it can be run back through my solver
- Code: Select all
#!sudoku -c4,Q1,ER,XR,puzzle,label,Q1time,ERtime,stats
Q1 my solver -q1 rating
ER SE rating
XR dukosu's suexrat rating
puzzle the puzzle
label puzzle label / author / date
Q1time the elapsed time to compute Q1 @ 3.2Ghz
ERtime the elapsed time to compute ER @ 2.0 Ghz
one took 10h58m!stats the constraint stats listed by %#c#/q in my solver
of interest for the hardest are the
P (proposition) constraint stats:
P0 number of times propositions were applied
P1 number of moves (placements/eliminations) for all propositions
P2 total number of propositions
P3 total number of proposition solutions
P4 total number of proposition contradictions
P5 total number of proposition constraint iterations
P6 maximum single proposition constraint interation
P7 maximum proposition candidate degree
P8 1: single proposition, 2: nested (paired) proposition
the Q1 rating counts simple steps, P5, and the total number of box-line moves (including
those used by propositions) x 1000
- Code: Select all
-R'I0+P5+B*1000'
you can try your own ratings with a -R expression after the -q1 option
the Q is for quick -- ~4min to rate the 651 @ 3.2Ghz
I'm fairly satisfied with the spread
the singles backdoor size 3 (conjecture breakers) puzzles are at the top
there will be disagreement with SE because it weights the single hardest move over all others,
and Q1 takes into account
all moves (within the given constraints and proposition logic)
the data file is
here