The job is to implements a search-based solver for Sudoku puzzles using the supplied
searching code. In order to use the code to solve Sudoku puzzles you have to
1. Decide on the state space and on a PROLOG representation for the states.
2. Implement a "successors" function, that can take as input a state and generate the successor states.
3. Find and implement a heuristic that can guide the search.
A Sudoku puzzle consists of a 9X9 matrix, subdivided into 9, 3X3 squares.
Each cell in this matrix can be marked with a number in the set {1-9}.
The initial states can be any state where some cells may have already been
marked with a number. The goal is to extend the initial state by marking all
of the open cells so that:
1. Along each column of the 9X9 matrix no number appears twice.
2. Along each row of the 9X9 matrix no number appears twice.
3. In each 3X3 sub-square no number appears twice.
This job includes a satisfactory explanation and description of how the solution is constructed.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Windows XP, or 2000
SWI-prolog for Windows