8.1. Задачи подсчета числа комбинаторных решений
В комбинаторном анализе рассматриваются задачи о расположении элементов в соответствии с точно определенными правилами, выясняется, могут ли быть осуществлены такие расположения и сколькими способами. Особенностью комбинаторных исследований является то, что в них используются преимущественно три операции: отбор подмножеств некоторого множества, упорядочение и размещение элементов этих подмножеств. Набор элементов ai1,ai2,…,air множества A={a1,a2,…,an} называется выборкой объема r из n-множества или (n,r)-выборкой. Выборки бывают упорядоченными и неупорядоченными, с повторениями и без повторений элементов. Любое допустимое расположение элементов в выборке называют решением комбинаторной задачи.
Среди задач комбинаторного анализа выделяют перечислительные задачи на подсчет числа возможных решений, задачи о существовании допустимых решений и экстремальные задачи, в которых из множества допустимых решений выделяют экстремальное, обладающее некоторым свойством в большей или меньшей степени.
Главными средствами для подсчета числа решений комбинаторных задач являются аналитические методы (перестановки и сочетания, производящие функции, рекуррентные соотношения) и логические методы (метод включений и исключений).
Сочетания и перестановки. Упорядоченная (n,r)-выборка, в которой элементы могут повторяться, называется (n,r)-перестановкой с повторениями (размещением). Число последних будем обозначать символом . Если все элементы упорядоченной (n,r)-выборки различны, она называется (n,r)-перестановкой (размещением) без повторений .
Числом перестановок Р(п) является число различных последовательностей, которые можно составить из п предметов.
Р(n) = п · (п – 1) · … · 2 · 1 = п!
Приведем формулу для числа различных перестановок из n элементов, среди которых r1 элементов 1-го типа, r2 элементов 2-го типа, ..., rk элементов k-го типа:
По данной формуле подсчитывается число неупорядоченных разбиений n-множества на S на ri-подмножества Si, i=1÷k такие, что , , для
Неупорядоченная (n,r)-выборка, в которой элементы могут повторяться, называется (n,r)-сочетанием с повторениями. Их число обозначают символом Ĉ(n,r). Если все элементы неупорядоченной (n,r)-выборки различны, она называется (n,r)-сочетанием, а число таких сочетаний обозначается через C(n,r).
При подсчете числа комбинаторных решений используются два правила. Правило суммы: если объект A может быть выбран n способами, а объект B – другими m способами, то выбор «либо A, либо B» может быть осуществлен (n+m) способами. Правило произведения: если объект A может быть выбран n способами и после каждого такого выбора объект B в свою очередь может быть выбран m способами, то выбор «A и B» в указанном порядке может быть осуществлен m·n способами. Применяя оба правила, нетрудно получить формулы для числа перестановок и сочетаний:
Размещения. Операцию размещение можно интерпретировать как отображение множества элементов на множество классов ("ячеек") в соответствии с определенными требованиями. Задачей на размещение будем называть задачу о числе размещений элементов по ячейкам. Разнообразие задач на размещение связано с тем, что учитывается вид элементов и их число, вид ячеек и их вместимость, порядок элементов в ячейках. Выделяют следующие классы задач на размещение: (А) элементы различимы, ячейки различимы, (В) элементы неразличимы, ячейки различимы, (С) элементы различимы, ячейки неразличимы, (D) элементы неразличимы, ячейки неразличимы.
Если на характер отображения не накладывается ограничений, то типичными задачами класса А являются:
1) размещение n различных элементов по r различным ячейкам, 2) образование слов длины r из алфавита в n букв, 3) образование (n,r)-перестановок с повторениями. Число возможных размещений определяется формулой . Взаимно-однозначное отображение накладывает на размещения ограничения, соответственно: 1) каждая ячейка вмещает один и только один элемент; 2) буква внутри слов не повторяется, 3) в перестановках не допускается повторений. В этом случае число возможных размещений вычисляется по формуле .
К задачам класса В можно отнести следующие: а) элементы n- множества размещаются по r ячейкам так, что ни одна ячейка не пуста; б) элементы n-множества размещают по r ячейкам так, что могут быть пустые ячейки. Решение задачи а) сводится к подсчету числа способов провести (r-1) линий в (n-1) промежутках между элементами, которое равно . При решении задачи б) к n-множеству элементов присоединяют r символически "пустых" элемента и подсчитывают число способов провести (r-1) линий в (n-1) промежутках между элементами ().
Общие задачи на размещение из класса С оказываются сложными. При отсутствии ограничений по занятости любой ячейки получен простой результат: число размещений n различных элементов по r одинаковым ячейкам (ячейки могут быть пустыми) равно .
Теория решений задач класса D почти не разработана, однако и для этого класса задач получены интересные формулы. Например, число способов размещения n различных элементов по r различным ячейкам с учетом их порядка в ячейках равно . Если среди n элементов есть n1 элементов 1-го типа, n2 – элементов 2-го типа,..., nk – элементов k-го типа, то число различных размещений определяется формулой .
Рассмотрим простейшие задачи подсчета.
Число размещений U(m, n) показывает, сколькими способами можно разместить п предметов по т ящикам. Для каждого из п предметов имеется т вариантов размещения. Следовательно,
U(m, n) = тп.
Числом перестановок Р(п) является число различных последовательностей, которые можно составить из п предметов. В последовательности всего п позиций. Зафиксируем один предмет. Его можно разместить в одну из п позиций, т. е. имеем п вариантов размещения. Для следующего предмета имеется п – 1 вариантов размещения по незанятым позициям и т. д. Таким образом,
Р(n) = п · (п – 1) · … · 2 · 1 = п!.
Число размещений без повторений А(m, n) представляет собой число способов размещения п предметов по т ящикам не более чем по одному в ящик (при этом считается, что m n). Путем рассуждений, подобных предыдущим, получим
А(m, n) = т · (т – 1) · … · (т – п + 1) =.
Число сочетаний С(m, n) показывает, сколькими способами из т предметов можно выбрать п предметов. В данном случае не важно, в каком порядке эти предметы выбираются, поэтому
С(m, n) ==.
Метод производящих функций. Производящие функции были введены в комбинаторный анализ в качестве средства, позволяющего с большей общностью подходить к комбинаторным задачам перечислительного типа. Рассмотрим множество элементов X={x1,x2,…,xn}.
Построим полином вида
где a0=1, a1= , a2= . ar= есть функции от (n,r)-выборки множества X, r=0÷n.
Каждый бином вида (1+xkt) отражает две возможности:
элемент xк вошел в выборку один раз (слагаемое xkt),
элемент xk не вошел в выборку ни разу (слагаемое 1).
Если все xk=1, то и коэффициенты есть число (n,r)-сочетаний без повторений. Функция называется производящей функцией для последовательности чисел . Она однозначно связана с этой последовательностью.
Дадим общее определение производящей функции. Рассмотрим последовательность целых чисел. Ей взаимно однозначно соответствует функция , называемая обычной производящей функцией для последовательности a. Функция вида называется экспоненциальной производящей функцией для последовательности a.
При конечном n функция соответствует неупорядоченным (n,r)-выборкам или функциям от них, а функция -упорядоченным (n,r)- выборкам или функциям от них. С помощью производящих функций можно находить число (n,r)-выборок с заданными свойствами.
Покажем на примерах возможности использования аппарата производящих функций при решения задач на подсчет числа выборок с заданными свойствами.
Пример 1. Рассмотрим задачу о нахождении числа (n,r)-сочетаний с неограниченным числом повторений из множества элементов Для ее решения воспользуемся полиномом вида , каждый сомножитель которого отражает появление элемента "либо 0, либо 2,... либо К,...,либо,.. раз". Полагая все , приведем полином к виду
Функция является производящей функцией для искомого числа сочетаний. Поскольку при |t|<1, fнп(t)=(1-t)-n= Из полученной формулы для производящей функции видно, что число (n,r)-сочетаний с неограниченным числом повторений равно . Этот результат согласуется с полученным ранее.
Пример 2. В урне находятся 4 красных, 5 синих и 2 зеленых шара, (а) Сколько существует способов выбора 7 шаров из урны? (б) Сколько существует способов выбора из урны 7 шаров, если 1 шар красный и 2 синие.
Для части (а) производящая функция имеет вид
(1 + х + х2 + х3 + х4)(1 + х + х2 + х3 + х4 + х5)(1 + х + х2),
и количество способов выбора 7 шаров равно коэффициенту при х7 в разложении этой производящей функции.
В части (б) нужно учесть, что 1 вытянутый шар красный, соответствующий многочлен имеет вид (х + х2 + х3 + х4), что представляет вытягивание 1, 2, 3 или 4 красных шаров. Точно так же, учитывая, что 2 вытянутых шара синие, соответствующий многочлен должен иметь вид (х2+х3+х4+х5), что представляет вытягивание 2, 3, 4 или 5 синих шаров. Таким образом, производящий многочлен имеет вид
(х + х2 + х3 + х4)(х2 + х3 + х4 + х5)(1 + х + х2),
и количество способов выбора 7 шаров равно коэффициенту при х7 в разложении производящей функции.
Метод включений и исключений применяется при разделении множества на подмножества, элементы которых обладают определённой совокупностью свойств, а также при подсчёте числа элементов в этих подмножествах. Пусть дано n-множество S некоторых элементов и m-множество свойств P={p1, p2, …, pm}, которыми элементы из S могут как обладать, так и не обладать. Выделим r-выборку свойств {pi1,pi2,…,pir}. Обозначим через n(pi1,pi2,…,pir) число элементов множества S, каждый из которых обладает всеми выделенными r свойствами. Отсутствие у элемента свойства pr будем обозначать . Так, число элементов, обладающих свойствами p1, p3, p5 и не обладающих свойствами p2, p4 из выборки свойств P={p1, p2, p3, p4, p5} запишется как . Если имеется только одно свойство p, т.е. P={p}, то число элементов n-множества, не обладающих свойством p. Если P={p1, p2, …, pm} – конечное множество свойств, несовместимых друг с другом, то число элементов, не обладающих ни одним из этих свойств, определяется формулой
Если P={p1, p2, …, pm} – конечное множество совместимых между собой свойств, то имеет место формула
известная как формула включений и исключений. Её можно записать и в несколько ином виде:
Область применения метода, включений и исключений довольно широка. С его помощью решаются задачи на подсчет числа перестановок с запретами, задачи теории вероятностей, задачи из теории чисел.
Рассмотрим одну из задач на перестановки с запретами. Ее принято называть задачей о беспорядках. Имеется упорядоченное множество чисел 1,2,..., n. Из них могут быть образованы перестановки a1, a2 ,…,an . Число всех возможных перестановок из n элементов равно n!. Перестановки, в которых ни один элемент не сохранил своего первоначального места ( , ), называются беспорядками. Число беспорядков из n элементов можно найти по формуле включений и исключений:
(1, , –+),
где означает свойство “ -ый элемент перестановки стоит на -м месте", - множество свойств элементов оставаться на своих местах, - число перестановок из элементов, в которых на своих местах стоят элементов. Если элементов из закрепляются на своих местах, то . При этом "неподвижных" элементов из можно выбрать способами, тогда по правилу произведения получим, что . Окончательно имеем формулу для числа беспорядков:
Задачи на подсчет числа перестановок с запретами можно решать и с помощью аппарата булевых матриц.
Задаче о беспорядках можно дать следующую техническую интерпретацию: пусть проектируется дискретное устройство, состоящее из нескольких узлов и работающее в различных режимах. Каждый режим работы устройства определяется вектором , компоненты которого соответствуют состояниям узлов (верхний индекс обозначает номер узла, нижний - номер состояния). В процессе проектирования устройства следует исключить запретные состояния узлов, в которых ни один номер состояния узла не соответствует номеру узла устройства.
- Литература
- Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- 1.2.Операции над множествами
- 1.3. Булева алгебра множеств
- 1.4. Разбиения и покрытия
- 2. Отношения бинарные и n-арные
- 2.1. Декартово произведение
- 2.2. Бинарные отношения (соответствия)
- 2.3. Операции над бинарными отношениями
- 2.4. Функциональные отношения
- 2.5. Бинарные отношения на множестве
- 2.6. Алгебраические системы
- 3. Основные понятия теории графов
- 3.1. Абстрактный граф
- 3.2. Графическое представление бинарного отношения
- Множеств а и в
- 3.3. Матричные представления графа
- 3.4. Части графа
- 3.5. Достижимость и связность
- 3.6. Доминирующие множества графа
- 3.7. Независимые множества графа
- 3.8. Раскраска графа
- 3.9.Планарность графов
- 3.10. Инварианты графов
- 4. Булевы функции
- 4.1. Способы задания булевой функции
- 4.2. Элементарные булевы функции и алгебраические формы
- 4.3. Интерпретации булевой алгебры
- 4.4. Нормальные формы булевых функций
- 4.4.1. Дизъюнктивные нормальные формы
- 4.4.2. Конъюнктивные нормальные формы
- 4.5 Полнота и замкнутость системы логических функций
- 4.6. Локальные упрощения днф
- 4.6.1. Удаление избыточных элементарных конъюнкций
- 4.6.2. Удаление избыточных литералов
- 4.7. Графическое представление булева пространства и булевых функций
- 4.7.1. Булев гиперкуб
- 4.7.2. Развертка гиперкуба на плоскости. Карта Карно
- 4.8. Минимизация днф
- 4.8.1. Метод Квайна-МакКласки
- 4.8.2. Метод Блейка-Порецкого
- 4.8.3. Визуально-матричный метод минимизации
- 5. Элементы математической логики
- 5.1 Алгебра высказываний
- Всякое высказывание логично следует из самого себя.
- 2. Закон противоречия:
- Если из а следует b, а b ложно, то а тоже ложно.
- 5.2. Логические отношения
- 5.3.Проверка правильности рассуждений
- 5.4. Решение логических задач методом характеристического уравнения
- 5.6. Кванторы
- 5.7 Эквивалентные соотношения. Префиксная нормальная форма
- 6. Основы теории алгоритмов
- 6.1. Интуитивное понятие об алгоритме
- 6.2. Три типа алгоритмических моделей
- 6.3. Кризис теории множеств антиномии. Выводы из антиномий
- 6.4. Машины Тьюринга как модели алгоритмов
- 6.5. Алгоритмы решения некоторых задач теории графов на графах
- 7. Конечный автомат и его описание.
- 7.2. Представления автомата
- 7.3. Связь между моделями Мили и Мура
- 7.4. Автомат с абстрактным состоянием. Булев автомат
- 7.5. Понятие о регулярных выражениях алгебры событий.
- 7.6. Задачи абстрактной теории конечных автоматов
- 8. Комбинаторные задачи и методы комбинаторного поиска
- 8.1. Задачи подсчета числа комбинаторных решений
- 8.2. Особенности оптимизационных комбинаторных задач
- 8.3. Вычислительная сложность
- 8.4. Методы комбинаторного поиска
- 8.5. Задача о кратчайшем покрытии и методы ее решения
- 8.5.1. Постановка задачи
- 8.5.2. Приближенные методы решения задачи
- 8.5.3. Точный метод
- Вопросы к зачету
- 28. Нормальные формы булевых функций. Дизъюнктивные нормальные формы
- 44. Эквивалентные соотношения. Префиксная нормальная форма
- Практический раздел Контрольная работа Указания по выбору варианта
- Контрольное задание №1. Используя диаграммы Эйлера-Венна, решить задачу
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №2. Получить сднф, скнф, используя таблицу истинности. Построить днф, кнф, упростив выражение.
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №3. Упростить схему (рис. 2)
- Методические указания
- Задачи для самостоятельного решения
- Задачи для самостоятельного решения
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №6. Найти инварианты неориентированного графа, заданного матрицей смежности
- Методические указания
- Задачи для самостоятельного решения