
Лекция_8_new
.doc
Лекция 8: НЕПРЯМЫЕ МЕТОДЫ ВЫВОДА
План лекции
Непрямые методы вывода
Арифметические операции в ПРОЛОГе
Непрямые методы вывода (доказательства)
Существует еще одно методологическое деление выводов на прямые и непрямые.
При прямом методе вывода мы непосредственно переходим при помощи правил вывода от исходных посылок и аксиом к заключению.
Непрямые методы вывода позволяют заменить одну цепочку вывода другой цепочкой, в которой исходные посылки и заключение отличаются от исходных. При этом из истинности второго вывода следует истинность первого вывода. Но получить второй вывод оказывается существенно легче.
Из курса школьной математики известны три стратегии непрямых выводов, получившие в классической логике следующие названия:
введение допущения
метод рассуждения путем разбора случаев
доказательство от противного
В 1965 году в статье «Машинно-ориентированная логика, основанная на принципе резолюции» был предложен еще один метод непрямого вывода, названный методом резолюции.
Метод вывода «введением допущения»
Метод вывода «введением допущения» основан на теореме о дедукции
А, Г|–В Г |– А В
Г |– А В А, Г|–В
Если имеется вывод формулы В из множества посылок А. Г, то можно построить вывод формулы A В из множества посылок Г. Этот метод часто применяется в геометрии (только в обратном направлении). Для доказательства импликации A В допускается, что А истинна, т.е. А принимается в качестве дополнительной посылки, и делаются попытки доказать истинность В.
Например, при доказательстве равенства боковых сторон треугольника, у которого углы при основании равны, допускается, что эти углы равны, а затем это используется в доказательстве равенства сторон.
Пример: показать, что формула Ф ( (Ф & )) доказуема в ИВ Гильберта.
По определению доказательства формулы сводится к доказательству ее выводимости из пустого множества допущений Ф ( (Ф & )) По теореме о дедукции достаточно показать выводимость Ф, Ф & , т.к.
Ф, Ф & 1
Ф (Ф & ) 2
Ф ( (Ф & ) ) 3
Вместо того, чтобы доказывать формулу № 3, докажем формулу № 1
Вывод см. Пример №1 Гильбертова исчисления.
Метод вывода путем «разбора случаев»
Метод вывода путем «разбора случаев» основан на правиле вывода:
А, Г |– С; В, Г |– С
А V В, Г |– С
Чтобы построить вывод из посылок А V В, Г, достаточно получить два вывода: С – из А, Г и C – из В, Г.
Пример:
Он_мужчина V она_женщина они_человеки
М V Ж Ч
М V Ж Ч
М Ч
Ж Ч
Вывод «доказательством от противного»
Из определения вывода вытекает, что если {Г1, Г2, …, Гn}|- А, то справедливо, что
(Г1&Г2&…&Гn) |-А,
Или
|- (Г1&Г2&…&Гn)А.
По принципу дедукции, если формула А является логическим следствием конечного множества Г тогда и только тогда, когда Г {¬А} невыполнимо.
{Г1, …Гn}|- А {Г1,… Гn,¬А}|- 0.
Или можно записать в другом виде:
А, Г |–
Г|– А
То есть если нужно получить доказательство А из Г, то можно поступить так: отрицание формулы А добавляем к Г и пытаемся получить из Г, A противоречие. Если оно получилось, то можно построить вывод А из Г.
Пример
Необходимо доказать методом «от противного», что
AB, AC, BD CD
Доказательство:
Выписываем составляющие
AB = A B
AC = C A
BD
Добавляем отрицание к правой части: (CD)
Используем правило транзитивности импликации к 1 и 3
Используем правило транзитивности импликации к 2 и 5
Поскольку CD = CD, тогда 4 и6 CD, (CD) 0, что и требовалось доказать.
Метод резолюций
Метод резолюций основан на доказательстве от противного и содержит всего одно правило вывода - правило резолюции.
Метод резолюции работает на формулах, представленных в конъюнктивной нормальной форме D1 & D2 ... & Dn.
Член Di формулы называется дизъюнктом. Он содержит только элементарные высказывания в положительной L и отрицательной L форме, соединенных знаком дизъюнкции: L1V L2V … V Lk
Такие элементарные высказывания принято называть литералами. Пусть имеются два дизъюнкта D1 D2, такие, что если в один из них входит некоторый литерал L , то в другой входит его отрицание:
D1 = F V A, D2= G V А
Тогда из этих двух предложений можно вывести третье истинное предложение C3 = F V G. Предложение С3 называется резольвентой предложений D1 D2, а сами D1 D2 – родительскими предложениями С3.
Правило резолюции
легко доказывается. Полученная резольвента включается в общий список дизъюнктов, и сама может стать родительским предложением. Правило резолюции применяется до тех пор, пока не встретиться два одиночных дизъюнкта с противоположными литералами А и А. Их резолюция дает пустой дизъюнкт , что означает противоречие.
А, А
Теорема о полноте метода резолюции
Ф тождественно истинна, если Ф опровержима методом резолюции.
Алгоритм применения правила резолюции
Приводим все посылки и отрицание заключения, принятого в качестве дополнительной посылки к нормальной конъюнктивной форме.
Устраняем символы эквивалентности и импликации с помощью формул эквивалентности
А В = (A В) & (В A)
А В = А V В
Продвигаем внутрь с помощью законов Де Моргана
(AVB) = A & B
(A&B) = A V B
Применяем дистрибутивный закон для выражений типа
А V (В & С) = (А V В) & (А V С)
Так как конъюнкция истинна только тогда, когда истинны все дизъюнкты, то выписываем все дизъюнкты с новой строки
Все дизъюнкты содержат либо положительные литералы, либо их отрицания. Ищем пару дизъюнктов, содержащих один и тот же литерал, но с противоположным знаком. Применяем для них правило резолюции. Полученный новый дизъюнкт добавляем к существующей совокупности дизъюнктов.
Продолжаем этот процесс до тех пор, пока не получится пустой дизъюнкт D, что означает противоречие.
Задача о студенте Х
Пусть имеются следующие истинные высказывания:
Если Х интересуется логикой, то он или запишется на курсы по логике или он ленив
Если Х самостоятельно изучает литературу по логике, то он интересуется логикой.
Х не ленив.
Х самостоятельно изучает литературу по логике
Запишется ли Х на курсы по логике?
Формализация задачи
Выделим высказывания и обозначим их буквами
P – Х интересуется логикой
Q – Х запишется на курсы
S – Х ленив
D – Х самостоятельно изучает литературу по логике
Запишем логические формулы, соответствующие высказанным сложным высказываниям:
P Q V S
D P
S
D
------------------
доказать истинность Q
Приводим исходные посылки к нормальной конъюнктивной форме
P Q V S P V Q V S
D P D V P
S
D
и добавляем отрицание заключения Q.
Выписываем дизъюнкты
P V Q V S
D V P
S
D
Q
Выводим резольвенты
2 + 4 P
6 + 1 Q V S
3 + 7 Q
8 + 5
Получили противоречие. Следовательно формула Q - истинна
Задача из книги Коллана "Нейросети" стр. 193.
Если аккумулятор разряжен, то машина не заводится. P – аккумулятор разряжен М – машина не заводится Р М
Если машина не заводится и текущее время позже 8 утра, то Джон опоздает на поезд Т – текущее время позже 8 утра О – Джон опоздает на поезд М & Т О
Однажды после 8 часов утра аккумулятор оказался разряженным Т, Р
Опоздает ли Джон на поезд? О – истинно?
Надо сделать следующий вывод:
Р М, М & Т О, Т, Р ► О
Доказательство прямой метод
из P и Р М следует М (по правилу исключения посылки)
из М и Т следует М & Т (по производному правилу M, T ►M&T)
из М & Т и М & Т О следует О (по правилу исключения посылки)
Джон опоздает на поезд.
Доказательство метод резолюции
Р М, М & Т О, Т, Р, О
Приводим к нормальной конъюнктивной форме
P V M, (М & Т) V О = M V T V O, Т, Р, О
Выписываем дизъюнкты
P V M
M V T V O
Т
Р
О
Выводим резольвенты
1 + 4 M
2 + 6 T V O
3 + 7 O
5 +8
Арифметические операции
В языке ПРОЛОГ используется ряд встроенных функций для вычисления арифметических выражений, некоторые из которых перечислены в табл. 1.
Таблица 1
Обозначение |
Тип операции |
>,<,=,>=,<=,<> |
Операции сравнения |
+, -, *, / |
Арифметические операции |
Xmod Y |
Остаток от деления X наY |
Xdiv Y |
Частное от деления X на Y |
abs(X) |
Абсолютная величина числа X |
sqrt(X) |
Квадратный корень из X |
sin(X), cos(X), tan(X), arctan(X) |
Тригонометрические функции |
exp(X) |
Возведение в степень X |
log(X) |
Десятичный логарифм (ln) числа X |
ln(X) |
Натуральный логарифм числа X |
Для описания любых операций арифметики можно также использовать собственные предикаты. Например:
PREDICATES
add(integer,integer)
fadd(real,real)
maximum(real,real,real)
CLAUSES
add(X,Y):-Z=X+Y,write(“Sum= “,Z),nl.
fadd(X,Y):-Z=X+Y,write(“FSum= “,Z),nl.
maximum(X,X,X).
maximum(X,Y,X):- X>Y.
maximum(X,Y,Y):- X<Y.
Предикаты ПРОЛОГА не могут появляться в арифметических выражениях. Если требуется, например, переменной R присвоить значение, равное большему из двух выражений X и Y, умноженному на 3, то, используя предикат maximum, это можно записать так:
maximum(X,Y,Z), R= 3*Z.
Вычислить длину гипотенузы по длинам катетов прямоугольного треугольника можно с помощью конструкции:
gipotenuza(X,Y,Z):- Z = sqrt(X*X + Y*Y).