Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инф-госы теория и практика.doc
Скачиваний:
28
Добавлен:
29.08.2019
Размер:
3.77 Mб
Скачать

11. Метод резолюции в лппп.

Литеры L1 и L2 называются контрарными, если они являются отрицанием друг друга L1=L2 или L2=L1 по крайней мере с точностью до унификации. Бинарной резольвентой клозов С1 и С2, содержащих контрарные литеры L1 и L2 назовается клоз C, полученный следующим образом:

С={C1\L1}{C2\L2}

Примечание. Очевидно, что данное определение аналогично соответствующему определению в логике высказываний.

Пример.

Доказано, что бинарная резольвента является логическим следствием.

В отличии от ЛВ, в ЛППП различают понятия резольвенты и бинарной резольвенты. Для того, чтобы определить понятие резольвенты необходимо рассмотреть подстановки.

Множество вида /подстановка/ ={t1/x1, … , tn/xn}, где tn – термы, а xn – переменные называется подстановкой термов tn вместо переменных xn.

Замечание: Можем подставить любой терм вместо переменной, но только вместо переменной.

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

Если E – клоз, а Θ – подстановка, то EΘ – подстановочный частный случай, получаемый вследствие замены переменных xn на термы tn.

Пусть даны 2 подстановки Θ и Ω. Применим подстановку Θ, а затем подстановку Ω. Тогда будем говорить, что применили композицию подстановок Ω и Θ.

Унификатор {E1, … , En} это подстановка такая что E1 =…=En ее подстановка делает ее выражение одинаковой.

Подстановка Σ - есть наиболее общий унификатор множества выражений {E1,…,En}, если любой унификатор я-ется композицией Σ и некоторой подстановки p ( =Σp).

Если С – клоз, а Σ - наиболее общий его унификатор его литер, тогда С Σ называется склейкой клоза С.

Резольвентами клозов С1 и С2, содержащих контрарные литеры L1 и L2 называются бинарные резольвенты:

клозов С1 и С2;

любой склейки клоза C1 и клоза С2;

клоза С1 и любой склейки клоза С2;

любых склеек клоза С1 и С2.

Т.о. резолютивный вывод состоит из резольвирования и склеек.

Аксиома 1. Мао Цзедун – человек

Аксиома 2. Все люди смертны.

Теор. Мао Цзедун – смертен.

Введем предикаты C(x) – x ч-к и S(x) – x смертен

Аксиома 1 . C(Mao)

2.

теорема S(Mao)

1 аксиома{Mao/x}C(Mao) S(Mao)

2 аксиомаC(x) S(x) S(Mao)

теорема S(Mao)

Здесь также справедлива теорема о полноте резолютивного вывода. Множество клозов S противоречиво, если и только если существует резолютивный вывод пустого клоза из S.

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

Стратегии проведения резолюции.

Стратегией резолюции н-ется алгоритм определяющий последовательность выбора клоза в процессе резолюции.

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

Рассмотрим самые распространенные стратегии.

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

Линейные резолюции. Линейным называется вывод, удовлетворяющий следующей схеме

где Сi - центральные клозы, Вj - боковые. Боковой клоз всегда выбирается либо из входного множества, либо среди клозов, полученных на предыдущих шагах. Клоз C называется верхним в выводе.

Bj либо принадлежит входному мн-ву S либо совпадает с Cj, i<j. S – входное мн-во изначально опровергаемых клозов.

Недостаток этой стратегии в том, что она не полна.

Входная резолюция.

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

Стратегия OL-вывода (Ordered Lined).

Вывод на клозах Хорна (реализован в Прологе).

Упорядоченным линейным выdодом (OL-выводом) пустого клоза из S (OL-опровержением множества S) называется вывод, удовлетворяющий следующим условиям:

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

  2. вывод имеет следующий вид:

в схеме без пустого клоза

Bj принадлежит S Bj=Ci I<j

где Сi - центральные клозы, Вj - боковые. Боковой клоз всегда выбирается либо из входного множества, либо среди клозов, полученных на предыдущих шагах. Клоз C называется верхним в выводе.

OL-вывод является так называемой почти полной стратегией.

Логический вывод на хорновских дизъюнктах.

Клозом Хорна (дизъюнктом Хорна, хорновским дизъюнктом) называется выражение вида (A1….An)->(B1…Bm), где 0<=n<∞, 0<=m<=1 m,n - целые. Ai, Bj – литеры.

Клозы Хорна действительно являются дизъюнктами, так как возможны следующие случаи:

  1. m=0, n=0 - имеем пустой клоз.

  2. m=0, n>0 – имеем клоз вида A1….An. Клоз Хорна такого вида называется теоремой (и используется для формулирования теорем). А так как в выводе участвуют теоремы, а их отрицания, то имеем A1…An.

  3. m=1, n=0. получаем B. Такой клоз Хорна называют фактом. Факт состоит из одной литеры.

  4. m=1, n>0 – аксиома. A1….An->B A1 … An->B.

Задача. Методом резолюции получить пустой клоз.

Доказательство начинается с теоремы (предполагается, что она единственная). Далее пытаемся найти факт или аксиому, с которой можно провести резолюцию (непосредственно или посредством подстановки).

Стратегия

Пусть имеется список сл.текущих целей:

C1, …, Ci-1, Ci, Ci+1, …, Cn

2 случая:

  1. Сущ-ет факт B=Ci (с точностью до унификации), то в этом случае утверждение Ci м-но считать доказанным.

C1, …, Ci-1, Ci+1, …, Cn

C1 …  Ci-1  Ci  Ci+1 …  Cn

B

C1 …  Ci-1  Ci+1 …  Cn

  1. C1, …, Ci-1, Ci, Ci+1, …, Cn

Сущ-ет аксиома B:-A1 … Ak , при чем B=Ci. Заменить Ci на список A1 … Ak.

C1, …, Ci-1, A1 … Ak , Ci+1, …, Cn

 C1 …  Ci-1  Ci  Ci+1 …  Cn

A1 … Ak  B

 C1 …  Ci-1 A1 … Ak  Ci+1 …  Cn

Д алее, процесс продолжается и так до тех пор, пока мы не получим пустой клоз или не будет возможности применить ни аксиому, ни факт. Заметим, что боковой клоз всегда выбирается из входного множества, что увеличивает скорость вывода. Но этот метод имеет крупный недостаток. Он в отличие от OL-вывода не обладает свойством полноты, и может зацикливать в довольно тривиальных случаях.

Подход, основанный на клозах Хорна, лег в основу концепции логического (рекурсивно-логического) программирования, которая реализована в языке программирования Пролог.

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

Основными элементом программы на Прологе является предикат. Понятие предиката несколько расширено по сравнению с ЛППП. Прологовский предикат также имеет значение «истина» или «ложь» также может содержать в качестве аргументов константы, переменные или функции. В тоже время пролог-предикат несет в себе и процедурную нагрузку, т.е. выполняет какие-либо действия. Более того, в Прологе в виде предикатов оформлены все стандартные подпрограммы.