![]() КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Алгоритм унификации
Принцип резолюции Правило резолюций предполагает нахождение в дизъюнкте литерала, контрарного литералу в другом дизъюнкте. Если в логике высказываний нахождение контрарных пар не вызывает трудностей, то для логики предикатов сделать это гораздо сложнее, так как дизъюнкты могут содержать функции, переменные и константы. В этом случае следует использовать алгоритм унификации. Действительно, если мы имеем дизъюнкты типа:
В этом случае имеем:
Резольвентой этих двух дизъюнктов будет дизъюнкт
А если взять два дизъюнкта
то никакая подстановка в контрарную пару неприменима и никакая резольвента не может быть образована. Прежде чем переходить к рассмотрению вопроса об унификации, введем некоторые понятия. Пусть задано множество дизъюнктов
В этом множестве дизъюнктов А выражения Термы литерала могут быть переменными, постоянными или выражениями, состоящими из функциональных букв и термов. Например, для литерала Подстановочный частный случай литерала получается при подстановке в литералы термов вместо переменных. Пусть имеем литерал
Подстановки, примененные в рассматриваемом примере, можно обозначать следующим образом:
А теперь переходим собственно к алгоритму унификации. Пусть имеем дизъюнкты типа:
1. Проверить, можно ли применить резолюцию к 2. Найти подходящую подстановку, допускающую резолюцию. Такую проверку и вычисление подстановки осуществляет алгоритм унификации. Прежде, чем перейти к формальному описанию алгоритма унификации, дадим некоторые определения. Подстановкой называется конечное множество вида Подстановка называется фундаментальной, если все Пусть Рассмотрим применение алгоритма унификации к заданным дизъюнктам Шаг 1. Необходимо сравнивать соответствующие термы дизъюнктов слева направо, пока не встретятся первые термы с одинаковыми функциональными символами, которые различаются переменными или константами. Создается множество, состоящее из этих термов, называемое множеством рассогласования. Для Шаг 2. Для каждой переменной множества рассогласования проверяем, встречается ли она в каком-нибудь другом терме этого же множества. Шаг 3. Если на предыдущем шаге получен положительный ответ, то дизъюнкты не унифицируемы, и применение алгоритма оканчивается неудачей. Если ответ отрицательный, осуществляем подстановку вместо переменной из множества рассогласования терма из этого множества. Для
Шаг 4. Продолжаем двигаться направо, снова выполняя пункты 1-3. Новым множеством рассогласования будет
После этих преобразований можно применить резолюцию к дизъюнктам Прежде, чем переходить к формальному описанию алгоритма унификации, дадим более формализованные определения, характеризующие его работу.
Пусть Так, например, для для множества первыми слева различными термами в Например, для Если дизъюнкты не могут быть унифицируемы, алгоритм останавливается на шаге 2 Унификатор Для множества термов или атомов Рассмотрим механизм нахождения НОУ на примере.
Пусть имеем исходное множество
Если подстановку
Если теперь положить Подстановка Алгоритм унификации в формальном описании выглядит так. Пусть Шаг 0. Шаг k. Мы уже построили подстановки Шаг 1) Если алгоритм заканчивает работу, выдавая 2). Если а) строим множество рассогласования
б) осуществляем проверку вхождений (ПВ) переменных, то есть, проверяем для каждой переменной Если ПВ дает положительный результат, процесс останавливается и делается заключение, что множество
унифицируемо. Если множество Шаг Теорема 1. Если
Теорема 2. (Теорема Дж. А. Робинсона) Применение алгоритма унификации к множеству атомов Если Если Воспользуемся теоремами 1 и 2 для определения унифицируемости. Пример 1. (Множество унифицируемо) Пусть дано множество формул:
Определить, унифицируемо ли множество Шаг 0: Полагаем Шаг 1:
ПВ негативна. Полагаем
Шаг 2:
ПВ негативна. Полагаем Шаг 3:
ПВ негативна. Полагаем Шаг 4:
Вывод: НОУ= Пример 2. (Множество не унифицируемо). Дано множество формул:
Определить, унифицируемо ли множество Шаг 0: Полагаем Шаг 1:
ПВ негативна. Полагаем Шаг 2:
ПВ позитивна, так как Вывод. Множество
Пример 3. Пусть дано множество формул:
Определить, унифицируемо ли множество Шаг 0: Полагаем Шаг 1:
ПВ негативна. Полагаем Шаг 2:
ПВ негативна. Полагаем Шаг 3:
ПВ негативна. Полагаем Шаг 4:
Вывод: НОУ=
Дата добавления: 2015-06-27; Просмотров: 8164; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |