Solving Sudoku with Prolog (2016)
Thank you very much for the publicity, I greatly appreciate your interest!Prolog is extremely well-suited for solving combinatorial tasks like Sudoku puzzles, and also for tough practical challenges such such as timetabling, scheduling and allocation tasks on an industrial scale.The key feature that makes Prolog so efficient and frequently used for such tasks is constraint propagation, provided via libraries or as a built-in feature in many Prolog system. Fast and efficient constraint propagation is often an important reason for buying a commercial Prolog system.In this example, I am using CLP(FD/ℤ), constraint logic programming over finite domains/integers, the amalgamation of constraint programming (CP) and logic programming (LP), which blend especially seamlessly. I have uploaded a short video that shows how it works for Sudoku puzzles:https://www.metalevel.at/prolog/videos/sudokuIf you are interested in constraint solving, a few related videos may also be useful:https://www.metalevel.at/prolog/videos/n_queenshttps://www.metalevel.at/prolog/videos/knights_and_knaveshttps://www.metalevel.at/prolog/videos/map_colouringThese videos are all work in progress, and they may be replaced by better versions at any time. However, the links above will always point to the latest version.Enjoy!