Введение

"Система производства" (или "система правил производства") — это компьютерная программа, обычно используемая для реализации некоторой формы искусственного интеллекта. Она состоит главным образом из набора правил поведения, но также включает в себя механизм, необходимый для применения этих правил при реагировании системы на изменяющиеся состояния мира. Эти правила, называемые "продукциями", представляют собой базовый способ представления знаний, полезный в автоматизированном планировании, экспертных системах и выборе действий. Продукции состоят из двух частей: сенсорного условия (или "ЕСЛИ") и действия (или "ТОГДА"). Если условие продукции соответствует текущему состоянию мира, то говорят, что продукция активирована. Если действие продукции выполнено, то говорят, что она сработала. Система производства также содержит базу данных, иногда называемую рабочей памятью, которая хранит данные о текущем состоянии или знаниях, и интерпретатор правил. Интерпретатор правил должен обеспечивать механизм приоритизации продукций, когда активировано более одной.

Основная работа

Интерпретаторы правил обычно выполняют алгоритм прямой цепочки для выбора продукций, которые необходимо выполнить для достижения текущих целей, что может включать обновление данных или убеждений системы. Условие каждой продукции (левая часть или LHS) проверяется на соответствие текущему состоянию оперативной памяти. В идеализированных или ориентированных на данные продукционных системах предполагается, что любые активированные условия должны быть выполнены: соответствующие действия (правая часть или RHS) обновят знания агента, удаляя или добавляя данные в оперативную память. Система прекращает обработку, когда пользователь прерывает цикл прямой цепочки, когда выполнено заданное количество циклов, когда выполняется RHS с командой "остановка", или когда нет ни одного правила, у которого LHS истинно. Системы реального времени и экспертные системы, напротив, часто должны выбирать между взаимоисключающими продукциями, поскольку выполнение действий занимает время, и возможно только одно действие (или, в случае экспертной системы, рекомендация). В таких системах интерпретатор правил или механизм логического вывода проходит два этапа: сопоставление продукционных правил с базой данных, за которым следует выбор правил для применения из числа сопоставленных и выполнение выбранных действий.

Сопоставление правил производства с рабочей памятью

Системы производства могут различаться по выразительной силе условий в правилах производства. Соответственно, алгоритм сопоставления с образцом, собирающий правила производства с подходящими условиями, может варьироваться от наивного – перебирающего все правила последовательно и останавливающегося при первом совпадении – до оптимизированного, в котором правила "компилируются" в сеть взаимосвязанных условий. Последний подход иллюстрируется алгоритмом Rete, разработанным Чарльзом Л. Форги в 1974 году, который используется в ряде производственных систем, называемых OPS, первоначально разработанных в Университете Карнеги-Меллона и достигших кульминации в OPS5 в начале 1980-х годов. OPS5 можно рассматривать как полноценный язык программирования для разработки производственных систем.

Выбор правил для оценки

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

Использование производственных систем

Использование производственных систем варьируется от простых правил переписывания строк до моделирования когнитивных процессов человека, от систем переписывания и сведения термов до экспертных систем.

Отношения с логикой

И Рассел, и Норвиг в своей книге «Искусственный интеллект: современный подход» и Джон Соуа в книге «Представление знаний: логические, философские и вычислительные основы» характеризуют производственные системы как системы логики, осуществляющие рассуждения посредством прямой цепочки. Однако Стюарт Шапиро, рецензируя книгу Соуа, утверждает, что это неверное представление. Аналогично, Ковальски и Садри утверждают, что поскольку действия в производственных системах понимаются как императивы, производственные системы не обладают логической семантикой. Их логический язык программирования Logic Production System (LPS) объединяет логические программы, интерпретируемые как убеждения агента, с реактивными правилами, интерпретируемыми как цели агента. Они утверждают, что реактивные правила в LPS придают логическую семантику правилам производства, которой в противном случае у них нет. В следующем примере строки 1–3 являются объявлениями типов, строка 4 описывает начальное состояние, строка 5 – реактивное правило, строки 6–7 – клаузы логической программы, а строка 8 – причинно-следственная связь:

1. свойства огня. 2. действия устранить, спастись. 3. события устранение огня. 4. изначально огонь. 5. если огонь, то устранить огонь. 6. устранять огонь, если устранить. 7. устранять огонь, если спастись. 8. устранение прекращает огонь. Обратите внимание, что в этом примере реактивное правило в строке 5 активируется, как и правило производства, но на этот раз его заключение – устранить огонь – становится целью, которую необходимо разложить на подцели с помощью логических программ в строках 6–7. Эти подцели – действия (строка 2), по крайней мере одно из которых необходимо выполнить для достижения цели.

Связанные системы

Правила обработки ограничений: язык программирования, основанный на правилах. CLIPS: общедоступный программный инструмент для создания экспертных систем. JBoss Drools: система управления бизнес-правилами с открытым исходным кодом (BRMS). ILOG Rules: система управления бизнес-правилами. JESS: движок правил для платформы Java, являющийся расширением языка программирования CLIPS. Lisa: движок правил, написанный на Common Lisp. OpenL Tablets: бизнес-ориентированные правила и BRMS с открытым исходным кодом. Prolog: язык логического программирования общего назначения. ACT-R, Soar, OpenCog: когнитивные архитектуры, основанные на системе продукций.