Структура продукционной системы


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

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

P1, … , Pm ® Q1, … , Qn,

что означает: если предпосылки P1 и … и Pm верны, то выполнить действия Q1 и … и Qn. Предпосылки часто называют условиями, а действия – заключениями.

Предпосылки правил представляются в форме вектора объект атрибут значение, например:

(организм-1, (морфология, палочка)(аэробность, аэробный)).

В данном случае предпосылка состоит в том, что определенный микроорганизм имеет форму палочки и размножается в воздушной среде.

В языке CLIPS, основанном на продукционной системе представления знаний, правило имеет следующий формат:

defrule <наименование правила>

<предпосылка1>

<предпосылкаm>

=>

<действие1>

<действиеn>

Пример правила на языке CLIPS выглядит следующим образом:

defrule diagnosis

(organism (name ?org) (morfhology rod)(aerobicity aerobic))

=>

(assert

(organism

(name ?org)

(identify enterobacteria)

(confidence 0.8)))

С помощью префикса ? в правиле задаются переменные.

Перечень предпосылок в правиле представляет собой образец вектора, которому должно соответствовать состояние рабочей памяти. Действия, такие как (assert) в приведенном выше примере, задают изменения, которые должны быть внесены в состояние рабочей памяти. Например, указанное в приведенном выше правиле действие добавит в рабочую память новый вектор

(organism (name ?org) (identify enterobacteria) (confidence 0.8)).

Таким образом, правило diagnosis означает следующее: если некоторый микроорганизм имеет перечисленные в правиле свойства, то с определенной степенью уверенности этот микроорганизм можно отнести к указанному классу.

Основная функция рабочей памяти – хранить данные в формате векторов объект атрибут значение. Эти данные используются интерпретатором, который в случае присутствия (или отсутствия) определенного элемента данных в рабочей памяти активизирует правила, предпосылки в которых удовлетворяются наличными данными.