Процедура логического вывода в системах, основанных на продукционных моделях, в принципе не сложная. Как правило, она включает следующие части:
- рабочую память (базу данных) – фактические данные, описывающие возможное и текущее состояние предметной области – хранящуюся в оперативной памяти;
- базу продукционных правил, содержащую все допустимые зависимости между фактами предметной области и хранящуюся в долговременной памяти;
- механизм логического вывода.
Механизм логического вывода обеспечивает формирование заключений, воспринимая вводимые факты как элементы правил, отыскивая правила, в состав которых входят введенные факты, и актуализируя те части продукций, которым соответствуют введенные факты. Теоретической основой построения механизма логического вывода служит теория машины Поста.
Механизм логического вывода выполняет функции поиска в базе правил, последовательного выполнения операций над знаниями и получения заключений. Существует два способа проведения таких заключений – прямые выводы и обратные выводы.
Пусть имеется совокупность продукций в виде цепочек правил:
Прямым выводам (прямой цепочке рассуждений) соответствует движение от посылок к следствиям.
Механизм логического вывода, использующий прямые выводы, в качестве образца выбирает введенный в базу данных (рабочую память) факт и если при сопоставлении он согласуется с посылкой правила, то делается заключение , которое тоже помещается в базу данных как факт, описывающий состояние предметной области. Последовательно выводятся новые результаты, начиная с уже известных. Однако отсутствие связи между фактами и может привести к обрыву процедуры и конечный результат не может быть получен. Это считается основным недостатком прямых механизмов логического вывода и требует от пользователя знания всей структуры модели предметной области. Особенно явно этот недостаток проявляется при включении в базу знаний новых фактов и правил: если они не связаны в цепочку с имеющимися фактами, то они становятся балластом – механизм логического вывода никогда их не найдет. С этой точки зрения использование обратной цепочки рассуждений предпочтительнее.
Обратным выводам (обратной цепочке рассуждений) соответствует движение от цели (факта, который требуется установить) к предпосылкам. В обратном механизме логического вывода работа начинается от поставленной цели. Если цель согласуется с консеквентом (заключением) продукции, то антецедент (посылка) принимается за подцель и делается попытка подтверждения истинности этого факта. Процесс повторяется до тех пор, пока не будут просмотрены все правила, имеющие в качестве заключения требуемый факт.
Так, в приведенном примере движение от заключения приводит к необходимости подтверждения факта . Факт может подтвердиться, если подтверждается . Если не подтверждается, то механизм логического вывода отыщет правило, связывающее с и перейдет на анализ второй цепочки правил. Дойдя до правила , система запросит базу данных (рабочую память) или пользователя о справедливости факта . Если факт подтверждается, то происходит возвратное движение по правилам, все факты актуализируются (считаются справедливыми) и цель достигается успешно. В противном случае система явно указывает причину недоказанности выводов, что, в отличие от прямой цепочки рассуждений, облегчает работу пользователя.
Функцией, реализующей работу механизма логического вывода, является рекурсивная процедура сопоставления с образцом.
Рекурсия (лат. «recurso» – бегу назад, спешу обратно, возвращаюсь) – способ решения задач, заключающийся в разбиении исходной задачи на подзадачи. Если подзадача есть уменьшенный вариант исходной задачи, то способ ее разбиения и решения идентичен примененному к исходной задаче. Последовательное разбиение приводит к задаче, решаемой непосредственно. Это решение служит основанием для решения подзадачи верхнего уровня и т. д., пока первоначальная задача не будет решена.
Пример рекурсивных рассуждений:
Как найти льва в пустыне? Для этого следует выполнить следующие шаги:
- По периметру пустыни поставить забор (чтобы лев не убежал).
- Поймать льва в выделенном пространстве. Если лев не пойман, то перейти к п. 3, иначе - к п. 5.
- Выделенное пространство разделить забором на две равные части (в два раза сократить пространство поиска).
- Выбрать одно из подпространств и перейти к п. 2.
- Завершение, цель достигнута
В заключении отметим, что в практике наиболее часто встречаются механизмы логического вывода, опирающиеся на обратную цепочку рассуждений. Это обусловлено их более надежной работой (практически всегда имеется возможность найти цепочку рассуждений от конца до начала) и большей производительностью, что становится особенно заметно при большом количестве продукций.