Конструирование комбинаторных объектов и их подсчёт — различия между версиями
Mervap (обсуждение | вклад) (somefix) |
Mervap (обсуждение | вклад) (+Restricted constructions) |
||
Строка 148: | Строка 148: | ||
!<tex dpi="130">Seq(A)</tex>||<tex dpi="130">\dfrac{1}{1-A(z)}</tex> | !<tex dpi="130">Seq(A)</tex>||<tex dpi="130">\dfrac{1}{1-A(z)}</tex> | ||
|-align="center" | |-align="center" | ||
− | !<tex dpi="130"> | + | !<tex dpi="130">PSet(A)</tex>||<tex dpi="130">\prod\limits_{n \geqslant 1}(1+z^{n})^{A_{n}}=\exp(-\sum\limits_{k \geqslant 1}\dfrac{(-1)^{k}A(z^{k})}{k})</tex> |
|-align="center" | |-align="center" | ||
− | !<tex dpi="130"> | + | !<tex dpi="130">MSet(A)</tex>||<tex dpi="130">\prod\limits_{n \geqslant 1}\dfrac{1}{(1-z^{n})^{A_{n}}}=\exp(\sum\limits_{k \geqslant 1}\dfrac{A(z^{k})}{k})</tex> |
|-align="center" | |-align="center" | ||
!<tex dpi="130">Pair(A,B)</tex>||<tex dpi="130">A(z)B(z)</tex> | !<tex dpi="130">Pair(A,B)</tex>||<tex dpi="130">A(z)B(z)</tex> | ||
Строка 170: | Строка 170: | ||
|} | |} | ||
− | == См.также == | + | ===Ограниченные конструкции=== |
+ | Иногда в анализе необходимо ввести ограничение на количество компонентов. Такой случай обозначается нижним коэффициентом (например, <tex dpi="130">Seq_{k}(A)</tex> {{---}} <tex dpi="130">k</tex> компонентов). Для подсчета производящей функции таких классов необходимо заменить аргумент <tex dpi="130">A(z)</tex>. Например: | ||
+ | {| class="wikitable" | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">Class</tex>||<tex dpi="130">A(z)</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">Seq_{k}(B)</tex>||<tex dpi="130>B(z)^{k}</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">PSet_{2}(B)</tex>||<tex dpi="130">\dfrac{B(z)^{2}}{2}-\dfrac{B(z^{2})}{2}</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">MSet_{2}(B)</tex>||<tex dpi="130">\dfrac{B(z)^{2}}{2}+\dfrac{B(z^{2})}{2}</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">Cycle_{2}(B)</tex>||<tex dpi="130">\dfrac{B(z)^{2}}{2}+\dfrac{B(z^{2})}{2}</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">PSet_{3}(B)</tex>||<tex dpi="130">\dfrac{B(z)^{3}}{6}-\dfrac{B(z)B(z^{2})}{2}+\dfrac{B(z^{3})}{3}</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">MSet_{3}(B)</tex>||<tex dpi="130">\dfrac{B(z)^{3}}{6}+\dfrac{B(z)B(z^{2})}{2}+\dfrac{B(z^{3})}{3}</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">Cycle_{3}(B)</tex>||<tex dpi="130">\dfrac{B(z)^{3}}{3}+\dfrac{2B(z^{3})}{3}</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">PSet_{4}(B)</tex>||<tex dpi="130">\dfrac{B(z)^{4}}{24}-\dfrac{B(z)^{2}B(z^{2})}{4}+\dfrac{B(z)B(z^{3})}{3}+\dfrac{B(z^{2})^{2}}{8}-\dfrac{B(z^{4})}{4}</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">MSet_{4}(B)</tex>||<tex dpi="130">\dfrac{B(z)^{4}}{24}+\dfrac{B(z)^{2}B(z^{2})}{4}+\dfrac{B(z)B(z^{3})}{3}+\dfrac{B(z^{2})^{2}}{8}+\dfrac{B(z^{4})}{4}</tex> | ||
+ | |-align="center" | ||
+ | !<tex dpi="130">Cycle_{4}(B)</tex>||<tex dpi="130">\dfrac{B(z)^{4}}{4}+\dfrac{B(z^{2})^{2}}{4}+\dfrac{B(z^{4})}{2}</tex> | ||
+ | |} | ||
+ | |||
+ | ==См.также== | ||
*[[Лемма Бёрнсайда и Теорема Пойа]] | *[[Лемма Бёрнсайда и Теорема Пойа]] | ||
*[[Числа Каталана]] | *[[Числа Каталана]] |
Версия 05:41, 5 января 2018
Содержание
Последовательности (Seq)
Утверждение: |
Пусть — множество из различных объектов, — множество всех последовательностей из элементов , — количество объектов веса от до . Мы считаем, что нет объектов веса , так как в противном случае существует бесконечное количество последовательностей любого веса. Тогда, количество последовательностей веса можно вычислить как . Причем , так как есть единственный способ составить пустую последовательность. |
Докажем по индукции. База .
Переход.
|
Подсчет битовых векторов длины
Пусть битовых векторов.
, — множество всехТогда,
.Подсчет Seq из маленьких и больших элементов
Пусть
, , — множество всех последовательностей из маленьких и больших элементов, .Тогда, [1].
, где — -ое число ФибоначчиПодсчет подвешенных непомеченных деревьев с порядком на детях
Пусть
— количество таких деревьев с вершинами. — множество всех последовательностей из данных деревьев. — количество последовательностей с суммарным количество вершин . Чтобы получить дерево из вершин, достаточно взять вершину, и подвесить к ней последовательность деревьев с суммарным количеством вершин . Тогда:- .
- число Каталана. , где — -ое
Множества (PSet)
Утверждение: |
Пусть — множество из различных объектов, — множество всех множеств, составленных из элементов , — количество объектов веса от до . Мы также считаем, что нет объектов веса . Тогда количество множеств суммарного веса можно вычислить как , где — количество таких множеств, которые содержат объекты, вес которых не больше чем . Причем , так как не набирать никакой вес есть один способ, а , , так как нельзя набрать положительный вес из ничего. |
Изначально у нас есть только пустое множество веса | . Рассмотрим очередной этап вычисления . Для данных и у нас уже имеется множество, которое необходимо дополнить. Мы можем сделать это добавляя от до элементов веса (при условии, что столько различных элементов имеется) в данное множество. Выбрать нужное количество элементов можно с помощью сочетаний. Следовательно, у нас образуется новые множества, которые будет необходимо дополнить элементами веса меньше (чтобы избежать повторений) суммарного веса , где — количество элементов веса которое мы добавили в данное множество. Довольно легко заметить, что данные операции полностью соответствуют описанной выше формуле.
Количество PSet из элементов 0 и 1
Пусть
, — множество всех множеств из , . Тогда , где .- .
- .
- .
- .
- Для , .
Количество разбиений на слагаемые
Пусть разбиений на слагаемые, , . Тогда,
, — множество всех- динамического программирования. , где , что, как несложно заметить, соответствует формуле, полученной методом
Мультимножества (MSet)
Утверждение: |
Пусть [2] из элементов , — количество объектов веса от до . Тогда количество мультимножеств из объектов суммарного веса можно вычислить как , где — количество таких мультимножеств, которые содержат объекты, вес которых не больше чем . — множество из различных объектов, — множество всех мультимножеств |
Рассуждения аналогичны рассуждениям | , однако теперь мы можем брать один и тот же элемент несколько раз. То есть для подсчета вместо обычных сочетаний нужно использовать сочетания с повторениями.
Количество MSet из элементов 0 и 1
Пусть
, — множество всех множеств из , , .- Тогда, , где
- .
- .
- .
- .
- .
Подсчет подвешенных непомеченных деревьев без порядка на детях
Пусть
— количество таких деревьев с вершинами. — множество всех лесов из данных деревьев, так как лес можно интерпретировать как мультимножество из деревьев. — количество лесов с суммарным количество вершин . — количество таких лесов из вершин, что деревья в них содержат не более чем вершин. Чтобы получить дерево из вершин, достаточно взять вершину и подвесить к ней лес деревьев с суммарным количеством вершин . Тогда:- .
- .
- .
Количество таких деревьев с [3]
вершинами образуют последовательность
Пары (Pair)
Утверждение: |
Пусть , — множества из различных объектов, — множество всех пар объектов, составленных из элементов и . — количество объектов веса от до , составленных из элементов , а — соответственно для . Тогда количество пар из объектов суммарного веса можно вычислить как . |
Чтобы составить пару веса | нужно взять один элемент веса из и элемент веса из , что полностью соответствует данной формуле.
Количество подвешенных неполных двоичных деревьев
Пусть
— количество таких деревьев с вершинами. — множество всех пар из данных деревьев. Чтобы получить двоичное дерево из вершин, достаточно взять вершину и подвесить к ней левого и правого сына с суммарным количеством вершин . Тогда:- число Каталана. , где — -ое
Циклы (Cycle)
Утверждение: |
Пусть [4] из элементов , — количество объектов веса .
— множество из различных объектов, — множество всех циклов Тогда количество циклов веса По можно вычислить как , где — количество циклов веса длины . лемме Бёрнсайда , где — количество стабилизаторов для циклического сдвига на . |
Очевидно, что длина цикла веса | может быть от до . Посмотрим сколько существует циклов каждой длины. Это можно сделать по лемме Бёрнсайда.
Лемма: |
Найдем в общем случае. |
Доказательство: |
Пусть наибольший общий делитель. Заметим, что в -ой перестановке на -ой позиции стоит элемент . Также, заметим, что элемент переходит в элемент , где . Из этого следует, что длина цикла для -ой перестановки равна , где — наименьшее общее кратное. —Также заметим, что если вес нельзя равномерно распределить по всей длине цикла, то стабилизатор равен .
Где — число способов упорядочить набор из элементов суммарного веса и , причем . |
Задача об ожерельях
Решим данным способом задачу об ожерельях. Пусть необходимый вес — это количество бусинок, а — количество цветов. Причем каждая бусинка весит . То есть .
так как невозможно набрать вес менее, чем бусинами при весе бусин .
. Поскольку все бусины имеют одинаковый вес , то
В итоге,
.Метод производящих функций
Такие большие группы часто анализируют с помощью производящих функций. Один из популярных методов — метод символов (англ. Symbolic method). Он использует внутреннюю структуру объектов для получения производящих функций. В случае непомеченных объектов, как и в анализе в нашей статье, считается, что нет объектов нулевого веса. Иногда для удобства их добавляют, чтобы показать наличие одного пустого множества. При непомеченных объектах рассмотренные классы имеют следующие производящие функции:
функция Эйлера. | , где —
---|
Однако порой некоторые комбинаторные классы удобнее обозначать как помеченные. Например, — помеченные графы. С помеченными объектами используется экспоненциальная производящая функция [5]. В данном случае для некоторых рассмотренных классов используются следующие производящие функции:
. |
---|
Ограниченные конструкции
Иногда в анализе необходимо ввести ограничение на количество компонентов. Такой случай обозначается нижним коэффициентом (например,
— компонентов). Для подсчета производящей функции таких классов необходимо заменить аргумент . Например:См.также
- Лемма Бёрнсайда и Теорема Пойа
- Числа Каталана
- Генерация комбинаторных объектов в лексикографическом порядке