Лекция 3
DESCRIPTION
Лекция 3. Основы логики предикатов, логический вывод на языке ПРОЛОГ. Основы логики предикатов и логического вывода. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/1.jpg)
Лекция 3
Основы логики предикатов, логический вывод на языке
ПРОЛОГ
![Page 2: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/2.jpg)
Основы логики предикатов и логического вывода
В естественном языке встречаются более сложные повествовательные предложения, истинность которых может меняться при изменении объектов, о которых идет речь, хотя структура предложений не меняется.
![Page 3: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/3.jpg)
n-местным предикатом P(x1..,хn) называется функция Р: Мn -* {истина, ложь}, определенная на наборах длины n элементов некоторого множества М и принимающая значения в области истинностных значений
![Page 4: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/4.jpg)
Графическое представление предикатов
![Page 5: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/5.jpg)
Правильно построенные формулы (ППФ) логики предикатов — это комбинации атомных предикатов и констант с логическими связками. Они определяются рекурсивно над множеством атомных предикатов с помощью символов операций (связок) ,¬, , скобок и одной дополнительной связки , которая читается «для всех».
![Page 6: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/6.jpg)
Рекурсивно ППФ определяются так
1. Атомный предикат есть формула.
2. Если Р — формула, то ¬(P) тоже формула.3. Если Р, Q — формулы, то (Р => Q) — тоже формула.4. Если Р — формула, то (x) P тоже формула.5. Никаких других формул в логике предикатов нет
![Page 7: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/7.jpg)
В логике предикатов для сокращения формул используются записи:
True для Р Р, False для ¬True (можно рассматривать True и False как логические константы).
PvQ для (¬P) Q, P&Q для ¬(¬(P)) v(¬Q)),
PQ для (PQ)&(QP),
(∃x)P для ¬((x)¬P)
![Page 8: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/8.jpg)
Новые логические связки — «для всех» и ∃ — «существует» называются кванторами: — «квантор всеобщности» и ∃ — «квантор существования».
![Page 9: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/9.jpg)
Интерпретации
Формула логики предикатов является только схемой высказывания. Формула имеет определенный смысл, то есть обозначает некоторое высказывание естественного языка, если существует какая-либо ее интерпретация. Интерпретировать фор-
мулу — это значит связать с ней непустое множество М (конкретизировать предметную область), а также указать соответствие:
![Page 10: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/10.jpg)
Логический вывод в логике предикатов
Рассмотрим доказательное рассуждение «Каждый человек смертен. Конфуций — человек. Следовательно, Конфуций смертен». Представим схему рассуждения.
![Page 11: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/11.jpg)
• (Fl) (x) [Человек(х) => Смертен(х)];
• (F2) Человек (Конфуций)
• (R) Смертен (Конфуций). Доказательство методом резолюции.
![Page 12: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/12.jpg)
Человек(Конфуций) (x)¬Человек(x) v Смертен(x) ¬Смертен(Конфуций)
¬Человек(Конфуций)
![Page 13: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/13.jpg)
Логическое программирование
Логическое программирование — это использование дедуктивных процедур (процедур логического вывода) как механизма вычислений.
Программа представляет собой множество аксиом, а вычисление — это конструктивный вывод целевого утверждения из программы. В логическом программировании (мы будем говорить о языке ПРОЛОГ) используется только одно правило вывода — резолюция.
![Page 14: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/14.jpg)
С помощью резолюции из множества формул S = {F19..., Fk} и отрицания формулы R выводится пустой дизъюнкт, то справедливо F,F2.. .Fk => R
![Page 15: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/15.jpg)
Логический вывод в ПРОЛОГЕ
В этом языке исходное множество формул, для которого ищется пустая резольвента, представляется в виде так называемых «дизъюнктов Хорна». Хорновские дизъюнкты — это формулы одного из трех типов:
отрицание ¬(B1, ...,Bm)
факт: А импликация (правило): A <=(B1, ..., Вm),
где А, В1,... — литеры — атомные высказывания или предикаты с отрицаниями или без них в нормальной предваренной форме только с (подразумеваемыми) кванторами всеобщности для всех переменных.
![Page 16: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/16.jpg)
Пусть в нотации, близкой языку
ПРОЛОГ, записана программа: Программа_1::1:птица(Х) откладывает_яйца(Х), имеет_крылья(Х)
2:рептилия(Х) откладывает_яйца(Х), имеет_чешую(Х)3:откладывает_яйца(ворона)
4: откладывает_яйца(питон)
5: имеет_чешую(питон)6: имеет_крылья(ворона)7:?птица(ворона)
![Page 17: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/17.jpg)
7: ?птица (ворона)Резольвента строк 7 и 1; X = ворона8: ?откладывает_яйца (ворона), ?имеет_крылья (ворона)
Резольвента строк 8 и 3
9: ?имеет__крылья (ворона)Резольвента строк 9 и 6 10: Успех: пустая резольвента
![Page 18: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/18.jpg)
Экспертные системы
Возможности логического программирования выполнять логический вывод с получением нового знания на основе статического описания ситуации широко используется в разнообразных «экспертных системах» — системах поддержки принятия решений.
![Page 19: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/19.jpg)
Рассмотрим простейшую экспертную систему в области химического синтеза. Предположим, что мы можем выполнить следующие химические реакции:
СО2+Н2О Н2СО3,
MgO+H2 Mg+H2O,
С+О2 СО2.
![Page 20: Лекция 3](https://reader036.vdocuments.pub/reader036/viewer/2022072013/56812a94550346895d8e4701/html5/thumbnails/20.jpg)
Любая возможная химическая реакция в этой интерпретации предстает как импликация, например, для описываемой реакции: СО2 & Н2О => Н2СО3.