Студопедия

КАТЕГОРИИ:


Архитектура-(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. Если на предыдущем шаге получен положительный ответ, то дизъюнкты не унифицируемы, и применение алгоритма оканчивается неудачей. Если ответ отрицательный, осуществляем подстановку вместо переменной из множества рассогласования терма из этого множества. Для и применяем подстановку ={x/g(c)}. В результате и принимают вид

= ; .

Шаг 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; Просмотров: 8051; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.094 сек.