I need to create a program (in C#) to solve Sudoku's with Random Restart Hill Climbing and as operator switching values of two fields. The start solution of the sudoku will always have each field assigned a value to (from 1 to nn) where each rectangular subgrid of nn has each number occuring only once in it.
Now I have two questions:
How do I determine the next two fields of the sudoku to operate for the hill climbing algorithm?
When do I restart the hill climbing algorithm? ( / How to determine a (local) maximum has been reached, there are no more sucessors better than the current solution?)
If anyone could help me out on this it'd be much appreciated.
Best regards.