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

В. Поиск пути на произвольном графе с использованием

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

Алгоритм а·

Раф/112 - 117

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

Алгоритм А· - алг-м поиска путей на произвольном графе.

По графу мы можем прийти к одному и тому же узлу РАЗЛИЧНЫМИ ПУТЯМИ - в дереве толко один путь. Поэтому:

Если мы нашли какой-либо путь к такому узлу, который уже объявлялся ОТКРЫТЫМ (т.е. к такому узлу, к которому мы уже подходили по другому пути), то для дальнейшего анализа должен выбираться только ЛУЧШИЙ из этих путей.

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

Алгоритм А· находит путь с учетом стоимости g(n) пути ДО данного узла n от начального узла и оценки h(n) стоимости пути ОТ данного узла n до целевого узла. Как и ранее, используется функция f(n) = g(n) + h(n).

Алгоритм А*

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 - целевой узел, то задача решена и путь, ведущий от начального узла X к узлу N, - решение задачи.

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

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

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

путь, ведущий к такому узлу- решение задачи.

4.2. Если нет, то произвольно выбирать один из этих узлов и назвать его N. Перейти к п. 6.

5. Если нет ни одного открытого узла, то данный граф не имеет пути, предст-щего решение.

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

- вычислить стоимость пути от начального узла X до S :

g¢ (S) = g (N) + g (N, S),

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

7. Проверить, объявлялся ли ранее данный узел S открытым.

Если – ДА, т.е. мы уже подходили к этому узлу S по другому пути и для него ранее вычислялось значение стоимости g(S), то

- Проверить, выполняется ли условие

g¢ (S) ³ g(S).

Если ДА, т.е. новое значение стоимости БОЛЬШЕ старого, то данный узел S ИГНОРИРУЕТСЯ и рассматриваются другие узлы S (т.е. открытые дочерние узлы данного узла N ).

8. Если данный узел S

- или еще не объявлялся открытым (т.е. мы еще не подходили к нему по другому пути),

-или НОВОЕ значение стоимости пути ДО него g¢ (S) оказалось меньше прежнего g(S), т.е.

g¢ (S) < g(S),

то объявить данный узел S ОТКРЫТЫМ и положить

g(S) = g¢ (S),

т.е. присвоить ему НОВОЕ (меньшее) значение стоимости пути от нач. узла к данному узлу.

9. Вычислить

f(S) = g(S) + h(S)

10. Перейти к шагу 2,

т.е. выбрать из всех открытых узлов ОТКРЫТЫЙ узел с минимальным значением f и назвать его N.

ДОПОЛНЕНИЯ к Алг-му A* (Рафаэл/116)

1. В выражении f(n) = g(n) + h(n) можно придавать вуличинам g(n) и h(n) различный вес, т.е. записать эту функцию в виде f(n) = w g(n) + (1- w ) h(n)

где w – ВЕС, т.е. произвольное положительное число, меньшее 1.

При w= 0,5 имеем равные веса.

Если w < 0,5 (ближе к 0), то основную роль играет h(n), т.е. предстоящие затраты, а стоимость уже пройденного пути игнорируется.

Если w > 0,5 (ближе к 1), то ведущую роль играет g(n), т.е. стомость пройденного пути, а значит основное внимание уделяется поиску наилучшего решения (пути минимальной стоимости), а не минимизации усилий, требуемых для нахождения какого-нибудь решения.