Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
105
Добавлен:
10.05.2015
Размер:
128 Кб
Скачать
          1. Унификация и подстановка

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

Пусть имеются два предиката L(x) иL(A), гдеx– переменная, аA– константа. Хотя предикатные символы и одинаковые, о самих предикатах этого сказать нельзя. Тем не менее, подстановкойAвxможно эти предикаты сделать одинаковыми. Однако операцию подстановки нельзя проводить при отсутствии каких-либо ограничительных условий. Подстановкуtвxпринято записывать как {t/x}. Поскольку в одну ППФ может входить более одной переменной и, следовательно, можно провести более одной подстановки, то обычно эти подстановки записываются в виде множества упорядоченных пар: {t1/x1;t2/x2; …,tn/xn}. Условия, допускающие подстановку, состоят в следующем:

1). xiявляется переменной, аti– термом (константа, переменная, функция), отличным отxi.

2) для любой пары элементов из группы подстановок в правых частях символов "/" не содержатся одинаковые переменные.

Обозначим группу подстановок {t1/x1;t2/x2; …,tn/xn} черезS. Если для некоторого представленияLприменяется подстановка содержащихся в ней переменных {x1;x2; …,xn}, то результат подстановки, при которой переменные заменяются соответствующими им термамиt1;t2; …,tn, принято обозначать какLS.

Если имеется группа различных выражений предиката L, т.е. {L1,L2, …,Lm}, то подстановкаS(положим, что она существует) такая, что в результате все эти выражения становятся одинаковыми, т.е.L1S=L2S=…LmSназывается унификатором для {L1,L2, …,Lm}. Если такая подстановкаSсуществует, то множество выражений {L1,L2, …,Lm} является унифицируемым.

Множество {L(x),L(A)} – унифицируемо, при этом унификатором является подстановка {A/x}.

Для одной группы выражений унификатор не обязательно единственный. Для группы выражений {L(x,y)},L{z,f(x)} подстановкаS= {x/z,f(x)/y} является унификатором, но унификатором является и подстановкаS' = {A/x;A/z;f(A)/y}, гдеA– константа, аx– переменная.

В таких случаях возникает проблема: какую подстановку лучше всего выбрать в качестве унификатора.

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

Чтобы унифицировать два различных выражения предиката, необходима такая подстановка, при которой выражение с большой описательной мощностью согласуется с выражением, имеющим малую описательную мощность. Подстановка, которая является унификатором с минимальным ограничениями называется "наиболее общим унификатором" (НОУ). В рассмотренном выше примере из подстановокSиS' НОУ является подстановкаS.

Метод отыскания НОУ из заданной группы предикатных выражений называется алгоритмом унификации. В таблице приведены наиболее общие подстановочные частные случаи для нескольких множеств литералов.

Множество литералов

Наиболее общие подстановочные частные случаи

{P(x), P(A)}

P(A)

{P(f(x), y, g(y)), P(f((x), z, g(x)}

P(f(x), x, g(x))

{P(f(x, g(A, y)),g(A, y)), P(f(x, z), z)}

P(f(x, g(A, y)), g(A, y))

Соседние файлы в папке Конспект лекций