- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Операции
Основные операции над графами
Существует множество операций над графами и разные авторы определяют операции, которые им нужны. Рассмотрим несколько основных операций для примера.
Добавление вершины: G1 = G + v. V (G1) = V (G) ∪ {v}, E(G1) = E(G).
Добавление ребра: G1 = G + e.
V (G1) = V (G), E(G1) = E(G) ∪ {e}. Операция применима, если
e = (v, u) и u, v ∈ V (G).
Удаление ребра: G1 = G − e.
V (G1) = V (G), E(G1) = E(G) \ {e}. Операция применима, если
e ∈ E(G).
Удаление вершины: G1 = G − v.
V (G1) = V (G) \ {v}, E(G1) = {e | e ∈ E(G), / ∃u ∈ V (G) : e = (v, u)}.
Объединение графов: G3 = G1 ∪ G2.
V (G3) = V (G1) ∪ V (G2), E(G3) = E(G1) ∪ E(G2).
Как видно из определения, если V (G1) ∩ V (G2) = ∅ и
E(G1) ∩ E(G2) = ∅, изображение графа G3 можно получить просто
нарисовав рядом графы G1 и G2.
Произведение графов: G3 = G1 × G2.
V (G3) = V (G1) × V (G2), E(G3) = {((u1, u2), (v1, v2)) | u1, v1 ∈
V (G1), u2, v2 ∈ V (G2), (u1 = v1 и (u2, v2) ∈ E(G2)) или (u2 =
v2 и (u1, v1) ∈ E(G1))}.
Пример произведения графов можно увидеть на рисунке 41.
Подграфы
Определение 4.3.1 . Рассмотрим граф G = (V, E, P ). Пусть V t ⊆ V , Et ⊆ E, а P t - предикат, индуцированный (полученный сужением) инцидентором P на подмножествах V t и Et. Если V t и Et выбраны так, что Gt = (V t, Et, P t) удовлетворяет определению графа, то Gt
называется частью графа G.
Рисунок 41: Произведение графов
Определение 4.3.2 . Часть Gt = (V, Et, P t) графа G = (V, E, P )
называется суграфом.
Определение 4.3.3 . Часть Gt = (V t, Et, P t) графа G = (V, E, P )
называется подграфом, если (∀v, w ∈ V t)(∀e ∈ E)[P (v, e, w) ⇒ e ∈ Et]
Приведем более удобные определения для случая обыкновенного графа G = (V, E).
Определение 4.3.4 . Граф G1 = (V1, E1) называется подграфом графа
G = (V, E), если V1 ⊆ V и E1 = {e | e = (u, v) ∈ E, u, v ∈ V1}.
Такой подграф иногда называют подграфом порожденным
множеством вершин V1, поскольку он включает все ребра графа
G, которые соединяют вершины из V1.
Определение 4.3.5 . Граф G1 = (V1, E1) называется частью графа
G = (V, E), если V1 ⊆ V и E1 ⊆ {e | e = (u, v) ∈ E, u, v ∈ V1}.
Определение 4.3.6 . Граф G1 = (V, E1) называется суграфом графа
G = (V, E), если E1 ⊆ E.
Можно сказать, что чтобы получить суграф, нужно удалить из графа часть ребер. Чтобы получить порожденный подграф, нужно удалить из графа часть вершин и каждое ребро, хотябы один концец которого был удален. Чтобы получить часть графа, нужно взять суграф от порожденного подграфа графа.
Примером задачи, связанной с подграфами, является поиск наибольшей клики графа (рис. 42).
Определение 4.3.7 . Кликой графа называется максимальный по включению вершин полный подграф графа.
Таким образом, поиск наибольшей клики графа то же, что и поиск наибольшего полного подграфа графа.
Рисунок 42: Наибольшей клика графа
Неизвестно эффективного алгоритма, решающего |
эту |
задачу. |
Переформулируем эту задачу переформулировать |
в |
форме |
распознавания: Дан граф G и b ∈ R+. Ответить на вопрос существует
ли в этом графе полный подграф размера b? Эта задача является
N P -полной задачей. Доказательство N P -полноты задачи о клике будет рассмотрено позже, в параграфе 4.9.