Программирование - это просто
Advertisement
Главная
19.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. Печать E-mail
Автор megabax   
07.05.2010 г.
unit AIObj

Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.

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

Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. ,

где Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. - оценка стоимости пути из начальной вершины в вершину n; Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. – оценка стоимости кратчайшего пути из вершины n в целевую вершину.

Алгоритм, базирующийся на использовании оценочной функции Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. , называется А-алгоритмом. Оценки Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. в ходе поиска не меняют своих значений. Оценки Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. также не меняют своих значений и всегда равны реальным затратам , если поиск пути выполняется на дереве состояний. Однако при поиске пути на графе состояний оценки Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.  могут меняться. Следовательно, в общем случае оценки Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.  меняют свои значения в процессе поиска. Это приводит к тому, что вершины из  списка CLOSED могут перемещаться обратно в список OPEN:

Алгоритм, базирующийся на использовании оценочной функции Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. , называется А-алгоритмом. Оценки Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.  в ходе поиска не меняют своих значений. Оценки Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. также не меняют своих значений и всегда равны реальным затратам Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. , если поиск пути выполняется на дереве состояний. Однако при поиске пут

Procedure A_Search;
Begin
       Поместить начальную вершину s в список OPEN: f(s)=ĥ(s);
       CLOSED := ’пустой список’;
       While OPEN <> ’пустой список’ Do Begin
            n := first(OPEN);
            If n = ‘целевая вершина’ Then Выход(УСПЕХ);
Переместить n из списка OPEN в CLOSED;
Раскрыть вершину n, для всех её дочерних вершин Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.  вычислить
оценку Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. ;
Поместить дочерние вершины, которых нет в списках OPEN, сравнить
оценки Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.  и Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. если Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. <Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.  то связать с вершиной Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.  новую оценку Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.  и указатель на вершину n;
Если вершина  содержится в списке CLOSED и  <Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.
то связать с вершиной Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.  новую оценку Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. переместить её в список OPEN и установить указатель на n;
Упорядочить список OPEN по возрастанию значения Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. ;
       End;
       Выход(НЕУДАЧА);
End.

Укажем свойства А-алгоритма. Если для всех вершин ĥ(n)=0,то А-алгоритм будет соответствовать алгоритму равных цен. В этом случае гарантируется нахождения оптимального пути, но эффективность поиска будет низкой, и если пространство поиска будет бесконечно, то поиск просто не осуществим.

А-алгоритм не дает гарантии, что найденный путь будет оптимальным. Путь может быть не оптимальным в случае, если оценка затрат на пути из вершины n в целевую вершину будет преувеличена (переоценена), т.е. если ĥ(n)>h(n) Сказанное можно пояснить с помощью рисунка:

Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.

Рисунок – граф состояний с переоценкой затрат h(n)

Числа в скобках при вершинах соответствуют оценка ĥ(n), а рядом с ребрами – стоимости перехода Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. . При раскрытии вершины S получаем дочерние вершины А и В. Оценки f(n) для этих вершин равны: f(A) = 2+4, f(B) = 3+5. На следующем шаге раскрывается вершина А, и получается f(G) = 7+0. Решением будет путь SAG, который для данного графа не является оптимальным.

А-алгоритм обеспечит поиск оптимально пути, если выполняется условие: ĥ(n)≤h(n).

Алгоритм, учитывающий данное, называют А* - алгоритмом или гарантирующим алгоритмом. А* - алгоритм недооценивает затраты на пути из промежуточной вершины в целевую вершину или оценивает их правильно, но никогда не переоценивает.

Пусть Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. * и Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. * - произвольные гарантирующие алгоритмы и на всех вершинах Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. . Тогда информированность Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. *  выше, чем Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. *. Говорят, что в этом случае Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. * имеет большую эвристическую силу, чем Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. *. Эвристически более сильный алгоритм Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. *  в большей степени сокращает пространство поиска.

Эффективность поиска с помощью А* - алгоритма может снижаться из-за того, что вершина, находящаяся в списке CLOSED, может попадать обратно с список OPEN и затем повторно закрываться. Следующий пример демонстрирует случай многократного раскрытия вершин.

Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.

Рисунок - Граф состояний с многократно раскрываемыми вершинами.

Состояние списков OPEN и CLOSED показаны в таблице. Каждая строка таблицы соответствует очередному шагу работы алгоритма. Числа рядом с именами вершин соответствует значениям оценочной функции f(n). Из таблицы следует, что вершина А раскрывается четыре раза, вершина В – 3 раза, вершина С – 2 раза.

Таблица – Выполнение А*-алгоритма:

OPEN

CLOSED

Комментарий

1

S(14)

-

 

2

A(8) B(10) C(10) D(11)

S(14)

 

3

B(9) C(10) D(11) G(17)

A(8) S(14)

 

4

A(7) C(10) D(11) G(17)

B(9) S(14)

Возврат: А

5

C(10) D(11) G(16)

A(7) B(9) S(14)

 

6

A(6) B(8) D(11) G(16)

C(10) S(14)

Возврат: А, В

7

B(8) D(11) G(15)

A(6) C(10) S(14)

 

8

D(11) G(15)

B(8) A(6) C(10) S(14)

 

9

C(9) G(15)

D(11) B(8) A(6) S(14)

Возврат: С

10

A(5) B(7) G(15)

C(9) D(11) S(14)

Возврат: А, В

11

B(7) G(14)

A(5) C(9) D(11) S(14)

 

12

G(14)

B(7) A(5) C(9) D(11) S(14)

 

Чтобы А*-алгоритм не раскрывал несколько раз одну и ту же вершину, необходимо учитывать условие монотонности:

Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.

е Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. - родительская вершина; Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. - дочерняя вершина, Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. - стоимость пути между вершинами Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. и Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. .

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

Ранее отмечалось, что А* - алгоритм недооценивает затраты h(n). Условие монотонности означает, что недооценка на пути к цели становится все меньше или, в крайнем случае, не изменяется. Действительно, если обозначить недооценку через û(n), то

û(n) = h(n) – ĥ(n), û(n)≥0.

Из условия монотонности следует, что Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. , т.е. недооценка h(n) в родительских вершинах больше или равно недооценкам h(n) в дочерних вершинах. На графе, изображенном на рисунке граф состояний с многократно раскрываемыми вершинами, условие монотонности не выполняется для начальной вершины. Например, h(S) > h(D) + c(S,D), т.е. 14 > 10 + 1.

Если ĥ(n) = h(n), то информированность является полной. В этом случает никакого поиска не происходит и приближение к цели идет по оптимальному пути.

Таким образом, свойства А-алгоритма существенно зависят от условий, которым удовлетворяет или не удовлетворяет эвристическая часть оценочной функции f(n):

  1. А-алгоритм соответствует алгоритму равных цен, если h(n) = 0;

  2. А-алгоритм гарантирует оптимальное решение, если ĥ(n) ≤ h(n); в этом случае он называется А* - алгоритмом;

  3. А- алгоритм обеспечивает однократное раскрытие вершин, если выполняется условие монотонности Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. ;

  4. Алгоритм * эвристически более сильный, чем алгоритм * при Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм. ;

  5. А*- алгоритм полностью информирован, если ĥ(n) = h(n);

  6. При ĥ(n) > h(n) А-алгоритм не гарантирует получение оптимального решения, однако часто решение получается быстро.

 Рассмотренные алгоритмы поиска в пространстве состояний можно систематизировать с помощью таблицы.

Несис-темати-ческие

Систематические

Неинформированные

Информированные

Без оценки затрат

С оценками затрат

 

cписок OPEN – механизи «LIFO»

cписок OPEN – механизи «FIFO»

Стоимость от старта ĝ(n)

Стоимость до цели ĥ(n)

Стоимость от старта к цели

f(n) = ĝ(n) + ĥ(n)

Случайный поиск (Random)

Поиск в глубину (Depth)

Поиск вершин (Breadth)

Алгоритм равных цен (Optimal Search)

Алгоритм подъема на гору (Hill climbing)

Глобальный учет соответствия цели (Best-First)

 

ĥ(n) ≤ h(n)

А* - алгоритм

 

А* с ограничением монотонности

 

Поиск решений в пространстве состояний может выполняться в нескольких направлениях: из начального состояния в целевое состояние (поиск, управляемый данными); из целевого состояния в начальное состояние (поиск, управляемый целью, или обратный поиск); одновременно в двух направлениях (комбинированный поиск). Так как поисковые графы (деревья) для практических задач велики, то двунаправленный поиск может быть эффективнее однонаправленного. Поиск решений в пространстве состояний – комбинаторная задача. Решение получается на основе перебора всех состояний. Однако для многих практических задач полный перебор невозможен. Были предложены различные меры для оценки сложности решаемой задачи. Одна из них – это степень разветвления вершин графа состояния. Она равна среднему числу дочерних вершин, приходящихся на одно состояние задачи. Если рассматривать дерево состояний, то можно вывести формулу, устанавливающую зависимость общего числа состояний N от степени разветвления В и глубины дерева L:

Создаем искусственный интеллект. Урок 5. Поиск решений задач в пространстве состояний. А-алгоритм.

 

 

 

 

Последнее обновление ( 27.07.2010 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги