まず最初に - はい、これは宿題です - しかし、これは主に実用的な問題ではなく理論的な問題です。私が正しく考えているかどうか、またはそうでない場合はヒントを求めているだけです。
私は単純な数独ソルバーをコンパイルするように依頼されました ( Prolog上ではありますが、現時点ではそれほど重要ではありません)。唯一の制限は、Best-First Algorithmを使用したヒューリスティック関数を利用する必要があることです。私が思いついた唯一のヒューリスティック関数を以下に説明します。
1. Select an empty cell.
1a. If there are no empty cells and there is a solution return solution.
Else return No.
2. Find all possible values it can hold. %% It can't take values currently assigned to cells on the same line/column/box.
3. Set to all those values a heuristic number starting from 1.
4. Pick the value whose heuristic number is the lowest && you haven't checked yet.
4a. If there are no more values return no.
5. If a solution is not found: GoTo 1.
Else Return Solution.
// I am sorry for errors in this "pseudo code." If you want any clarification let me know.
それで、私はこれを正しくやっていますか、それとも他の方法があり、私のものは間違っていますか? 前もって感謝します。