Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2013-ПОИСК-Задания и теор мат / 1.ПОИСК-1 Общие пон, Алг-мы осн. поиска-сокр.doc
Скачиваний:
20
Добавлен:
27.04.2015
Размер:
186.37 Кб
Скачать

3. Поиск в пространстве состояний, представленном в виде графа

3.1. Принцип поиска на графе

Задача поиска часто рассматривается в теоретико-графовой интерпретации.

Пространство состояний представляется графом G = (X, Y), где

X = {xi} - множество вершин (узлов), сопоставляемых с состояниями xi,

Y - {ym} множество дуг (ребер), каждая из которых связывает пару вершин (xi, xj) и сопоставляется с ОПЕРАТОРОМ, преобразующим состояние xi в состояние xj.

Дугам могут приписываться ВЕСА, отражающие СТОИМОСТЬ применения соответствующих операторов: cij - стоимость дуги (xi, xj).

Стоимость пути между двумя вершинами - сумма стоимостей всех дуг, образующих путь.

В графе выделяют подмножество вершин S0 X, соответствующее множеству начальных состояний, и подмножество вершин SF X, соответствующее множеству конечных (целевых) состояний.

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

РЕШЕНИЕ ЗАДАЧИ – это последовательность операторов, преобразующая начальное состояние в целевое, т.е. ПУТЬ от заданного начального узла до целевого (любой или удовлетворяющий заданным требованиям).

ЦЕЛЬ ПОИСКА - нахождение такого ПУТИ.

Процесс решения задачи сводится к поиску ПУТИ в заданном графе от заданного начального состояния s0 S0 к заданному целевому состоянию sF SF (или к любому одному из них).

Часто требуется найти путь (пути) минимальной стоимости между заданными начальным и целевым узлами.

Принцип поиска на графе состоит в следующем.

На первом шаге к заданной вершине s0, соответствующей начальному состоянию, применяются ВСЕ возможные операторы, порождающие ВСЕ дочерние вершины.

Эта операция называется РАСШИРЕНИЕМ ВЕРШИНЫ (УЗЛА) Рафаэл.

[ или РАСКРЫТИЕМ ВЕРШИНЫ -Попов ].

Из множества дочерних вершин, полученных на первом шаге, выбирается (по определенному правилу) некоторая одна вершина, к которой применяется операция РАСШИРЕНИЯ, в результате чего формируется новое множество дочерних вершин.

Далее выполняется последовательность шагов, состоящих в том, что на каждом шаге операция РАСШИРЕНИЯ применяется к той или иной вершине, выбираемой из множества дочерних вершин, полученных в результате расширения, осуществленного на предыдущих шагах.

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

Если на некотором шаге получена одна из целевых вершин, то она не расширяется.

Процесс завершается, когда ВСЕ имеющиеся нерасширенные

вершины являются целевыми или терминальными.

В практических приложениях часто надо обеспечить полноту поиска, т. е. найти пути ко ВСЕМ целевым вершинам.

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

Два основных способа поиска: ПОИСК В ГЛУБИНУ и ПОИСК В ШИРИНУ (рассмотрены ниже).

Три критерия эффективности процедур поиска на графе

Рафаэл/с.102

1.Процедура должна НАХОДИТЬ РЕШЕНИЕ -

- если путь от начального узла до цели существует, то процедура должна гарантировать, что такой путь будет найден.

2. Процедура должна находить ХОРОШЕЕ решение (наилучшее решение - путь минимальной стоимости).

3. Процедура должна находить ХОРОШЕЕ решение ЭФФЕКТИВНО (т.е. с наименьшими затратами времени).