Лекция 3

20
Лекция 3 Основы логики предикатов, логический вывод на языке ПРОЛОГ

Upload: nicholas-madden

Post on 30-Dec-2015

26 views

Category:

Documents


0 download

DESCRIPTION

Лекция 3. Основы логики предикатов, логический вывод на языке ПРОЛОГ. Основы логики предикатов и логического вывода. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Лекция 3

Лекция 3

Основы логики предикатов, логический вывод на языке

ПРОЛОГ

Page 2: Лекция 3

Основы логики предикатов и логического вывода

В естественном языке встречаются более сложные повествовательные предложения, истинность которых может меняться при изменении объектов, о которых идет речь, хотя структура предложений не меняется.

Page 3: Лекция 3

n-местным предикатом P(x1..,хn) называется функция Р: Мn -* {истина, ложь}, определенная на наборах длины n элементов некоторого множества М и принимающая значения в области истинностных значений

Page 4: Лекция 3

Графическое представление предикатов

Page 5: Лекция 3

Правильно построенные формулы (ППФ) логики предикатов — это комбинации атомных предикатов и констант с логическими связками. Они определяются рекурсивно над множеством атомных предикатов с помощью символов операций (связок) ,¬, , скобок и одной дополнительной связки , которая читается «для всех».

Page 6: Лекция 3

Рекурсивно ППФ определяются так

1. Атомный предикат есть формула.

2. Если Р — формула, то ¬(P) тоже формула.3. Если Р, Q — формулы, то (Р => Q) — тоже формула.4. Если Р — формула, то (x) P тоже формула.5. Никаких других формул в логике предикатов нет

Page 7: Лекция 3

В логике предикатов для сокращения формул используются записи:

True для Р Р, False для ¬True (можно рассматривать True и False как логические константы).

PvQ для (¬P) Q, P&Q для ¬(¬(P)) v(¬Q)),

PQ для (PQ)&(QP),

(∃x)P для ¬((x)¬P)

Page 8: Лекция 3

Новые логические связки — «для всех» и ∃ — «существует» называются кванторами: — «квантор всеобщности» и ∃ — «квантор существования».

Page 9: Лекция 3

Интерпретации

Формула логики предикатов является только схемой высказывания. Формула имеет определенный смысл, то есть обозначает некоторое высказывание естественного языка, если существует какая-либо ее интерпретация. Интерпретировать фор-

мулу — это значит связать с ней непустое множество М (конкретизировать предметную область), а также указать соответствие:

Page 10: Лекция 3

Логический вывод в логике предикатов

Рассмотрим доказательное рассуждение «Каждый человек смертен. Конфуций — человек. Следовательно, Конфуций смертен». Представим схему рассуждения.

Page 11: Лекция 3

• (Fl) (x) [Человек(х) => Смертен(х)];

• (F2) Человек (Конфуций)

• (R) Смертен (Конфуций). Доказательство методом резолюции.

Page 12: Лекция 3

Человек(Конфуций) (x)¬Человек(x) v Смертен(x) ¬Смертен(Конфуций)

¬Человек(Конфуций)

Page 13: Лекция 3

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

Логическое программирование — это использование дедуктивных процедур (процедур логического вывода) как механизма вычислений.

Программа представляет собой множество аксиом, а вычисление — это конструктивный вывод целевого утверждения из программы. В логическом программировании (мы будем говорить о языке ПРОЛОГ) используется только одно правило вывода — резолюция.

Page 14: Лекция 3

С помощью резолюции из множества формул S = {F19..., Fk} и отрицания формулы R выводится пустой дизъюнкт, то справедливо F,F2.. .Fk => R

Page 15: Лекция 3

Логический вывод в ПРОЛОГЕ

В этом языке исходное множество формул, для которого ищется пустая резольвента, представляется в виде так называемых «дизъюнктов Хорна». Хорновские дизъюнкты — это формулы одного из трех типов:

отрицание ¬(B1, ...,Bm)

факт: А импликация (правило): A <=(B1, ..., Вm),

где А, В1,... — литеры — атомные высказывания или предикаты с отрицаниями или без них в нормальной предваренной форме только с (подразумеваемыми) кванторами всеобщности для всех переменных.

Page 16: Лекция 3

Пусть в нотации, близкой языку

ПРОЛОГ, записана программа: Программа_1::1:птица(Х) откладывает_яйца(Х), имеет_крылья(Х)

2:рептилия(Х) откладывает_яйца(Х), имеет_чешую(Х)3:откладывает_яйца(ворона)

4: откладывает_яйца(питон)

5: имеет_чешую(питон)6: имеет_крылья(ворона)7:?птица(ворона)

Page 17: Лекция 3

7: ?птица (ворона)Резольвента строк 7 и 1; X = ворона8: ?откладывает_яйца (ворона), ?имеет_крылья (ворона)

Резольвента строк 8 и 3

9: ?имеет__крылья (ворона)Резольвента строк 9 и 6 10: Успех: пустая резольвента

Page 18: Лекция 3

Экспертные системы

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

Page 19: Лекция 3

Рассмотрим простейшую экспертную систему в области химического синтеза. Предположим, что мы можем выполнить следующие химические реакции:

СО2+Н2О Н2СО3,

MgO+H2 Mg+H2O,

С+О2 СО2.

Page 20: Лекция 3

Любая возможная химическая реакция в этой интерпретации предстает как импликация, например, для описываемой реакции: СО2 & Н2О => Н2СО3.