[Haskell-cafe] Code Review: Sudoku solver

Daniel Fischer daniel.is.fischer at web.de
Sun Apr 16 13:35:20 EDT 2006


I have added 'solve method F', aka X-wing, swordfish... 
(www.sudokusolver.co.uk) to my solver, that reduced the number of puzzles 
needing guesses to 5306, so I suppose that's it.
 I haven't yet implemented it efficiently, so it was devastating for 
performance - and solving thirteen puzzles more by pure logic (or should we 
rather say without using any assumptions except that the puzzle is solvable, 
uniquely or not?) isn't such a big step, I had hoped for more.

Cheers, 
Daniel

Am Freitag, 14. April 2006 21:40 schrieb Chris Kuklewicz:
> > I believe if you change the representation of puzzles from [(pos,range)]
> > to an Array, you'll get a significant speedup
> >
> >>> yet because I only recently removed a logic bug that slowed down the
> >>> search instead of speading it up; ..). so the more interesting bit is
> >>> that our solvers disagree on which are the most difficult puzzles
> >>> (requiring the largest number of guesses):
> >>>
> >>> df
> >>> puzzles involving guesses: 5319
> >>
> >> If that's not a typo, I'm baffled. My original needed to guess in 5309
> >
> > Rot! Typo in _my_ previous message, 5319 is correct.
>
> After posting my cleaned up dancing links solver, I went back to my logical
> solver.  I sent the 36628 line sudoku17 puzzle through it and it could
> solve 31322 of the puzzles, leaving 5306 resistant.  I haven't check my
> algorithms against your code, but it does not seem like I do any
> spectacularly more clever.
>
> I don't have any time to clean up my code, but I may try turning off some
> steps to see if one of them gives my the same 5319 number you are seeing.

-- 

"In My Egotistical Opinion, most people's C programs should be
indented six feet downward and covered with dirt."
	-- Blair P. Houghton



More information about the Haskell-Cafe mailing list