

Архитектуры и модели программ и знаний
Лекция 25
Продукции и продукционные знания,
продукционные системы
Сафонов Владимир Олегович
Профессор кафедры информатики Заведующий лабораторией Java-технологии
(http://polyhimnie.math.spbu.ru/jtl)
Санкт-Петербургский государственный университет
Email: vosafonov@gmail.com
WWW: http://www.vladimirsafonov.org

Продукции (Э. Пост)
Продукция (production, или rule) –
выражение вида:
A -> S
где A – условие, S - действие (или следствие)
Нечеткая продукция (fuzzy rule) –
выражение вида:
A -> S (CF)
где A – условие, S - действие (или следствие),
CF - коэффициент уверенности (Certainty Factor), - как правило, число
от 0 до 1 |
(C) Сафонов В.О. 2012 |

Продукционная система
Тройка (триплет, 3-tuple) вида:
<P, I, R>
где:
-P (productions)– набор правил, конечное множество продукций
-I (interpreter) - интерпретатор (машина
вывода)
- R (resolver) – стратегия разрешения конфликтов
Работа продукционной системы – (потенциально
бесконечный) цикл, на каждом шаге которого
применяется(срабатывает) одно правило
Начало работы – постановка пользователем задачи
в виде целевого утверждения S или набора целевыцх
утверждений
S1, … Sn
Цель – доказательство целевого утверждения
(целевых утверждений); для нечетких продукций – со своими CF

Рабочее множество F
Рабочее множество – конечное множество F = {F1,
…, Fn}
фактов (утверждений, гипотез), - рабочая память продукционной системы; в системе OPS5 – WM (Working Memory)
Начальное состояние F задается пользователем, а
также на основе уже известных системе фактов
F пополняется в результате применения правил:
если считать, что S – следствие (факт), то в результате применения правила A -> S (которое возможно, если A содержится в F) утверждение S заносится в рабочее множество F (если его там еще не было)
Для нечетких продукций каждое утверждение
хранится в F со своим коэффициентом уверенностиМногократное применение правил может привести
к экспоненциальному и т.д. росту F
Аналогии с методом резолюций и с Прологом
(C) Сафонов В.О. 2012

Прямая и обратная цепочки
(forward chaining, backward chaining)
Прямая цепочка (рассуждений) – многократное
применение правил, как определено вышеОбратная цепочка – применение правил как бы в
“обратном порядке”, т.е.:
-если цель S0 – в рабочем множестве F, то выход
-поиск в P правил с правой частью S0 (в общем случае – S)
-если правило имеет вид: A1 & … An -> S, то попытка доказать (вывести) последовательно A1, …, An, т.е. Каждое из них последовательно
рассматривается в качестве текущей целиПример F = {D} P = { A&B -> C , C&D -> S}
цель - S
(C) Сафонов В.О. 2012

И/ИЛИ - граф
Графическое представление набора правил:
|
A & B -> C |
C |
||
|
D & E -> C |
| |
||
OR |
(A&B) V (D&E) -> C |
/ |
||
\ |
|
|
|
|
AND |
|
AND |
/ \ |
|
/ |
\ |
(C) Сафонов В.О. 2012 |
||
|
|

И/ИЛИ – граф и работа продукционной системы
Вывод утверждения C – связный подграф
И/ИЛИ-графа, содержащий вершину C, а также какие-либо исходные утверждения (например, A, B), содержащиеся в F (терминальные вершины дерева),
каждую дугу, ведущую в И-вершину, для всех И-вершин, принадлежащих подграфу вывода, и хотя бы одну из дуг, ведущих в ИЛИ-вершину, для всех ИЛИ-вершин, принадлежащих подграфу выводаОбъяснение: WHY? – подъем на один ярус
к вершине-результату (а также перечисление остальных братьев); HOW? – спуск на один(C)ярусСафоновкВ.Овершинам. 2012 -
предпосылкам, а также пояснение

Наиболее распространенные продукционные языки
PROLOG (А. Колмероэ) – Использование одного из видов метода резолюций и логики первого порядка в качестве языка программированияРЕФАЛ (В.Ф. Турчин) – Продукционный
язык, основанный на формальной модели алгоритма в виде нормальных алгоритмов Маркова
(C) Сафонов В.О. 2012

Вопросы и домашнее задание к лекции 25
Изучите книги и сайты:
Э. Пост. Системы продукцийЭ.В. Попов. Экспертные системы
www.visual-prolog.com – Для того, чтобы понять отличия
Visual Prolog от классического Prolog’а Колмероэ (1970-е гг.), попробуйте на Visual Prolog реализовать простейшую базу знаний: “Все люди смертны. Сократ - человек” и
получить вывод “Сократ –смертен” (предупреждение: это оказывается нетривиальной задачей на Visual Prolog)Клоксин, Меллиш. Автоматическое доказательство теорем
(метод резолюций)
В чем основные преимущества продукционных систем?
Объясните, почему они столь распространены для представления знаний?
В чем, по-Вашему, проблема продукционных систем?Какого рода знания неудобно выражать с помощью
продукций?
(C) Сафонов В.О. 2012