Логическое
This presentation is the property of its rightful owner.
Sponsored Links
1 / 33

Логическое программирование PowerPoint PPT Presentation


  • 158 Views
  • Uploaded on
  • Presentation posted in: General

Логическое программирование. Факультет Прикладной математики и физики Кафедра Вычислительной математики и программирования Московский авиационный институт (государственный технический университет). Лекция 4. Метод резолюции. В чем проблема синтаксического метода доказательства?.

Download Presentation

Логическое программирование

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


6580541

Логическое программирование

Факультет Прикладной математики и физики

Кафедра Вычислительной математики и программирования

Московский авиационный институт (государственный технический университет)


6580541

Лекция 4

Метод резолюции


6580541

В чем проблема синтаксического метода доказательства?

  • Нет ориентации на результат

    • Мы начинаем с известного множества формул и «расширяем» это множество

    • Формула, которую требуется доказать, не учитывается

  • На каждом шаге можно применить:

    • Правило вывода к любым двум формулам

    • Произвольную замену переменной


6580541

Методы решения

  • Сведение всех правил вывода + замены переменной к одному универсальному правилу вывода

  • Замена многократного перебора минимально возможным

  • Исходим из целевой формулы и пытаемся придти к исходным посылкам


6580541

Простая резолюция для логики высказываний

  • 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–литеры (с отрицанием или без)


6580541

Пример

  • Если Петя опоздает на работу, то его уволят или сделают выговор. Петя опоздает, если не придет автобус, или не прозвонит будильник.

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)


6580541

Пример

  • Рассмотрим случай, когда будильник не прозвонил и Петю не уволили

¬lft

¬al

¬bl

a

¬f

  • Получили вывод – Пете сделали выговор

  • При этом мы все равно «думали», какие правила выбирать для вывода

¬al

¬at

¬lt

t

a


6580541

Сложности с логикой предикатов

  • Необходимо привести формулу к эквивалентному множеству дизьюнктов

  • Возникает возможность «замены переменной» внутри предиката


6580541

Пренексная нормальная форма

  • Предваренной (или пренексной) нормальной формой формулы исчисления предикатов называется формула вида

  • (⊠ 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)))


6580541

Сколемизация

  • A= (x)(y) Q(x,y)

  • Рассмотрим формулу B = (x) Q(x,f(x))

  • Свойство: A выполнима <=> B выполнима

  • Алгоритм Сколемизации:

    • Выбирается самое левое вхождение квантора существования. Пусть, например, это будет квантор по переменной 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 до полного исключения кванторов существования.


6580541

Построение множества дизьюнктов

  • (x)(AB) = ((x)A)  ((x)B)

  • Сколемовская нормальная форма (x1)...(xn) (A1 …  Am) невыполнима <=> невыполнимо множество дизьюнктов {(x1)...(xn) A1,…, (x1)...(xn) Am}

  • Каждая формула Ai – это дизьюнкт L1..  Lk


6580541

Что мы получили?

  • Произвольную формулу логики предикатов A можно преобразовать в множество дизьюнктов SA : A несовместна <=> SAнесовместна


6580541

Процесс доказательства методом резолюции

  • Необходимо доказать формулу A, т.е. Г ├ A

  • Для этого докажем несовместность ¬A, т.е. противоречивость Г {¬A}

  • Преобразуем формулу к множеству дизьюнктов S

  • Из множества дизьюнктов надо вывести противоречие, или пустой тождественно ложный дизьюнкт 


6580541

Пример

  • (x) H(x)  M(x) ¬H(x)M(x)

  • H(Сократ)H(Сократ)

  • Как применить правило резолюции в этим формулам?

  • Необходимо совершить замену переменной x=Сократ

  • Чтобы формализовать этот процесс, вводят понятие унификации


6580541

Унификация

  • Подстановкойθ={X1/t1,...,Xn/tn} называется множество пар переменных Xi и соответствующих им термов ti, где ( i j) Xi  Xj, ti  Xi.

  • Применением θ к формуле или терму F (обозначается F θ) называется формула или терм (строго определяемые рекурсивно), в которой все вхождения Xi заменены на соответствующие термы ti.

  • Композиция унификаторов θ=στ, если для всех формул F : Fθ = (Fσ)τ

  • Подстановка θ называется унификатором для формул или термов F и G, если F θ = G θ. Формулы, для которых существует унификатор, называются унифицирующимися.


6580541

Примеры

  • 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}


6580541

Наиболее общий унификатор

  • Очевидно, что если существует унификатор θ формул 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- наиболее общий


6580541

Обобщенное правило резолюции

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(Сократ)


6580541

Стратегии резолюции

  • Линейная стратегия резолюции (L-резолюция) - это стратегия, при которой на каждом шаге резолюции в качестве одной из посылок используется формула, полученная на предыдущем. Для первого шага в качестве посылки берется добавленное к множеству формул отрицание доказываемого предложения.

  • Резолюцией с выбирающим правилом (S-резолюцией) называется стратегия, при которой литера для применения резолюции выбирается в соответствии с некоторым правилом

  • Вупорядоченной стратегии резолюции значение имеет порядок литер в дизъюнктах, которых сохраняется при применении правила вывода; при этом разрешается в качестве общего дизъюнкта использовать только самую левую литеру. Упорядоченная стратегия является частным случаем S-резолюции.


6580541

SL-резолюция на примере

¬f

¬lft

¬al

¬bl

a

¬f

¬l

t

¬a

t

t

¬b

t


6580541

Дизьюнкты Хорна

  • Оказывается, резолюция для логики предикатов обладает свойством полноты и непротиворечивости только для определенного вида дизьюнктов

  • Фразой Хорна (или дизъюнктом Хорна, Definite Clause) называется дизъюнкт вида

  • A ¬ B1 ...  ¬ Bn

  • B1... Bn  A


6580541

Почему дизьюнкты Хорна?

  • Нет возможности делать заключения с отрицаниями: «это число не делится на 3»

    • Мы всегда имеем дело с «позитивными» утверждениями

  • Из множества посылок может быть только одно заключение

    • т.к. если бы было несколько, то возникало бы множество различных вариантов

  • Логическое программирование с отрицаниями – позднее в нашем курсе!


6580541

SLD-резолюция

  • ¬H(x)M(x)(1)

  • H(Сократ)(2)

  • Попробуем найти все решения, для этого добавим отрицание запроса ¬M(z)(3)

  • 1 шаг: начинаем с (3), подходит (1) {z/x}

  • 2 шаг: ¬H(z)(4)

  • 3 шаг: (4) и (2), {z/Сократ}


6580541

Более сложный пример

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(X,mathematics).

studied_technical(X) :- studied(X,compscience).studied_languages(X) :- studied(X,english).

studied_languages(X) :- studied(X,german).

studied(petya,mathematics).studied(vasya,german).

studied(petya,compscience).studied(vasya,literature).

studied(petya,english).


6580541

Более сложный пример


6580541

Дерево вывода


6580541

Стратегия поиска решений

  • Для поиска решений в полученном дереве нужно совершить его обход

  • Обход в глубину – движение по левой ветке с возвратом в случае необходимости

  • Обход в ширину – одновременное рассмотрение нескольких решений


6580541

Полнота и достоверность

  • Теорема О достоверности SLD-резолюции.  Пусть P - множество фраз Хорна, G - запрос. Если в процессе SLD-резолюции было получено решение в виде подстановки , то формула G  будет являться логическим следствием P (P╞ G).

  • Теорема  О полноте SLD-резолюции.   Пусть P - логическая программа (множество фраз Хорна), G - запрос. Если P╞ Gσ, то существует SLD-резолютивный опровергающий вывод G с вычисляемой подстановкой , такой, что G является частным случаем Gσ.


6580541

А как же пример с предком?

  • На прошлой лекции мы видели, что в некоторых случаях решение не находится!


6580541

Бесконечное дерево SLD-резолюции


6580541

Конечное дерево для эквивалентной программы


6580541

Еще раз о декларативной и процедурной семантике

  • Теорема о полноте гарантирует присутствие всех решений в (потенциально бесконечном) дереве вывода

  • Более «правильный» обход дерева позволяет во многих случаях находить такие решения даже для бесконечных деревьев

    • Хотя всегда можно построить контр-пример!

  • Процедурная семантика языка должны учитывать стратегии генерации и обхода дерева вывода


6580541

Конец


  • Login