Существует два типа выполнения систем продукций: прямой и обратный [1,2]:
1) в прямом типе поиск идет от левых частей продукций, т. е. проверяются условия Aи актуализируются те продукции, для которых A имеет место;
2) в обратном типе от изначально заданных B, по которым определяются необходимые для B значения A, которые, в свою очередь, отождествляются с правыми частями ядер продукций в системе.
Прямой вывод начинается с задания исходных данных решаемой задачи, которые фиксируются в виде фактов в РП системы. Правила, применяемые к исходным данным, обеспечивают генерацию новых фактов, добавляемых в РП. Процесс продолжается, пока не будет получено целевое состояние РП. Пример. В таблице 8.1 представлен пример поиска, управляемого данными, на множестве продукций, записанных в виде формул пропозиционной логики. Здесь на каждом шаге работы машины вывода применяется простая стратегия разрешения конфликтов: активизируется последнее из успешно сопоставленных правил. Порядок сопоставления правил соответствует их номерам. Множество правил-продукций [1,2]:
1) G ∧ H → C; 2) I ∧ K → D; 3) L ∧ M → E; 4) N → F; 5) O → F; 6) C → A; 7) D → A; 8) E → B; 9) F → B; 10) A → goal; 11) B → goal. Исходные данные:
START = {L; M; N} Таблица 8.1. Прямой вывод по образцу.
На рис. 8.1, а изображен граф решения. Вершины графа соответствуют высказываниям, а ребра-соответствующим правилам вывода. Процесс вывода начинается с размещения множества исходных фактов L, M, N в РП и заканчивается, когда в РП будет помещена целевая вершина Goal. Направление вывода обозначено рядом с графиком и соответствует движению от стартовой к целевой вершине, т. е. от исходных данных (высказывания L, M, N).
Рис. 8.1. Граф решения задачи. Поэтому такой вывод называется выводом, управляемым данными.