Алгоритм поиска слов
Я пытаюсь найти лучший подход, чем метод "грубой силы", но я немного потеряю.
Вот простой случай:
Учитывая конечное количество предварительно выбранных букв и люк (например, перекрытие кроссворда), я пытаюсь найти всю комбинацию слов, которые можно использовать. (Слова извлекаются из базы данных словаря.)
Пример:
Учитывая буквы:
a, c, r, e, t, u, p, l, m, o
сколько комбинаций слов может вписываться в следующую кроссворд?
_
_ _ _ _
_
_
_ _ _
Один пример:
c
t r e e
e
e
p o t
Конечно, время поиска резко возрастает с каждой буквой или дополнением к люку кроссворда. Любые предложения для лучшего поиска?
Ответы
Ответ 1
Обратите внимание на открытый arccc, который заполняет кроссворды, рассматривая их как проблема удовлетворения ограничений. Если вы хотели бы сделать это сами в качестве учебного упражнения, то чтение на CSP должно стать хорошей отправной точкой.
Что касается ограничения алфавита, это лучше всего сделать как шаг предварительной обработки исходного словаря.