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

4.3 Преимущества и недостатки метода резолюции

1. Надо знать и помнить всего одно правило.

2. Применение этого правила можно автоматизировать(запрограммировать на ПК).

3.Ответы можно извлекать из унификаторов.

Недостатки:

Не гарантируется конец работы (бесконечный цикл при попытке найти доказательство). Но это бывает очень редко, так как большинство реальных задач не содержат “неразрешимых ” формул.

Общий вывод:

1. Предложения Пролога можно интерпретировать как предложения исчисления предикатов первого порядка.

(фразы Хорна)

2. Компилятор Пролога можно рассматривать как резолюционную процедуру доказательства, использующую поиск в глубину (сверху - вниз и слева – направо)

3. Все вычислительные задачи можно сформулировать, пользуясь только отрицанием, правилами и фактами, а те из задач, которые являются разрешимыми, можно решить с помощью общей резолюции сверху вниз.

(неразрешимыми считаем те задачи, которые не имеют опровержения)

Дополнительная информация:

Резолюция обладает важными свойствами корректности и полноты.

Резолюция корректна в том смысле, что если с ее помощью из множества допущений S1 и отрицания F выводится противоречие, то обязательно справедливо отношение S1 |-- F .

Резолюция полна в том смысле, что если справедливо S1|-F ,то противоречие непременно выводится из S1 и F .

Проблема общезначимости

Логика первого порядка только частично разрешима. Но есть алгоритмы, которые всегда устанавливают справедливость отношения S1|- F ,если оно действительно имеет место. Это значит, что если составили неразрешимую логическую программу, то есть не имеющую опровержения и подали ее на вход частично разрешимой процедуры, основанной на резолюции и реализовали на ЭВМ ,то может произойти зацикливание.

Исследования подтвердили, что логика хорновских дизъюнктов является универсальным вычислительным формализмом. Ее проверили на множестве натуральных чисел, на частично рекурсивных функциях, на классе алгоритмов Маркова и тому подобное.

4.4. Пример применения метода резолюций.

Листинг 4.1. программа, иллюстрирующая применение метода резолюции

predicates

likes(symbol,symbol)

food(symbol,symbol)

clauses

S2 likes(bill,pizza):-

food(pizza,italiano).

S3 food(pizza,italiano).

S2 и S3 –родительские предложения

В качестве S1 будет выступать цель goal: likes(bill,pizza), которая поступит на компилятор в виде отрицания.

Опровержение отрицания демонстрируется так: допущение отрицания цели ведет к противоречию.

likes(bill,pizza) подаем на вход системы резолютивного вывода. Система должна опровергнуть это отрицание при помощи других предложений программы.

Рис. 4.1. Применение принципа резолюции

Для верхнего случая : S1: A.

S2:A:-B.

S: B

Для нижнего случая : S1: A

S2:A

S: противоречие

В данном примере оказалось достаточно двух шагов вывода. Если предположить, что мы не отказываемся от предложений S2 и S3, и сами они не являются противоречивыми, то отсюда следует, что они совместно противоречат S1, то есть подтверждают отрицание S1, а следовательно, ответ –ДА.

В общем виде:

S1: (A1,..,An)

S2: Aк:-B1,..,Bm где 1<=к<=n

Некий предикат Ak из отрицания S1 совпадает с головой правила S2.В этой ситуации шаг вывода заменяет Ak в S1 на подцель из S2, и в качестве резольвенты получаем s: (A1,..,Ak-1,B1,..,Bm,Ak+1,..,An).

Если на запрос можно получить ответ на основе знаний, закодированных во входных допущениях, то система обязательно его получит. Ответственность за построение вывода, за управление протоколом связываний и извлечения ответа может быть полностью возложено на систему.

Каждое вычисленное решение обладает требуемым свойством – оно логически следует из данных допущений. Очень немногие из формальных систем программирования обладают этими качествами.