Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СИИ.doc
Скачиваний:
175
Добавлен:
02.05.2014
Размер:
3.54 Mб
Скачать

2.4.4. Рекурсивные процессы

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

Если W (X) –предваренное выражение, содержащее процесс X,используется в качестве определения того же процесса X,то мы имеем дело с рекурсивным описанием процесса Х = W (X).

Рекурсия может рассматриваться как многократное следование одного и того же события evили конечной последовательности событий. Следовательно, семантика рекурсии состоит в многократной композиции отображенийintevintev...intev.

В языках программирования либо рекурсия может быть определена явно, либо для ее моделирования используются управляющие структуры вида whiledoилиrepeatuntil.

2.4.5. Ветвящиеся процессы

Используя операции следования и рекурсию, мы можем описать такие процессы, события которых упорядочены во времени линейно. Для событий, упорядоченных во времени нелинейно, необходима еще одна конструкция – выбор.

Если ev1иev2– различные события, то выражение (ev11|ev2  2) описывает такой процесс, для которого в качестве префиксов могут выступать события ev1иev2, а затем выполняется процесс1,если наступило событие ev1,либо процесс2, если наступило событиеev2. Совокупность альтернативных событий ev1, ev2обычно определяют как меню и записывают в виде (ev1||ev2) илиcase(ev1,ev2). Если использовать более привычные для программистов обозначения, то можно записать равенство

(ev1  1 | ev2  2) = if ev1 then 1 else

if ev2 then 2.

Данное определение выбора может быть легко обобщено на случай, когда число альтернатив больше двух. Так, выражение (ev11|ev2  2 | … | evn  n)можно трактовать как процесс, для которого начальное меню состоит из множества событий {ev1}.

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

  1. 2.5. Системы продукций: структура, технология, применение

Системы продукций начали развиваться с середины 70-х годов в связи с появлением при­кладных программных систем специальной архитектуры, предназначен­ных для решения задач в плохо формализованных областях, таких как медицина, геология, понимание естественного языка. В первых работах [ 83,85,87] дается содержательное описание продукционного подхода.

Наиболее полное исследование данного представления в виде фор­мальных моделей дал А.С.Клещев [23,24], В.Е.Кузнецов [26], Т.М.Яхно [70,74 ], S.Vere [128], M.Georgeff [98,99]. Особенности каждой модели опре­делялись классами решаемых задач и технологическим базисом.

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