Продукции (наряду с сетевыми моделями) являются наиболее популярными средствами представления знаний в информационных системах. В общем виде под продукцией понимают выражение вида A ® B. Обычное прочтение продукции выглядит так: ЕСЛИ А, ТО B. Импликация может истолковываться в обычном логическом смысле, как знак логического следования B из истинного А. Возможны и другие интерпретации продукции, например, А описывает некоторое условие, необходимое, чтобы можно было совершить действие B.
Продукционная модель или модель, основанная на правилах, позволяет представить знания в виде предложений типа
«Если (условие), то (действие)».
Под условием понимается некоторое предложение — образец, по которому осуществляется поиск в базе знаний, а под действием — действия, выполняемые при успешном исходе поиска (они могут быть промежуточными, выступающими далее как условия, и терминальными или целевыми, завершающими работу системы).
При использовании продукционной модели база знаний состоит из набора правил, Программа, управляющая перебором правил, называется машиной вывода. Чаще всего вывод бывает прямой (от данных к поиску цели) или обратный (от цели для ее подтверждения – к данным). Данные — это исходные факты, на основании которых запускается машина вывода.
Если в памяти системы хранится некоторый набор продукций, то они образуют систему продукций. В системе продукций должны быть заданы специальные процедуры управления продукциями, с помощью которых происходит актуализация продукций и выполнение той или иной продукции из числа актуализированных.
В состав системы продукций входит база правил (продукций), глобальная база данных и система управления. База правил – это область памяти, которая содержит совокупность знаний в форме правил вида ЕСЛИ – ТО.
Приведем несколько примеров.
Правило 1.
ЕСЛИ (намерение — отдых) и (дорога ухабистая) ТО (использовать джип)
Правило 2.
ЕСЛИ (место отдыха — горы) ТО (дорога ухабистая)
Глобальная база данных — область памяти, содержащая фактические данные (факты). Система управления формирует заключения, используя базу правил и базу данных. Существуют следующие способы формирования заключений — прямые и обратные выводы.
Правила вывода бывает удобно представлять в виде дерева решений. Граф — множество вершин, связанных дугами. Дерево — граф, не содержащий циклов.
В прямых выводах выбирается один из элементов данных, содержащихся в базе данных, и если при сопоставлении этот элемент согласуется с левой частью правила (посылкой), то из правила выводится соответствующее заключение и помещается в базу данных или исполняется действие, определяемое правилом, и соответствующим образом изменяется содержимое базы данных.
В обратных выводах процесс начинается от поставленной цели. Если эта цель согласуется с правой частью правила (заключением), то посылка правила принимается за подцель или гипотезу. Этот процесс повторяется до тех пор, пока не будет получено совпадение подцели с данными.
Пример. Имеется фрагмент базы знаний из двух правил:
П1: Если (отдых – летом) и (человек – активный) то (ехать в горы)
П2: Если (любит – солнце) то (отдых – летом)
Предположим, в систему поступили данные — (человек – активный) и (любит – солнце).
Прямой вывод — исходя из данных, получить ответ.
1-й проход.
Шаг 1. Пробуем П1, не работает (не хватает данных (отдых–летом)).
Шаг 2. Пробуем П2, работает, в базу поступает факт (отдых–летом).
2-й проход.
Шаг 3. Пробуем П1, работает, активируется цель (ехать в горы), которая и выступает как вывод.
Обратный вывод — подтвердить выбранную цель при помощи имеющихся правил и данных.
1-й проход.
Шаг 1. Цель — (ехать в горы): пробуем П1 — данных (отдых– летом) нет, они становятся новой целью, и ищется правило, где она в правой части.
Шаг 2. Цель (отдых – летом): правило П2 подтверждает цель и активирует ее.
2-й проход.
Шаг 3. Пробуем П1, подтверждается искомая цель.
При большом числе продукций в продукционной модели усложняется проверка непротиворечивости системы продукций, то есть множества правил. Поэтому число продукций, с которыми работают современные системы искусственного интеллекта, как правило, не превышает тысячи.
Продукционная модель привлекает разработчиков своей наглядностью, высокой модульностью, легкостью внесения дополнений и изменений и простотой механизма логического вывода.
Приведем сильные и слабые стороны систем продукций.
Сильные стороны систем продукций:
- модульность;
- единообразие структуры (основные компоненты продукционной системы могут применяться для построения интеллектуальных систем с различной проблемной ориентацией);
- естественность (вывод заключения в продукционной системе во многом аналогичен процессу рассуждения эксперта);
- гибкость родовидовой иерархии понятий, которая поддерживается только как связь между правилами (изменение правила ведет за собой изменение в иерархии);
- простота создания и понимания отдельных правил;
- простота пополнения и модификации;
- простота механизма логического вывода.
Слабые стороны систем продукций:
- процесс вывода менее эффективен, чем в других системах, поскольку большая часть времени при выводе затрачивается на непроизводительную проверку применимости правил;
- сложно представить родовидовую иерархию понятий;
- неясность взаимных отношений правил;
- сложность оценки целостного образа знаний;
- отличие от человеческой структуры знаний;
- отсутствие гибкости в логическом выводе.
Представление знаний с помощью продукций иногда называют «плоским», так как в продукционных системах отсутствуют средства для установления иерархий правил. Объем знаний продукционных систем растет линейно, по мере включения в нее новых фрагментов знаний, в то время как в традиционных алгоритмических системах, использующих деревья решений, зависимость между объемом база знаний и количеством знаний является логарифмической.
Имеется большое число программных средств, реализующих продукционных подход: OPS5, EXSYS RuleBook, ЭКСПЕРТ, ЭКО, G2 и др.