Я делаю алгоритм поиска по стоимости.Я получаю свое решение немного больше, чем фактическое.Число развернутых узлов больше, чем фактическое.
Я использовал этот алгоритм:
Получите начальный узел и поместите его в очередь с приоритетами. P.queue сама упорядочит узлы вэто по стоимости.Сначала будет стоить более дешевый узел.
используйте цикл while, он будет работать до тех пор, пока очередь не станет пустой.
удалите узел из очереди и проверьте, является ли он целевым состоянием или нет.если нет, проверьте, есть ли он в списке посещенных или нет.список посещений - это набор, в котором есть все уже развернутые узлы.если его нет в списке посещенных, получите его преемников вместе со стоимостью и действием.
рассчитайте стоимость до этого узла.
, если стоимость вспомогательного элемента больше, чем стоимость родительского узла,добавьте его в очередь и проверьте, находится ли этот преемник в родительском каталоге или нет.Если нет, сделайте его родителем, чтобы мы могли отследить путь.
мой алгоритм верен или мне нужно проверить что-то еще: