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