
- •Язык логики предикатов
- •Буквы и символы
- •Термы - константы, переменные, функции
- •Атомарные предикаты
- •Кванторы и связанные переменные
- •Определение правильно построенной формулы
- •Семантика логики предикатов
- •Использование языка логики предикатов для представления знаний
- •Префиксная нормальная форма
- •Сколемовская нормальная форма
- •Клаузальная форма
- •Предложения (дизъюнкты) Хорна
- •Формализация процесса доказательств
- •Метод резолюции для логики высказываний.
- •Принцип резолюции в логике предикатов
- •Наиболее общий унификатор
- •Алгоритм доказательства методом резолюции
- •3) ("X)[шпион(X)®дипломат(X)]
- •Ограничения логики предикатов первого порядка
- •Понятия вычислимости. Счетные и несчетные множества.
- •Машина Тьюринга.
- •Функции, вычислимые на машине Тьюринга
- •Примеры невычислимых по Тьюрингу функций
- •Тезис Чёрча-Тьюринга.
- •Проблема остановки машины Тьюринга.
- •Рекурсивные функции
- •Рекурсивность вычислимых по тьюрингу функций.
- •Нормальные алгорифмы маркова
- •Логика первого порядка неразрешима
- •Теорема о корректности.
- •Теорема о компактности.
- •Теорема Лёвенгейма-Сколема
- •Список литературы.
Метод резолюции для логики высказываний.
Не содержащий переменных предикат является просто высказыванием. Допустим, что в клаузальном множестве Kимеется пара предложенийCiиCk, которая содержит дополнительные литералы:
Ci ºXÚL (4)
_
CkºY ÚL(5)
гдеX,Y- некоторые дизъюнкции литералов.
Докажем, что следствием этих двух предложений является предложение
CºX ÚY, (6)
_
не содержащее литералов LиL. То есть докажем общезначимость формулы
Ci ÙCk ® C.
Перепишем эту формулу, убрав знак импликации и подставив вместо
Ci ,Ck,Cправые части из формул (4 - 6):
_ _ _ _
(X ÙL)Ú(YÙL)ÚXÚYºLÚLº1.
Поэтому, если в двух предложениях клаузального множества имеются дополнительные литералы, эти два предложения можно заменить одним, которое уже не содержит дополнительных литералов. Это предложение C называетсярезольвентойпредложенийCi и Ck.
Теорема Bбудет доказана, если в результате последовательного исключения дополнительных литералов в парах предложений клаузального множества мы получим ложное (пустое) предложение.
Приведем пример доказательства методом резолюции. Пусть для некоторой теоремы клаузальное множество имеет вид
K=C1ÙC2ÙC3ÙC4ÙC5,
где Ciесть следующие высказывания:
_ _ _ _ _ __
(1) C1=PÚQÚR, (2)C2=PÚQÚM, (3) C3=P , (4) C4=M,(5) C5,=Q.
Доказательство методом резолюции:
_
(6) C6=QÚM- резольвента предложений (2) и (3);
_
(7)C7=Q - резольвента предложений (4) и (6);
(8)C8=0 - резольвента предложений (5) и (7).
Принцип резолюции в логике предикатов
Поскольку предикаты содержат переменные, то по сравнению с логикой высказываний алгоритм доказательства несколько усложняется. Перед тем как применять описанный в алгоритм, необходимо провести некоторую подстановкув переменные и ввести понятиеунификации.
Для примера рассмотрим два предиката L(x) и L(a). Здесьx-переменная,a- константа. В этих предикатах предикатные символы одинаковы, чего нельзя сказать о самих предикатах. Тем не менее подстановкой константыaв переменнуюxэти предикаты делаются одинаковыми. Такая подстановка называется унификацией. Целью унификации является обеспечение возможности применения описанного алгоритма доказательства для предикатов. Обобщив формулы (4) и (5), можно записать:
____
Ci ºXÚL(x) CkºY ÚL(a) ___
В данном случае L(x) и L(a)не находятся в дополнительных отношениях. Но при подстановкеaвместоxэти литералы станут дополнительными. Однако операцию подстановки нельзя проводить при отсутствии каких-либо ограничений.
Наиболее общий унификатор
Подстановку терма tв переменнуюxпринято записывать как {t/x} Поскольку в одну ППФ может входить более одной переменной, то в общем случае подстановка записывается в виде множества упорядоченных парq={t1/x1,t2/x2, ... tn/xn}. Причем подстановка допускается при следующих условиях: 1)xiявляется переменной, аtiесть терм, отличный отxi ;
2) для любой пары элементов из q, например, ( ti/xi,tj/xj),
в правых частях перед символами "/" не содержатся одинаковые переменные. Если к формуле Lприменяется подстановкаq, то результат подстановки принято обозначать какLq.
Пусть имеется группа различных выражений предиката L. Назовем ихL1,L2,...,Lm. Тогда, если существует подстановкаq, такая, что все эти выражения становятся одинаковыми, она называетсяунификаторомдля {L1,L2,...,Lm}, т.е для унификатораqсправедливы равенстваL1q= L2q=...= Lmq. В этом случае говорят, что множество выражений {L1,L2,...,Lm}унифицируемо.
Например, два выражения L(a) и L(x)унифицируемы. Здесь унификатор - это подстановка{a/x}.
Для одной группы выражений может существовать несколько унификаторов. Например, для выражений L(x,y)иL(z,f(x)) следующие подстановкиq1иq2будут унификаторами:
q1={x/z,f(x)/y},
q2={a/x,a/z,f(a)/y}.
Здесь a- константа;x,y,z- переменные.
Поэтому возникает проблема выбора подходящего унификатора. Результат последовательного выполнения двух подстановок qиl также является подстановкой. Такая подстановка называется сложной и обозначается в видеl°q. Если существует несколько унификаторов, то среди них найдется такая подстановкаd, что все другие унификаторы являются подстановками, выраженными в видеd°q.
В результате подстановки переменные будут замещены константами и описательная мощность ППФ будет ограничена. Чтобы унифицировать два различных выражения предиката, необходима такая подстановка, при которой выражение с большей описательной мощностью согласуется с выражением, имеющим меньшую описательную мощность. Однако нет необходимости ограничивать описательную мощность всеми другими подстановками. Наиболее общий унификатор (НОУ) - это подстановка с самыми минимальными ограничениями подобного рода.
Метод отыскания НОУ для заданной группы предикатных выражений называется алгоритмом унификации. Такой алгоритм состоит в том, что сначала упорядочиваются выражения, которые подлежат унификации. Когда все выражения будут упорядочены в алфавитном порядке, среди них отыскиваются такие, в которых соответствующие термы не совпадают между собой. Положим, что при последовательном просмотре всех выражений слева направо несовпадающими термами явились x, t. Тогда, если выполнены условия: 1)xявляется переменной; 2)xне содержится вt, к группе подстановок добавляетсяt/x. Если повторением этих операций будет обеспечено совпадение всех изначально заданных выражений, то они являются унифицируемыми, а группа полученных подстановок является НОУ.
Приведем пример двух выражений предиката L, которые не могут быть унифицированы, так как нарушается условие 2. ВыраженияL(a,t,f(z))иL(a,x,z)не могут быть унифицированы, так как для термовz иf(z) не существует унифицирующей подстановки.
Рассмотрим алгоритм унификации на простом примере. Пусть необходимо унифицировать два выражения P1иP2.
P1=L(a,x,f(g(y)),
P2=L(z,f(z),f(u)).
1. Первые несовпадающие термы при просмотре слева направо - это a иz. Подстановка {a/z} дает:
P1=L(a,x,f(g(y)),
P2=L(a,f(a),f(u)).
2. Первые несовпадающие термы при просмотре слева направо - это xиf(a). Делаем подстановку {f(a)/x}:
P1=L(a,f(a),f(g(y)),
P2=L(a,f(a),f(u)).
3. Первые несовпадающие термы при просмотре слева направо - это f(g(y))иf(u).Сделав подстановку{g(y)/u}, получим:
L(a,f(a),f(g(y)),
НОУ :{a/z, f(a)/x,g(y)/u}.