- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Математическая логика: Булева аллгебра
Математическая логика окончательно оформилась как самостоятельная математическая дисциплина к 30-м годам XX века. Основная причина ее появления - математические парадоксы, например парадокс Рассела. Сложно проводить математические рассуждения, не будучи уверенным в их непротиворечивости, а также в существовании объектов, которые они определяют. Возникла идея исследовать язык логики и математики, подойти к доказательству на основе понятий аксиом и правил вывода.
Булева алгебра. Функции алгебры логики.
Булевы функции
Будем рассматривать булевы функции (функции алгебры логики) - функции, аргументы и значения которых принимают значения истина и ложь. Истину и ложь будем обозначать соответственно 1 и 0. Положим
E2 = {0, 1}. Таким образом, функция n аргументов f есть
f : E2 × E2 × ... × E2
n
→ E2.
Аргументы этих функций будем называть логическими переменными и обозначать буквами x, y и z, возможно с индексами. Множество всех булевых функций (функций алгебры логики) будем обозначать P2.
Пример 2.1.1 . Табличное задание функции f :
x |
y |
z |
f (x, y, z) |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
23
Всего существует 23 различных наборов значений трех переменных. Если их нумеровать от 0 до 23 − 1, то набор с номером i оказывается
представлением числа i в двоичной системе счисления. Всего различных функций от 3-х аргументов - 223
В общем случае число строк в таблице для функции от n аргументов равно 2n. Число различных булевых функций от n аргуменов - 22n .
Пример 2.1.2 . Рассмотрим, как зависит функция f из примера 2.1.1 от переменной y. Пусть γt = (α1, 0, α3) и γtt = (α1, 1, α3) - два набора
с произвольными значениями α1 и α2. Тогда по таблице выше можно убедиться, что f (γt) = f (γtt): f (0, 0, 0) = f (0, 1, 0), f (0, 0, 1) = f (0, 1, 1)
и так далее. В таком случае, можно сказать, что функция f не зависит существенно от переменной y, или, что y - несущественная переменная функции f .
Замечание 2.1.1 . Среди 22n различных функций от n переменных далеко не все зависят от аргументов существенно. В это число войдут
и все функции от n − 1, n − 2, и т. д. аргументов.
Определение 2.1.1 . Будем говорить, что функция f (x1, x2, ..., xn) не зависит существенно от xn (xn - фиктивная (несущественная) переменная функции f (x1, x2, ..., xn)), если для любых значений
α1, α2, ..., αn−1 ∈ E2 выполняется равенство f (α1, α2, ..., αn−1, 0) =
f (α1, α2, ..., αn−1, 1).
Переменные функции f , которые не являются фиктивными,
называют существенными переменными и говорят, что функция f
существенно от них зависит.
Пример 2.1.3 . Продолжим предыдущий пример. Удалим из таблицы для функции f по одной из каждой пары строк, соответствующих разным значениям переменной y при одинаковых x и z, а также удалим столбец со значениями переменной y. Получим таблицу для новой
функции f t(x, z):
-
x
z
f t
0
0
1
0
1
0
1
0
0
1
1
1
Функции f и f t по определению различны: у них разная область
определения. С другой стороны, если учитывать только существенные переменные, эти две функции полностью совпадают. В дальнейшем будем считать такие функции равными.
Определение 2.1.2 . Будем говорить, что две функции f (x1, x2, ..., xk) и g(x1, x2, ..., xl) равны, если после удаления всех несущественных переменных получаются функции с одинаковыми таблицами. В таком случае будем писать f = g.
Замечание 2.1.2 . При использовании табличного задания функции достаточно указывать тольно набор ее значений, предполагая, что порядок следования наборов аргументов всегда одинаков. Например, функция из примера 2.1.1 может быть определена только записью f = (1, 0, 1, 0, 0, 1, 0, 1).