
- •Глава 1. Логика высказываний
- •1.1 Логика высказываний
- •1.2 Алгебра логики
- •Законы логики:
- •Алгоритм преобразования:
- •Методы правильных рассуждений:
- •1.3 Исчисление высказываний – формальная аксиоматическая теория.
- •1.Схема аксиом Гильберта и Анкермана
- •2.Схема аксиом Чёрча.
- •1.4 Логический вывод
- •Метод математической индукции.
- •Метод обратного вывода от цели
- •Метод Дэвиса и Патнема.
- •Алгоритм логического вывода по методу Дэвиса и Патнема
- •1.Исключение тавтологий
- •2.Однолитерные дизъюнкты l
- •Алгоритм логического вывода с применением правила резолюций.
- •1.Исключение тавтологий
- •Глава 2. Логика предикат
- •2.1 Одноместные предикаты, определение события
- •2.2 Одномерные предикаты определяющие свойства.
- •Многоместные предикаты (мп)
- •Интерпретация формул в теорий граф.
- •Применение в реляционных базах данных.
- •Интерпретация формул логики в теории функциональных отношений.
- •Применение в теории алгоритмов.
- •Нормальные формулы с предикатами.
- •Логический вывод в исчислений предикат.
- •Правила вывода.
- •Применение вывода для получения новой информации.
- •Общие принципы логических программ. Выполнение программ.
Применение вывода для получения новой информации.
Пример:
F1: дляx,y,z
Если x– отецy, иz– отецx,тоz– дедy
F2: у каждогоyесть отецx
yx(F(x,y))
G: Кто является дедомy?
y z D(z,y)
F1: F(x,y)F(z,x)D(z,y)
F2:F(f(y),y) –x=f(y) – подстановкаxотецy
F3:D(z,a)
Вывод: F(x,y)F(z,x)D(f(y),y) F(f(y),y)
F(z,f(y))D(z,y) D(z,a)
F(z,f(a)) F(f(y),y)
1.z=f(y)
z(f(y),f(y),y)
2.y=f(a)
F(f(y),f(a))
F(f(f(a)),f(a))
результат унификации
Z=f(f(a)) “отец отца а - дед”
Логическое программирование – не опирающееся на теорию логического вывода. Практическая реализация и формализация в виде языка Пролог.
Формализация опирается на:
1.упрощении и ограничении логических формул;
2.конкретизации области интерпретации;
3.расширении интерпретации.
Введены встроенные исполняемые предикаты, к ним относят:
1.вычисления;
2.ввод/вывод;
3.графика;
4.интерактивный интерфейс.
Можно работать в режимах:
интерпретации;
компиляции.
Общие принципы логических программ. Выполнение программ.
Структура программы:
1.DOMAINS– вводятся новые типы переменных (область интерпретации);
Пример:
Name=char
Birthday=data (int,char,int)
2.PREDICATES– определение предикат;
Пример:
Person(name,phone)
3.СLAUSES– логические утверждения (факты, база данных);
Пример:
Person(Сидоров,2345678)
4.GOAL– цель – логическое утверждение.
Указанные цели опровергаются логическим выводом, включающим применение:
резолюции;
унификации;
интерпретации.
Синтаксис простой, близок к естественному языку. Структура правил ограничена: дизъюнкт может содержать только одну положительную литеру и называются Хорновскимидизъюнктами.
Пример:
1.если a, тоb
ab
ab
На
Прологе: b:-a b
- граф интерпретации
голова условиеa
Факты:
- А(а)xA(x)A(x)
A(a)
2. если а, то b&cbc
ab&c
ab&c a
(ab)&(ac)
3.если c&b, тоaa
cbaграф
«И»
Пролог: a:-c,bbc
4.если cb, тоa
b&ca a
(ba)&(ca) граф
«ИЛИ»
a:-bbc
a:-c
5.abcзапрещено
(не Хорновские)
abc
6.отрицательный дизъюнкт
a (a&b) (ab)
:-a:-a,b:-a
:-b
Пример: применение Пролога для доказательства теорем в Хорновских дизъюнктах
a(x)p(x)&q(x,y) 1.a(x)p(x) «И»
a(x)q(y,x)&r(y) 2.a(x)q(x,y) «ИЛИ»
p(d) 3.a(x)r(y) «И»
q(b,c) 4.a(x)q(y,x)
r(d) 5.p(d)
r(b)6.q(b,c)
a(z) 7.r(d) «ИЛИ»
8.r(b)
a(z)
a(x)
и1 или1 и2
p(x)q(x,y)r(y)q(y,x)
или2
p(d) q(b,c) r(d) r(b) q(b,c)
1. a(x) a(x)p(x)
x=z- по правилу резолюций
p(x)
2.p(d)
z=d
продолжение по «И»
3.a(d) a(x)q(x,y)
x=d
q(d,y)
4.q(b,c)
нет унификации
1. переход по «ИЛИ1»
a(z) a(x)r(y)
x=z
r(y)
2.r(d)
y=d
переход по ИЛИ2
3.r(b)r(y)
y=b
переход по И2
4.a(z) a(x)q(y,x)
x=z
q(y,z) – y=d
5.q(b,c)q(y,z)
нет унификации
переход по «ИЛИ2»
q(b,c)q(
y,z)
y=d
z=c
Вывод закончен, так как пройдены все «И» и «ИЛИ» правила, получен пустой дизъюнкт. Формула общезначима.
Вывод по правилу резолюций упорядочен обходом «И» «ИЛИ» графов.Эта процедура называется Backtracing.