Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Эвристическая оценочная функция для И-ИЛИ графов




Эвристический поиск на И-ИЛИ графах

Поиск в глубину на И-ИЛИ графе

Как по И-ИЛИ графу построить решающее дерево? Это дело системы (стратегии) управления. На И-ИЛИ графах возможны все виды поиска, которые мы изучили: поиск в глубину, поиск в ширину, эвристический поиск.

Поиск в глубину на И-ИЛИ графах является процедурным механизмом Prolog-системы. Вначале системе адресуется запрос, или главная цель.

Для ее решения нужно решить все подцели в теле правила, с которым запрос сопоставился. Это вершина типа «И».

Если к цели могут быть применены альтернативные правила, то это вершина типа «ИЛИ».

Цель, которая сопоставилась с фактом базы данных, — терминальная вершина.

Рассмотрим поиск в глубину на модельном И-ИЛИ графе (рис. 19):

Рисунок 19. Модельный «И-ИЛИ граф»

Поиск в глубину из вершины X:

Если Х-целевая вершина, то задача решена.

Если Х-вершина типа «ИЛИ», то нужно пробовать решать одну за другой задачи-преемники, пока не будет найдена задача, имеющая решение.

Если Х-вершина типа «И», то нужно решить все ее задачи-преемники.

Если применение этих правил не приводит к решению, то решения нет.

Задание. Написать программу, реализующую поиск в глубину на модельном И-ИЛИ графе (рис. 19). Какова ее вычислительная сложность?

Припишем дугам И-ИЛИ графа стоимости.

Положим стоимость решающего дерева равной стоимости входящих в него дуг.

Цель оптимизации — поиск дерева решения минимальной стоимости.

Определим стоимость вершины как стоимость минимального решающего дерева с корнем в этой вершине.

Определим эвристическую функцию на вершинах И-ИЛИ графа. Эвристическая оценка листов равна непосредственно значению эвристики h(u) на вершине u. Внутренние вершины имеют преемников. Они будут оцениваться с помощью возвращенной эвристической оценки — оценки стоимости минимального решающего дерева с корнем в u.

— оценка для ИЛИ-вершины (рис. 20).

Рисунок 20. Возвращенная эвристика «ИЛИ»-вершины

— оценка для И-вершины (рис. 21).

Рисунок 21. Возвращенная эвристика «И»-вершины

3) — оценка для листа

В нашем дереве поиска у каждой вершины только один отец. Пусть u0 — отец, u — сын (рис.22).

Рисунок 22. f-оценка сына u1 с отцом u0

f-оценка вершины u складывается как стоимость дуги, входящей в u от родительской вершины, плюс ее возвращенная эвристическая оценка . Начальная вершина не имеет родителя, поэтому будем считать, что в нее входит фиктивная дуга стоимости 0.

1.8.2. АО*-алгоритм эвристического поиска на И-ИЛИ графе

Каждый преемник ИЛИ-вершины соответствует альтернативному дереву — кандидату в решение. АО*-алгоритм на каждом шаге будет расширять дерево с минимальной f-оценкой, вычисленной следующим образом:

— для И-вершины;

— для ИЛИ-вершины.

Рассмотрим эвристический поиск на примере модельного И-ИЛИ графа (рис. 23) с эвристиками всех вершин тождественно равными 0 (h(u)≡0 для всех u).

Рисунок 23. Модельный граф с эвристиками всех вершин тождественно равными нулю

Начнем поиск из начальной вершины а.

f(a) = 0 + h(a) = 0 (рис. 24):

Рисунок 24. Трассировка алгоритма. Шаг 1

Далее находим всех преемников а, вычисляем их f –оценки и пересчитываем f — оценку а (рис. 25):

f(b) = 1 + h(b) =1;

f(c) = 3 + h(c) = 3;

f(a) = 0 + min{f(b),f(c)} = min{1,3} = 1.

Рисунок 25. Трассировка алгоритма. Шаг 2

Дерево с корнем в b является минимальным, поэтому оно расширяется (рис. 26), его оценка пересчитывается и пересчитывается оценка вершины а:

f(d) = 1 + h(d) =1;

f(e) = 1 + h(e) =1;

f(b) = 1 + f(d) + f(e) =3.

Рисунок 26. Трассировка алгоритма. Шаг 3

f(b) ≤ f(c), поэтому продолжаем расширять дерево с корнем в b. При попытке расширить d обнаруживаем что d — целевая вершина, для e находим преемника h (рис. 27):

f(h) = 6 + h(h) =6;

f(e) = 1 + h(h) =1 + 6 =7;

f(b) = 1 + f(d) + f(e) = 1 + 1 + 7 = 9

Рисунок 27. Трассировка алгоритма. Шаг 4

Поиск не успел понять, что h — целевая вершина; стоимость дерева с корнем в b равна 9, поэтому происходит переключение на дерево с корнем в с, причем рост дерева с корнем в с ограничивается величиной 9: f(c) ≤ 9 (рис. 28):

f(f) = 2 + h(f) =2;

f(g) = 1 + h(g) =1;

f(c) = 3 + f(f) +f(g) = 3 + 2 + 1 =6;

Рисунок 28. Трассировка алгоритма. Шаг 5

f(b) ≤ 9, поэтому продолжаем расширять дерево с корнем в с (рис. 29). Обнаруживаем, что g — целевая вершина и для f находим двух преемников:

f(h) = 2 + h(h) = 2;

f(i) = 3 + h(i) = 3;

f(f) = 2 +min {2,3} = 4;

f(c) = 3 + f(f) + f(g) = 8

f(a) = 0 + f(c) = 8.

Рисунок 29. Трассировка алгоритма. Шаг 6

Штриховой линией обведено активное дерево поиска. Заметим, что вершина h включена в разные деревья поиска и имеет разные f оценки: 6 и 2. f(c)≤8≤9, поэтому продолжаем расширять дерево с корнем в c. При попытке расширить h обнаруживаем целевую вершину и получаем дерево решения. Так как все h(u) ≡ 0, то оценка вершины а — f(a) есть стоимость дерева решения.

1.8.3. Некоторые свойства АО*-алгоритма

Обозначим стоимость минимального дерева решения, связывающего вершину u с терминальными вершинами.

Если для всех u, то эвристический поиск построит минимальное дерево решения. Это условие для эвристики h можно заменить другим — условием монотонности эвристики h.

Пусть у вершины u имеется несколько связок, одна связка состоит из k потомков u1,…, uk. Если для каждой связки имеет место неравенство

где с(u,ui) — стоимость дуги от вершины u до потомка ui, h(ui) — эвристика вершины ui, и для каждой терминальной вершины t h(t)≡0. Это условие аналогично условию монотонности для обычного графа пространства состояний:

т.е. эвристики вершин не меняются резко и согласованы со стоимостью дуг.




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 1917; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.