A * с Манхэттенской дистанцией с одинаковым значением f - PullRequest
0 голосов
/ 25 июня 2019

Решено:

Это мой алгоритм выбран неправильно, я решил проблему, используя предложение Гарольда. Еще раз спасибо

Я пытаюсь реализовать алгоритм A * для двумерного массива. Использование манхэттенского расстояния в качестве эвристики, но оно работает как BFS. Однако, исходя из того, как я это реализовал, этот результат не является неожиданным. Например, начнем с (0, 0) до (2, 2), соседями (0, 0) являются (1, 0) и (0, 1), а f, g, h будут одинаковыми 2, 1, 1, поэтому следующая итерация (после проверки (1, 0)) при нахождении минимума f снова проверит (0, 1), более того, все узлы f между этими двумя точками фактически равны 2 ... так что это просто становится BFS ... Мне просто нужно проверить, есть ли путь между двумя точками. Я сначала попробовал BFS, но он даст мне TLE, когда 2D станет действительно большим. Я провожу весь день, чтобы читать и играть с A *, но не могу найти нужного решения. Вот одна вещь, которую я мог бы предположить неправильно, некоторые статьи включают родительское поле, и я предполагаю, что это просто для печати всего пути, который мне не нужен, поэтому я не включил. В первый раз в моем основном исследовании задайте вопрос о переполнении стека, очень признателен всем за помощь, спасибо.

...