Читаем Prolog полностью

        F( B) = c( B1, B) + minF( Bi),             если  В   -  ИЛИ-вершина

                                          i

                       если  В    -  И-вершина

Хотя стартовая вершина  А  и не имеет предшественника, будем считать, что стоимость ведущей в нее (виртуальной) дуги равна 0. Если положить  h  равным 0 для всех вершин И / ИЛИ-дерева, то для любого найденного оптимального решающего дерева окажется, что его стоимость, т.е. сумма стоимостей его дуг, в точности равна  F( A).

На любой стадии поиска каждый преемник ИЛИ-вершины соответствует некоторому альтернативному решающему дереву-кандидату. Процесс поиска всегда принимает решение продолжать просмотр того дерева-кандидата, для которого  F-оценка минимальна. Вернемся еще раз к рис. 13.4 и посмотрим, как будет вести себя процесс, поиска на примере И / ИЛИ-графа, изображенного на этом рисунке. В начале дерево поиска состоит всего из одной вершины - стартовой вершины  а, далее дерево постепенно "растет" до тех пор, пока не будет найдено решающее дерево. На рис. 13.10, показан ряд "мгновенных снимков", сделанных в процессе роста дерева поиска. Для простоты мы предположим, что h = 0 для всех вершин. Числа, приписанные вершинам на рис. 13.10 - это их  F-оценки (разумеется, по мере накопления информации в процессе поиска они изменяются). Ниже даются некоторые пояснительные замечания к рис. 13.10.

После распространения поиска из первоначального дерева (снимок  А)   получается дерево  В.  Вершина  а   - это ИЛИ-вершина, поэтому мы имеем два решающих дерева-кандидата:  b  и  с.   Поскольку  F( b) = 1 < 3 = F( c), для продолжения поиска выбирается альтернатива  b.   Насколько далеко может зайти процесс роста поддерева  b? Этот процесс может продолжаться до тех пор, пока не произойдет одно из двух событий:

    (1)        F-оценка вершины  b  станет больше, чем  F-оценка ее конкурента  с,  или

    (2)        обнаружится, что найдено решающее дерево.

В связи с этим, начиная просмотр поддерева-кандидата  b,  мы устанавливаем верхнюю границу для  F( b):   F( b) <= 3 = F( c). Сначала порождаются преемники  d  и  е  вершины  b    (снимок  С), после чего  F-оценка   b  возрастает до 3. Так как это значение не превосходит верхнюю границу, рост дерева-кандидата с корнем в  b   продолжается. Вершина  d   оказывается целевой вершиной, а после распространения поиска из вершины  е   на один шаг получаем дерево, показанное на снимке  D.  В этот момент выясняется, что  F( b)  =  9   >  3,  и рост дерева  b

Рис. 13. 10.  Трассировка процесса поиска с предпочтением в

И / ИЛИ-графе ( h = 0) при решении задачи рис. 13.4.

прекращается. В результате процесс поиска не успевает "осознать", что  h  -   это тоже целевая вершина и что порождено решающее дерево. Вместо этого происходит переключение активности на конкурирующую альтернативу  с.  Поскольку в этот момент F( b) = 9, устанавливается верхняя граница для  F( c),  равная 9. Дерево-кандидат с корнем  с   наращивается (с учетом установленного ограничения) до тех пор, пока не возникает ситуация, показанная на снимке  Е.  Теперь процесс поиска обнаруживает, что найдено решающее дерево (включающее в себя целевые вершины  h  и  g),  на чем поиск заканчивается. Заметьте, что в качестве результата процесс поиска выдает наиболее дешевое из двух возможных решающих деревьев, а именно решающее дерево рис. 13.4(с).

13. 4. 2.    Программа поиска

Программа, в которой реализованы идеи предыдущего раздела, показана на рис. 13.12. Прежде, чем мы перейдем к объяснению отдельных деталей этой программы, давайте рассмотрим тот способ представления дерева поиска, который в ней используется.

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

Размер:

(1)    дерево состоит из одной вершины (листа)

        или

(2)    оно имеет корень и (непустые) поддеревья.

Решающий статус:

(1)    обнаружено, что дерево соответствует

        решению задачи( т. е. является решающим

        деревом) или

(2)    оно все еще решающее дерево-кандидат.

Основной функтор, используемый для представления дерева, указывает, какая из комбинаций этих воз-

Рис. 13. 11.  Представление дерева поиска.

можностей имеется в виду. Это может быть одна из следующих комбинаций:

        лист     решлист    дер    решдер

Далее, в представление дерева входят все или некоторые из следующих объектов:

корневая вершина дерева,

F-оценка дерева,

стоимость  С  дуги И / ИЛИ-графа, ведущей в корень дерева,

список поддеревьев,

отношение (И или ИЛИ) между поддеревьями.

Список поддеревьев всегда упорядочен по возрастанию  F-оценок. Поддеревья, являющиеся решающими деревьями, помещаются в конец списка.

Обратимся теперь к программе рис. 13.12. Отношение самого высокого уровня - это

        и_или( Верш, РешДер)

Перейти на страницу:

Похожие книги

12 великих трагедий
12 великих трагедий

Книга «12 великих трагедий» – уникальное издание, позволяющее ознакомиться с самыми знаковыми произведениями в истории мировой драматургии, вышедшими из-под пера выдающихся мастеров жанра.Многие пьесы, включенные в книгу, посвящены реальным историческим персонажам и событиям, однако они творчески переосмыслены и обогащены благодаря оригинальным авторским интерпретациям.Книга включает произведения, созданные со времен греческой античности до начала прошлого века, поэтому внимательные читатели не только насладятся сюжетом пьес, но и увидят основные этапы эволюции драматического и сценаристского искусства.

Александр Николаевич Островский , Иоганн Вольфганг фон Гёте , Оскар Уайльд , Педро Кальдерон , Фридрих Иоганн Кристоф Шиллер

Драматургия / Проза / Зарубежная классическая проза / Европейская старинная литература / Прочая старинная литература / Древние книги
Волчья тропа
Волчья тропа

Мир после ядерной катастрофы. Человечество выжило, но высокие технологии остались в прошлом – цивилизация откатилась назад, во времена Дикого Запада.Своенравная, строптивая Элка была совсем маленькой, когда страшная буря унесла ее в лес. Суровый охотник, приютивший у себя девочку, научил ее всему, что умел сам, – ставить капканы, мастерить ловушки для белок, стрелять из ружья и разделывать дичь.А потом она выросла и узнала страшную тайну, разбившую вдребезги привычную жизнь. И теперь ей остается только одно – бежать далеко на север, на золотые прииски, куда когда-то в поисках счастья ушли ее родители.Это будет долгий, смертельно опасный и трудный путь. Путь во мраке. Путь по Волчьей тропе… Путь, где единственным защитником и другом будет таинственный волк с черной отметиной…

Алексей Семенов , Бет Льюис , Даха Тараторина , Евгения Ляшко , Сергей Васильевич Самаров

Фантастика / Приключения / Боевик / Славянское фэнтези / Прочая старинная литература