- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Разбиения множеств.
Рассмотрим комбинаторный смысл мультиномиальных коэффициентов. Рассмотрим множество S = {s1, s2, ..., sm}. Пусть разбиение множества
S на множеста S1, S2, ..., Sk таково, что каждое Si содержит αi элементов: S = S1 ∪ S2 ∪ ... ∪ Sk; Si ∩ Sj = ∅, i /= j; |Si| = αi, i = 1, k. Отметим, что некоторые Si могут быть пустыми и, очевидно, что m =
α1 + α2 + ... + αk.
Утверждение 1.5.12 . Число таких разбиений множества S равно
α ,α ,...,α
мультиномиальному коэффициенту ( m ).1 2 k
Пример 1.5.9 . Пусть имеется m шаров с различными номерами на них и имеется k коробок: B1, B2, ..., Bk. Сколькими способами можно
разложить эти m шаров по k коробкам таким образом, чтобы в коробке
Bi оказалось ровно αi шаров, i = 1, k.
Для начала можем выбрать α1 шаров, которые мы положим в коробку B1. Это можно сделать столькими различными способами,
α
сколько существует сочетаний из m по α1 - (m ).1
α
Аналогично, α2 шаров, которые мы положим в коробку B2 можно выбрать (m−α1) способами.2
Рассуждая далее подобным образом, мы получим, что число способов,
которыми можно разложить все m шаров по k коробкам с соблюдением количеств шаров в коробках равно
m
α1 ·
m − α1
α2 ·
m − α1 − α2
α3 ·
...
m − α1 − ... − αk−1 =
αk
m!
=
α1!(m − α1)!
(m − α1)!
· α2!(m − α1 − α2)!
(m − α1 − α2)!
· α3!(m − α1 − α2 − α3)!
· · · ·
(m − α1 − α1 − ... − αk−1)! =
· · · · αk!(m − α1 − α1 − ... − αk−1 − αk)!
m!
=
α1!α2!...αk!
m
= .
α1, α2, ..., αk
Замечание 1.5.2 . В примере 1.5.9 содержится доказательство утверждения 1.5.12. Действительно, выбрать α1 элементов из m
α
для первого подмножества можно (m ) способами, α2 из оставшихся1
α
элементов для второго подмножества - (m−α1) способами и так далее.2
Итак, в комбинаторном смысле мультиномиальный коэффициент
( m
α1,α2,...,αk
) равен числу разбиений m-элементного множества на k
подмножеств мощностей α1, α2, ..., αk.
Пример 1.5.10 . В студенческой группе, состоящей из 25 человек, при выборе профорга за выбранную кандидатуру проголосовало 12 человек, против - 10, воздержалось - 3. Сколькими способами могло быть проведено такое голосование?
Пусть S - множество студентов группы, S1 - множество студентов проголосовавших за выдвинутую кандидатуру, S2
множество проголосовавших против, S3 - множество
воздержавшихся. Тогда |S| = 25, |S1| = 12, |S2| = 10, |S3| = 3,
S = S1 ∪ S2 ∪ S3, Si ∩ Sj = ∅, i /= j.
Следовательно искомое число равно
25
12, 10, 3
25!
=
12!10!3!
= 1 487 285 800.
Тепеь рассмотрим, как можно подсчитать число неупорядоченных разбиений множества на подмножества заданной мощности.
Пусть дано множество S мощности m и числа n1, n2, ..., nm таковы,
что
):mi=1
ni · i = m. Рассмотрим такие разбиения множества S
ni множеств
на подмножества, что среди множеств разбиения ровно
мощности i, для каждого i = 1, m, причем порядок множеств разбиения не важен. Обозначим число таких разбиений за N (n1, n2, ..., nm).
Утверждение 1.5.13 . Пусть m ∈ N и n1, n2, ..., nm ∈ N0 - такие числа, что
Тогда
m
\ ni · i = m.
i=1
m!
N (n1, n2, ..., nm) =
n1!n2
! · · · nm
.
!(1!)n1 (2!)n2 · · · (m!)nm
Доказательство. Каждое из неупорядоченных разбиений, рассмотренных при определении величины N (n1, ..., nm), можно,
нумеруя множества в этом разбиении, привести n1! · · · nm! способами
к упорядоченным разбиениям. Действительно, множества мощности 1
можно расставить n1! способами, множества мощности 2 - n2! способами,
..., множества мощности m - nm! способами. С другой стороны, число упорядоченных разбиений множества S можно подсчитать по утверждению 1.5.12. Тогда получим
m
(1!)n1 , (2!)n2 , ..., (m!)nm
= N (n1, n2, ..., nm) · n1!n2! · · · nm!,
что и доказывает утверждение.
D
Пример 1.5.11 . Сколькими способами можно разбить множество из десяти элементов на четыре подмножества (порядок подмножеств не важен), чтобы в одном из подмножеств был один элемент, в двух по два элемента и в одном - пять элементов? Ответ:
N (1, 2, 0, 0, 1, 0, 0) =
10!
1!2!1!(1!)1(2!)2(5!)1
7!
=
2 · 4 · 5!
= 3780
Пример 1.5.12 . Сколькими способами из группы в 20 человек можно сформировать 4 каолиции по 5 человек?
Пусть S множество людей в группе, ni - число каолиций по i человек,
i = 1, 25. Тогда ответ:
N (0, 0, 0, 0, 4, 0, ..., 0) =
20!
4!(5!)4