A * эвристика, переоценка/недооценка?
Я запутался в терминах переоценки/недооценки. Я отлично понимаю, как работает алгоритм A *, но я не уверен в эффектах эвристики, которые переоценивают или недооценивают.
Является ли переоценка, когда вы берете квадрат прямой линии птичьего полета? И почему это неправильно делает алгоритм? Такая же эвристика используется для всех узлов.
Недооценка, когда вы берете squareroot прямой линии птичьего полета? И почему алгоритм все еще правильный?
Я не могу найти статью, которая объясняет это красиво и ясно, поэтому я надеюсь, что у кого-то есть хорошее описание.
Ответы
Ответ 1
Вы переоцениваете, когда эвристическая оценка выше фактической стоимости конечного пути. Вы недооцениваете, когда он ниже (вам не нужно недооценивать, вам просто не следует переоценивать, правильные оценки в порядке). Если ваши затраты по краю графа равны 1, то приведенные вами примеры будут завышены и недооценены, хотя равное координатное расстояние также работает персик в декартовом пространстве.
Переоценка точно не делает алгоритм "неправильным"; что это означает, что у вас больше нет допустимой эвристики, что является условием гарантирования качества A * для обеспечения оптимального поведения. При недопустимом эвристике алгоритм может завершить тонны избыточной работы, исследуя пути, которые он должен игнорировать, и, возможно, находить субоптимальные пути из-за их изучения. На самом деле это зависит от вашего проблемного пространства. Это происходит потому, что стоимость пути "из-за сустава" с оценочной стоимостью, что по существу дает алгоритму перепутала идеи о том, какие пути лучше других.
Я не уверен, найдёте ли вы его, но вы можете посмотреть статью Wikipedia A *. Я упоминаю (и ссылку) в основном потому, что для него это практически невозможно.
Ответ 2
Из статьи Wikipedia A *, соответствующая часть описания алгоритма:
Алгоритм продолжается до тех пор, пока цель node не будет иметь более низкое значение f, чем любое node в очереди (или пока очередь не будет пуста).
Основная идея заключается в том, что с занижением A * перестанет исследовать потенциальный путь к цели, как только он узнает, что общая стоимость пути превысит стоимость известного пути к цели. Поскольку оценка стоимости пути всегда меньше или равна реальной стоимости пути, A * может отбросить путь, как только сметная стоимость превышает общую стоимость известного пути.
При переоценке A * понятия не имеет, когда он может перестать исследовать потенциальный путь, поскольку могут быть пути с более низкой фактической стоимостью, но более высокая расчетная стоимость, чем лучший в настоящее время путь к цели.
Ответ 3
Насколько я знаю, вы хотите, как правило, недооценивать, чтобы вы могли найти кратчайший путь. Вы можете найти ответ быстрее, переоценив, но вы не можете найти кратчайший путь. Следовательно, почему переоценка является "неправильной", в то время как недооценка может обеспечить наилучшее решение.
Мне жаль, что я не могу представить ни слова о линиях птичьего полета...