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

2.2.2.Подстановка и унификация

Формулы логики предикатов содержат переменны, поэтому для сопоставления литер необходимо осуществлять подстановки вместо переменных их значений.

Определение 2.2.4. Подстановкой называется множество подстановочных компонент вида

s={x1=t1, x2=t2,…, xn=tn},

где x1,x2,…,xn – различные переменные, t1,t2,…,tn – термы, причем терм ti не содержит переменной xi (1≤ i ≤ n).

Если σ = (x1=t1,...,xn=tn) – подстановка, а F – некоторый объект логики предикатов (терм, дизъюнкт, формула, множество объектов и т. д.), то через σ(F) будем обозначать дизъюнкт, полученный из F одновременной заменой всех xi на ti,.

Пример 2.2.4.

если σ={x=f(y), y=c, z=g(u)), F=R(x, y, z)v¬P(f(y)), то σ(F)=R(f(y), c, g(u))v¬P(f(c).

Определение 2.2.5. Пусть {E1,…,Ek} – множество объектов логики предикатов. Подстановка σ называется унификатором этого множества, если σ(E1)=σ(E2)=…=σ(Ek). Множество унифицируемо, если существует унификатор этого множества.

Пример 2.2.5.

Множество атомарных формул {Q(a,x,f(x)), Q(u,у,z)} унифицируемо подстановкой {u=a, x=у, z=f(у)},

а множество {R(x,f(x)), R(u,u)} неунифицируемо.

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

Определение 2.2.6. Пусть ξ и η – две подстановки. Тогда произведением (композицией) подстановок ξ и η (η◦ξ) называется подстановка  такая, что для любого объекта E выполняется равенство (E)=η(ξ(E)).

Будем конструировать подстановку  следующим образом:

Алгоритм 1. Конструирование композиции подстановок.

Вход: подстановки ξ={x1=t1, x2=t2,…, xk=tk} и η={y1=s1, y2=s2,…, yl=sl}

  1. получим из подстановок η и ξ множество подстановочных компонент {x1=η(t1), x2=η(t2),…,xk=η(tk), y1=s1, y2=s2,…, yl=sl},

  2. удалим из него компоненты вида xi=xi для, если таковые найдутся для 1≤ i≤ k,

  3. удалим компоненты вида yj=sj, если yj {x1,…, xk}, для 1≤j≤l, получим подстановку =η◦ξ.

Пример 2.2.6

Рассмотрим пример. Пусть ξ = {x=f(y), z=y, u=g(d)}, η = {x=c, y=z}.

  1. {x=f(y), z=z, u=g(d), x=c, y=z}.

  2. {x=f(y), u=g(d), x=c, y=z}.

  3. η◦ξ = {x=f(y), u=g(d), y=z}.

Упражнение 2.2.2.

Доказать, что результатом алгоритма 1 является композиция подстановок, удовлетворяющая определению 2.2.6.

Упражнение 2.2.3.

Доказать, что композиция подстановок ассоциативно, т.е. для любых подстановок ξ, η, ζ выполняется равенство ξ◦(η◦ζ)=(ξ◦η)◦ζ.

Введем пустую подстановку – подстановку, не содержащую подстановочных компонент. Будем обозначать ее через ε.

Упражнение 2.2.4.

Доказать, что пустая подстановка является единицей относительно умножения, т.е. для любой подстановки σ выполняются равенства σ◦ε=ε◦σ=σ.

Определение 2.2.7. Унификатор σ называется наиболее общим унификатором (НОУ), если для любого унификатора τ того же множества существует подстановка ξ такая, что τ=ξ○σ.

Пример 2.2.7

Для множества {P(x,f(а), g(z)), P(f(b),y,v)} наиболее общим унификатором является подстановка σ={x=f(b), y=f(a), v=g(z)}. Подстановка τ={x=f(b), y=f(a), z=c, v=g(c)}, то ξ={z=c} также является его унификатором. Однако τ=ξ○σ где ξ={z=c}.

Для изложения алгоритма нахождения наиболее общего унификатора потребуется понятие множества рассогласований в множестве объектов. Множество рассогласований строится следующим образом.

Алгоритм 2. Построение множества рассогласований.

Вход: множество объектов логики предикатов М, каждый объект представляет собой последовательность символов.

  1. выделим первую слева позицию (позицию рассогласований), в которой не для всех объектов стоят одинаковые символы.

  2. в каждом объекте выпишем подобъект, которое начинается с данной позиции (этими подобъектами могут быть литера, атомарная формула, терм).

  3. множество полученных подобъектов называется множеством рассогласований в М.

Пример 2.2.8.

M={P(x, f(y), a), P(x,u, g(y)), P(x, c, v)}, позиция рассогласований – пятая, множество рассогласований - {f(y), u, c}.

M={P(x, y), ¬P(a, g(z))}, позиция рассогласований – первая, множество рассогласований - {P(x, y), ¬P(a, g(z))}.

M={¬P(x, y),¬Q(a, v)}, позиция рассогласований – вторая, множество рассогласований - {P(x, y), Q(a, v)}.

Алгоритм 3. Алгоритм унификации.

Вход: множество литер М, каждая литера представляет собой последовательность символов.

  1. Положить k=0, Mk=M, σk=ε.

  2. Если множество Мk состоит из одной литеры, то выдать σk в качестве НОУ, завершить работу иначе найти множество Nk рассогласований в Mk.

  3. Если в множестве Nk существует переменная vk и терм tk, не содержащий vk, то перейти к шагу 4, иначе множество М неунифицируемо, завершить работу.

  4. Положить σk+1={vk,=tk}○σk,. К множеству Mk применить подстановку vk=tk, полученное множество литер взять в качестве Mk+1.

  5. Положить k=k+1 и перейти к шагу 2.

Пример 2.2.9. Проиллюстрируем работу алгоритма унификации на множестве М.

М={P(x,f(y)), P(a,u)}.

  • 1). k=0, σ0=ε, M0=M,

  • 2). N0={x,a},

  • 3)-4). σ1={x=a}, M1={P(a,f(y)),P(a,u)},

  • 5). k=1,

  • 2). N1={f(y), u},

  • 3)-4). σ2={x=a, u=f(y)}, M2={P(a,f(u))},

  • 5). k=2,

  • 2). НОУ={x=a, u=f(y)}. Конец работы.

M={P(x,f(y)), P(a,b)}.

  • 1). k=0, σ0=ε, M0=M,

  • 2). N0={x,a},

  • 3)-4). σ1={x=a}, M1={P(a,f(y)), P(a,b)},

  • 5). k=1,

  • 2). N1={f(y), b},

  • 3) М неунифицируемо. Конец работы.

Упражнение 2.2.5.

Доказать, что алгоритм 3 правильно (в соответствии с определениями) оценивает унифицируемость множества литер и находит НОУ.