Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TIPIS_2_laba.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.14 Mб
Скачать
  1. Условия задачи.

Описание метода А*:

Методы реализуются в следующих условиях:

1) задано одно начальное и целевое состояние;

2) оценочная функция f(x) определена для всех состояний простран-

ства поиска;

3) относительно оценочной функции пространство поиска должно

быть монотонно;

4) состояния в пространстве поиска связны.

Предварительно, до начала поиска, задается оценочная функция следующего вида: f(x) = g(x)+ h(x), где g(x) – расстояние от начального до текущего состояния, h(x) – оценка, представляющая отличие свойств текущего и целевого состояния.

Алгоритм поиска А* включает следующие этапы:

1. Раскрыть очередное состояние si  Fi=Si+1

2. Если   si Si,  sjtSt, то задача решена, иначе – п. 3.

3. Выбрать из Si состояния si, для которых оценка f(x)min, а операторы, образовавшие данные состояния, записать в цепочку Li = {f1, f2, … fi-1, fi,…}. Далее перейти к п. 1 для si.

В алгоритме А* используется генерация в глубину. Однако выбор

очередного si определяется значением f(x). Для выделения минимального

пути используется соответственно значение f(x)min. Причем анализ значений f(x) состояний в алгоритме А* происходит только на текущем фронте.

Так, в алгоритме А* осуществляется эвристическое управление направлением поиска.

При применении алгоритма А* возможна ситуация, в которой некоторое подмножество состояний фронта будет иметь тождественные оценки f(x)min (свойства состояний в пространстве поиска распределены немонотонно относительно принятой системы оценок).

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

В результате искомый путь может включать в себя неопределенные, альтернативные участки такого вида: Li = {f1, f2, …, Fi-1, Fi, Fi+1, …fn},

где |Fi| > 1.

Для преодоления таких участков необходимо в корне изменить схему оценки состояний применяемую в алгоритме А*. В первую очередь

стоит принять во внимание то, что оценка состояний происходит только на текущем фронте без учета прошлых оценок текущих состояний. Такое решение разработчиков алгоритма А* является следствием того, что оценка g(x) с каждой итерацией увеличивается на единицу. Если даже оценка h(x) будет иметь относительно предыдущих итераций меньшее значение, то за счет роста g(x) суммарное значение f(x) будет относительно большим.

Предполагается, что сравнение оценок состояний должно происходить не

только на текущем фронте (как это выполняется в алгоритме А*), но и относительно оценок состояний всех ранее полученных фронтов.

В результате алгоритм поиска примет следующий вид:

1. Раскрыть очередное состояние si  Fi=Si+1

2. Если  si Si,  sjtSt, то задача решена, иначе – п. 3.

3. Для всех si Si определить значение оценки f(x) и записать в память MF(x), перейти к п. 4.

В памяти MF(x) хранятся оценки f(x) всех ранее раскрытых состояний

в ранжированном виде. При записи новых состояний в MF(x) их оценки

ранжируются вместе с ранее раскрытыми состояниями. Причем ранее раскрытые состояния должны быть помечены.

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

Отличие MF(x) от MS, применяемой в методе Мура, заключается в том, что оригинальные состояния ранжируются на основе оценки f(x), а не на основе порядка поступления.

4. Выбрать из MF(x) любое состояние si, ранее не раскрытое, для которого оценка f(x)min; если таких нет, то выбрать любое состояние, для которого f(x)min.

5. Оператор fi, образовавший очередное состояние, записать в цепочку Li = {f1, f2, … fi-1, fi, …}, далее перейти к п. 1 для состояния si.

В программе алгоритм A* будет реализован в работе принцессы, а алгоритм с памятью будет реализован у преследователя.

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