- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Задача о вершинном покрытии
Пусть дан граф G = (V, E).
Определение 4.9.1 . Множество вершин R ⊆ V называется
вершинным покрытием графа G, если
∀e = (u, v) ∈ E : {u, v} ∩ R /= ∅.
Теорема 4.9.3 . Пусть G = (V, E) - граф. Тогда G1 = (V1, E1) - полный подграф графа G тогда и только тогда, когда V \V1 - вершинное
покрытие в графе G.
Доказательство. ⇒) Пусть G1 = (V1, E1) - полный подграф графа
G. В граф G входят те и только те ребра, которых нет в графе G.
Следовательно подграф графа G, порожденный множеством вершин V1
не имеет ребер. Другими словами, если в графе G и найдется ребро, то хотябы один его конец будет принадлежать множеству V \ V1, что и
требовалось доказать.
⇐) Пусть V \ V1 - вершинное покрытие в графе G.
Для любых вершин u, v ∈ V1 выполняется неравенство u, v ∩ (V \
V1) = 0. Следовательно, по определению вершинного покрытия между
вершинами u и v нет ребра в графе G. А значит ребро (u, v) присутствует в графе G.
Поскольку это выполняется для произвольных вершин из V1, множество вершин V1 порождает полный подграф в графе G.
D
Задача о вершинном покрытии в оптимизационной форме формулируется следующим образом.
Задача 4.9.7 . Дан граф G = (V, E). Найти вершинное покрытие G
наименьшей мощности.
Переформулируем задачу в форме распознавания
Задача 4.9.8 (ВЕРШИННОЕ ПОКРЫТИЕ). Дан граф G = (V, E)
и число b > 0. Существует ли вершинное покрытие G мощности b.
Следствие 4.9.4 . КЛИКА ∝ ВЕРШИННОЕ ПОКРЫТИЕ.
Доказательство. Для любого графа G мы можем построить дополнение и для него решить задачу о вершинном покрытии.
D
Задача о вершинном покрытии принадлежит классу N P , так как, если
ответ на задачу "да" и нам дано множество из b вершин, мы можем перебрав все ребра убедиться, что хотябы один конец каждого из них лежит в данном множестве.
Следствие 4.9.5 . Задача о вершинном покрытии является N P - полной задачей.
Задача о гамильтоновом цикле
Как мы помним, гамильтонов цикл - это цикл проходящий через каждую вершину графа ровно один раз.
Задача 4.9.9 (ГАМИЛЬТОНОВ ЦИКЛ). Дан граф G = (V, E).
Существует ли в графе G гамильтонов цикл?
Теорема 4.9.6 . ВЕРШИННОЕ ПОКРЫТИЕ ∝ ГАМИЛЬТОНОВ ЦИКЛ.
Доказательство этой теоремы приводить не будем из-за его излишней громоздкости.
Задача о гамильтоновом цикле лежит в классе N P , поскольку, если ответ на задачу "да" и нам дана последовательность прохождения ребер гарфа G, мы можем за полиномиальное время убедиться, что вершины могут быть пройдены в этой последовательности по ребрам G.
Следствие 4.9.7 . Задача о гамильтонове цикле является N P -полной задачей.
Снова задача коммивояжера
Итак, задачу коммивояжера мы сформулировали следующим образом (Задача 4.9.3):
Дан полный граф G = Kn и весовая функция W :
W : E(Kn) → R+.
Требуется найти гамильтонов цикл минимального веса.
Существует также общий (несимметричный) случай задачи.
Задача 4.9.10 . Пусть G = (V, A) - полный ориентированный граф (то есть, ориентированный граф в которым любые две вершины связаны двумя противоположнонаправленными дугами). Весовая функция сопоставляет каждой дуге положительное число. Противоположные ребра могут иметь различный вес.
Требуется найти гамильтонов контур минимального веса.
Переформулируем симметричную задачу в форме распознавания:
Задача 4.9.11 (ЗАДАЧА КОММИВОЯЖЕРА). Дан полный граф G = Kn, весовая функция W и целое число b > 0. Существует ли в G гамильтонов цикл веса не привосходящего b.
Теорема 4.9.8 . ГАМИЛЬТОНОВ ЦИКЛ ∝ ЗАДАЧА КОММИВОЯЖЕРА.
Доказательство. Пусть G1 = (V1, E1) граф, в котором необходимо проверить наличие гамильтонова цикла. Построим граф G2 = (V2, E2) и весовую функцию W следующим образом:
(u, v) ∈ E1 ⇒ (u, v) ∈ E2, W ((u, v)) = 1;
(u, v) ∈/ E1 ⇒ (u, v) ∈ E2, W ((u, v)) = 2.
Нетрудно видеть, что в G1 есть гамильтонов цикл ⇔ задача коммивояжера с графом G2 и границей b = |V | имеет ответ "да".
D
Следствие 4.9.9 . Задача коммивояжера является N P -полной задачей.
Следствие 4.9.10 . Несимметричная задача коммивояжера является N P -полной задачей, так как симметричная задача коммивояжера является ее частным случаем.