Лекция 3
DESCRIPTION
Лекция 3. Основы логики предикатов, логический вывод на языке ПРОЛОГ. Основы логики предикатов и логического вывода. - PowerPoint PPT PresentationTRANSCRIPT
Лекция 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)),
PQ для (PQ)&(QP),
(∃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.