Продукционные модели знаний

В настоящее время составляет большинство на рынке СИИ. Продукционная - это правило состоящее из двух частей, условие и/или заключение (действие). Иногда в литературе Нильце.

Чаще полагают, что в правой части не заключение, а действие в виде какой-то процедурной составляющей. Продукционные СИИ состоят из 3-х основных частей.

1)База фактов несущие информацию по состоянию внешней среды и самой СИИ.

Структура фактов в хороших продукционных системах не регламентируется жестко во время работы СИИ, может меняться не только содержание факта, но и сама его структура. 

Во время работы факты могут создаваться, уничтожаться, изменять значение содержимого, изменять структуру.

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

3)Интерпретатор - пословно определяет, какие продукции могут быть активны в зависимости от условий в левых частях. Затем выбирает одну из подходящих к ситуации продукцию, выполняет действия из правой части выбранной продукции.

В классических продукционных системах БД - переменная часть СИИ, правила продукций изменяются меньше, интерпретатор практически неизменен. В классических продукционных СИИ продукции не влияют друг на друга. В современных СИИ продукции могут изменять состав базы знаний (выключать или дезактивировать другие продукции, включать ранее выключенные, производить такие же операции на один шаг работы).

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

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

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

Пример: пусть БД содержит факты A, F, база знаний содержит следующие продукции:

Продукция 1: A&B&CD

Продукция 2: D&FG

Продукция 3: A&JG

Продукция 4: BC

Продукция 5: FB

Продукция 6: LJ

Продукция 7: GH

1)условно выводимый подход

Н-?

СМ. РИС.2301

2)целе-выводимый подход

Н-?

СМ. РИС.2302

Hosted by uCoz