Элементы комбинаторики.ppt
- Количество слайдов: 17
Элементы комбинаторики Тема 5
Задачи комбинаторики o o Комбинаторный анализ предполагает установление свойств и выявление оценки применимости алгоритмов (перебора или сокращенного перебора) для вычислений на конечных дискретных математических структурах. Известны следующие задачи комбинаторики: n n o пересчет – определение числа элементов в некотором конечном множестве (элемент может представлять собой комбинацию более простых элементов); перечисление – выделение или конструирование всех элементов некоторого конечного множества; классификация – перечисление конечного числа групп элементов некоторого конечного множества; оптимизация – перечисление всех элементов множества, на которых достигается экстремальное (минимальное или максимальное) значение некоторой функции. Рассмотрим подробнее следующие примеры: n n Матричное умножение Двоичные числа определенной разрядности
Комбинаторные конфигурации o o o Дано n предметов. Сколькими способами их можно разместить по m ящикам так, чтобы выполнялись определенные ограничения? Дано множество функций F: X Y, где |X|=n, |Y|=m. Сколько существует функций F, удовлетворяющих определенным ограничениям? Дано множество X, |X|=n. Сколько различных выборок длины m можно составить из элементов множества X, если при этом нужно выполнять определенные ограничения? Размещения Без ограничений Все функции U(m, n) Размещения без повторений Ограничение на количество элементов в ящике (ровно 1) Инъективные A(m, n) Перестановки Разместить без повторений все исходные элементы Взаимооднозначные P(n) Сочетания Размещения без повторений (все элементы одинаковые) Строго монотонные C(m, n) Сочетания с повторениями Размещения (все элементы одинаковые) Монотонные V(m, n)
Правила суммы и произведения o o Пусть имеются непересекающиеся множества X 1, X 2, …, Xm с соответственным количеством элементов n 1=|X 1|, n 2=|X 2|, …, nm=|Xm|. Правило суммы: выбрать один элемент или из множества X 1, или из X 2, или … из Xn можно n 1+n 2+…+nm способами. Правило произведения: выбрать по одному элементу из множества X 1 и X 2 и … Xn можно n 1*n 2*…*nm способами Рассмотрим примеры: n n n Суеверный председатель клуба велосипедистов решил подсчитать, хватит ли трехзначных номеров для выпуска билетов всем членам клуба (600 человек), если в номерах не использовать восьмерку. Сколькими способами можно выбрать две кости домино таким образом, чтобы они сочетались хотя бы одним краем? Сколькими способами можно сдать 4 экзамена, чтобы в сумме получить ровно 17 баллов?
Принцип включения/исключения o o Пусть имеются пересекающиеся множества X 1, X 2, …, Xm с соответственным количеством элементов |X 1|, |X 2|, …, |Xm|. Тогда выбрать один элемент или из множества X 1, или из X 2, или … из Xn можно |X 1|+|X 2|+…+|Xm|–|X 1 X 2|–|X 1 X 3|–…–|Xm-1 Xm|+…+(-1)m 1|X X … X | 1 2 m Доказательство для 2 и 3 множеств – с помощью диаграмм Венна (Эйлеровых кругов), далее – по индукции. Примеры: n n Сколько чисел от 0 до 100 не делится на 2, 3 и 5 (решето Эратосфена)? В НИИ 6 человек знает английский, 7 – французский, 6 – немецкий, 4 – английский и немецкий, 3 – немецкий и французский, 2 – французский и английский и 1 – все три языка. Сколько человек работает в НИИ?
Формулы для подсчета числа комбинаторных конфигураций Размещения Доказывается с помощью правил суммы и произведения Размещения без повторений Перестановки Сочетания с повторениями Элементарные тождества:
Примеры o o В комнате живут трое студентов. У них есть 4 разные чашки, 5 разных блюдец и 6 разных чайных ложек. Сколькими способами они могут накрыть стол, если каждому нужна одна любая чашка, ложка и блюдце? Студент идет на экзамен, зная 40 вопросов из 50. В билете 5 вопросов. Какова вероятность (как отношение числа благоприятных исходов к общему их числу) сдать экзамен, если: n n Для успешной сдачи требуется ответить на все 5 вопросов? Для успешной сдачи требуется ответить хотя бы на 4 вопроса?
Биномиальные коэффициенты o Числа сочетаний С(m, n) называются биномиальными коэффициентами. Мнемоническое правило рекуррентного вычисления биномиальных коэффициентов – треугольник Паскаля. Бином Ньютона: Следствия: o Свойства биномиальных коэффициентов: o o o
Подстановки и перестановки o Подстановкой на X называется взаимооднозначная f: X X. n n n o o Подстановку можно представить в виде двух перестановок или в виде графа Любая подстановка представима в виде набора циклов. n n n o o o Тождественная подстановка: e(x)=x Обратная подстановка f -1 всегда существует Произведение f и g – их композиция f◦g, причем f◦ f -1= f -1◦f=e. Эта последовательность определяет тип подстановки. Подстановка, состоящая из одного цикла, называется циклической. Цикл длины 2 называется транспозицией. Инверсией называется пара значений перестановки, нарушающая заданное отношение предпочтения (xi>xj при i<j) Теорема. Любую подстановку можно представить в виде суперпозиции транспозиций соседних элементов. Следствие. Всякая сортировка может быть выполнена перестановкой соседних переменных (обоснование алгоритма пузырьковой сортировки)
Генерация (перечисление) перестановок o Упорядоченная последовательность перестановок: n n o В лексикографическом порядке: (a 1, a 2, … am) лексикографически предшествует (b 1, b 2, … bm) если до некоторого i<k, 0 k m, ai=bi, а ak>bk. В антилексикографическом порядке. Неупорядоченная последовательность (применяется в генетических алгоритмах): n n Следующая отличается от предыдущей одной транспозицией соседних элементов.
Разбиения o Разбиением называется набор подмножества X: B={B 1, B 2, …, Bn}, если n n o o o подмножества попарно не пересекаются; при объединении подмножеств получается множество X. Подмножества {Bi} называются блоками разбиения. Каждый элемент x X входит только в один блок Bj Число разбиений вычисляется по формуле Здесь ni = |Bi|, а порядок блоков считается существенным
Числа Стирлинга o Второго рода: число S(m, n) разбиений m-элементного множества на n подмножеств. n Очевидно, что o o S(m, 0)=0 при m>0; S(m, m)=1; S(0, 0)=1; S(m, n)=0 при m<n; n n o Теорема: S(m, n)=S(m – 1, n – 1)+n. S(m – 1, n) Теорема: Первого рода: число s(m, n) размещений m предметов по n ящикам так, что все ящики заняты. n s(m, n)=n!S(m, n)
Формулы обращения o o Предназначены для решения простейших комбинаторных уравнений: a(n, k)=f(b(n, k)) b(n, k)=F(a(n, k)). Здесь a(n, k) и b(n, k) – комбинаторные числа. Например, для биномиальных коэффициентов: n n
Производящие функции o Производящей функцией для заданной последовательности комбинаторных чисел a 1, a 2, … an относительно заданной последовательности функций f 1(x), f 2(x), … fn(x) называется F(x): o Пример: (1+x)n является производящей функцией для биномиальных коэффициентов относительно последовательности функций fi(x)=xi, так как формула бинома Ньютона при y=1: o Используются для доказательства комбинаторных формул
Сложность алгоритма o Временная (вычислительная): функция от объема входных (и, возможно, выходных) данных, равная количеству операций, необходимых для их обработки. n n o o В худшем случае рассматривается максимальное количество операций. В лучшем – минимальное. Пространственная (по данным): функция от объема входных (и, возможно, выходных) данных, равная объему необходимой для их обработки памяти. Асимптотическая (временная или пространственная) сложность – функция, ограничивающая сложность сверху или снизу асимптотически. Обычно выбирают функцию простой структуры: n n логарифмическую, линейную, полиномиальную, экспоненциальную.
Классификация алгоритмов o o Полиномиальные (класс P), «хорошо решаемые» задачи. Примеры: n сортировка массива, n поиск элемента множества, n определение связности графа n определение кратчайших путей в графе n и другие. o o Неполиномиальные (класс NP), экспоненциальные, полный перебор), «трудно решаемые» задачи. Примеры: n задача коммивояжера (поиска кратчайшего обхода всех узлов), n определение выполнимости булевой формулы n и другие
Уменьшение вычислительной сложности o Уменьшить вычислительную сложность экспоненциального алгоритма означает найти полиномиальный алгоритм, решающий ту же задачу. Известны следующие основные способы: n n o Сужение задачи (решений частного случая с заданными ограничениями). Поиск приближенного решения (потеря точности ради сокращения времени). Выявление и использование закономерностей. Использование других форматов входных и промежуточных данных. Все задачи могут быть решены экспоненциальным (переборным) алгоритмом. Поиск полиномиального алгоритма – творческая задача.
Элементы комбинаторики.ppt