В общем случае лучший алгоритм первого поиска завершен, так как в худшем случае он будет искать все пространство (худший вариант).Теперь она также должна быть оптимальной - учитывая, что эвристическая функция допустима - это означает, что она не переоценивает стоимость пути от любого из узлов до цели.(Это также должно быть непротиворечивым - это означает, что оно придерживается неравенства треугольника, если это не так, алгоритм не был бы завершен - как это могло бы войти в цикл)
Проверка вашего алгоритма Я не вижу, какэвристическая функция вычисляется.Также я не вижу там рассчитывается стоимость пути, чтобы добраться до конкретного узла.Таким образом, ему необходимо рассчитать фактическую стоимость пути для достижения конкретного узла, а затем добавить эвристическую оценку стоимости пути от узла к цели.
Формула: f(n)=g(n)+h(n)
где g (n) - это стоимость пути для достижения узла, а h (n) - эвристика, оценивающая стоимость самого дешевого пути от n до цели.
Проверьте реализацию алгоритма A * , который является примером наилучшего первого поиска при планировании пути.
TLDR В лучшем первом поиске вынеобходимо рассчитать стоимость узла как сумму стоимости пути до этого узла и эвристической функции, которая оценивает стоимость пути от этого узла до цели.Если эвристическая функция будет допустимой и непротиворечивой, алгоритм будет оптимальным и полным.