1 / 33

ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ

ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ. ИНДУКЦИЯ. ОТ ЛОГИЧЕСКОГО К ОПЕРАЦИОННОМУ СМЫСЛУ. Логическая программа – набор продукционных правил для дедукции логической истины (порядок следования правил безразличен) Логическая программа – структура, следующая фиксированной стратегии

mahon
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ИНДУКЦИЯ

  2. ОТ ЛОГИЧЕСКОГО К ОПЕРАЦИОННОМУ СМЫСЛУ Логическая программа – набор продукционных правил для дедукции логической истины (порядок следования правил безразличен) Логическая программа – структура, следующая фиксированной стратегии (порядок следования правил имеет значение)

  3. СВОЙСТВА ОПЕРАЦИОННОЙ СЕМАНТИКИ Явность (soundness) : Если запрос А завершается успешно с подстановкой Θ, то результат применения подстановки Θ в А (записываемое как АΘ) является истинным в логической семантике, т.е. АΘ имеет доказательство. Полнота (completeness) : Если есть экземпляр запроса А, который имеет решение, запрос завершается успехом.

  4. ИНДУКЦИЯ ПРАВИЛ Определение четных чисел: Суммирование: Доказать, что сумма двух четных чисел – четное число.

  5. ВОЗМОЖНЫЕ СПОСОБЫ ДОКАЗАТЕЛЬСТВА что сумма двух четных чисел – четное число: • Для любыхm, nи s, еслиeven(m), even(n) и plus(m,n,s), то even(s). • Для любыхm, n если even(m) иeven(n) то существуетs такое, что plus(m,n,s) и even(s). Если бы мы знали, что plus дает единственное решение s над mиn, эти способы были бы эквивалентными.

  6. ДОКАЗАТЕЛЬСТВО Теорема. Для любых m, n, если even(m) иeven(n), то существует такое s, чтоplus(m,n,s) иeven(s). Доказательство: Случай 1: even(n) - предположение plus(0,n,n) - следует из правила evz Таким образом, существует такое s, что plus(0,n,s) и even(s).

  7. ДОКАЗАТЕЛЬСТВО (продолжение) Случай 2: even(n) - предположение plus(m’,n,s) и even(s’) для некоторых s - предположение plus(p(m’),n,p(s’))- из правила pvs plus(p(p(m’)),n,p(p(s’))) - из правила pvs even(p(p(s’)))- из правила evs Существует такое s, что plus(p(p(m’)),n,s) иeven(s) Теорема доказана.

  8. ДОКАЗАТЕЛЬСТВО (проблемы остались) Почему доказательство делалось вручную? Почему на не использовали операционную семантику? В данном доказательстве есть алгоритм построения дедукций, но нет алгоритма конструирования обратного поиска.

  9. ИНВЕРСИЯ • Некоторое утверждение истинно и удовлетворяет консеквенту только правила. Следовательно, все его антецеденты (условия) должны быть истинными. • Некоторое утверждение истинно и удовлетворяет консеквентам нескольких правил. Следует разбить доказательство на несколько случаев, по одному для каждого правила. Инверсию следует использовать с осторожностью (все случаи должны быть рассмотрены)

  10. ИНВЕРСИЯ (ПРИМЕР) Докажем, что разность списков может быть определена единственным способом, если она существует.

  11. ИНВЕРСИЯ (ПРИМЕР) Теорема. Для всех xs и zs, а также для всех ys и ys’, если append(xs, ys, zs) и append(xs, ys’, zs) то ys = ys’. Доказательство: Обозначимдедукцией D append(xs, ys, zs) и дедукцией Е append(xs, ys’, zs). Случай 1: где xs = [ ] и zs = ys. • append([ ], ys’, ys) - из дедукции E • ys’ = ys - из инверсии E (правило apnil)

  12. ИНВЕРСИЯ (ПРИМЕР) Случай 2: append([x|xs1], ys’, [x|zs1]) - из дедукции E append(xs1, ys’, zs1 - из инверсии E (правило apcons) ys = ys’ - из индукции D1 Теорема доказана

  13. ОПЕРАЦИОННЫЕ СВОЙСТВА Их невозможно строго доказать. Попробуем приблизиться . Цифры от 0 до 9 (Пеано) В нотации Пролога : digit(p(p(p(p(p(p(p(p(p(0)))))))))). digit(N) :- digit(p(N)).

  14. ОПЕРАЦИОННЫЕ СВОЙСТВА Теорема. Любой запрос ?- digit(n) при n > 9 не завершается. Доказательство. Методом индукции. Если n > 9, то первое утверждение не может быть использовано. Следовательно, цель digit(n) должна быть редуцирована в подцель digit(p(n)) вторым правилом. Однако, p(n) > 9, если n > 9, и в процессе индукции гипотеза подцели не завершится. Следовательно, исходная цель также не завершится.

  15. ПРЯМОЙ ВЫВОД И НАСЫЩЕНИЕ Прямой вывод: • начать с аксиом (в качестве которых выступают правила без предпосылок) как логической истины и применять все правила в прямом направлении, добавляя новые утверждения, порожденные этими правилами. Мы останавливаемся, когда применение правил перестает порождать новые факты. • В этом случае мы говорим, что база истинных утверждений насыщена.

  16. ПРЯМОЙ ВЫВОД И НАСЫЩЕНИЕ (пример) digit((p(p(p(p(p(p(p(p(0)))))))))). digit(p(p(p(p(p(p(p(p(0))))))))). digit(p(p(p(p(p(p(p(0)))))))). digit(p(p(p(p(p(p(0))))))). digit(p(p(p(p(p(0)))))). digit(p(p(p(p(0))))). digit(p(p(p(0)))). digit(p(p(0))). digit(p(0)). digit(0). С этого места все попытки применить правила дадут только те факты, которые уже известны: база знаний насыщена.

  17. ОСНОВНЫЕ ПОНЯТИЯ НА СЕГОДНЯ • Логический и операционный смысл • Дедукция • Индукция на структуре дедукции • Инверсия • Насыщение

  18. ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ОПЕРАЦИОННЫЕ СЕМАНТИКИ

  19. ВЫБОР • Выбор подцелей слева направо. В терминах продукционных правил это означает, что сначала мы ищем доказательство первой предпосылки, затем второй и т.д. • Выбор утверждений от первого к последнему и бэктрекинг. В терминах продукционных правил это значит, что если применимы более одного правила, мы начинаем с первого, затем переходим ко второму и т.д. • Унификация. В терминах продукционных правил это означает, что когда мы решаем, как присвоит значения переменным в аргументах правила и неизвестным в цели, мы используем конкретный алгоритм для нахождения наиболее общего унификатора между консеквентом правила и целью. • Отсечение. Это не имеет аналога на уровне продукционных правил. Мы должны специфицировать, как мы приходим к конкретным выборам пока не встретили отсечение или другую управляющую конструкцию, например, условное утверждение. • Другие встроенные предикаты. Пролог имеет встроенные предикаты для арифметики, ввода-вывода, изменения программы во время выполнения, вызовы внешних функций и многое другое, что мы не будем описывать формально.

  20. ДЕФИНИЦИОННЫЕ ИНТЕРПРЕТАТОРЫ Мы можем написать интерпретатор для языка на том же самом языке - дефиниционный интерпретатор (definitional interpreter), метаинтерпертатор или метациркулярный интерпретатор. Для Пролога простейший метаинтерпретатор : solve(A) :- A.

  21. МЕТАИНТЕРПРЕТАТОР ПРОЛОГА Запятая – конъюнкция символов true – константа solve(true). solve((A,B)) :- solve(A), solve(B). solve(P) :- clause(P,B), solve(B). если clause(P,B) успешно, то P :- B это экземпляр утверждения в текущей программе

  22. МЕТАИНТЕРПРЕТАТОР ПРОЛОГА: ПОРЯДОК ЦЕЛЕЙ Модифицированный предикат solve(A,S), где A – это цель, а S – стек пока еще не решенных целей. % - Если цель достигнута, и стек пуст, резолюция цели завершается успехом solve(true, true). % - Если текущая цель решена, а стек цели не пуст, мы извлекаем ближайшую подцель Aи решаем ее solve(true,(A,S)) :- solve(A,S). % - Если цель это конъюнкция, мы решаем первый конъюнкт, помещая второй в стек цели. solve((A,B),S) :- solve(A,(B,S)). % - Если цель атомарная, мы унифицируем ее с головой всех утверждений, решая тело утверждения как подцель. solve(P,S) :- clause(P,B), solve(B,S).

  23. ПОРЯДОК ЦЕЛЕЙ: БОЛЕЕ АБСТРАКТНЫЙ ПОДХОД Вводные правила: Вводим бинарное утверждение A / Sи будем читать как A при S (A under S) Последнее правило – это семейство правил:

  24. ПОРЯДОК ЦЕЛЕЙ: БОЛЕЕ АБСТРАКТНЫЙ ПОДХОД Важно: Определение истинности (A true) и доказуемости в стратегии поиска на основе стека (A / S) не зависят друг от друга, так что мы можем связывать их прямо Каждое правило в новом суждении A / S имеет либо одну, либо ни одной предпосылки ->вопрос о порядке подцелей не возникает.Он явно решается введением стека подцелей. Это отношение перехода является все еще недетерминистским, потому что более чем одно правило может соответствовать атомарному предикату.

  25. ПОЛНОТА Теорема. ЕслиA / S тоA true и S true. Доказательство: Методом индукции на структуре дедукции DA / S. Случай 1: • A trueиз • S trueиз

  26. ПОЛНОТА (продолжение) Случай 2: A trueиз A1 trueиS2trueиз гипотезы D2 A1 ˄S2true из правила ˄I S true поскольку S= A1 ˄S2

  27. ПОЛНОТА (продолжение) Случай 3: A1 trueиA2˄Strue из гипотезы D1 A2true и Strue из инверсии (правило ˄I) A1 ˄A2true из правила ˄I

  28. ПОЛНОТА (окончание) Случай 4: B1 ˄…˄Bm true и S true из гипотезы D’ B1true,…,Bmtrueприm -1инверсия если m>0 (˄I) P trueиз данного правила Если m=0, то правило для P не имеет предпосылок, и мы можем заключить, что P true без инвертированных шагов.

  29. ЗАВЕРШЕННОСТЬ Теорема. Если A true и T / S то A / S. Доказательство: Методом индукции на структуре дедукции A true. Случай 1: T / S предположение A / S поскольку A / T

  30. ЗАВЕРШЕННОСТЬ (продолжение) Случай 2: T / S предположение A2 / S из гипотезы в D2 T / A2˄S из правила A1 / A2˄S из гипотезы в D1 A1˄A2 / S из правила

  31. ЗАВЕРШЕННОСТЬ (окончание) Случай 3: T / S предположение Bm / S из гипотезы в Dm T / Bm˄S из правила Bm-1 / Bm˄S из гипотезы в Dm-1 Bm-1˄Bm/S из правила T / (Bm-1˄Bm) ˄S из правила B1˄…˄Bm-1˄Bm /S повторение пред. 3 шагов

  32. ЗАВЕРШЕННОСТЬ (выводы) • Выбор, которое правило применить в случае атомарной цели, остается недетерминистским -> эта теорема недетерминистская. • Более того, связывание схематичных переменных в правиле это «магия»: мы принимаем для целей семантики на данном уровне, что все цели достигнуты и семантики получат верные значения.

  33. ОСНОВНЫЕ ПОНЯТИЯ НА СЕГОДНЯ • Дефиниционный интерпретатор • Порядок выбора целей • Полнота интерпретатора • Завершенность интерпретатора

More Related