Иллюстрированный самоучитель по введению в экспертные системы

Системы порождающих правил для решения проблем. Синтаксис представления правил.

Хотя в приложении к экспертным системам порождающие правила и отличаются от тех правил переписывания, о которых шла речь выше, фундаментальные принципы и формальные свойства их остаются теми же. Но при этом нас интересует не столько сама по себе грамматика символических структур, как в примере с палиндромами, сколько способы представления некоторой проблемы и преобразования этого представления, которое должно привести ее к виду, о котором можно сказать: "Это решение данной проблемы".


В настоящее время порождающие правила обычно реализуются в форме правил, манипулирующих с символическими структурами типа списка векторов, а не строк символов. В этом сказывается влияние языков программирования вроде LISP и тех структур данных, которые они поддерживают. (В ранних реализациях использовались языки манипулирования символами, например SNOBOL.)

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

  • подмножества N имен объектов предметной области;
  • подмножества Р имен свойств, которые рассматриваются в качестве атрибутов объектов;
  • подмножества V допустимых значений атрибутов.

На практике подмножества N и V перекрываются.

Используемая грамматика, как правило, имеет вид триад объект-атрибут-значение. Триада (v, л, w) существует, если v принадлежит N и л принадлежит Р, w принадлежит V. Например, триада:

(ОРГАНИЗМ-1, морфология, палочка)

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

Представленная синтаксическая форма обобщается в том случае, когда нужно для некоторого объекта v представить " вариантов пар атрибут-значение (л1,w1)…, (лn,wn). В таком случае они объединяются в вектор в форме:

(v, л1, w1,…, лn, wn).

На языке CLIPS тот факт, что определенный микроорганизм имеет форму палочки и активно развивается в воздушной среде, будет представлен вектором:

(organism-1 (morphology rod) (aerobicity aerobic)).

В дальнейшем мы будем повсеместно использовать именно такой синтаксис, поскольку CLIPS будет нашим основным программным инструментом.

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

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

Продукционная система (production system) состоит из множества правил (иногда этот набор правил называют продукционной памятьюproduction memory), интерпретатора правил, который решает, когда надлежит применить каждое из них, и рабочей памяти, содержащей данные, описание цели и промежуточные результаты, в совокупности определяющие текущее состояние проблемы. Именно структуры данных в рабочей памяти анализируются и преобразуются порождающими правилами. Обращение к правилам синхронизируется текущими данными, а интерпретатор правил управляет выбором и активизацией определенных правил в каждом цикле.

Схематически правила в продукционной системе имеют такую обобщенную форму:

P1,…, Pm, › Q1,…, Qn

Которая читается следующим образом:

если предпосылки Р1 и… и Рт верны, то выполнить действия Q1 и… и Qn.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.