- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Группа перестановок
Определение 1.6.3 . Группой называется непустое множество G
с определенной на нем бинарной операцией <, удовлетворяющей трем
аксиомам:
ассоциативность: для любых a, b, c ∈ G верно, что
(a < b) < c = a < (b < c);
наличие нейтрального элемента: существует такой элемент
e ∈ G, что для любого a ∈ G справедливо
a < e = e < a = a;
наличие обратного элемента: для любого элемента a ∈ G найдется такой элемент a−1 ∈ G, что
a−1 < a = a < a−1 = e.
Произведение перестановок ассоциативно:
((π3 ◦ π2) ◦ π1)(i) = (π3 ◦ π2)(π1(i)) = π3(π2(π1(i)) =
= π3((π2 ◦ π1)(i)) = (π3 ◦ (π2 ◦ π1))(i)
Нейтральным элементом для множества σn будет служить
тождественная перестановка e =
1 2 ... n
1 2 ... n
. Легко заметить,
что для любой перестановки π ∈ σn верно π ◦ e = e ◦ π = π.
Для любой перестановки π ∈ σn, как для любой биективной функции,
существует обратная функция π−1: π−1 ◦ π = π ◦ π−1 = e. Для любых i ∈
{1, ..., n} π(i) = j ⇒ π−1(j) = i. Функция π−1 обратная для биективной
функции π также будет биективной фукнцией: π−1 : {1, ..., n} →
{1, ..., n}. То есть, π−1 ∈ σn.
Замечание 1.6.3 . Заметим, что обратная перестановка π−1 для
данной перестановки π единственна. Действиетльно, если бы существовала еще одна такая перестановка πt, что π ◦ πt = e, то
πt = e ◦ πt = π−1 ◦ π ◦ πt = π−1 ◦ e = π−1;
если перестановка πtt такова, что πtt ◦ π = e, то
π−1 = e ◦ π−1 = πtt ◦ π ◦ π−1 = πtt ◦ e = πtt.
Таким образом мы доказали, что множество перестановок σn с операцией произведения перестановок образуют группу. Эту группу называют группой перестановок или симметрической группой.
Замечание 1.6.4 . Произведение перестановок в общем случае не коммутативно.
Пример 1.6.1 . Пусть
Тогда
π1 =
1 2 3
2 1 3
, π2 =
1 2 3
3 1 2 .
π2 ◦ π1 =
1 2 3
1 3 2
1 2 3
=/ 3 2 1
= π1 ◦ π2.
Циклы перестановки
Будем обозначать
πk = π ◦ π ◦ · · · ◦ π; π0 = e;
k
π−k = π−1 ◦ π−1 ◦ · · · ◦ π−1 .
k
Определение 1.6.4 . Циклом длины l называется такая перестановка π которая тождественна на всём множестве {1, 2, ..., n}, кроме подмножества {x1, ..., xl}. Кроме того π(xl) = x1 и π(xi) = xi+1, i = 1, l − 1.
Цикл обычно обозначается
(x1, x2, ..., xl) = (x1, π(x1), ..., πl−1(x1)).
Определение 1.6.5 . Транспозиция - перестановка элементов множества {1, 2, ..., n}, которая меняет местами только два
элемента.
Замечание 1.6.5 . Транспозиция - цикл длины 2.
Утверждение 1.6.1 . Пусть π ∈ σn и i ∈ {1, ..., n}. Тогда существует такое число k ∈ N, что πk(i) = i.
Доказательство. Пусть i ∈ {1, ..., n}. Пусть для любого k ∈ N
верно πk(i) /= i. Так как множество {1, ..., n} конечно, то элементы
последовательности i, π(i), π2(i), ..., πs(i), ... начинают повторяться
начиная с некоторого момента. Тогда последовательность имеет вид:
a0 = i, a1, ..., al, b1, b2, ..., bm, b1, b2, ..., bm, b1, ...
где l ≥ 1, i ∈/
{a1, ..., al, b1, b2, ..., bm} и {a0, a1, ..., al} ∩ {b1, b2, ..., bm} =
∅. Элемент b1 - самый ранний повторяющийся элемент этой
последовательности.
Но тогда π(al) = π(bm) = b1 и по инъективности перестановки π получаем al = bm. Таким образом b1 был не самым первым повторяющимся элементом. Противоречие доказывает утверждение.
D
Для произвольной перестановки π ∈ σn введем бинарное отношение ρπ
на множестве {1, 2, ..., n}:
xρπy ⇔ ∃k ∈ Z : y = πk(x).
Покажем, что ρπ ∈ σn - отношение эквивалентности.
Рефлексивность. Для любого x ∈ {1, ..., n} x = π0(x) ⇒ xρπx.
Симметричность. Для любых x, y ∈ {1, ..., n}, для которых xρπy,
существует k ∈ Z: y = πk(x). Следовательно x = π−k(y) и yρπx.
Транзитивность. Пусть x, y, z ∈ {1, 2, ..., n}, xρπy и yρπz. Тогда
существуют k1, k2 ∈ Z: y = πk1 (x), z = πk2 (y). Следовательно
z = πk2 (πk1 (x)) = πk1+k2 (x).
То есть xρπz.
Пусть {1, 2, ..., n} = B1 ∪ B2 ∪ ... ∪ Bm - разбиение {1, 2, ..., n}
на классы эквивалентности относительно ρπ. Bi называются орбитами
перестановки.
Утверждение 1.6.2 . Пусть π ∈ σn. Пусть B1 ∪B2 ∪...∪Bm разбиение множества {1, 2, ..., n} на классы эквивалентности, порожденное отно- шением ρπ, и пусть xi ∈ Bi. Тогда,
для любого i ∈ {1, 2, ..., m} существует ni ∈ N:
Bi = {xi, π(xi), ..., πni−1(xi)}.
перестановка π представима в виде произведения циклов:
π = (x1, π(x1), ..., πn1−1(x1)) ◦ (x2, π(x2), ..., πn2−1(x2))◦
◦ · · · ◦ (xm, π(xm), ..., πnm−1(xm)).
Доказательство. 1) По определению, Bi состоит из всех таких y для которых существует s ∈ Z: y = πs(xi). По утверждению 1.6.1, для xi существует k ∈ N: πk(xi) = xi. Пусть ni - наименьшее из таких чисел. Тогда xi, π(xi), ..., πni−1(xi) - различные элементы из {1, 2, ..., n} и {xi, π(xi), ..., πni−1(xi)} ⊆ Bi.
Пусть y ∈ Bi \ {xi, π(xi), ..., πni−1(xi)}. Тогда существует такое s ∈ Z,
что y = πs(xi) и s ∈/
{1, 2, ..., ni − 1}. s = p · ni + q, p ∈ Z \ {0},
q ∈ {0, 1, ..., ni − 1}. Следовательно,
y = πs(xi) = πq(πp·ni (xi)).
Если p > 0, то
πp·ni (xi) = πni ◦ πni ◦ · · · ◦ πni (xi) = xi. (∗)
p
Пусть теперь p < 0. Тогда, используя равенство (∗), получим
πp·ni (xi) = π−ni ◦ π−ni ◦ · · · ◦ π−ni (xi) =
p
−= π−ni ◦ π−ni ◦ · · · ◦ π−ni (πni ◦ πni ◦ · · · ◦ πni (xi)) = xi,
p
−
p
−
поскольку
π−ni ◦ πni (i) = π−1 ◦ π−1 ◦ ... ◦ π−1 ◦ π ◦ π ◦ ... ◦ π(i) = i.
n i
n i
Таким образом, y = πq(xi), где q ∈ {0, 1, ..., ni − 1}, что противоречит выбору y. Следовательно, Bi = {xi, π(xi), ..., πni−1(xi)}.
2) Согласно пункту 1) доказательства для цикла
(xi, π(xi), ..., πn1−1(xi)) выполняется формула
( x, x ∈/ Bi,
(xi, π(xi), ..., πn1−1(xi))(x) =
π(x), x ∈ Bi.
Обозначим πi = (xi, π(xi), ..., πn1−1(xi)), i = 1, m. Если x ∈ Bj и j /= i, то
πi(x) = x. То же верно и для π(x), поскольку π(x) ∈ Bj .
Пусть x ∈ {1, 2, ..., n} - произвольное значение. Пусть, не умаляя
общности, x ∈ Bi. Тогда,
(π1 ◦ π2 ◦ · · · ◦ πi ◦ · · · ◦ πm−1 ◦ πm)(x) =
= (π1 ◦ π2 ◦ · · · ◦ πi ◦ · · · ◦ πm−1)(πm(x)) =
= (π1 ◦ π2 ◦ · · · ◦ πi ◦ · · · ◦ πm−1)(x) = · · · =
= (π1 ◦ π2 ◦ · · · ◦ πi)(x) = (π1 ◦ π2 ◦ · · · ◦ πi−1)(πi(x)) =
= (π1 ◦ π2 ◦ · · · ◦ πi−1)(π(x)) = · · · = π1(π(x)) = π(x).
Это верно для любого x ∈ {1, 2, ..., n}. Таким образом,
π = (π1 ◦ π2 ◦ · · · ◦ πm),
что и требовалось доказать.
D
Сопоставим каждой орбите Bi перестановку πi:
( x, x ∈/ Bi,
πi(x) =
π(x), x ∈ Bi.
Будем называть циклы πi, i = 1, m, циклами перестановки π.
Замечание 1.6.6 . Из утверждения 1.6.2 следует, что перестановку
π можно представить в виде произведения всех ее циклов:
π = π1 ◦ π2 ◦ · · · ◦ πm.
Поскольку орбиты не пересекаются, перестановки в этой композиции можно распологать в любом порядке:
π = πi1 ◦ πi2 ◦ · · · ◦ πim , где i1i2...im - произвольная перестановка из σm. Пример 1.6.2 . Пусть n = 7 и
1 2 3 4 5 6 7
Найдем орбиты π.
π = 4 2 7 1 3 6 5 .
π(1) = 4, π2(1) = π(4) = 1 ⇒B1 = {1, 4},
π(2) = 2, ⇒B2 = {2},
π(3) = 7, π2(3) = π(7) = 5, π3(3) = π(5) = 3 ⇒B3 = {3, 5, 7},
π(6) = 6, ⇒B4 = {6}.
Представление перестановки π в виде произведения циклов имеет вид π = (1, 4)(2)(3, 7, 5)(6).
Пример 1.6.3 . Пусть n = 7 и
1 2 |
3 4 5 6 |
7 |
4 2 |
5 1 6 7 |
3 |
π = .
Рассмотрим иллюстрацию к утверждению 1.6.2 (рисунок 11). Обозна- чим каждый элемент множества {1, 2, ..., n} вершиной графа. Будем
рисовать дугу из вершины i в вершину j, если π(i) = j. Поскольку перестановка является биективной функцией, из каждой вершины выходит ровно одна дуга и в каждую вершину входит тоже ровно одна дуга. Получившийся граф оказывается гамильтоновым графом. Таким образом, все множество дуг графа разбивается на непересекающиеся контуры: ((1, 4), (4, 1)), ((2, 2)), ((3, 5), (5, 6), (6, 7), (7, 3)). Каждому
такому контуру соответствует цикл перестановки π.
1
7 2
6 3
5 4
Рисунок 11: Разбиение перестановки на циклы
Определение 1.6.6 . p ∈ N - степень перестановки π, если p - наименьшее из таких чисел, что πp = e.
Утверждение 1.6.3 . Пусть π ∈ σn, π = π1 ◦ π2 ◦ · · · ◦ πm
разложение π на непересекающиеся циклы; ni - длина цикла πi.
Степень перестановки определяется как наименьшее общее кратное длин ее циклов:
Степень π = НОК(n1, n2, ..., nm).
1
Доказательство. Пусть число p ∈ N таково, что πp = e. Тогда πp ◦
π
πp
p2 ◦ · · · ◦
m = e. Поскольку все перестановки πi воздействуют на разные
i
элементы {1, 2, ..., n}, то πp= e, i = 1, m. Следовательно, p является
общим кратным для n1, n2, ..., nm.
С другой стороны, пусть q = НОК(n1, n2, ..., nm). Тогда πq = πni·t = e,
i = 1, m, и πq = πq ◦ πq ◦ · · · ◦ πq
i i
= e.
1 2 m
D
Пример 1.6.4 . Степень перестановки из примера 1.6.2 равна 6.