Jump to content

Двунаправленный поиск

Двунаправленный поиск — это алгоритм поиска в графе , который находит кратчайший путь от начальной вершины до целевой вершины в ориентированном графе . Он выполняет два одновременных поиска: один вперед от исходного состояния и один назад от цели, останавливаясь, когда они встречаются. Причина такого подхода в том, что во многих случаях он быстрее: например, в упрощенной модели сложности задачи поиска, в которой оба поиска расширяют дерево с коэффициентом ветвления b , а расстояние от начала до цели равно d , каждый из два поиска имеют сложность O ( b д /2 ) (в нотации Big O ), а сумма этих двух времен поиска намного меньше, чем O ( b д ) сложность, которая может возникнуть в результате одного поиска от начала до цели.

Эндрю Голдберг и другие объяснили правильные условия завершения двунаправленной версии алгоритма Дейкстры . [1]

Как и в поиске A* , двунаправленный поиск может руководствоваться эвристической оценкой оставшегося расстояния до цели (в прямом дереве) или от начала (в обратном дереве).

Айра Пол ( 1971 ) был первым, кто разработал и реализовал двунаправленный эвристический алгоритм поиска. Деревья поиска, исходящие из начального и целевого узлов, не смогли встретиться в середине пространства решений. Алгоритм BHFFA исправил этот дефект Шампо (1977).

Решение, найденное однонаправленным алгоритмом A* с использованием допустимой эвристики, имеет кратчайшую длину пути; то же самое свойство справедливо и для двунаправленной эвристической версии BHFFA2, описанной де Шампо (1983). BHFFA2 имеет, среди прочего, более строгие условия завершения, чем BHFFA.

Описание

[ редактировать ]

Двунаправленный эвристический поиск — это поиск в пространстве состояний из некоторого состояния. в другое государство , поиск из к и из к одновременно. Он возвращает действительный список операторов, к которым при применении даст нам .

Хотя может показаться, что для обратного поиска операторы должны быть обратимыми, необходимо лишь иметь возможность найти по любому узлу , набор родительских узлов такой, что существует некоторый допустимый оператор от каждого из родительских узлов к . В области поиска маршрута это часто сравнивают с улицей с односторонним движением: не обязательно иметь возможность ехать в обоих направлениях, но необходимо, стоя в конце улицы, определить начало улицы. как возможный маршрут.

Аналогично, для тех ребер, которые имеют обратные дуги (т.е. дуги, идущие в обоих направлениях), не обязательно, чтобы каждое направление имело одинаковую стоимость. При обратном поиске всегда будет использоваться обратная стоимость (т.е. стоимость дуги в прямом направлении). Более формально, если это узел с родителем , затем , определяемый как стоимость от к .(Ауэр Кайндл 2004)

Терминология и обозначения

[ редактировать ]
коэффициент ветвления дерева поиска
стоимость, связанная с переездом из узла узел
стоимость от корня до узла
эвристическая оценка расстояния между узлами и цель
начальное состояние
состояние цели (иногда , не путать с функцией)
текущее направление поиска. По соглашению, равно 1 для прямого направления и 2 для обратного направления (Kwa 1989)
противоположное направление поиска (т.е. )
дерево поиска в направлении d. Если , корень , если , корень
листья (иногда называемый ). Именно из этого набора выбирается узел для расширения. В двунаправленном поиске их иногда называют «границами поиска» или «волновыми фронтами», имея в виду, как они выглядят, когда поиск представлен графически. В этой метафоре «столкновение» происходит, когда во время фазы расширения обнаруживается, что узел одного волнового фронта имеет преемников на противоположном волновом фронте.
нелистовые узлы . Этот набор содержит узлы, уже посещенные поиском.
[ редактировать ]

Двунаправленные алгоритмы можно условно разделить на три категории: «Вперед-вперед», «Вперед-назад» (или «Вперед-к-концу») и поиск по периметру (Каиндл Кайнц, 1997). Они различаются функцией, используемой для расчета эвристики.

Спереди назад

[ редактировать ]

Алгоритмы Front-to-Back рассчитывают значение узла используя эвристическую оценку между и корень противоположного дерева поиска, или .

«Спереди назад» — наиболее активно исследуемая из трех категорий. На данный момент лучшим алгоритмом (по крайней мере, в области головоломок «Пятнадцать ») является алгоритм BiMAX-BS*F, созданный Ауером и Кайндлом (Auer, Kaindl 2004).

Спереди вперед

[ редактировать ]

Алгоритмы Front-to-Front вычисляют значение h узла n, используя эвристическую оценку между n и некоторым подмножеством узлов. . Каноническим примером является BHFFA ( двунаправленный эвристический фронт-фронтальный алгоритм ), [2] где функция h определяется как минимум всех эвристических оценок между текущим узлом и узлами на противоположном фронте. Или формально:

где возвращает допустимую (т.е. не завышенную) эвристическую оценку расстояния между узлами n и o .

Метод Front-to-Front страдает от чрезмерных вычислительных затрат. Каждый раз, когда узел n помещается в открытый список, его стоимость необходимо рассчитать. Это включает в себя вычисление эвристической оценки от n до каждого узла в противоположном множестве OPEN , как описано выше. Наборы OPEN увеличиваются в размерах экспоненциально для всех доменов с b > 1 .

  • де Шампо, Деннис; Синт, Лени (1977), «Улучшенный двунаправленный эвристический алгоритм поиска», Journal of the ACM , 24 (2): 177–191, doi : 10.1145/322003.322004 .
  • де Шампо, Деннис (1983), «Снова двунаправленный эвристический поиск», Журнал ACM , 30 (1): 22–32, doi : 10.1145/322358.322360 .
  • Поль, Ира (1971), «Двунаправленный поиск», Мельцер, Бернард; Мичи, Дональд (ред.), Machine Intelligence , vol. 6, Издательство Эдинбургского университета, стр. 127–140 .
  • Рассел, Стюарт Дж .; Норвиг, Питер (2002), «3.4 Стратегии неинформированного поиска», Искусственный интеллект: современный подход (2-е изд.), Прентис Холл .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: df80fc1aad7f413c968b5cd69487b0c3__1691890680
URL1:https://arc.ask3.ru/arc/aa/df/c3/df80fc1aad7f413c968b5cd69487b0c3.html
Заголовок, (Title) документа по адресу, URL1:
Bidirectional search - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)