Сошников Дмитрий Валерьевич

advertisement
Сошников Дмитрий Валерьевич
к.ф.-м.н., доцент
dmitryso@microsoft.com
Факультет Прикладной математики и физики
Кафедра Вычислительной математики и программирования
Московский авиационный институт (государственный технический университет)
Метод резолюции
2
©2009 Сошников Д.В.

Нет ориентации на результат
 Мы начинаем с известного множества формул
и «расширяем» это множество
 Формула, которую требуется доказать, не
учитывается

На каждом шаге можно применить:
 Правило вывода к любым двум формулам
 Произвольную замену переменной
3
Сведение всех правил вывода + замены
переменной к одному универсальному
правилу вывода

Замена многократного перебора
минимально возможным

Исходим из целевой формулы и пытаемся
придти к исходным посылкам
©2009 Сошников Д.В.

4
©2009 Сошников Д.В.
Modus ponens: A, AB ├ B
 Modus tollens: A  B, ¬ B ├ ¬ A
 Эквивалентная форма записи:
¬ AB, ¬ B ├ ¬ A
 Расширенное правило резолюции:
L1 ... Ln  ¬ A, M1 ...  Mk  A ├
L1 ...  Ln  M1 ...  Mk
Li, Mk – литеры (с отрицанием или без)

5
©2009 Сошников Д.В.

Если Петя опоздает на работу, то его уволят
или сделают выговор. Петя опоздает, если не
придет автобус, или не прозвонит будильник.
l  (ft)
(a  b)  l
l  (ft) = ¬lft
(a  b)  l = ¬(a  b)l = (¬a¬b)l = (¬al)(¬bl)
6
©2009 Сошников Д.В.

Рассмотрим случай, когда будильник не прозвонил и
Петю не уволили
¬lft
¬al
¬bl
a
¬f

¬al
¬lt
¬at
a
t

Получили вывод – Пете
сделали выговор
При этом мы все равно
«думали», какие правила
выбирать для вывода
7
©2009 Сошников Д.В.
Необходимо привести формулу к эквивалентному
множеству дизьюнктов
 Возникает возможность «замены переменной» внутри
предиката

Переход к
предваренной
(пренексной)
нормальной форме
Сколемизация
Приведение к
коньюнктивной
нормальной форме
(КНФ)
Получение
множества
дизьюнктов
8
©2009 Сошников Д.В.
Предваренной (или пренексной) нормальной формой
формулы исчисления предикатов называется формула
вида
 (⊠ x1)...(⊠ xn) F(x1,...,xn) (4)
 где ⊠ - квантор общности или существования,
F(x1,...,xn) - формула, не содержащая кванторов.
 Для любой замкнутой формулы существует
эквивалентная ПНФ

(x)(P(x)((y)Q(x,y)  ( y)R(x,y))) =
(x)(P(x)  (( y1)Q(x,y1)  ( y2)R(x,y2))) =
(x)( y1)( y2)(P(x)(Q(x,y1)  R(x,y2)))
9
A= ( x)( y) Q(x,y)
Рассмотрим формулу B = ( x) Q(x,f(x))
Свойство: A выполнима <=> B выполнима

Алгоритм Сколемизации:
©2009 Сошников Д.В.



 Выбирается самое левое вхождение квантора
существования. Пусть, например, это будет квантор по
переменной xk.
 Выбирается не входящий в формулу F функциональный
символ f(k-1), и все вхождения переменной xk в формулу F
заменяются на f(k-1)(x1,...,xk-1), т.е. формула приобретает вид
F(x1, ..., xk-1,f(k-1)(x1,...,xk-1),xk+1,...,xn).
 Процесс повторяется с шага 1 до полного исключения
кванторов существования.
10

©2009 Сошников Д.В.


(x)(AB) = ((x)A)  ((x)B)
Сколемовская нормальная форма
(x1)...(xn) (A1 …  Am) невыполнима <=>
невыполнимо множество дизьюнктов
{(x1)...(xn) A1,…, (x1)...(xn) Am}
Каждая формула Ai – это дизьюнкт L1.. 
Lk
11
©2009 Сошников Д.В.

Произвольную формулу логики
предикатов A можно преобразовать в
множество дизьюнктов SA : A несовместна
<=> SA несовместна
12


©2009 Сошников Д.В.


Необходимо доказать формулу A, т.е. Г ├ A
Для этого докажем несовместность ¬A, т.е.
противоречивость Г  {¬A}
Преобразуем формулу к множеству
дизьюнктов S
Из множества дизьюнктов надо вывести
противоречие, или пустой тождественно
ложный дизьюнкт 
13
(x) H(x)  M(x)
H(Сократ)

Как применить правило резолюции в этим
формулам?
Необходимо совершить замену
переменной x=Сократ
Чтобы формализовать этот процесс,
вводят понятие унификации


©2009 Сошников Д.В.


¬H(x)M(x)
H(Сократ)
14
©2009 Сошников Д.В.
Подстановкой θ={X1/t1,...,Xn/tn} называется
множество пар переменных Xi и соответствующих им
термов ti, где ( i j) Xi  Xj, ti  Xi.
 Применением θ к формуле или терму F
(обозначается F θ) называется формула или терм
(строго определяемые рекурсивно), в которой все
вхождения Xi заменены на соответствующие термы ti.
 Композиция унификаторов θ=στ, если для всех
формул F : Fθ = (Fσ)τ
 Подстановка θ называется унификатором для
формул или термов F и G, если F θ = G θ. Формулы, для
которых существует унификатор, называются
унифицирующимися.

15


©2009 Сошников Д.В.

f(X,g(a,X)) и f(b,Y) - {X/b,Y/g(a,b)}
f(X,g(a,X)) и f(c,g(a,b)) – не унифицируются
f(X,X) и f(Z,Y) – {X/Z, Y/Z} или {X/a,Z/a,Y/a}
16

©2009 Сошников Д.В.

Очевидно, что если существует унификатор θ
формул F и G, то существует бесконечное
множество унификаторов
Определим отношение порядка  :
 τ <=> σ : τ=σ


Наиболее общий унификатор mgu(F,G)=sup { 
| F=G }
Пример:
 f(X,Y) и f(g(Z),Z)
 1={X/g(Z),Y/Z}, 2={X/g(a),Y/a,Z/a}
 2={Z/a} 1 => 1 - наиболее общий
17
©2009 Сошников Д.В.
L1... Ln¬ A, M1... Mk B
├ (L1...  LnM1...  Mk)
где =mgu(A,B)
¬H(x)M(x) и H(Сократ)
mgu(H(x),H(Сократ)) = { x/Сократ }
M(x){x/Сократ} = M(Сократ)
18
©2009 Сошников Д.В.
Линейная стратегия резолюции (L-резолюция) - это
стратегия, при которой на каждом шаге резолюции в
качестве одной из посылок используется формула, полученная
на предыдущем. Для первого шага в качестве посылки берется
добавленное к множеству формул отрицание доказываемого
предложения.
 Резолюцией с выбирающим правилом (S-резолюцией)
называется стратегия, при которой литера для применения
резолюции выбирается в соответствии с некоторым
правилом
 В упорядоченной стратегии резолюции значение имеет
порядок литер в дизъюнктах, которых сохраняется при
применении правила вывода; при этом разрешается в
качестве общего дизъюнкта использовать только самую
левую литеру. Упорядоченная стратегия является частным
случаем S-резолюции.

19
©2009 Сошников Д.В.
¬f
¬lft
¬al
¬bl
a
¬f
¬a
¬l
t
t
¬b
t
t
20
Оказывается, резолюция для логики
предикатов обладает свойством полноты и
непротиворечивости только для
определенного вида дизьюнктов

Фразой Хорна (или дизъюнктом Хорна,
Definite Clause) называется дизъюнкт вида
A ¬ B1 ...  ¬ Bn
B1... Bn  A


©2009 Сошников Д.В.

21
©2009 Сошников Д.В.

Нет возможности делать заключения с
отрицаниями: «это число не делится на 3»
 Мы всегда имеем дело с «позитивными»
утверждениями

Из множества посылок может быть только
одно заключение
 т.к. если бы было несколько, то возникало бы
множество различных вариантов

Логическое программирование с
отрицаниями – позднее в нашем курсе!
22




©2009 Сошников Д.В.


¬H(x)M(x)
(1)
H(Сократ)
(2)
Попробуем найти все решения, для этого
добавим отрицание запроса ¬M(z)
(3)
1 шаг: начинаем с (3), подходит (1) {z/x}
2 шаг: ¬H(z)
(4)
3 шаг: (4) и (2), {z/Сократ}
23
©2009 Сошников Д.В.
speciality(X,tech_translator) :studied_languages(X),studied_technical(X).
speciality(X,programmer) :studied(X,mathematics),studied(X, compscience).
speciality(X,lit_translator) :studied_languages(X),studied(X,literature).
studied_technical(X)
studied_technical(X)
studied_languages(X)
studied_languages(X)
::::-
studied(X,mathematics).
studied(X,compscience).
studied(X,english).
studied(X,german).
studied(petya,mathematics).
studied(petya,compscience).
studied(petya,english).
studied(vasya,german).
studied(vasya,literature).
24
25
©2009 Сошников Д.В.
26
©2009 Сошников Д.В.
Для поиска решений в полученном дереве
нужно совершить его обход

Обход в глубину – движение по левой
ветке с возвратом в случае необходимости

Обход в ширину – одновременное
рассмотрение нескольких решений
©2009 Сошников Д.В.

27
Теорема О достоверности SLD-резолюции. Пусть
P - множество фраз Хорна, G - запрос. Если в
процессе SLD-резолюции было получено решение в
виде подстановки , то формула G  будет
являться логическим следствием P (P╞ G).

Теорема О полноте SLD-резолюции. Пусть P логическая программа (множество фраз Хорна), G запрос. Если P╞ Gσ, то существует SLDрезолютивный опровергающий вывод G с
вычисляемой подстановкой , такой, что G
является частным случаем Gσ.
©2009 Сошников Д.В.

28
©2009 Сошников Д.В.

На прошлой лекции мы видели, что в
некоторых случаях решение не находится!
29
30
©2009 Сошников Д.В.
31
©2009 Сошников Д.В.

©2009 Сошников Д.В.

Теорема о полноте гарантирует присутствие
всех решений в (потенциально бесконечном)
дереве вывода
Более «правильный» обход дерева позволяет
во многих случаях находить такие решения
даже для бесконечных деревьев
 Хотя всегда можно построить контр-пример!

Процедурная семантика языка должны
учитывать стратегии генерации и обхода
дерева вывода
32
33
Download