- •«Дискретная математика»
- •Множества и отношения Тема 1. Основные понятия теории множеств Множества и основные операции над ними
- •Кортеж. Декартово произведение
- •Мощность множества
- •Тема 2. Элементы комбинаторики Комбинаторные вычисления
- •Основные понятия комбинаторики
- •Размещения
- •Перестановки
- •Сочетания
- •Определение числа сочетаний с повторениями
- •Бином Ньютона
- •Решение комбинаторных уравнений
- •Метод включений и исключений
- •Рекуррентные соотношения. Возвратные последовательности
- •Тема 3. Отношения на множествах Отношения. Функции. Взаимно однозначные соответствия
- •Отношения эквивалентности и разбиения. Фактор-множества
- •Отношения порядка
- •Тема 4. Элементы теории графов
- •Определение и примеры графов
- •Связность графа
- •Обзор основных задач теории графов
- •Расчет сетевого графика
- •Резервы сетевого графика
- •Сети Петри
- •Маршруты
- •Степени вершин
- •Раскраски графов
- •Планарные графы
- •Изоморфизм графов
- •Алгебра и топология Тема 1. Элементы общей алгебры Операции на множествах
- •Унарные операции алгебры поворотов квадрата
- •Группа подстановок Галуа
- •Алгебра множеств (алгебра Кантора)
- •Алгебраические системы. Решетки
- •Задание множеств конституентами
- •Задание множества а двоичным числом
- •Пересечение множеств № 12 и № 5
- •Тема 2. Булевы функции
- •Табличное задание булевых функций
- •Задание булевой функции
- •Задание булевых функций одной переменной
- •Задание булевых функций двух переменных
- •Аналитическое задание булевых функций
- •Задание булевой функции голосования
- •Полные системы булевых функций
- •Тема 3. Алгебраические системы Определения и примеры
- •Подсистемы
- •Конгруэнции. Фактор-алгебры. Теорема о гомоморфизме
- •Тема 4. Элементы общей топологии
- •Топологические пространства, сходимость к точке и направленности
- •Фильтры и ультрафильтры
- •Булевы решетки подмножеств
- •Атомы и шкалы решеток подмножеств
- •Алгебра логики Тема 1. Алгебра логики высказываний Формулы алгебры логики
- •Функции алгебры логики
- •Эквивалентность формул
- •Дизъюнктивные и конъюнктивные нормальные формы
- •Минимизация булевых функций в классе днф
- •Карты Карно
- •Логические сети Определение и реализация булевых функций
- •Схемы из функциональных элементов
- •Мультиплексоры
- •Программируемые логические матрицы
- •Тема 2. Логика предикатов Предикаты. Кванторы
- •Формулы логики предикатов
- •Правила преобразования формул логики предикатов
- •Тема 3. Элементы теории доказательств Аксиоматическая (формальная) теория. Исчисление предикатов
- •Метод резолюций
- •Хорновские дизъюнкты
- •Унификация. Метод резолюций в логике предикатов
- •Тема 4. Алгоритмы Понятие об алгоритмах. Схемы алгоритмов Понятие об алгоритме и теории алгоритмов
- •Схемы алгоритмов
- •Описание символов, используемых в схемах алгоритмов
- •Неразрешимые алгоритмические проблемы
- •Конечные автоматы и регулярные языки Тема 1. Синтаксис языков Алфавит, слово, язык
- •Классификация грамматик и языков
- •Регулярные языки и регулярные выражения
- •Тема 2. Переключательные функции и способы их задания Понятие о переключательных функциях
- •Некоторая трехзначная переключательная функция двух переменных
- •Трехзначная пф «дизъюнкция а, b »
- •Трехзначная пф «сумма a, b по модулю 3»
- •Трехзначная пф «а плюс 1 по модулю 3 — циклический сдвиг а»
- •Двоичные переключательные функции и способы их задания
- •Одномерная таблица истинности некоторой функции
- •Двухмерная таблица истинности
- •Основные бинарные логические операции
- •Бинарная конъюнкция
- •Бинарная конъюнкция
- •Бинарная дизъюнкция
- •Бинарная инверсия
- •Импликация
- •Эквиваленция
- •Функциональная полнота систем переключательных функций
- •Линейные функции двух переменных
- •Базисы представления переключательных функций
- •Переключательные функции от трех аргументов
- •Векторы переключательных функций
- •Вектор свойств пф
- •Цель минимизации переключательных функций
- •Тема 3. Элементы теории конечных автоматов Основные определения теории конечных автоматов
- •Понятие о технической интерпретации конечных автоматов
- •Синтез комбинационных автоматов в заданном базисе Синтез комбинационных автоматов
- •Синтез переключательной схемы
- •Синтез в базисе и, или, не
- •Синтез методом каскадов
- •Синтез в базисах и-не, или-не
- •Элементарные автоматы памяти на основе комбинационного автомата и задержки
- •Первичная таблица переходов-выходов
- •Синтез автомата-распознавателя последовательности
- •Первичная таблица переходов-выходов распознавателя 0-1-3-2
- •Тема 4. Элементы теории кодирования
- •Проблема кодирования сообщений
- •Расстояние Хемминга
- •Групповые коды
- •Хемминговы коды
Тема 2. Элементы комбинаторики Комбинаторные вычисления
При решении теоретико-множественных задач большое значение имеет определение мощности конечных множеств.
Очевидно, что | A ∪ В| = |А| + |В| – |А ∩ В|, т. е., когда А и В в «общем положении», т. е. пересекаются.
Кроме того, |А В| = |А| – |В|, когда А включается в В, |А В| = |А| – | А ∩ В|, когда А и В в «общем положении», т. е. пересекаются.
Нетрудно заметить, что |А ⊕ В| = |А| + |В| – 2|А ∩ В|.
В дискретной математике имеется специальный раздел, занимающийся подсчетом и перечислением элементов в конечных множествах — комбинаторика, или комбинаторный анализ. Вычисления на дискретных конечных математических структурах часто называют комбинаторными вычислениями.
Пусть в базе данных имеется n записей об объектах недвижимости (например, квартирах) в виде запроса (что требуется) и предложения (что имеется). Требуется найти такие пары записей, в которых предложение первой записи совпадает с запросом второй и, наоборот, предложение второй записи совпадает с запросом первой («подбор вариантов обмена»).
Допустим, на проверку варианта обмена тратится одна миллисекунда. Можно показать, что при сравнении каждой записи с каждой требуется n ( n – 1) / 2 сравнений.
Например, n = 8:
(1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (1,8),
(2,3), (2,4), (2,5), (2,6), (2,7), (2,8),
(3,4), (3,5), (3,6), (3,7), (3,8),
(4,5), (4,6), (4,7), (4,8),
(5,6), (5,7), (5,8),
(6,7), (6,8), (7,8) — всего 28 вариантов: 8 · 7/2 = 28 = 7 + 6 + 5 + 4 + 3 + 2 + 1. Здесь отношение сравнения симметрично и сам с собой вариант не сравнивается.
Если n = 100, то при указанном быстродействии на сравнения уйдет 4,95 с. Но если n = 100000 (в задачах реальной размерности), то необходимо 1999950 с, т. е. без малого 1389 ч. Столько ждать клиент вряд ли будет. Это и есть «проклятие размерности». И это только сравнение прямых вариантов, а существуют варианты, в которых число участников сделки больше двух.
Поэтому комбинаторные вычисления требуют предварительного анализа и ориентировочной количественной оценки исходных данных. Иначе можно подумать, что компьютер просто «завис» и не выдаёт ответа. Здесь речь идет о сложности вычислений в смысле времени решения. В ряде задач комбинаторной сложности необходимо время, сравнимое с геологическими эпохами. Но есть еще и пространственная сложность — в смысле объема памяти. Ведь промежуточные результаты часто надо где-то хранить. В ряде задач требуется объем памяти, превышающий количество атомов во Вселенной.
Основным инструментом такого анализа сложности вычислений и является комбинаторика.
Основные понятия комбинаторики
Основная задача комбинаторики как раздела дискретной математики — пересчет и перечисление элементов в конечных множествах.
Если требуется определить, сколько элементов, принадлежащих заданному конечному множеству, обладает некоторым свойством или заданным набором свойств, то это задача пересчета. Если необходимо выделить все элементы множества, удовлетворяющие заданным свойствам, то это задача перечисления.
В некоторых задачах на исходном конечном множестве элементов определена целевая функция, причем нас интересуют элементы множества, соответствующие минимальному или максимальному значению этой функции. В этом случае решается задача оптимизации.
При этом под решением задачи оптимизации «в сильном смысле» понимается нахождение всех элементов минимизирующих (максимизирующих) целевую функцию, а под решением задачи оптимизации «в слабом смысле» — нахождение единственного произвольного элемента.
Рассмотрим основополагающие правила комбинаторики — правила суммы и произведения.
Пусть X — конечное множество, состоящее из n элементов х. Тогда говорят, что элемент х из X может быть выбран n способами и пишут |Х| = n . Эта запись совпадает с записью мощности множества X .
Пусть X 1 ,..., Х k — попарно непересекающиеся множества, т. е. Xi ∩ Xj = ∅ , i ≠ j .
Очевидно, что в этом случае
Таково комбинаторное правило суммы. Для k = 2 оно формулируется следующим образом. Если объект х может быть выбран n способами из множества X , а объект y из непересекающегося с ним множества Y — другими m способами, то выбор «х или у» может быть осуществлен n + m способами.
Правило произведения для k = 2 формулируется следующим образом. Если объект х может быть выбран n способами и после каждого из таких выборов объект у в свою очередь может быть выбран m способами, то выбор упорядоченной пары — вектора (х, у) может быть осуществлен n · m способами.
Например, X : { x 1 , x 2 }, Y : { y 1 , y 2 }.
Тогда упорядоченные пары (х, у) описываются декартовым произведением
X · Y = {(х1 , у1 ), (х1 , у2 ), (х2 , у1 ), (х2 , у2 )}.
Выбор упорядоченной
последовательности из k
объектов вектора (х1
, х2
, ..., х k
) может быть осуществлен
n 1
· n
2
· ... · nk
-способами, где ni
— число способов выбора i
-г o
объекта xi
, i
меняется от 1 до k
(записывается:
).
В частности, если все ni равны, что может быть, например, в случае, когда элементы принадлежат одному и тому же множеству, т. е. рассматривается декартово произведение Х k , то число способов равно nk .
Набор элементов
из
множества X
= {х1
, ..., х n
} (вектор) называется
выборкой (комбинацией) объема k
из n
элементов или, иначе, (
n ,
k
)-выборкой.
Выборка называется упорядоченной , если порядок следования элементов в ней задан. Две упорядоченные выборки, различающиеся лишь порядком следования элементов, считаются различными.
Если порядок следования элементов не является существенным, то такая выборка называется неупорядоченной.
В выборках могут допускаться и не допускаться повторения элементов, т. е. имеются выборки с повторением и выборки без повторений.
