- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Исчисление предикатов
Пример задачи логики предикатов
Рассмотрим пример.
Пусть есть следующее рассуждение. Посылки:
Всякий, кто находится в здравом уме, может понимать математику.
Ни один из сыновей Гегеля не может понимать математику.
Сумасшедшие не допускаются к голосованию.
Заключение:
Никто из сыновей Гегеля не допускается к голосованию.
Формализуем рассуждение.
A(x) - x находится в здравом уме. Здесь x предметная переменная, A - предикат;
B(x) - x может понимать математику;
C(x, y) - x есть сын y;
D(x) - x допускается к голосованию.
С помощью этих предикатов можно переписать посылки и заключение: (1) A = ∀x(A(x) ⊃ B(x));
(2) B = ∀x(C(x, Гегель) ⊃ ¬B(x));
(3) C = ∀x(¬A(x) ⊃ ¬D(x));
D = ∀x(C(x, Гегель) ⊃ ¬D(x)).
Здесь ∀x - квантор всеобщности, а "Гегель" - предметная константа.
Как и раньше, будем говорить, что рассуждение верно, если коньюн-
кция посылок импликация заключение истинна. В нашем примере
A ∧ B ∧ C
конъ юнкц и я пос ылок
⊃ D.
зак л ю ч ение
Можно отметить следующие отличия от исчисления высказываний:
Вместо пропозициональных букв, принимающих всего два значения, используются предикаты, зависящие от переменных, которые принимают значения из некоторого множества объектов.
Пример 5.2.1 . Если раньше мы могли использовать элементарное утверждение A ="Вася - баскетболист", которое могло быть только истинно или ложно, то теперь мы бы написали A(x) - "x -
баскетболист" имея в виду, что A(x) принимает значение 1 для всех x из заданного множества, для которых верно свойство "быть баскетболистом".
Появились кванторы ∀x и ∃x для записи выражений "для любых" и "существует такое" соответственно.
В исчислении высказываний формула была логическим законом, если принимала значение "истина" на любом наборе логических констант, подставляемых вместо пропозициональных букв. Теперь мы используем предикаты с переменными из некоторого множества, так что проверить, что формула истинна на всех наборах не так просто. Кроме того, одной и той же формуле можно приписать различные области определения и по-разному определять истинное или ложное значение входящих в нее предикатов на данных аргументах. Здесь нам будет необходимо новое понятие - интерпретация.
Опишем интерпретацию для предикатов из нашего примера. Пусть M
произвольное множество; область интерпретации. AM , BM , DM - его произвольные подмножества. CM - произвольное подмножество M × M . m ∈ M - произвольный элемент.
Будем полагать, что в формуле
(∀x(A(x) ⊃ B(x))) ∧ (∀x(C(x, Гегель) ⊃ ¬B(x)))∧
∧ (∀x(¬A(x) ⊃ ¬D(x))) ⊃ (∀x(C(x, Гегель) ⊃ ¬D(x))) (37)
предикатам A, B, C и D сопоставлены соответственно множества AM , BM , CM и DM , "Гегелю" сопоставлен элемент m, а x принимает произвольные значения из M .
Тогда A(x) = 1 тогда и только тогда, когда x ∈ AM . Аналогично для
B(x) и D(x). C(x, Гегель) = 1 тогда и только тогда, когда (x, m) ∈ CM .
∀x(A(x) ⊃ B(x)) = 1, если AM ⊆ BM .
∀xA(x) = 1, если AM = M .
Будем говорить, что M вместе с сопоставленными предикатам A,
B, C, D подмножествами и соответствующим "Гегелю" элементом m есть интерпретация нашей формулы. Если задана интерпретация, то формула в этой интерпретации получает значение "истина" или "ложь".
В общем случае безотносительно интерпретации говорить значении формулы исчисления предикатов бессмысленно.
Пример 5.2.2 . Рассмотрим следующую интерпретацию формулы
(37): Область интерпретации M = N.
( 1, x.4,
A(x) =
B(x) = C(x, y) = D(x) =
.
0, иначе.
( 1, x.2,
0, иначе.
( 1, x и y - взаимнопросты,
0, иначе.
( 1, x.100,
0, иначе.
Гегель =10.
Легко убедиться, что в данной интерпретации и посылки и заключение истинны. Например, поскольку в данной интерпретации AM - множество всех чисел кратных четырем, а BM - множество
всех чисел кратных двум, то AM ⊂ BM и ∀x(A(x) ⊃ B(x)) = 1.
Следовательно A ∧ B ∧ C ⊃ D = 1 и наше рассуждение является
верным в данной интерпретации.
Замечание 5.2.1 . Заметим, что наше исходное словесное рассуждение на счет сыновей Гегеля не является интерпретацией, поскольку не определена область интерпретации M .
Определение 5.2.1 . Будем говорить, что формула тождественно истинна (логически общезначима), если ее значение "истина" в любой интерпретации
В общем случае определение, является ли формула логически общезначимой, - алгоритмически неразрешимая задача. Тем не менее, в некоторых частных случаях можно доказать, что формула является тождественно истинной. Покажем это для формулы (37).
Пусть существует интерпретация, в которой наша формула принимает значение "ложь":
(∀x(A(x) ⊃ B(x))) ∧ (∀x(C(x, Гегель) ⊃ ¬B(x)))∧
∧ (∀x(¬A(x) ⊃ ¬D(x))) ⊃ (∀x(C(x, Гегель) ⊃ ¬D(x))) = 0.
Тогда, в этой интерпретации все посылки нашего рассуждения истинны, а заключение ложно. Таким образом существует xo:
-
C(xo, Гегель) ⊃ ¬D(xo) = 0
⇒
C(xo, Гегель) = 1,
D(xo) = 1.
¬A(xo) ⊃ ¬D(xo) = 1
⇒
A(xo) = 1.
A(xo) ⊃ B(xo) = 1
⇒
B(xo) = 1.
C(xo, Гегель) ⊃ ¬B(xo) = 1
⇒
B(xo) = 0.
Противоречие доказывает, что такого xo не существует, что и требовалось доказать.