Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8_18_28.doc
Скачиваний:
14
Добавлен:
24.09.2019
Размер:
319.49 Кб
Скачать

8.Стратегии неинформированного поиска с ограничением глубины и итеративным углублением. Двунаправленный поиск.

Недостатком поиска в глубину является то, что в нем может быть сделан непра­вильный выбор и переход в тупиковую ситуацию, связанную с прохождением вниз по очень длинному (или даже бесконечному) пути.

Поиск с ограничением глубины

Проблему неограниченных деревьев можно решить, предусматривая применение во время поиска в глубину заранее определенного предела глубины l. Это означает, что узлы на глубине l рассматриваются таким образом, как если бы они не имели преемников. Такой подход называется поиском с ограничением глубины. Приме­нение предела глубины позволяет решить проблему бесконечного пути. К сожале­нию, в этом подходе также вводится дополнительный источник неполноты, если бу­дет выбрано значение l<d- самая поверхностная цель выходит за пределы глубины. (Такая ситуация вполне вероятна, если значение d неизвестно.) Кроме того, поиск с ограничением глубины будет неоптимальным при выборе зна­чения l>d. Его временная сложность равна O(bl), а пространственная сложность — О(bl). Поиск в глубину может рассматриваться как частный случай поиска с огра­ничением глубины, при котором l=

Иногда выбор пределов глубины может быть основан на лучшем понимании за­дачи.

Н-р: На карте имеется 20 го­родов. Поэтому известно, что если решение существует, то должно иметь длину не больше 19; это означает, что одним из возможных вариантов является l=19. Но в действительности при внимательном изучении этой карты можно обнаружить, что любой город может быть достигнут из любого другого города не больше чем за 9 эта­пов. Это число, известное как диаметр пространства состояний, предоставляет нам лучший предел глубины, который ведет к более эффективному поиску с ограни­чением глубины. Но в большинстве задач приемлемый предел глубины остается не­известным до тех пор, пока не будет решена сама задача.

Поиск с ограничением глубины может быть реализован как простая модифика­ция общего алгоритма поиска в дереве или рекурсивного алгоритма поиска в глуби­ну.

function Depth-Limited-Search(problem, limit) returns решение result или индикатор неудачи failure/cutoff return Recursive-DLS(Make-Node(Initial-State[problem]),

problem,limit)

function Recursive-DLS{node, problem, limit) returns решение result или индикатор неудачи failure/cutoff cutoff_occurred? ложное значение

if Goal-Test[problem] (State[node]) then return Solution{node) else if Depth[node] = limit then return индикатор неудачи cutoff else for each преемник successor in Expand{node, problem) do result <r- Recursive-DLS {successor, problem, limit) if result = cutoff then cutoff_occurred? истинное значение else if result Ф failure then return решение result if cutoff_occurred?

then return индикатор неудачи cutoff else return индикатор неудачи failure

Поиск с ограничением глубины может приводить к неудачным завершениям двух типов: стандартное значение failure указывает на отсутствие решения, а значение cutoff свидетельствует о том, что на заданном пределе глубины решения нет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]