Лекция 3.Основы логики предикатов.

advertisement
Лекция 3
Основы логики предикатов,
логический вывод на языке
ПРОЛОГ
Основы логики предикатов и
логического вывода
В естественном языке встречаются
более сложные повествовательные
предложения, истинность которых
может меняться при изменении
объектов, о которых идет речь, хотя
структура предложений не меняется.
n-местным предикатом P(x1..,хn)
называется функция Р: Мn -* {истина,
ложь}, определенная на наборах длины
n элементов некоторого множества М
и принимающая значения в области
истинностных значений
Графическое представление
предикатов
Правильно построенные формулы
(ППФ) логики предикатов — это
комбинации атомных предикатов и
констант с логическими связками.
Они определяются рекурсивно над
множеством атомных предикатов
с помощью символов операций
(связок) ,¬, , скобок и одной
дополнительной связки , которая
читается «для всех».
Рекурсивно ППФ
определяются так
1. Атомный предикат есть формула.
2. Если Р — формула, то ¬(P) тоже
формула.
3. Если Р, Q — формулы, то (Р => Q) —
тоже формула.
4. Если Р — формула, то (x) P тоже
формула.
5. Никаких других формул в логике
предикатов нет
В логике предикатов для сокращения формул
используются записи:
True для Р Р, False для ¬True (можно
рассматривать True и False как логические
константы).
PvQ для (¬P) Q,
P&Q для ¬(¬(P)) v(¬Q)),
PQ для (PQ)&(QP),
(∃x)P для ¬((x)¬P)
Новые логические связки — «для
всех» и ∃ — «существует»
называются кванторами:  —
«квантор всеобщности» и ∃ —
«квантор существования».
Интерпретации
Формула логики предикатов является только
схемой высказывания. Формула имеет
определенный смысл, то есть обозначает
некоторое высказывание естественного
языка, если существует какая-либо ее
интерпретация. Интерпретировать формулу — это значит связать с ней непустое
множество М (конкретизировать предметную
область), а также указать соответствие:
Логический вывод в логике
предикатов
Рассмотрим доказательное
рассуждение «Каждый человек смертен.
Конфуций — человек. Следовательно,
Конфуций смертен». Представим схему
рассуждения.
• (Fl)
(x) [Человек(х) => Смертен(х)];
• (F2)
Человек (Конфуций)
• (R) Смертен (Конфуций).
Доказательство методом резолюции.
Человек(Конфуций)
(x)¬Человек(x) v Смертен(x)
¬Смертен(Конфуций)
¬Человек(Конфуций)
Логическое программирование
Логическое программирование — это
использование дедуктивных процедур
(процедур логического вывода) как
механизма вычислений.
Программа представляет собой множество
аксиом, а вычисление — это конструктивный
вывод целевого утверждения из программы.
В логическом программировании (мы будем
говорить о языке ПРОЛОГ) используется
только одно правило вывода — резолюция.
С помощью резолюции из множества
формул S = {F19..., Fk} и отрицания
формулы R выводится пустой дизъюнкт,
то справедливо F,F2.. .Fk => R
Логический вывод в ПРОЛОГЕ
В этом языке исходное множество формул, для
которого ищется пустая резольвента, представляется
в виде так называемых «дизъюнктов Хорна».
Хорновские дизъюнкты — это формулы одного из
трех типов:
отрицание ¬(B1, ...,Bm)
факт: А
импликация (правило): A <=(B1, ..., Вm),
где А, В1,... — литеры — атомные высказывания или
предикаты с отрицаниями или без них в нормальной
предваренной форме только с (подразумеваемыми)
кванторами всеобщности для всех переменных.
Пусть в нотации, близкой языку
ПРОЛОГ, записана программа:
Программа_1::
1:птица(Х)  откладывает_яйца(Х),
имеет_крылья(Х)
2:рептилия(Х)  откладывает_яйца(Х),
имеет_чешую(Х)
3:откладывает_яйца(ворона)
4: откладывает_яйца(питон)
5: имеет_чешую(питон)
6: имеет_крылья(ворона)
7:?птица(ворона)
7: ?птица (ворона)
Резольвента строк 7 и 1; X = ворона
8: ?откладывает_яйца (ворона),
?имеет_крылья (ворона)
Резольвента строк 8 и 3
9: ?имеет__крылья (ворона)
Резольвента строк 9 и 6
10: Успех: пустая резольвента
Экспертные системы
Возможности логического
программирования выполнять
логический вывод с получением нового
знания на основе статического
описания ситуации широко
используется в разнообразных
«экспертных системах» — системах
поддержки принятия решений.
Рассмотрим простейшую экспертную
систему в области химического синтеза.
Предположим, что мы можем
выполнить следующие химические
реакции:
СО2+Н2О Н2СО3,
MgO+H2  Mg+H2O,
С+О2  СО2.
Любая возможная химическая реакция
в этой интерпретации предстает как
импликация, например, для
описываемой реакции: СО2 & Н2О =>
Н2СО3.
Download