Викентьева О. Л.
конспект лекций
Пермь, 2007 г.
2
3
Введение
Математическая логика - это современный вид формальной логики. Логика – это наука
правильно рассуждать, имея какие-то утверждения, истинность которых проверена,
например, на опыте. С помощью утверждений можно придти к новому утверждению,
которое также может оказаться истинным.
Исходное утверждение называется посылкой, результирующее утверждение –
заключением.
Пример 1.
П1: Все люди смертны.
П2. Сократ – человек.
З: Сократ смертен.
Пример 2.
П1: Все граждане России имеют право на образование.
П2: Иванов – гражданин России.
З: Иванов имеет право на образование.
а а
0 1
1 0
Эта таблица и принимается в качестве определения операции отрицания.
2. Конъюнкция ( ,, ·, логическое И )
Действие операции определяется следующим образом: сложное высказывание аb
истинно только в том случае, когда оба высказывания (а и b) имеют значение истинно.
а b аb
0 0 0
0 1 0
5
1 0 0
1 1 1
Примеры.
а. 6 делится на 3 без остатка (1);
b. 10 больше 5 (1);
с. 7 делится на 3 без остатка (0);
d. 3 больше 7 (0);
a&b=1
a&c=0
c&d=0
a b ab
0 0 0
0 1 1
1 0 1
1 1 1
Примеры.
аb=1
ac=1
cd=0
4. Импликация ( , , ) “если а, то b”
Действие операции определяется следующим образом: сложное высказывание а b
ложно только в том случае, когда а истинно, а b – ложно.
a b ab
0 0 1
0 1 1
1 0 0
1 1 1
a b a b
0 0 0
0 1 1
1 0 1
1 1 0
a b a b
0 0 1
0 1 1
1 0 1
1 1 0
a b a b
0 0 1
0 1 1
1 0 1
1 1 0
Используя эти логические операции можно строить сколь угодно сложные высказывания.
Приоритет выполнения операций:
⌐ ~
1 1 1
1.4. Формулы
Пусть F { f1 , f 2 ,... f n } - множество булевых функций. Формулой над F называется
выражение [ F ] f (t1 ,..., t m ), где f F, t i либо переменная, либо формула над F.
F называется базисом формулы, f – главной (внешней) операцией, ti – подформулами.
8
Всякой формуле однозначно соответствует некоторая функция f. Это соответствие
задается алгоритмом интерпретации, который позволяет вычислить значение функции при
заданных значениях переменных.
Зная таблицы истинности для функций базиса можно вычислить таблицу той функции,
которую реализует данная формула.
Примеры.
1. 1 ( x1 x 2 ) ( x1 x 2 ) ( x1 x 2 )
x1 x2 x1 x2 x1 x 2 x1 x 2 1
0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1
11 Двойное отрицание
A=А
12. АВ A В
13 А~В=А·В A B
14 А В= A ·В А· B
15. А В = А В = А·В
16. А В = A B = A B
10
1.6. Подстановка и замена
Если в формулу входит переменная х, то это можно обозначить как (...х...) . Если в
формулу входит подформула , то обозначим это как (.......) .
Вместо подформулы или переменной можно подставить другую формулу или
переменную. В результате получится новая правильно построенная формула.
Если подстановка производится вместо всех вхождений заменяемой переменной или
подформулы, то результат обозначим:
(...х...) { // х} , т. е. все вхождения переменной х заменяем на подформулу .
Если подстановка производится вместо некоторых вхождений, то результат обозначим
(...1 ....){2 / 1 } , т. е. первое вхождение 1 заменяем на 2 .
Примеры.
1. Замена всех вхождений переменной х
x x{ yz // x} yz yz
2. Замена всех вхождений подформулы y z
x y z{x / y z} x x
3. Замена первого вхождения переменной х
x x{ y / x} y x
4. Замена первого вхождения подформулы y z
x y z{x / y z} x x
Правило подстановки. Если в равносильных формулах вместо всех вхождений
некоторой переменной x подставить одну и ту же формулу, то получатся
равносильные формулы.
Правило замены. Если в формуле заменить некоторую подформулу на равносильную,
то получится равносильная формула.
f ( x, y , z ) x y z x yz x y z
Выводы:
1. Каждая формула логики высказываний представляет собой некоторую булеву
функцию и наоборот.
2. Различные формулы могут представить одну и ту же функцию (равносильные
формулы) .
3. Существует много дизъюнктивных форм равносильных между собой.
12
1.8. Минимизация сложных высказываний методом Квайна
Алгоритм:
1. Получить СДНФ.
2. Получить сокращенную ДНФ (СкДНФ), используя следующие равносильности:
ab ab ab ab a - неполное склеивание;
a ab a - поглощение.
3. Построить импликантную матрицу, с помощью которой получить МДНФ.
Пример.
1. (( x | y ) ( y z )) x z xy ( y z ) x z xy y z xz - ДНФ
xy ( z z ) ( x x ) y z x( y y ) z xyz xy z x y z x y z x yz x yz - СДНФ
1 2 3 4 5 6
3. Импликантная матрица
xyz xy z x y z x y z x yz x y z
xy + +
yz + +
xz + +
yz + +
xy + +
xz + +
конъюнкцию, ai {0,1} .
Теорема Поста: Система логических операций полна тогда и только тогда, когда она
содержит хотя бы одну функцию, не сохраняющую 0, одну функцию, не сохраняющую 1,
хотя бы одну несамодвойственную функцию, хотя бы одну нелинейную функцию и хотя
бы одну немонотонную функцию.
Пример.
Докажем полноту системы {,,1}.
f T T T T T
0 1 * L M В каждом столбце
x + - - + - должен быть хотя бы один «-»
y
x + + - - +
y
1 - + - + +
1.
Проверка на принадлежность классу T0.
x y T0 , потому что 0 0 0
x y T0 , потому что 0 0 0
1 T0
2.
Проверка на принадлежность классу T1.
x y T1 , т.к.1 1 0
x y T1 , т.к.1 1 1
1 T1
3.
Проверка на принадлежность классу T*.
x y S , потому что f * (x, y) f(x, y) (x 1) (y 1) 1
x y 111 x y 1
x y S , потому что f * (x, y) f(x, y) x & y
1 S , потому что f * (1) 0
4.
Проверка на принадлежность классу TL.
x yL
x y L, т.к. x y (x & y) ( x 1)(y 1) 1 xy x y 1 1 xy x y
1 L
5.
Проверка на принадлежность классу TM.
15
x yM
f(0,0)=0
f(0,1)=1
f(1,0)=1
f(1,1)=0
x yM
f(0,0)=0
f(0,1)=1
f(1,0)=1
f(1,1)=1
1 M
16
Закон силлогизма
( x y )( y z ) ( x z )
Этот закон позволяет строить сколь угодно длинные цепочки рассуждений.
Теорема 2
А | £ В А - добавление антцедента.
Доказательство.
1. А - гипотеза
2. А1: A ( B A)
3. Из 1 и 3 по правилу m.p. получаем
BA
2.8. Дедукция
В теории £ импликация тесно связана с выводимостью. Теорема дедукции используется
при доказательстве теорем, т. к. дает нам новое правило вывода.
Теорема (дедукции). Если Г – множество формул, А и B Г и A|-£B, то Г|-А→В.
В частности A|-B, то А→В.
Ej
3. А2: ( A ( B C ) (( A B) ( A C )) . Выполним подстановку {Ei/B, Ek/C}, получим
( A ( Ei E k ) (( A Ei ) ( A E k )) (n)
4. По правилу m.p. из (j) и (n) получаем ( A Ei ) ( A E k ) (n+1)
5. По правилу m.p. из (j) и (n+1) получаем A E k (n+2) ч.т.д.
Таким образом, Г | £ A E k для любого k, в том числе при k=n. Но En=B Г | £ A B .
Выводы.
1. Можно задать некоторые правила преобразования формул, которые обладают
свойством: при применении к общезначимым формулам они дают в результате
общезначимые формулы. Такими правилами являются правила вывода.
2. Можно задать конечное число общезначимых формул таких, что любая общезначимая
формула может быть получена из них с помощью правил вывода.
23
3.1. Предикаты
Рассмотрим предложения, зависящие от параметров:
Х – четное число.
X<Y
X+Y=Z
X,Y – братья.
Если заменить переменные X, Y, Z некоторыми конкретными значениями, то мы получим
определенные высказывания, которые могут быть истинными или ложными.
Например:
3 – четное число.
2<5
2+3=5
Иван и Павел – братья.
Предложения такого рода называются предикатами.
Предикат Р(х1,…,хn) – функция, переменные которой принимают значения из некоторого
множества M, а сама функция принимает значение истина (1) или ложь (0).
Р(х1,…,хn) : Mn{0,1}
Высказывания - это 0-местные предикаты. Над предикатами выполняются логические
операции, в результате чего получаются новые предикаты.
С каждым предикатом связано число, которое называется местностью или арностью
предиката (количество переменных).
Язык предикатов – наиболее приближенный к естественным языкам формальный
математический язык.
Примеры:
1. Р(х) – х делится на 2
Q(x) – x делится на 3
P(x)&Q(x) – x делится на 2 и 3, т. е. определен предикат делимости на 6.
2. S(x,y) – x равно y.
S(x,y)& S(y,z)S(x,z)
Кроме операций логики высказываний, к предикатам можно применять операции
связывания кванторами.
1. Квантор общности ( ).
xP (x ) - высказывание истинное для каждого x M , т. е. это высказывание не зависит
от xi.
2. Квантор существования ( ).
xP (x ) - высказывание истинно, если существует x M , для которого это
высказывание истинно.
24
Для конечных множеств операции навешивания кванторов можно выразить через
операции & и .
Пусть x {a1 , a 2 ,..., a n }
xP( x) P(a1 ) & P (a 2 ) & ... & P( a n )
xP( x) P(a1 ) P(a 2 ) ... P(a n )
На языке предикатов можно составить более сложные высказывания, чем на языке логики
высказываний.
3.3. Интерпретация
Интерпретация I исчисления предикатов K с областью интерпретацией M – это набор
функций, который сопоставляет:
каждой предметной константе a элемент I(a)M;
каждому n-местному функтору f операцию I(f):MnM.
каждому n-местному предикату Р отношение I(P) Mn.
Для нас имеют смысл только интерпретированные предикаты, т. е. те, которым
поставлены в соответствие некоторые отношения (для одноместных предикатов –
свойства).
Пример.
Рассмотрим 3 формулы.
1. P(x,y)
2. yP ( x, y )
3. yP ( x, y )
В качестве области интерпретации возьмем множество целых положительных чисел и
интерпретируем P(x,y) как отношение x y .
Тогда формула 1 – это предикат x y . Он принимает значение истинно при любых a,b
принадлежащих множеству целых положительных чисел, если a b .
Формула 2 – это предикат, который принимает значение истинно при x=1, т. е. он
выражает свойство, что для каждого положительного целого числа y x y .
Формула 3 – это предикат, который всегда будет истинен. Он выражает свойство:
существует положительное целое число y, для которого x y .
Формула называется истинной, если она выполняется на любом наборе элементов М.
Формула называется ложной, если она не выполняется на любом наборе элементов М.
Формула общезначима (тавтология), если она истинна в любой интерпретации.
Теорема: Любая выводимая в исчислении предикатов формула – общезначима.
x ( P ( x ) xQ( x )) x ( P ( x ) Q ( x ))
x ( P ( x ) & Q ( x )) xP( x ) & xQ( x ) только в одну сторону!
Пусть P(x) – x пошел в театр, Q(x) – x пошел в кино, тогда
x( P ( x) xQ( x)) x( P ( x) Q ( x)) .
Но x( P( x) Q( x)) x( P( x) xQ( x)) .
Аналогично, пусть P(x) – x делится на 2, Q(x) – x делится на 3, тогда
x ( P ( x ) & Q ( x )) xP( x ) & xQ( x ) , но
xP( x) & xQ( x) x ( P( x) & Q( x)) .
Перестановка одноименных кванторов
yxP( x, y ) xyP( x, y )
yxP ( x, y ) xyP ( x, y )
1. Перестановка разноименных кванторов
xyP( x, y ) yxP( x, y )
yxP( x, y ) xyP( x, y )
Переименование связанных переменных
xP ( x ) yP( y ) х, у принадлежат одной предметной
xP ( x ) yP ( y ) области
Отбрасывание квантора
xP P
xP P
Исключаем импликацию
Переносим знак ⌐ внутрь формулы
Переименовываем связанные
переменные.
( P ( a c, y )
D1
2. Правило транзитивности
A B, B С A B , B C
R
AC A C
Унификация
Если в формулу А вместо переменных x1 , x 2 ..., x n подставить формулы B1 , B2 ...Bn , то
получится формула В, которая является частным случаем формулы А.
n
B A(...x i ...){Bi // xi } .
i 1
n
Набор подстановок {Bi // xi } i 1 называется унификатором.
Таким образом, унификация состоит в том, что мы пытаемся сделать одинаковыми
различные предикаты.
Пример 1.
А1: Все студенты – граждане.
30
Т: Голоса студентов – это голоса граждан.
Шаг 1. Запишем аксиому и теорему на языке предикатов первого порядка.
А1: x( S ( x) G ( x)) (x M , где М – множество людей)
Т: x(yS ( y ) & V ( x, y ) z (G ( z ) & V ( x, z )) (x Г , где Г – множество голосов, x,y
M , где М – множество людей)
Шаг 2. Получим дизъюнкты.
Д1: S ( x) G ( x)
Чтобы получить дизъюнкты из теоремы, надо взять ее отрицание.
x ( y S ( y ) & V ( x , y) z (G ( z ) & V (
x ( y ( S ( y ) & V ( x , y) & z ( G ( z )
S (a c
2 ) & V c
( a1 , a c
2 ) & ( G ( z ) V c
( a1 ,
Шаг 3. Вывод:
1. Унифицируем Д1 иД2: S ( x ) G ( x) { a 2c // x }, получаем S (a 2c ) G (a 2c )
2. Получаем резольвенту Д1-Д2: G (a 2c ) , обозначим ее как Д5
3.Унифицируем Д4 и Д5: G ( z ) V ( a1c , z ) { a 2c // z }, получаем G ( a 2c ) V (a1c , a 2c )
4. Получаем резольвенту Д4 и Д5: V (a1c , a2c ) , обозначим ее Д6
5. Д3-Д6: (пустой дизъюнкт).
Теорема доказана.
Пример 2.
А1: Если х является родителем у и у является родителем z, то х является прародителем z.
А2: Каждый человек имеет своего родителя.
В: Существуют ли такие х и у, что х является прародителем у?
Шаг 1. Запишем аксиому и вопрос на языке предикатов первого порядка.
А1: xyz ( P ( x, y ) & P ( y , z ) П ( x, y ))
А2: yxP ( x, y )
В: x, yП ( x, y )
Шаг 2. Получим дизъюнкты.
Д1: P ( x, y ) P ( y, z ) П ( x, z )
Д2: P ( f c ( у ), y )
Д3: П ( x, y ) Отв ( x, y )
Шаг 3. Вывод:
1. Унифицируем Д1 и Д2: P( x, y ) P( y, z ) П ( x, z ){ f c ( y ) // x} , получаем
P( f c ( y ), y ) P( y , z ) П ( f c ( y ), z )
2. Получаем резольвенту Д1-Д2: P ( y, z ) П ( f c ( y ), z ) , обозначим ее Д4
3. Унифицируем Д2 и Д4: P( y, z ) П ( f c ( y ), z ){ f c ( y ) // x}, { y // z} , получаем
P ( f c ( y ), y ) П ( f c ( f c ( y )), y )
4. Получаем резольвенту Д3-Д2: П ( f c ( f c ( y )), y ) , обозначим ее Д5.
5. Унифицируем Д3 и Д5: П ( x, y ) Отв( x, y ){ f c ( f c ( y ) //x}, получим
П ( f c ( f c ( y ), y ) Отв( f c ( f c ( y ), y )
6. Получаем резольвенту Д3-Д5: Отв( f c ( f c ( y ), y )
Ответ можно интерпретировать следующим образом: f c ( y ) - быть родителем у, f c ( f c ( y )
- быть родителем родителя у, следовательно, прародитель у – это родитель родителя у.
31
4.6. Логическое программирование
Приведенный метод резолюций служит основой языков логического программирования.
Главное отличие языков логического программирования от процедурных языков
заключается в том, что программа не указывает как что-то сделать, а описывает некоторые
элементы и связи между ними (модель) и ставит цель, т. е. задает вопрос об этой системе.
На формальном языке это означает проверить истинность предложения на данной
системе. При этом компьютер самостоятельно выбирает стратегию для решения
поставленных вопросов.
Логическая программа представляет собой конечный набор выражений следующих видов:
факты: P (t1 , t 2 ,...t n ) , (1)
правила: Q( s1 , s 2 ,...s k ) : Q1 ( s1 , s 2 ,...s k ),...Qm ( s1 , s 2 ,...s k ) , (2)
где P (t1 , t 2 ,...t n ) , Q( s1 , s2 ,...sk ) - атомарные формулы.
Правило читается как: «если истинны Q1 ( s1 , s2 ,...sk ),...Qm ( s1 , s2 ,...sk ) , то истинно
Q ( s1 , s2 ,...sk ) ». Формула Q( s1 , s2 ,...sk ) называется заголовком правила.
Правила позволяют выводить новые факты из уже существующих. Факты определяют
отношения между объектами.
Для выполнения программы необходимо обратиться к целевому запросу (цели), которая
представляет собой последовательность атомарных формул вида:
R1 ( q1 , q 2 ,...ql ),...R p ( q1 , q 2 ,...ql ) . (3)
Выполнение программы состоит в попытке решить задачу, т .е. доказать целевое
утверждение, используя факты и правила.
Каждому факту (1) поставим в соответствие предложение:
А: x1 , x 2 ,..x s P (t1 , t 2 ,..t n ) , где x1 , x2 ,..xs - все переменные, входящие в формулу
P (t1 , t 2 ,..t n ) .
Каждому правилу (2) поставим в соответствие предложение:
В: y1 , y 2 ,... y r ((Q1 ( s1 , s 2 ,...s k ) & .... & Qm ( s1 , s 2 ,...s k )) Q( s1 , s 2 ,...s k )) , где
y1 , y 2 ,... y r - все переменные, входящие в формулы
Q1 ( s1 , s 2 ,...s k ),...., Qm ( s1 , s 2 ,...s k ), Q ( s1 , s 2 ,...s k )
Запросу (3) поставим в соответствие формулу:
С: z1 , z 2 ,...z d ( R1 (q1 , q 2 ,...ql ) & ... & R p ( q1 , q 2 ,...ql )) ,
где кванторы связывают все переменные.
Нужно доказать
A1 ,... Ah , B1 ,...B g | C
Для доказательства используется метод резолюций.
32
У
У
У
Если в какой-то момент времени УУ воспринимает ячейку, содержащую символ ai и МТ
находится в состоянии q l , то МТ может совершить следующие действия:
1. Стереть символ a i и записать на его место символ a j .
2. Переместиться в ячейку слева (Л).
3. Переместиться в ячейку справа (П).
4. Остаться на месте (С).
Эти действия называются программой.
Таким образом, М=<A,Q, П>.
Программу МТ можно представить в виде последовательности команд вида:
q l ai a j Dq k ,
где D={Л, П, С}. (Л- переход влево, П – переход вправо, С – остаться на месте).
Программу также можно представить в виде таблицы:
q1 q2 …. qn
a1
a2
…. a j Dqk
am
n N1 100 N1 1000 N1
n2 N2 10 N2 31,6 N2
3
n N3 4,64 N3 10 N3
2n N4 6,64+N4 9,97+N4
n
3 N5 4,19+N5 6,29+N5
Из таблицы видно, что в случае полиномиальных алгоритмов размер решаемой задачи при
увеличении производительности ЭВМ увеличивается на мультипликативную константу,
тогда как для экспоненциальных алгоритмов имеет место увеличение на аддитивную
константу.
Полиномиальные алгоритмы обладают свойством “замкнутости”, их можно
комбинировать полиномиальные, используя один в качестве “подпрограммы” другого и
при этом результирующий алгоритм будет полиномиальным. В силу приведенных причин
используется следующая терминология: полиномиальные алгоритмы называют
эффективными, полиномиально решаемые задачи называют легкорешаемыми, а
экспоненциально решаемые задачи называют труднорешаемыми.
Для практики важным является классификация задач по признаку труднорешаемости,
хотя следует заметить, что установление легкорешаемости задачи еще не означает ее
практическую решаемость. Например, установление полиномиальной оценки O(n 1000) не
гарантирует практической решаемости уже при начальных значениях n. Аналогичное
замечание можно сделать относительно труднорешаемости. Заметим, что
труднорешаемость задачи может быть связана с тем, что ее решение настолько велико,
что не может быть записано в виде выражения, длина которого была бы ограничена
полиномом от длины входа. Чтобы исключить этот тип труднорешаемости,
рассматривается только такие задачи, которые имеют «короткий»
ответ.
Рассмотрим несколько примеров.
Пусть М={1,2,…, n} – конечное множество, R M M бинарное отношение на М.
Рассмотрим задачу проверки – является ли R отношением эквивалентности
(рефлексивное, симметричное, транзитивное). Будем задавать индивидуальную
задачу матрицей
АR ( aij ), i, j 1, n, где
1, если (i, j) R
aij
0, в противном случае
45
Ясно, что R будет отношением эквивалентности тогда и только тогда, когда матрица AR
имеет единичную диагональ, симметрична и выполнено соотношение
bij a ij , i, j 1, n, где (bij ) AR 2 - матрица отношения R2.
Кроме того, выполнено AR 2 AR AR , где имеется в виду булево умножение матриц. Ясно,
что сложность рассматриваемой задачи О(n2).
2. Бинарное отношение R называется связным, если для любых i, j 1, n выполняется iRj
или jRi.
Бинарное отношение называется Эйлеровым, если элементы R
R:(i1,j1);(i2,j2);…(it,jt), t R
можно упорядочить так, что выполнено
( j1 , i 2 ) R, ( j 2 , i3 ) R,....( jt 1 , it ) R, ( jt , i1 ) R .
Можно доказать, что связное отношение R является эйлеровым тогда и только тогда,
когда число единиц в матрице AR совпадает в i-ом столбце и в i-ой строке для каждого
i 1, n . Это дает алгоритм сложности O(n2), проверяющий эйлеровость отношения R.
3. Бинарное отношение R называется гамильтоновым, если элементы М i1,i2,…,in можно
упорядочить так, что выполняется соотношение
(i1 , i 2 ) R, (i 2 , i3 ) R,....(i n 1 , i n ) R, (i n , i1 ) R (*)
В настоящее время неизвестно полиномиального алгоритма, который проверял бы
гамильтоновость отношения R.
Тривиальный алгоритм требует n! упорядочений множества М и проверки условий (*),
что, конечно, превосходит по величине любой полином от n.
4. Пусть f(x1,…,xn) – формула от булевых переменных x1,…,xn в некотором
фиксированном базисе В. Формула f(x1,…,xn) называется выполнимой, если существует
набор значений переменных x1 ,..., xn , такой, что f(x1,…,xn)=1.
Формула f(x1,…,xn) называется мультиафинной, если она имеет вид
f ( x1 ,... x n ) ( xi1 xik ...a1 )...( x s1 ... x sk at ),
1 t
5.5.2. NP задачи
Определим теперь класс NP задач распознавания, т.е. имеющих ответ «ДА» или «НЕТ».
Для того, чтобы задача I содержалась в классе NP требуется , чтобы если I
имеет ответ “ДА”, существовало бы слово с(I) длины, ограниченной полиномом от
размера I, такое, что задача с начальными данными с(I), I принадлежит Р. Слово с(I)
называется удостоверением или догадкой для задачи I.
Рассмотрим примеры.
1. Пусть дана задача проверки гамильтоновости бинарного отношения R M M на
множестве М={1,2,…,n}. Если R – гамильтоново отношение, то удостоверением этого
будет последовательность элементов М: с(R)=i1i2…in. Имея пару с(R), R, можно проверить
соотношение (*) и убедиться является ли R – гамильтоновым отношением.
46
Следовательно, задача проверки гамильтоновости бинарного отношения лежит в классе
NP.
2. Пусть дана задача проверки выполнимости формул КНФ.
Если f(x1,…,xn) – выполнимая функция, то удостоверением этого будет соответствующий
набор x1 ,...x n . Имея пару x1 ,... x n , f(x1,…,xn), легко убедиться, что f(x1,…,xn)
выполнима.
Формализуем эти идеи.
Класс NP определяется через понятие недетерминированного алгоритма. Введем понятие
недетерминированной машины Тьюринга.
Схема недетерминированной машины Тьюринга:
…… -3 -2 -1 0 1 2 n
* x1 x2 ……... xn
УМ q1