Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
InCh3400.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
323.07 Кб
Скачать

То сборка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].

Недостатком индуктивного вывода по отношению к дедуктивному является плохая автоматизируемость. Применяемые в настоящее время автоматические процедуры индуктивного вывода либо сильно ограничены, либо предназначены для узко очерченных задач.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]