
- •Стратегии поиска на графах. Общая процедура поиска на графе. Неинформированные и эвристические процедуры поиска на графе.
- •Неинформированные процедуры поиска на графе
- •Эвристические процедуры поиска на графе
- •Применение оценочных функций
- •Пример поиска на графе с применением оценочной функции
- •Алгоритмы а и а*
- •Эвристическая сила оценочных функций
- •Двунаправленный поиск
- •Поэтапный поиск
- •Ограничение числа переемников
- •Различные меры качества работы алгоритмов поиска
Двунаправленный поиск
Некоторые задачи можно решить, используя системы продукций, правила которых можно применять и в прямом, и в обратном направлениях. Интерес представляет возможность производить поиск одновременно в двух направлениях, который рассматривается как процесс, при котором поиск осуществляется одновременно из исходной вершины и множества целевых вершин. Процесс заканчивается, когда (если) два фронта поиска подходящим образом встретятся.
фронт обрат-
ного
поиска
Исходная целевая
Вершина вершина
фронт фронт
прямого однонап-
поиска равленного
поиска
Рисунок 3.2
Из рисунка 3.7 видно, что двунаправленный поиск в ширину раскрывает намного меньше вершин, чем однонаправленный. Ситуация становится более сложной, если вместо поиска в ширину мы используем двунаправленный эвристический поиск.
Рисунок 3.3
Если эвристические функции, используемые двунаправленным поиском, оказываются даже в незначительной степени неточными, два фронта могут разойтись не пересекаясь (рисунок 3.8). В таком случае двунаправленный процесс поиска может раскрыть в два раза больше вершин, чем однонаправленный.
Поэтапный поиск
Основная идея поэтапного поиска состоит в сокращении графа поиска при движении в глубину. Процесс поиска может осуществляться по этапам, разделенными операциями сокращения графа, позволяющим освободить пространство в памяти. В конце каждого этапа подмножество вершин в списке OPEN, имеющих, например, меньшее значение оценочной функции отмечается и сохраняется, а остальные отбрасываются. Наилучшие пути к этим вершинам запоминаются, и остаток графа отбрасывается, затем поиск возобновляется из этих лучших вершин до тех пор, пока не исчерпаются ресурсы или не найдется целевая вершина. Нет гарантий, что найденный путь является оптимальным.
Ограничение числа переемников
Существует способ, который может дать экономию затрат на поиск. Он заключается в отбрасывании сразу после раскрытия всех переемников за исключением тех, которые имеют наименьшее значение функции f. Иногда можно сразу установить, что некоторые вершины не могут находиться на пути к целевой. Такие вершины обычно удовлетворяют некоторой функции, подобнойDEADENDв процедуре поиска с возвращением. Другой способ отбрасывания таких вершин заключается в установлении для них очень больших значений функцииhдля того, чтобы они никогда не были выбраны для раскрытия. Существуют также задачи поиска, для которых можно указать переемников какой – либо вершины и вычислить для них функциюhдо того, как соответствующая база данных будет получена в явном виде.
Различные меры качества работы алгоритмов поиска
Эвристическая сила методов поиска существенно зависит от специфики каждой конкретной задачи и её оценивание связано с суждениями, основанными скорее на опыте, чем на расчете. Однако, некоторым мерам качества работы можно дать количественное выражение и хотя они могут не полностью определять эвристическую силу, все же они полезны для сравнения различных методов поиска. Одна из таких мер называется направленностью. Направленность поиска Р– это степень, в которой поиск является сфокусированным в направлении цели, а не блуждает по бесперспективным направлениям. Направленность определяется так:
P=L / T
где: L– длина найденного пути к цели;
T– общее число вершин,
порожденных в ходе поиска, включая
целевую и не включая исходную.
Следовательно, Р1.
Другая мера эффективности – показатель эффективности ветвлений В. Он меньше зависит от длины оптимального решающего пути, чем направленность. Основой для определения показателя эффективности ветвления служит дерево, глубина которого равна длине пути, а общее число вершин равно числу вершин, порожденных в ходе поиска.Показатель эффективности ветвлений– есть постоянное число переемников, которым могла бы обладать каждая вершина в таком дереве, следовательно, показатель В связан с длиной путиLи с общим числом порожденных вершин Т выражениями:
B1+B2+...+BL=T
[BL-1]B/ (B-1)=T
Значения В, близкие к 1, соответствуют фокусированному поиску.
Показатель В связан с направленностью соотношением:
Р=L(B-1) /B[BL-1]
В той степени, в которой показатель эффективности ветвления разумно считать не зависящим от длины пути, он может быть использован для того, чтобы предсказать сколько вершин может быть построено при поиске с различной длиной пути.