Edit: You can find out more about how SudokuH works in the separate blog post – Anatomy of a CSP solver
Do you like solving Sudoku? To be honest, I am not a huge fan of it – not sure if I had solved even one by myself. I find it a bit of a waste of time. During an AI course I had in uni, however, we wrote a fancy Constraint Satisfaction Problem (CSP) solver. Mine happened to be the fastest in the class, and despite the fact that I did win some chocolates and fame, I thought I can exploit it further. Thus, SudokuH was born – a GUI Sudoku Solver using MAC+MRV algorithm written in Haskell.
Now, now, don’t get too excited. It works under Linux only right now, and it’s interface won’t win any design awards. But it does work, and it is blindingly quick*.
Now, you might be thinking – all cool, but what’s the point in having a program like this when most people are solving Sudoku for fun (and to waste time)? Well, it has more theoretical than practical value, I agree, but I was able to think of a usage scenario. You know how sometimes newspapers and magazines have competitions for solving Sudoku puzzles? Well, there you go – input it in SudokuH, press Solve, and profit. I know people who won prizes from these competitions! (TV, even)
Right, I feel better now, my work has not been meaningless. But let’s face it, if you are interested in SudokuH, that’s most probably because you want to see its bowels (how it works, I mean). I will be happy to explain… Anatomy of a CSP solver! 🙂
* You really can’t see it thinking.**
** If you close your eyes and open them after 1-3.5 seconds, that is.