Как проверить, что n-головоломка с двумя пробелами разрешима?
Я изменил вопрос о n-puzzle. В этом сценарии головоломка состоит из двух заготовок вместо одной.
Initial State
3 5 1
4 6 -
7 2 -
Goal State
- 1 7
3 2 -
5 6 4
Есть ли какой-нибудь алгоритм, который я могу использовать для этого?
1 ответ
Все существующие алгоритмы, которые решают обычную головоломку с скользящей плиткой (например, A* или IDA*), также могут решить этот вариант. Головоломка с несколькими пробелами эквивалентна базе данных шаблонов для головоломки с раздвижной плиткой - точное решение головоломки с заменой некоторых частей на пробелы может использоваться в качестве эвристики для исходной головоломки только с одним пробелом.
(Чтобы быть точным, они эквивалентны базам данных аддитивных шаблонов. Вы можете объединить несколько вместе и сложить их эвристические значения, если стоимость действия замены двух пробелов равна 0 и ни одна из плиток не дублируется.)