Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Архитектура, управляемая шаблонами




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

В противоположность этому при использовании организации программы, управ­ляемой шаблонами, модули системы не вызываются явно другими модулями. Вместо этого их вызов осуществляется при обнаружении шаблонов, которые встречаются в их "среде определения данных". Поэтому такие модули и называются модулями, управляемыми шаблонами. Программа, управляемая шаблонами, представляет собой коллекцию модулей, управляемых шаблонами. Каждый модуль определен с помо­щью следующих компонентов.

1. Шаблон предварительного условия.

2. Действие, которое должно быть выполнено, если среда определения данных согласуется с этим шаблоном.

Операции вызова на выполнение модулей программы активизируются шаблона­ми, которые обнаруживаются в среде системы. Среда определения данных обычно именуется базой данных. Такая система условно изображена на рис. 23.2,



Среда □пределен денных

 


Рис. 23.2. Система, управляемая шаблонами. В виде прямоуголь­ников показаны модули, управляемые шаблонами, а стрелки по-называют, как активизируются модули при обнаружении шаб­лонов о данных

576 Часть II. Применение рзыка Prolog e области искусственного интеллекта


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

Архитектура, управляемая шаблонами, имеет несколько преимуществ. Одно из основных преимуществ состоит в том, что при проектировании системы не требуется заранее тщательно планировать и определять все связи между модулями. Поэтому возникает возможность проектировать и реализовывать каждый модуль относительно автономно. Благодаря этому обеспечивается весьма высокая степень модульности. Преимущество такой модульности выражается, например, в том, что удаление неко­торого модуля из системы не обязательно приводит к фатальным последствиям. По­сле их удаления система сохраняет способность решать свои задачи, но способ реше­ния этих задач может стать иным. Это утверждение остается справедливым также в отношении добавления новых модулей и модификации существующих. Если анало­гичные модификации проводятся в системах с обычной организацией, то возникает необходимость, по меньшей мере, модифицировать соответствующим образом вызовы между модулями.

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

Рассмотрим дополнительное уточнение основной схемы функционирования сис­тем, управляемых шаблонами, с точки зрения их реализации. Изучение схемы, при­веденной на рис. 23.2, позволяет сделать вывод, что для таких систем наиболее под­ходящей является параллельная реализация. Но предположим, что такая система должна быть реализована на обычном последовательном процессоре, В таком случае при возникновении ситуации одновременной активизации в базе данных шаблонов нескольких модулей возникает конфликт, связанный с определением того, какой из всех этих потенциально активных модулей должен быть фактически вызван на вы­полнение. Такое множество потенциально активных модулей называется конфликт­ным множеством. Для фактической реализации схемы (см. рис. 23.2) на последова­тельном процессоре требуется дополнительный программный модуль, называемый управляющим модулем. Управляющий модуль разрешает конфликт, выбирая и акти­визируя только один модуль из конфликтного множества. Процедура разрешения конфликтов может быть основана на простом правиле, которое предусматривает за­ранее определенное, постоянное упорядочение модулей.

Таким образом, основной жизненный цикл систем, управляемых шаблонами, со­стоит из трех описанных ниже этапов.

1. Сопоставление с шаблоном. Найти в базе данных все вхождения шаблонов ус­ловия вызова программных модулей, что влечет за собой формирование кон­фликтного множества.

2. Разрешение конфликта. Выбрать один из модулей в конфликтном множестве.

3. Выполнение. Вызвать на выполнение модуль, который был выбран на этапе 2.
Такая схема реализации показана на рис, 23.3.


Глава 23. Метапрограммирование



Конфликтное множество


Модуль 1 Условие 1





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


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 375 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Бутерброд по-студенчески - кусок черного хлеба, а на него кусок белого. © Неизвестно
==> читать все изречения...

2464 - | 2389 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.