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

2008 - 2009 ИИС /ИТ (СИИ /ПО, АСОИУ) 15

ТЕМА ИИ – 5 . ПОИСК

Лекция ИИ – 5.3 /2009

ПОИСК-2. Методы оптимального поиска на графах

Для АСОИУ - весна 2009 (зачет) – сокр вар-т

ТЕМА ИИ- 5. " ПОИСК"

МЕТОДЫ ПОИСКА РЕШЕНИЙ В ЭКСПЕРТНЫХ СИСТЕМАХ

ПОИСК -2 Лекция ИИ- 5.3/2009

Методы оптимального поиска на графах

(Optimal Search)

А. Оптимальный поиск наилучшего пути на дереве - пути минимальной стоимости

Раф/104; Winst/82-84

Алгоритм АТ

Winst/81

Одна из процедур для нахождения кратчайшего пути - найти все возможные пути и выбрать наилучший из них. Это процедура АБМ. Для нахождения всех путей можно использовать проц-ры поиска в как ширину, так и в глубину, но при этом поиск продолж-ся до тех пор пока каждое решение не будет найдено. При больших ширине и глубине дерева эта проц-ра практич-ки неприменима - число узлов на глубине d при к-те разветв-ния b будет bd (при b =10, d =10 число путей равно 1010 = 10 миллиардов (в США -10 биллионов)).

Существуют стратегии поиска оптимального пути, кот-е не требуют нахождения всех путей. Одна из них - стратегия поиска, основанная на принципе "ветвей и границ". - Winst/82

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

Затем эти новые пути рассматриваются вместе с оставшимися старыми путями, и снова удлинняется кратчайший ИЗ ВСЕХ этих путей . Этот процесс повторяется до тех пор, пока какой-либо из путей не достигнет цели.

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

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

Алгоритм АТ - Алгоритм поиска пути минимальной стоимости (Algorithm for Trees - Алгоритм для деревьев)

Каждому узлу n поставим в соответствие число g(n) - полную стоимость пути от корневого узла к узлу n.

В процессе поиска для того или иного узла выполняется операция: РАСШИРЕНИЕ УЗЛА - определение его дочерних вершин.

Каждый узел может характеризоваться как:

ОТКРЫТЫЙ - узел, дочерние вершины которого не сформированы (т.е. он НЕ РАСШИРЕН) и который предлагается для исследования на следующем шаге;

ЗАКРЫТЫЙ - узел, который был исследован на каком-либо из предыдущих шагов и в настоящий момент не представляет интереса (если он имеет дочерние вершины, то они были сформированы, т.е. узел был РАСШИРЕН);

НЕИЗВЕСТНЫЙ - исследование узла не проводилось и функция g(n) для него не была вычислена.

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

Алгоритм АТ

1. Все узлы и все значения g(n) - неизвестны.

Выбираем для исследования, т.е. считаем ОТКРЫТЫМ корневой узел X и устанавливаем для него g(X) = 0.

2. Из множества ВСЕХ открытых узлов (т.е. ВСЕХ узлов, дочерние вершины которых еще не сформированы) выбрать ОТКРЫТЫЙ узел с минимальным значением g и назвать его N.

N - ОТКРЫТЫЙ узел с минимальным значением

стоимости g.

3. Если этот узел N - единственный из открытых узлов, то проверить, является ли N целевым узлом.

3.1. Если N - целевой узел, то задача решена и путь, ведущий к N, - это путь минимальной стоимости.

3.2. Если N - НЕ целевой узел, то перейти к п.6.

4. Если два или более открытых узлов имеют одинаково малое значение g, то - проверить, не является ли один из них целевым.

4.1 Если один из таких равноценных узлов- целевой, то

путь, ведущий к такому узлу- это путь минимальной

стоимости, т.е. задача решена.

4.2. Если нет, то произвольно выбираем один из этих узлов и

называем его N. Перейти к п. 6.

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

6. Расширить узел N - сгенерировать все его дочерние узлы S и объявить их ОТКРЫТЫМИ, т.е. подлежащими исследованию (узел N при этом становиться закрытым).

7. Для каждого вновь полученного (дочернего) узла S вычислить значение стоимости пути до этого узла от корневого узла X, т.е. значение g (S) = g (N) + g (N, S),

где g (N, S) - стоимость дуги от N к S.

8. Перейти к п.2.

Улучшения Алгоритма АТ

I . Исключение избыточных путей. (Winst / 90-91 Fig 5.4)

Пусть есть фрагмент дерева, подобный Fig 5.4, где пути S-D и S-A-D ведут к одному и тому же узлу D, но стоимость (длина) g(S-D) = 4, а g(S-A-D)= 8. Очевидно, путь S-A-D нет смысла расширять - он никогда не приведет к кратчайшему пути, т.к. есть более короткий путь к узлу D (путь S- D), а от узла D идут одни и те же пути, независимо от того, как мы пришли в этот узел.

Общий принцип

Пусть путь из нач. узла S в некоторый промежуточный узел R не влияет на выбор пути из R в целевой узел G. Тогда минимальное расстояние от S до G через R есть сумма минимального расстояния от S до R и минимального расстояния от R до G.

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

4

3 5

4

Fig 5.4

Это - принцип динамического программирования (Winst / 91):

Лучший путь через данную промежуточную точку есть лучший путь до нее из начальной точки, за которым следует лучший путь из нее до цели.

Нет необходимости просматривать любые другие пути к или от данной промежуточной точки.

II. Дополнение к процедуре АТ, гарантирующее минимальную стоимость найденного пути – удлиннение "неоптимальных" частичных путей Примечание Winst./82 - текст *1:

"Чтобы превратить "наиболее вероятное" решение в "достоверное" необходимо удлиннять ВСЕ частичные пути до тех пор, пока они не станут такой же длины или длиннее, чем полный путь. Причина этого состоит в том, что последний шаг на пути достижения цели может оказаться достаточно "длинным" , так что это сделает предполагаемое решение [т.е. путь, по которому мы идем] длиннее, чем один или более частичных путей. Возможно, что только очень короткий шаг требуется для удлиннения одного из этих частичных путей до целевой точки.

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

При выполнении данного Алг-ма мы движемся по "кратчайшему" пути (так мы назовем здесь путь минимальной стоимости) вплоть до предпоследнего шага (включая его). На этом шаге мы пришли к узлу, кот-й имеет некоторое кол-во дочерних узлов. Так как след-щий шаг -по предположению - последний, то целевой узел - один из этих дочерних узлов, и на след-м (последнем) шаге мы должны перейти к этому целевому узлу, независимо от стоимости данной дуги между предпоследним узлом, пусть Y, "нашего" пути и данным целевым узлом Z.

Но возможна ситуация, когда этот последний шаг "нашего" пути настолько велик (стоимость g (Y,Z) соответствующей дуги (Y,Z) настолько велика), что какой-либо из "более длинных" (т.е. более дорогих) частичных путей, которые мы отбросили ранее, даст в результате (при его продолжении до цели) более короткий полный путь, вследствие того. стоимость последней дуги "нашего наилучшего" пути "перекроет" весь выигрыш, полученный на предыдущих шагах.

Чтобы этого не случилось, надо после того, как найден "кратчайший" полный путь (в соотв-вии с описанной процедурой) продолжить удлиннение всех частичных путей до тех пор, пока они не станут равны по длине найденному полному (по нашему предположению -"кратчайшему") пути или не превысят эту длину.

Возможно, что какой-то из этих "неоптимальных" частичных путей при его удлиннении до цели окажется короче "нашего кратчайшего" пути.

Раф/10

Можно доказать, что Алгоритм АТ всегда находит путь минимальной стоимости.

Более того АТ - оптимальный алгоритм, т.к. он выполняет минимальное количество вычислительной работы в след-щем смысле: при поиске пути минимальной стоимости он РАСШИРЯЕТ (закрывает) минимальное количество узлов (по сравнению с любым другим алг-мом, находящим такой путь).

Кол-во РАСШИРЯЕМЫХ узлов может быть мерой кол-ва затраченной вычислит-ной работы, т.к. при расширении узла осущ-ся формирование его дочерних узлов S и вычисление для них значений g (S).

Пример 1. Найти путь миним-й стоимости на дереве Рис.5/2 (Winst / Fig 4.2 - 65). См. проц-ру - рукоп. текст и Winst / Fig 5.2 - 85-87

Пример 2. Найти путь миним-й стоимости на дереве Рис.6/1

(Рис 3.11 - Раф/101) от корневого узла X к любому из целевых узлов F, L, M, I, R (отмечены на рисунке).

Последоват-ть шагов, дающая решение, - на Рис.6/2 (Рис 3.12 - Раф/106). Путь минимальной стоимости: { X, D, J, V, P, R }; стоимость этого пути - g (R) = 5.

Б. Совершенствование поиска пути на дереве

за счет дополнительных знаний (оценки стоимости оставшегося пути до цели)

Алгоритм АКТ

Раф/107 - 112; Winst/84-90

Алгоритм АКТ

1. Все узлы и все значения g(n), h(n), f(n) - неизвестны.

Выбираем для исследования, т.е. считаем ОТКРЫТЫМ корневой узел X и устанавливаем для него g(X) = 0.

На основании дополнительных знаний вычислить ОЦЕНКУ СТОИМОСТИ пути от корневого узла X до цели, т.е. величину h(X) и величину

f(X) = g(X) + h(X) = h(X)

2. Выбрать ОТКРЫТЫЙ узел (т.е. узел, дочерние вершины которого не сформированы) с минимальным значением f и назвать его N.

N - ОТКРЫТЫЙ узел с минимальным значением

стоимости f .

3. Если этот узел N - единственный из открытых узлов, то проверить, является ли N целевым узлом.

3.1. Если N - целевой узел, то задача решена и путь, ведущий к N, - это путь минимальной стоимости.

3.2. Если N - НЕ целевой узел, то перейти к п.6.

4. Если два или более открытых узлов имеют одинаково малое значение f , то - проверить, не является ли один из них целевым.

4.1 Если один из таких равноценных узлов- целевой, то

путь, ведущий к такому узлу- это путь минимальной

стоимости, т.е. задача решена.

4.2. Если нет, то произвольно выбираем один из этих узлов и

называем его N. Перейти к п. 6.

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

6. Расширить узел N - сгенерировать все его дочерние узлы S и объявить их ОТКРЫТЫМИ, т.е. подлежащими исследованию (узел N при этом становиться закрытым).

7. Для каждого вновь полученного (дочернего) узла S :

- вычислить значение стоимости пути от корневого узла X до данного узла, т.е. значение g (S) = g (N) + g (N, S),

где g (N, S) - стоимость дуги от N к S

- используя дополнительные знания, вычислить ОЦЕНКУ стоимости пути от узла S до цели, т.е. величину h(S)

- вычислить величину f(S) = g(S ) + h(S )

8. Перейти к п.2. КОНЕЦ

——————————————————————————————

Примечание. (Раф/ 109)

Пусть d(n) - точное значение стоимости "кратчайшего" пути (т.е. пути минимальной стоимости) от n до целевого узла.

Если бы наша оценка h(n) совпадала с точным значением стоимости кратчайшего пути, т.е. h(n) = d(n), Алг-м АКТ был бы абсолютно совершенной процедурой, т.е. он закрывал бы только те узлы, которые лежат на кратчайшем пути к цели и след-но, находил бы путь миним-й стоимости.

Если нет никаких доп. знаний, то придется положить h(n) = 0 для всех n, и Алг-м АКТ вырождается в АТ.

Можно показать, что при h(n) £ d(n), т.е. когда оценка меньше действительной стоимости "кратчайшего" пути, Алг-м АКТ с гарантией находит решение минимальной стоимости.

(В данном случае h(n) - нижняя оценка расстояния от узла n до цели, т.е. мы говорим, что расстояние до цели НЕ МЕНЕЕ, чем h(n) ).

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

Если h(n) > d(n), то Алг-м АКТ не гарантирует нахождение пути минимальной стоимости. Тем не менее он находит "хорошее" решение и с небольшими затратами. Поэтому надо стремиться использовать в качестве h(n) НИЖНЮЮ ОЦЕНКУ расстояния.

…………Для этих групп - только общее понятие……………