3.1. Основные понятия
Продукцией или продукционным правилом называется правило вида:
ЕСЛИ условие ТО действие.
В рамках продукционной модели знания представляются в виде набора (системы) продукционных правил, которые задают возможности преобразования глобальной базы данных.
Пример. «Игра в восемь» (упрощенные пятнашки).
Задача. Дана доска, на которой девять клеток, по которым перемещается восемь фишек. Их следует расположить по порядку.
2 |
|
3 |
|
1 |
2 |
3 |
1 |
6 |
4 |
|
8 |
|
4 |
8 |
7 |
5 |
|
7 |
6 |
5 |
Сформулируем правила. Условно считаем, что мы как бы перемещаем не фишки, а пустую клетку (дырку).
A) Если дырка не в верхнем ряду, переместить ее вверх.
B) Если дырка не а правом столбце, переместить ее вправо.
С) Если дырка не в левом столбце, переместить ее влево.
D) Если дырка не в нижнем ряду, переместить ее вниз.Приведем пример «хода игры».
2 |
|
3 |
← |
|
2 |
3 |
↓ |
1 |
2 |
3 |
↓ |
1 |
6 |
4 |
1 |
6 |
4 |
|
6 |
4 |
|||
8 |
7 |
5 |
8 |
7 |
5 |
8 |
7 |
5 |
1 |
2 |
3 |
→ |
1 |
2 |
3 |
↑ |
1 |
2 |
3 |
|
8 |
6 |
4 |
8 |
6 |
4 |
8 |
|
4 |
|||
|
7 |
5 |
7 |
|
5 |
7 |
6 |
5 |
Последнее состояние здесь является терминальным (правильная расстановка цифр).
Продукционные модели часто используются при построении ЭС. Эта модель удобна тем, что язык представления ГБД может выбираться произвольно в зависимости от задачи (в предикатных языках ГБД представляется в виде набора предикатов). Структура ЭС описана в 2.2.7. Здесь, вспомним, что конечная цель – достижение терминального состояния ГБД.
Пример. Формализация задачи о волке, козе и капусте. Есть река и лодка, в которую входит лодочник и еще один предмет. Козу и волка, а также козу и капусту нельзя оставлять вместе без присмотра. Задача – перевезти все с левого берега на правый.
Представление ГБД. (x,y,z,s).
x,y,z,s = 0 - соответствующий предмет на левом берегу
x,y,z,s =1 – соответствующий предмет на правом берегу
Таким образом, (0,0,0,0) – исходное состояние, а (1,1,1,1) – терминальное состояние.
Прежде чем сформулировать правила, необходимо отсеять недопустимые состояния. Таковыми являются состояния, предусматривающие одновременное нахождение волка и козы или козы и капусты на берегу, противоположном от лодочника. Допустимые правила должны обеспечивать отсутствие возможности перехода в недопустимые состояния.
Исходя, их этого соображения можно построить следующую таблицу:
Правило |
Условие применимости |
прямая перевозка волка – (0,y,z,0)->(1,y,z,1) |
ù(y=0 Ùz=0) |
прямая перевозка козы – (x,0,z,0)->(x,1,z,1) |
всегда |
прямая перевозка капусты – (x,y,0,0)->(x,y,1,1) |
ù(x=0 Ù y=0) |
прямая пустая перевозка |
ù(y=0 Ù z=0) Ù ù(x=0 Ù y=0) |
обратная перевозка волка – (1,y,z,1)->(0,y,z,0) |
ù(y=1 Ùz=1) |
обратная перевозка козы – (x,1,z,1)->(x,0,z,0) |
всегда |
обратная перевозка капусты – (x,y,1,1)->(x,y,0,0) |
ù(x=1 Ù y=1) |
обратная пустая перевозка – (x,y,z,1)->(x,y,z,0) |
ù(y=1 Ù z=1) Ù ù(x=1 Ù y=1) |
Очевидно, что на продукциях, можно поставить задачи четырех типов:
- Определить существует ли решение вообще?
- Найти любое решение задачи.
- Найти всевозможные решения задач
D) Найти из множеств решений оптимальное в каком-либо смысле. При этом в простейшем случае, под оптимальным понимается решение, требующее как можно меньше операций преобразования ГБД. В более сложных случаях, приходится оперировать с весовыми коэффициентами, соответствующими правилам.