ravel wrote:So you have xy-chains before the techniques i mentioned in your solver.
This is a special xy-chain, because it ends in the starting cell, which directly shows that r3c6=2 (either it is 2 or it is 2).
You are right, the swordfish is nearly to the end of the list my solver uses.
And I doubt that my solver recognizes the special case (will have to check, sometimes it does more than I intended:-)).
For whom it may
concern:
- Code: Select all
Solved 38.239 of 50.000 puzzles (76,5%).
Solving took 9.060.564 ms (181,2 ms/puzzle).
| invocatio applicati eliminatio puzzle used solved duration dur./inv. dur./puz. |
Direct Elimination | 2.438.532 1.131.919 18.819.652 50.000 50.000 38.239 26.107 ms 0,01 ms 0,52 ms |
Hidden Single | 1.306.613 617.116 1.432.665 50.000 49.927 38.237 155.735 ms 0,12 ms 3,11 ms |
Area Intersection | 689.497 240.368 485.022 50.000 49.140 37.765 903.663 ms 1,31 ms 18,07 ms |
Naked Pair | 449.129 40.401 104.476 50.000 25.440 22.236 78.253 ms 0,17 ms 1,57 ms |
Hidden Pair | 408.728 34.590 108.055 49.999 23.960 19.563 335.368 ms 0,82 ms 6,71 ms |
Naked Tripple | 374.138 7.562 25.281 49.942 6.813 5.985 175.531 ms 0,47 ms 3,51 ms |
Hidden Tripple | 366.576 2.387 9.808 49.939 2.307 1.966 235.532 ms 0,64 ms 4,72 ms |
X-Wing | 364.189 9.530 24.644 49.930 8.546 7.693 1.914.867 ms 5,26 ms 38,35 ms |
Simple Coloring | 354.659 27.772 36.671 49.926 19.345 16.744 683.785 ms 1,93 ms 13,70 ms |
XY-Wing | 326.887 18.477 26.276 49.912 14.199 13.519 104.985 ms 0,32 ms 2,10 ms |
XYZ-Wing | 308.410 11.895 12.604 49.896 10.358 9.122 44.937 ms 0,15 ms 0,90 ms |
XY-Chain | 296.515 79.491 118.713 49.839 30.381 29.142 158.125 ms 0,53 ms 3,17 ms |
WXYZ-Wing | 217.024 399 422 41.510 398 320 39.518 ms 0,18 ms 0,95 ms |
AIC | 216.625 204.132 224.198 41.499 40.186 29.734 2.579.801 ms 11,91 ms 62,17 ms |
APE | 12.493 560 565 11.945 450 120 217.728 ms 17,43 ms 18,23 ms |
Naked Quad | 11.933 29 153 11.830 29 11 11.328 ms 0,95 ms 0,96 ms |
Hidden Quad | 11.904 1 9 11.819 1 1 3.384 ms 0,28 ms 0,29 ms |
Swordfish | 11.903 139 650 11.818 138 55 375.962 ms 31,59 ms 31,81 ms |
Jellyfish | 11.764 3 14 11.763 3 2 517.409 ms 43,98 ms 43,99 ms |
total Duration: 8.562.018 ms
This report shows the statistics of my solver on the top50000, which is also the order in which methods are applied.
The reason for doing swordfish so late is that my implementation works on general topologies, and swordfish w/o the distinction of row/column/block is a combinatorical
nightmare. If it is put earlier in the list, it uses about 500 ms instead of 31 ms, and is invoked several times, so total solve time for a "typical" hard sudoku increases from 180 ms to 1800 ms. This is bad, if you often pipe the top50000 through the solver, which I do daily to monitor the progress of my solver (200 solved two weeks ago w/o XY-Chain, 9000 solved last week, 38000 solved after first AIC implementation).
Solving methods depending on uniqueness are not implemented due to religous reasons (My understanding of the puzzle is "Find the solution and _prove_ it is unique). I am curious to find out how many of the 50000 can be tackled w/o uniqueness exploits.
Michael