- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Задача коммивояжера
Рассмотрим задачу, которая по формулировке напоминает задачу об остове минимального веса, но по сложности принципиально отличается от нее.
Задача 4.9.1 . Пусть имеется n городов, соединенные дорогами известной длины. Коммивояжер, живущий в одном из городов, должен объехать их все и вернуться домой таким образом, чтобы проделанный им путь был минимальным. Но есть еще одно ограничение. Поскольку продукция у коммивояжера не очень надежная, коммивояжер не может позволить себе вернуться в один из пройденных городов.
Сформулируем задачу в терминах графов.
Задача 4.9.2 . Дан граф G = (V, E) и весовая функция W :
W : E → R+.
Требуется найти замкнутый маршрут минимального веса, который проходил бы по всем вершинам графа ровно по одному разу.
Задача разпадается на два вопроса: Во-первых, стоит вопрос, существует ли вообще замкнутый маршрут, который проходил бы по всем вершинам графа ровно по одному разу. Во-вторых, если такие маршруты существуют, требуется найти тот из них, который имеет минимальный вес.
Чтобы избежать такой неоднозначности вопроса, можно добавить к G ребра бесконечно большого веса между всеми несмежными вершинами. То есть мы договориваемся, что данный в задаче граф полный, а весовая функция может быть бесконечной для некоторых ребер. Тогда ответ на вопрос о существовании искомого маршрута всегда положителен и можно сосредоточиться на поиске минимума.
Покажем, что эта задача, если ее сформулировать в форме распознавания, будет N P -полной задачей. Для доказательства этого факта построим цепочку N P -полных задач, к каждой из которых полиномиально сводятся предыдущие.
Можно переформулировать задачу коммивояжера.
Задача 4.9.3 . Дан полный граф G = Kn и весовая функция W :
W : E(Kn) → R+.
Требуется найти гамильтонов цикл минимального веса.
Докажем N P -полноту задачи коммивояжера, построив последовательность полиномиальных сводимостей задач теории графов.
Задача о клике
Напомним, что клика - это максимальный по включению вершин полный подграф графа.
В оптимизационной форме задача о клике выглядит следующим образом:
Задача 4.9.4 . Дан граф G = (V, E). Необходимо найти наибольшую клику графа (клику графа с наибольшим для этого графа числом вершин).
Используем обозначение ϕ(G) - размер наибольшей клики в гарфе G. Тогда задачу о клики можно переформулировать в форме распознавания следующим образом.
Задача 4.9.5 (КЛИКА). Дан граф G = (V, E) и целое число b > 0. Правда ли, что ϕ(G) ≥ b.
То есть необходимо ответить на вопрос, существует ли в графе в графе
G полный подграф с b вершинами.
Докажем N P -полноту задачи о клике, сведя к ней известную нам N P - полную задачу о выполнимости.
Задача 4.9.6 (ВЫПОЛНИМОСТЬ). Дана конъюнктивная нормальная форма A = D1 ∧ D2 ∧ ... ∧ Dk. Требуется ответить
на вопрос, является ли эта формула выполнимой (то есть, найдется ли набор значений переменных, чтобы формула A принимала значение 1.
Теорема 4.9.1 . ВЫПОЛНИМОСТЬ ∝ КЛИКА.
Доказательство. Покажем, что задача о выполнимости сводится за полиномиальное время к задаче о клике.
Пусть нам поставлена следующая задача о выполнимости: дана конъюнктивная нормальная форма A = D1 ∧ D2 ∧ ... ∧ Dk, где Di -
дизъюнкт, i = 1, k. Построим граф G = (V, E) следующим образом:
V (G) = {(α, i) | α - литерал в Di}, E(G) = {((α, i), (β, j)) | i /= j, α /= β}.
Пусть A выполнима. Значит на определенном наборе значений переменных A = 1. Тогда в каждом дизъюнкте Di найдется хотя бы один литерал αi = 1.
Рассмотрим вершины (αi, i) и (αj , j) при i /= j. Поскольку на
выбранном наборе значений переменных αi = 1 и αj = 1, то αi /= αj .
Следовательно вершины (αi, i) и (αj , j) соеденины ребром в графе G. Таким образом множество вершин {(αi, i) | i = 1, k} порождает полный
подграф в графе G.
Пусть теперь в графе G есть клика размера k с вершинами (α1, 1), (α2, 2), ...(αk, k). Тогда αi /= αj , ∀i, j = 1, k. Слендовательно можно
таким образом подобрать значения переменных, чтобы все αi принимали значение 1 одновременно. Следовательно A - выполнима.
Итак, мы показали, что формула A является выполнимой тогда и только тогда, когда в графе G имеется клика размера k.
Осталось заметить, что построение графа G можно выполнить за полиномиальное время от размера СКНФ A.
D
Переформулированная в форме распознавания задача о клике принадлежит классу N P , так как, если ответ на задачу "да" и нам дано множество вершин, образующих полный подграф в графе G, мы можем за полиномиальное время проверить правда ли каждая из этих вершин смежна с каждой.
Следствие 4.9.2 . Задача о клике является N P -полной задачей.