- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Матрица инцидентности
Второй распространенной матрицей ассоциированной с графом является матрица инцидентности. Она определяется как прямоугольная матрица
B(G) размерности |V (G)|×|E(G)|, где строки соответствуют вершинам, а
столбци - ребрам графа. Пусть G = (V, E) - неориентированный граф,
V = {1, 2, ..., n} E = {e1, e2, ..., em}.
( 1, ∃l : ej = (i, l) ∈ E(G)
bi,j (G) =
0, иначе , i = 1, n, j = 1, m. (34)
В каждом столбце матрицы инцидентности ровно 2 единицы. Сумма по i-той строке матрицы инциденции равна степени вершины i.
Сумма всех элементов матрицы инцидентности графа равна удвоенному числу его ребер:
n m
\ \ bi,j (G) = 2|E(G)|.
Пример 4.6.4 .
i=1
j=1
Для обыкновенного графа на рисунке 43 матрица инцидентности может выглядеть следующим образом
1 1 0 0 0
0 1 1 1 0
B(G) = 0 0 0 1 1
0 0 0 0 1
1 0 1 0 0
Для определения матрицы инцидентности графа Бержа потребуется использовать дополнительное значение −1 для указания, куда заходит
соответствующая дуга.
1, ∃l : ej = (i, l) ∈ E(G)
bi,j (G) = −1, ∃l : ej = (l, i) ∈ E(G)
, i = 1, n, j = 1, m. (35)
0, иначе
Пример 4.6.5 . Для графа Бержа на рисунке 44 матрица инцидентности будет выглядеть следующим образом
−1 |
0 |
0 |
0 |
1 |
−1 |
1 |
0 |
0 |
0 |
−1 |
1 |
0 |
0 |
0 |
− |
0 |
1 |
0 |
0 |
1
0
B(G) = 0 1
0 −1
Матрицы инцидентности изоморфных графов отличаются друг от друга перестановкой столбцов.
Список ребер
Список ребер - это еще один способ представления графа. В этом случае, каждое ребро задается двумя числами - номерами вершин, которые соединяет это ребро. Можно сказать, что это вариант матрицы инцидентности, где номера строк с единицами заданы в явном виде.
Обходы графов
Эйлеров цикл
Определение 4.7.1 . Эйлеровым циклом в графе G называется цикл, который проходит через все ребра графа ровно по одному разу.
Определение 4.7.2 . Граф G называется эйлеровым графом, если в нем есть эйлеров цикл.
Для проверки графа на эйлеровость есть удобный критерий.
Лемма 4.7.1 . Пусть граф G является эйлеровым графом. Тогда степени всех вершин графа G четны.
Доказательство. Пусть в графе G существует эйлеров цикл C = (vi1 , (vi1 , vi2 ), vi2 , (vi2 , vi3 ), ..., vil , (vil , vi1 ), vi1 ). В этом цикле присутствуют все ребра графа G причем каждое ровно один раз.
В цикле C проходя некоторую вершину vij мы входим и выходим из нее по разным ребрам, что добавляет двойку к степени этой вершины. Значит степень вершины v графа G равна удвоенному числу проходов цикла C через вершину v. Следовательно степень v четна.
D
Теорема 4.7.2 . Пусть G - связный граф. Тогда в графе G существует эйлеров цикл тогда и только тогда, когда степени всех вершин графа G четны.
Доказательство. Необходимость следует из леммы 4.7.1.
Достаточность. Пусть ∀v ∈ V (G): degG v - четна. С помощью
двухшагового процесса разобьем все ребра графа на циклы.
Начнем с произвольной вершины u ∈ V (G) строить цепь переходя по
любым ребрам от вершины к вершине. Поскольку степени вершин четны,
войдя в некоторую вершину по одному ребру мы обязательно можем из нее выйти по второму. Таким образом мы точно можем обходить вершины, пока не вернемся в исходную вершину u. Так мы построили некоторый цикл P1 = P1(u). По лемме 4.7.1, степени всех вершин в P1(u) четны.
Удалим из G все ребра, входящие в цикл P1(u). Поскольку степени всех вершин в G и P1(u) четны, то и в графе G−E(P1(u)) степень каждой
вершины четна.
Дальше мы можем перейти к пункту 1) и искать цикл P2 в графе
G−E(P1(u)). Процесс можно повторять до тех пор, пока в графе G−): Pi
остаются вершины с ненулевой степенью.
Наконец мы получим набор циклов P1, P2, ..., Pt:
E(G) = E(P1) ∪ E(P2) ∪ ... ∪ E(Pt), E(Pi) ∩ E(Pj ) = ∅, i /= j.
Поскольку граф G связен, эти циклы пересекаются по некоторым вершинам. Рассмотрим какие-нибудь два из этих циклов Pi и Pj , у которых есть общая вершина v. Тогда
Pi = (v, (v, vs2 ), vs2 , (vs2 , vs3 ), ..., vsl , (vsl , v), v),
i
j
Pj = (v, (v, vr2 ), vr2 , (vr2 , vr3 ), ..., vrli
j
, (vrl
, v), v).
Объединим эти циклы в точке v и получим новый цикл
Pi,j = (v, (v, vs2 ), vs2 , (vs2 , vs3 ), ..., vsl , (vsl , v), v,
i i
j
(v, vr2 ), vr2 , (vr2 , vr3 ), ..., vrl, (vrl
, v), v).
j
Продолжим аналогично объединять циклы, пока не получим один общий цикл, включающий все ребра графа, причем каждое ровно один раз.D