- •Формальные модели
- •Логика высказываний
- •Метод резолюции
- •Формулировка исчисления высказываний
- •Понятие семантики в логике высказываний Означивания и истинностные означивания
- •Семантические таблицы
- •Аксиоматическая система вывода
- •Метод резолюций
- •Корректность и полнота исчисления высказываний Разрешимость и полнота исчисления высказываний
- •Корректность и полнота метода семантических таблиц
- •Корректность и полнота аксиоматической системы вывода
- •Алгебраические системы
- •Логика предикатов
- •Исходные символы языка логики предикатов
- •Термы и формулы
- •Интерпретация вPrL
- •Интерпретация термов
- •Интерпретация формул
- •Интерпретация атомных формул
- •Интерпретация формул с логическими связками.
- •Интерпретация формул, содержащих кванторы
- •Подстановка термов в формулы
- •Аксиоматические основания логики предикатов
- •Общезначимые эквивалентности логики предикатов
- •Предваренная нормальная форма
- •Метод семантических таблиц
- •Построение замкнутых семантических таблиц
- •Сколемовская нормальная форма
- •Теоретико-множественное представление-формул
- •Эрбрановские интерпретации
- •Семантические деревья
- •Исчисления предикатов Выводы в естественной дедуктивной системе
- •Определение схем (правил) вывода для ипс
- •Унификация и резолюция в логике предикатов
- •Унификация: неформальное описание
- •Унификация: формальное описание
- •Теорема Дж. А. Робинсона
- •Метод резолюций дляPrL Клаузальная форма (форма предположений)
- •Корректность и полнота исчислений логики предикатов Корректность и полнота исчисления резолюций
- •Корректность и полнота метода семантических таблиц
- •Проблема разрешимости логики предикатов
- •Полнота и непротиворечивость исчисления предикатов
- •Теоремы ограничения в формальных системах
- •Список рекомендуемой литературы
Унификация и резолюция в логике предикатов
Когда предложение представлено в виде множества дизъюнктов, приходится работать с переменными и сколемовскими функциями. С помощью семантических деревьев можно определить, выполнима ли данная формула на соответствующем эрбрановском универсуме. Процедура эта требует значительных затрат времени. Более того, ее нельзя представить в виде хорошо структурированного алгоритма, который можно было бы реализовать на компьютере. Процедура унификации предлагает метод определения противоречивости множества дизъюнктов.
Унификация: неформальное описание
Пусть даны следующие дизъюнкты:
C1: {P(f(x),y), Q(a,b,x)} и C2: {P(f(g(c)),g(d))}.
Мы хотим применить резолюция к С1 и С2, выполнив подстановку: (x/g(c), y/g(d)). Для этого необходимо
проверить, можно ли применить резолюцию к С1 и С2 и
найти подходящую подстановку, допускающую резолюцию.
Такую проверку и вычисление подстановки выполняет алгоритм унификации. Посмотрим, как этот алгоритм унифицирует С1 и С2.
Шаг 1. Начинаем сравнивать соответствующие термы дизъюнктов слева направо, пока не встретим первые термы с одинаковыми функциональными символами, которые различаются переменными или константами. Множество этих термов образует множество рассогласования. Для С1 и С2 первым множеством рассогласования будет {x, g(c)}.
Шаг 2. Для каждой переменной множества рассогласования проверяем, встречается ли она в каком-нибудь другом терме этого же множества.
Шаг 3. Если на предыдущем шаге получен положительный ответ, то дизъюнкты не унифицируемы, и применение алгоритма заканчивается неудачей. Если ответ отрицательный, производим подстановку вместо переменной из множества рассогласования терма из того же множества. Для С1 и С2 применяем подстановку ={x/g(c)}. В результате С1 и С2 принимают вид:
Шаг 4. Продолжаем двигаться вправо, выполняя пункты 1-3. Новым множеством рассогласования будет {y, g(d)}. Применяем подстановку {y/g(d)} и получаем
Очевидно, к дизъюнктам иможно применить резолюцию
Алгоритм заканчивает работу, выдавая в качестве ответа множество подстановок, позволяющих унифицировать ии затем применить к ним правило резолюции дляPL. Это множество подстановок называется общим унификатором (ОУ) дизъюнктов. Для С1 и С2 общим унификатором является множество ={x/g(c), y/g(d)}. Если дизъюнкты не могут быть унифицируемы, алгоритм останавливается на шаге 2.
Унификация: формальное описание
Унификация состоит в последовательном просмотре всех атомов пары дизъюнктов Ci и Cj с целью обнаружения атома, входящего в один из дизъюнктов с отрицанием, в другой – без. Если такие атомы найдены, то сравниваются попарно термы, которые являются аргументами этих атомов и находятся в одних и тех же позициях. Первая пара несовпадающих термов образует множество рассогласования DS. Затем производится проверка вхождений (ПВ), которая выясняет для каждой переменной, входящей в первый терм DS, есть ли вхождение этой переменной в другой терм. Если ДА, то ПВ дает ответ ДА. Это означает, что DS не унифицируемо. Такой же ответ, если в DS нет переменных. Если ПВ дает ответ НЕТ, то унификация возможна, и выполняется подстановка.
Множество рассогласования. Пусть S={C1, C2, …, Cn} – множество дизъюнктов. Множество DS(S)={t1, t2, …, tn | t1, t2, …, tn – первые слева термы, стоящие на соответствующих местах в дизъюнктах C1,…, Cn, среди которых есть по крайней мере два различных} называется множеством рассогласования S.
Множество рассогласования не определяется однозначно, оно зависит от порядка следования атомов в дизъюнктах. В рассмотренном выше примере S={C1, C2} = {{P(f(x),y), Q(a,b,x)}, {P(f(g(c)), g(d))}}. Первыми слева различными термами в атомах P(f(x)y) и P(f(g(c)), g(d)) являются x и g(с), таким образом, первым множеством рассогласования будет множество DS1={x, g(c)}. После применения подстановки ={x/g(c)} возникает несоответствие между термами y и g(d), и следующим множеством рассогласования будет DS2={y, g(d)}.
Пусть X={1, 2, …, n} множество атомов или термов. Подстановка называется унификатором для Х, если 1=2=…=n.
Унификатор называется наиболее общим унификатором (НОУ), если для любого другого унификатора существует подстановка такая, что .
Для множества термов или атомов S НОУ определяется единственным образом.
Пример 1.рассмотрим множество атомов S={Q(g(x),w), Q(y, b)}, где b – константа. Унификатором для S является подстановка ={y/g(b), x/b, w/b}. Если подстановку применить к множеству S, получатся следующие основные примеры:
Q(g(x), w)=Q(g(b), b); Q(y,b) = Q(g(b),b).
Если мы теперь положим ={x/b} и {y/g(x), w/b}, можем легко показать, что .
Кроме того, подстановка унифицирует рассматриваемые атомы, т.е. является НОУ.
Алгоритм унификации Пусть T={P1, P2,…, Pn}- множество атомных формул.
Шаг 0. 0=Е (тождественная подстановка).
Шаг k. Уже построены подстановки 0, 1, …, k.
Шаг k+1. (рекурсия).
Если P11 2 …k= P21 2 …k=…=Pn , алгоритм заканчивает работу, выдавая =1 2 …k в качестве НОУ.
Если Pi 1 2 …k Pj 1 2 …k для некоторых I, j, тогда
строим множество рассогласования DS(Pi 1 2 …k,…, Pn 1 2 …k) = DS(T 1 2 …k) = DSk;
производим проверку вхождений (ПВ) переменных, т.е. проверяем для каждой переменной vDSk, содержится ли она в каком-нибудь другом элементе DSk.
Если ПВ дает положительный ответ, останавливаемся и делаем заключение, что множество Т не унифицируемо. Если множество DSk вообще не содержит переменных, ПВ также дает положительный ответ. Если DSk содержит переменную v и терм t, и ПВ дает отрицательный ответ, полагаем, что k+1 ={v/t}, избавляясь, таким образом, от несоответствия между P1,…,Pn в термах v, t.
Шаг k+2. Повторяем шаги k+1, k+2 для k=k+1.