Мне нужна хорошая эвристическая функция для звезды для решения судоку. Сетка судоку 4X4 и по определению юридическая операция от каждого государства заключается в том, чтобы вставить новый номер в в следующую свободную ячейку (заказ слева направо и вверх).Эвристическая функция для применения A * sudoku
, например, это входная сетка:
и теперь мы должны заполнить клетку (1,2).
Все узлы представляют собой разные сетки, которые представляют разные состояния. Коэффициент ветвления равен 4, поэтому у нас есть 4 возможности для следующей ячейки: 1, 2, 3 или 4, то есть 4 ребенка для каждого узла.
Как определить эвристическую функцию на узлах для применения A * на сетке?
Все, что я могу думать:
если новый номер, который был включен в сеть текущего состояния является Нелегальное (= появляется более одного раза в одной и той же строке, столбце или поле), так ч (п) = бесконечность.
else, h(n)= [number of empty remain cells].
Я думаю, что мое решение не является правильным, потому что нет никакой разницы в эвристической между двумя узлами в том же уровне, что являются законными.
мой плохой .. он слева направо. Вторая ячейка в 1-й строке – daniel
A * не является подходящим выбором алгоритма для этой проблемы. –
да, я думаю, что ты прав, но это не зависит от меня. – daniel