Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интеллектуальные_системы.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
861.7 Кб
Скачать

Унификация и ее алгоритм.

Подстановкой будем называть множество вида {x1/t1,…,xn/tn}, где для всех i=1..n  xi – переменная, а ti – терм, причем xi<>ti. То есть имеет место отображение переменных в термы. При этом все переменные, входящие в подстановку различны.  Символом ? будем обозначать пустую подстановку.  Подстановка, в которой все термы основные называется основной подстановкой.

Простое выражение – это терм или атомная формула.  Если А – простое выражение, а П – подстановка, то АП получается путем одновременной замены всех вхождений каждой переменной из А соответствующим термом. То есть каждое вхождение xi в формулу заменяется на ti. АП называется примером (частным случаем) выражения А.  Пусть П1 и П2 – подстановки, П1 = {x1/t1,…,xn/tn}, П2 = {y1/s1,…,yn/sn}. Композиция  П1П2 получается из множества {x1/t1 П2,…,xn/tn П2, y1/s1,…,yn/sn } после удаления пар  xi/ti П2, где xi = ti П2 и пар, где yi совпадает с одним из xi. Здесь выражение xi/ti П2 означает последовательную замену в формуле всех вхождений xi на ti и ti на некое sk, если ti=yk.

Говорят, что подстановка П1 более общая, чем подстановка П2, если , если существует подстановка П3 такая, что П2=П1П2. Подстановка П называется унификатором простых выражений А и Б, если АП=БП. Сами выражения А и Б в этом случае называют унифицируемыми.  Соответственно наиболее общим унификатором двух простых выражений будет наиболее общая из подстановок, являющихся унификаторами для данных выражений.  Пусть S – некое множество простых выражений. Множеством разногласий (рассогласований) для S называется множество d(S), состоящее из элементов S начиная с первой позиции слева, в которой не во всех выражениях из S стоит один и тот же символ, и следующих после него подвыражений из выражений S.

Например: Пусть  S={f(p(x),h(y),a}, f(p(x),z,b), f(p(x),h(y),a)}.  Тогда множество разногласий:  D(S)={h(y),z } ( ??????)

Опишем алгоритм поиска наиболее общего унификатора для конечного множества простых выражений S.

Шаг 1. Полагаем к=0, П0=<Пустая подстановка>

Шаг 2. Если SПк содержит один элемент, то Пк – наиболее общий унификатор, алгоритм прерывается. Иначе – переходим к шагу 3.

Шаг 3. Если d(SПк) содержит некоторую переменную x и терм t такие, что x не входит в t, то полагаем П к+1=Пк{x/t}. Иначе множество S не унифицируемо и прерываем алгоритм.

Шаг 4. к=к+1.

Шаг 5. Переходим к шагу 2.

Правило резолюций и его применение.

Правило резолюций состоит в следующем. Если одна и та же атомная формула входит в один из дизъюнктов положительно, а в другой отрицательно, то эти формулы можно вычеркнуть, а дизъюнкты объединить. Исходные дизъюнкты называются родительскими , результирующий дизъюнкт – револьвентой, а вычеркнутые формулы – контрарными литералами. Правило резолюций можно выразить так:

(А или В) и (Б или НЕ(В)) <-> А или Б.

Пусть есть два дизъюнкта Д1 и Д2, у которых нет общих переменных, Л1 – литерал, входящий в Д1, а Л2 – литерал, входящий в Д2. Пусть литералы имеют наибольший общий унификатор П. Тогда дизъюнкт (Д1П-Л1П)или (Д2П-Л2П) называется револьвентой дизъюнктов Д1 и Д2.  Тогда правило резолюций можно представить в виде:

(А или Л1) и (Б или НЕ(Л2)) <-> (А или Б)П.

Здесь П – наибольший общий унификатор,  Метод резолюций является обобщением метода доказательства от противного: мы добавляем отрицание формулы-гипотезы в множество аксиом и пытаемся вывести из него противоречие.