
- •3. Логические интеллектуальные системы
- •3.1. Логические системы на предикатах
- •Переходя к фразовой форме логики предикатов, при которой допускается запись формул только через операторы , и , правило можно записать как:
- •То сборка22.
- •3.2. Логические системы на продукциях
- •4. Продукционные системы с неопределенностями
- •4.1. Нечеткие продукционные системы
- •4.2. Вероятностные продукционные системы.
- •4.3. Продукционные системы с коэффициентами уверенности
То сборка22.
В нотации PROLOG соответствующая логическая программа будет такая:
1. деталь1 (тр1).
2. деталь2 (тр1).
3. деталь1 (тр2).
4. деталь2 (тр2).
5. сборка (X,Y): - деталь1 (Х); деталь2(Y).
Здесь введены предикаты вида Р(а), обозначающие отношения типа "а является Р", где а - константа, и предложение-правило вида РА(Х,Y) : - Р1(Х); Р2(Y)., где предикаты слева направо обозначают отношение "Х и Y являются сборкой", "Х является деталью 1 или 2", 32
"Y является деталью 1 или 2", и соединители между ними имеют смысл логических операторов: ":-" - обратная импликация (ТО... ЕСЛИ...), принятая за основу в языке PROLOG при составлении предложений-правил, а ";" - логическое "и"; символ "," - логическое "или"; Х, Y - переменные; точка в конце записи означает конец предложения и важна для интерпретатора.
Для того чтобы получить решение, сформируем запрос (цель) в виде
6. ? - деталь1 (Х), fail; сборка(Х,Y)!.
Это означает требование выполнить сборку, начиная с детали 1, перебирая все решения согласно предикату fail , но с отсечением лишних решений (варианты cборки деталей разных типоразмеров) по предикату cut.
Решения находятся с помощью интерпретатора в следующей последовательности:
предложение 6 считается первой резольвентой и присоединяется к исходной программе 1 - 5 в виде отрицания; вследствие чего после применения правила резолюции и унификации (согласования) с фактом 1 при Х = тр1 получается новое предложение:
7. деталь1(тр1), fail; сборка(тр1,Y)!.
предложение 7 берется как вторая резольвента и вновь выполняется правило резолюции, после которого в результате согласования с фактом 5 получается новое предложение:
8. деталь1(тр1); деталь2(Y).
предложение 8, как третья резольвента, согласуется с фактом 1, а затем с фактом 2 при Y = тр1, происходит отсечение по предикату cut и возврат;
восстанавливается запрос - первая резольвента, но согласование происходит с фактом 3 при Х = тр2, т.е. обходится факт 2, а затем с фактом 4 при Y = тр2, и процесс останавливается;
выдаются решения:
1. Х=тр1, Y=тр1, что означает сборка (тр1,тр1).
2. Х=тр2, Y=тр2, что означает сборка (тр2,тр2).
Заметим, что за счёт отсечения отброшены лишние решения с разными типоразмерами деталей.
Относительная простота и практичность решения задач путем логического вывода на предикатах с применением правила резолюции и стратегии поиска "в глубину", реализованного в языке PROLOG, считаются достоинствами. Однако имеются и недостатки. Так, этот метод по построению
33
предназначен только для доказательства в форме теорем, но не пригоден для вывода новых предложений, а затем уже и для доказательства в новой среде. При доказательстве возможен бесконечный поиск. Кроме того, метод плохо работает при большой размерности задачи.
Заметим, что такой вывод соответствует дедукции, определяемой с помощью формулы A, AB. Здесь A и AB – истинные формулы. Тогда, если
B
А истинно, и из А следует В, то В истинно, например,
робот (ПУМА), робот (ПУМА) имеет (робот, управление)
имеет (ПУМА, управление).
В отличие от рассмотренного нами дедуктивного логического вывода, использующего общее аксиоматическое описание задачи и позволяющего принимать частные решения (вывод от общего к частному), индуктивный логический вывод, обобщая частные исходные примеры, позволяет принимать общее решение (вывод от частного к общему). Существенно то, что диапазон представлений, порождаемых дедуктивным выводом, не больше заданного априори, а для индуктивного вывода он больше заданного изначально. Не вдаваясь подробно в проблему индуктивного вывода, рассмотрим здесь лишь простейшее правило индуктивного обобщения
P,HP
H
Здесь Р - множество известных предложений, Н - гипотеза. Если задано множество Р, введена гипотеза Н и показано, что Р выводится из Н, то Н считается истинной.
Например, пусть задано множество отношений вида "робот Х имеет управление", выраженное набором предикатов:
управление (робот_ПУМА).
управление (робот _АСЕА).
управление (робот_КОАТ-А-МАТИК).
Выдвигается гипотеза
( Х) управление (Х),
34
означающая "каждый робот имеет управление", что есть обобщение приведенных фактов. Теперь появляется новый факт - "робот_ЮНИМАЙТ". По правилу обобщения машина вывода заключает, что "робот ЮНИМАЙТ" имеет управление", и к множеству предложений добавляется предикат
управление (робот_ЮНИМАЙТ).
Такой вывод расширяет диапазон знаний об объектах.
Индуктивный вывод с использованием правила обобщения часто используется при автоматическом обучении понятиям, приобретении знаний в экспертных системах и др. Существует развитая теория индуктивного вывода, представляющая практический интерес в плане решения задач по принятию решений на основании обобщений [8].
Недостатком индуктивного вывода по отношению к дедуктивному является плохая автоматизируемость. Применяемые в настоящее время автоматические процедуры индуктивного вывода либо сильно ограничены, либо предназначены для узко очерченных задач.