- •Введение
- •1. Математическая логика
- •1.1. Формальные модели
- •1.2. Логика высказываний
- •1.2.1. Основные теоремы логического вывода.
- •1.2.2. Семантические таблицы
- •1.2.3. Метод резолюций
- •1.3. Исчисление высказываний
- •1.3.1. Классическое исчисление высказываний
- •1.3.2. Исчисление секвенций
- •1.4. Корректность и полнота логического вывода
- •1.4.1. Корректность и полнота метода семантических таблиц
- •1.4.2. Корректность и полнота метода резолюций
- •1.4.3. Корректность и полнота аксиоматической системы вывода
- •1.4.3. Разрешимость и полнота исчисления высказываний
- •1.5. Логика предикатов
- •1.5.1. Исходные символы языка логики предикатов
- •1.5.2. Термы и формулы
- •1.5.3. Интерпретация в логике предикатов
- •Интерпретация термов
- •Интерпретация формул
- •Интерпретация атомных формул
- •Интерпретация формул с логическими связками.
- •Интерпретация формул, содержащих кванторы
- •1.5.4. Метод семантических таблиц
- •Для формул с кванторами
- •Для формулы с кванторами
- •Построение замкнутых семантических таблиц в логике предикатов
- •1.5.5. Подстановка термов в формулы
- •1.6. Исчисление предикатов
- •1.6.1. Классическое исчисление предикатов
- •Общезначимые эквивалентности логики предикатов
- •1.6.2. Исчисление секвенций
- •Правила вывода в исчислении предикатов
- •1.7. Канонические представления формул логики предикатов
- •1.7.1. Предваренная нормальная формула (пнф)
- •1.7.2. Сколемовская нормальная форма
- •1.8. Теоретико-множественное представление -формул
- •1.8.1. Эрбрановские интерпретации
- •1.8.2. Метод семантических деревьев
- •1.9. Унификация и резолюция в логике предикатов
- •1.9.1. Композиция подстановок
- •1.9.2. Унификация: неформальное описание
- •1.9.3. Метод резолюций в логике предикатов
- •Корректность и полнота исчислений логики предикатов Проблема разрешимости в логике предикатов
- •Корректность и полнота метода семантических таблиц
- •Корректность и полнота исчисления резолюций
- •Полнота и непротиворечивость исчисления предикатов
- •2. Элементы теории алгоритмов
- •2.1. Предварительное обсуждение.
- •2.1.1. Понятие алгоритма
- •2.1.2. Основные требования к алгоритмам
- •2.1.3. О подходах к уточнению понятия алгоритма.
- •2.2. Машина Тьюринга
- •2.2.1. Соединение машин Тьюринга Композиция машин Тьюринга
- •Итерация машины по паре состояний
- •Разветвление машин Тьюринга
- •Эквивалентность машин Тьюринга
- •2.2.2. Понятие об алгоритмической неразрешимости
- •Библиографический список
1.9.2. Унификация: неформальное описание
Алгоритм унификации применяется к предложениям, записанным в сколемовской нормальной форме и представленным в теоретико-множественной форме как множество дизъюнктов S. Если в этом множестве имеются одноименные атомы, то к ним можно попытаться (это возможно не всегда) применить процедуру унификации. Пусть множество S содержит дизъюнкты
В дизъюнкты С1 и С2 входит двуместный атом Р, однако его аргументы в C1 и С2 различны. Процедура унификации проверяет, существует ли такая подстановка , выполнив которую, можно привести оба рассматриваемых атома к одному и тому же виду. Обнаружив одноименные атомы, алгоритм унификации выполняет поочередно проверку совпадения их аргументов. Аргументами атомов являются термы. При выполнении подстановки композиций необходимо иметь в виду:
вместо констант нельзя подставлять ничего;
если оба аргумента являются переменными, имеющими разные имена, подстановкой является переименование переменных;
если один из унифицируемых термов является переменной, а другойконстантой, выполняется подстановка константы вместо переменной;
если один из термов образован функциональным символом (по второму пункту определения терма), а в другом атоме этот же терм является переменной, то выполняется подстановка этого функционального символа вместо переменной;
если унифицируемые термы образованы разными функциональными символами, унификация невозможна;
если оба аргумента являются константами, и эти константы различны, то унификация невозможна.
Используем этот алгоритм для унификации дизъюнктов С1 и С2.
Шаг 1. В оба рассматриваемых дизъюнкта входит двуместный атом Р. Алгоритм унификации сравнивает соответствующие термы атомов в обоих дизъюнктах слева направо. Обнаружив несоответствие термов в рассматриваемой паре аргументов, алгоритм образует множество рассогласования DS. Для С1 и С2 первым множеством рассогласования будет DS1={x, g(c)}.
Шаг 2. Производится проверка вхождений (ПВ), которая выясняет для каждой переменной, входящей в первый терм множества рассогласования DS, есть ли вхождение этой переменной в другой терм. Если ДА, то ПВ дает ответ ДА. Это означает, что унификация невозможна. ПВ дает такой же ответ, если в DS нет переменных. Если ПВ дает ответ НЕТ, то выполняется подстановка. В противном случае дизъюнкты не унифицируемы, и применение алгоритма заканчивается неудачей. Если ПВ дает отрицательный, ответ, то формируется подстановка, заменяющая переменную из множества рассогласования на терм из того же множества. Для С1 и С2 применяем подстановку 1={x/g(c)}. В результате дизъюнкты С1 и С2 принимают вид
Шаг 3. Продолжаем двигаться вправо, выполняя шаги 1, 2. Новым множеством рассогласования будет DS2={y, g(d)}. Проверка вхождений дает отрицательный ответ. Применяем подстановку 2={y/g(d)} и получаем
В результате выполненных подстановок атомы P в обоих дизъюнктах стали полностью идентичными.
Алгоритм заканчивает работу, выдавая в качестве ответа множество подстановок, позволяющих унифицировать C1 и C2. Это множество подстановок называется общим унификатором (ОУ) дизъюнктов. Для С1 и С2 общим унификатором является множество =12={x/g(c), y/g(d)}. Если дизъюнкты не могут быть унифицируемы, алгоритм останавливается на шаге 2.
Унификатор называется наиболее общим унификатором (НОУ), если для любого другого унификатора существует подстановка такая, что =.
Для множества дизъюнктов S НОУ определяется единственным образом.
Теорема Дж. А. Робинсона. Результатом применения алгоритма унификации к множеству атомов {P1,…, Pn} является одно из двух сообщений:
если множество атомов унифицируемо, то алгоритм останавливается, выдавая в качестве ответа НОУ;
если множество атомов не унифицируемо, то алгоритм останавливается, объявляя, что унификатора не существует.
Теорема утверждает, что если множество дизъюнктов S унифицируемо, то алгоритм унификации останавливается, определяя именно НОУ множества атомов.
Примеры
1.
Рассмотрим
множество атомов S={Q(g(x),w),
Q(y,
b)},
где b
– константа. Используя описанную выше
процедуру унификации, для множества
атомов S
определим НОУ:
Однако для получения множества основных
примеров требуется дополнить эту
подстановку, заменив переменную x
константой
b,
присутствующей в эрбрановском множестве
для этого множества дизъюнктов, т.е.
применить подстановку ={x/b}.
Композиция подстановок ={y/g(b),
x/b,
w/b}=
является унификатором для S.
Дальнейшее исследование формулы
заключается в построении эрбрановского
множества и множества основных примеров.
Эрбрановское множество в данном случае
будет иметь вид H={b,
g(b),
g(g(b)),…}.
Соответствующее множество основных
примеров: {Q(b,b),
Q(g(b),b),
Q(b,g(b)),
Q(g(b),g(b)),…}.
2. Пусть получено множество дизъюнктов S={{Q(а,x,f(g(z)))}, {Q(z,f(y), f(y))}}. Определить, унифицируемо ли S. Если да, найти НОУ.
Шаг 0. |
Полагаем 0=Е (здесь Е – пустая подстановка, E={ }). Пустая подстановка вводится для удобства написания программы. |
Шаг 1: |
S 0 = S. DS(S 0)=DS1= {a,z}. ПВ дает ответ НЕТ. Полагаем 1={z/a}. |
Шаг 2. |
S01={Q(a,x,f(g(a))), Q(a,f(y), f(y))}. DS(S01)=DS2={x, f(y)}. ПВ дает ответ НЕТ. Полагаем 2={x/f(y)}. |
Шаг 3. |
S012={Q(a, f(y), f(g(a))), Q(a, f(y), f(y))}. DS(S012)=DS2={g(a), y}. ПВ дает ответ НЕТ. Полагаем 3={y/g(a)}. |
Шаг 4. |
S0123={Q(a, f(g(a)), f(g(a))), Q(a, f((a)), f(g(a)))}. DS(S0123)=. |
Процедура унификации окончена. Следовательно, S унифицируемо и его НОУ, получаемый объединением всех подстановок, имеет вид
НОУ= 0123 = {z/a, x/f(g(a)), y/g(a)}.
2. Дано множество дизъюнктов: S={{Q(y,y)}, {Q(z, f(z))}}. Определить, унифицируемо ли S. Если да, найти НОУ.
Шаг 0. |
Полагаем 0=Е. |
Шаг 1. |
S 0 = S. DS(S 0)=DS1= {y,z}. ПВ дает ответ НЕТ. Полагаем 1={y/z}. |
Шаг 2. |
S01={Q(z,z), Q(z,f(z))}. DS(S01)=DS2={z, f(z)}. ПВ дает ответ ДА, так как z встречается во втором терме f(z). |
Результатом положительного ответа на проверку вхождений является сообщение, что множество дизъюнктов S не унифицируемо.
