Я применяю поиск A * (и IDA *) с манхэттенской эвристикой для поиска решения проблемы с 15 головоломками.
Используя тот факт, что мне не нужно оптимальное решение проблемы, как я могу ускорить поиск, поскольку текущая процедура слишком медленная.
Я применяю поиск A * (и IDA *) с манхэттенской эвристикой для поиска решения проблемы с 15 головоломками.
Используя тот факт, что мне не нужно оптимальное решение проблемы, как я могу ускорить поиск, поскольку текущая процедура слишком медленная.
Ну, это не совсем решение, но может помочь. Однажды я работал над игрой HOG с той же головоломкой, что и мини-игра, и оказалось, что создать проблему гораздо проще, чем найти решение.
Я имею в виду, что мы можем превратить решенную головоломку в нерешенную, случайно перемещая «окно» в соответствии с правилами. И регистрация каждой позиции поля для будущего использования. Затем мы позволяем пользователю немного поиграть, и если он сдастся, мы можем легко решить за него головоломку, найдя общую позицию в пользователе и нашем журнале. Мы просто проигрываем через пользовательский лог в общую позицию и обратно из нее в решенную позицию через наш лог.
Конечно, это хак, а не реальное решение, но в геймдеве работает отлично. И не только для этой конкретной игры. Таким образом можно «решить» большинство головоломок с репозиционированием.