http://www.icparc.ic.ac.uk/~hs/sudoku.pdf