Изменения

Перейти к: навигация, поиск

Подсчет деревьев

4842 байта добавлено, 02:46, 25 июня 2020
Image formatting fixed
Описание всех используемых далее комбинаторных объектов можно найти в статье [[Конструирование комбинаторных объектов и их подсчёт|"конструирование комбинаторных объектов и их подсчёт"]].= Непомеченные [[Дерево, эквивалентные определения|деревья]] === Бинарные деревья =={{Утверждение|id=unmarked_bin|statement=Число непомеченных бинарных деревьев: <tex>T_n = C_{n}</tex> (<tex dpi="150">n</tex>-ое [[Числа Каталана|число Каталана]]).|proof=Устройство бинарного дерева в терминах комбинаторных классов выражается следующим образом <tex>T = \varepsilon + z\times T\times T</tex>.<br>В разработкетерминах производящих функций эта конструкция выглядит следующим образом <tex>T(s) = 1 + s{T(s)}^2</tex>.Решением данного уравнения будет <tex>T(s) = \frac{1 - \sqrt{1 - 4s}}{2s}</tex>.Тогда::<tex dpi="150">T_{n} = Pair(T, \; T_{n-1}) = \sum\limits_{i=0}^{n-1}T_{i}T_{n-i-1}=C_{n}</tex>, где <tex dpi="150">C_{n}</tex> {{---}} <tex dpi="150">n</tex>-ое [[Числа Каталана|число Каталана]].}}
Описание всех используемых далее комбинаторных объектов можно найти в статье [[Конструирование комбинаторных объектов и их подсчёт{{Утверждение|"конструирование комбинаторных объектов и их подсчёт"]].statement= Непомеченные деревья === Подвешенные неполные двоичные деревья ==Пусть Производящая функция числа непомеченных полных бинарных деревьев: <tex dpi>T(s) ="130">T_{n}</tex> \frac{1 - \sqrt{1 ---4s^2}}{2s} количество таких деревьев с <tex dpi="130">n</tex> вершинами. |proof=Устройство бинарного дерева в терминах комбинаторных классов выражается следующим образом <tex dpi="130">DT =Pair(z + z\times T, \times T)</tex> {{---}} множество всех пар из данных деревьев. Чтобы получить двоичное дерево из <tex dpi="130"br>nВ терминах производящих функций эта конструкция выглядит следующим образом </tex> вершин, достаточно взять <tex dpiT(s) ="130">1</tex> вершину и подвесить к ней левого и правого сына с суммарным количеством вершин <tex dpi="130">n-1s + s{T(s)}^2</tex>. Тогда::Решением данного уравнения будет <tex dpi="150">T_{n}T(s) =D_\frac{n1 -1}=\sum\limits_{i=0}^sqrt{n-1}T_{i}T_{n-i-14s^2}=C_{n}</tex>, где <tex dpi="150">C_{n2s}</tex> {{---.}} <tex dpi="150">n</tex>-ое [[Числа Каталана|число Каталана]].
== Подвешенные непомеченные деревьея с порядком на детях ==
:<tex dpi="150">S_{n}=\sum\limits_{i=1}^{n} T_{i} S_{n-i}=\sum\limits_{i=1}^{n} S_{i-1} S_{n-i}=\sum\limits_{i=0}^{n-1} S_{i} S_{n-i-1}=C_{n}</tex>, где <tex dpi="150">C_{n}</tex> {{---}} <tex dpi="150">n</tex>-ое [[Числа Каталана|число Каталана]].
[[File<gallery mode="packed-hover" widths=400px heights=300px>Image:Sequence_of_rooted_Trees.png|750px]]''Последовательность корневых деревьев''[[FileImage:Ordered_Rooted_Trees.png|700px]]''Последовательность помеченных корневых деревьев''</gallery>
== Подвешенные непомеченные деревья без порядка на детях ==
:<tex dpi="150">T_{n}=F_{n-1}</tex>.
:<tex dpi="150">F_{n}=f_{n, n}</tex>.
:<tex dpi="150">ff_{n,k}=\sum\limits_{i=0}^{\lfloor \frac{n}{k} \rfloor} \binom{T_{k}+i-1}}{i} s_{n-ik, k-1}</tex>.
Количество таких деревьев с <tex dpi="130">n</tex> вершинами образуют последовательность <tex dpi="130"> 1, 1, 2, 4, 9, 20, 48, 115, 286, 719, 1842, 4766, 12486, 32973, 87811, 235381, 634847 \ldots</tex> A000081<ref>[http://oeis.org/A000081 Number of unlabeled rooted trees with n node]</ref> .
[[File<gallery mode="packed-hover" widths=400px heights=300px>Image:Forests.png|670px]]''Последовательность леса''[[FileImage:Rooted_Trees.png|700px]]''Последовательность корневых деревьев''</gallery>
= Помеченные деревья =
{{Определение
|definition=
'''Помеченное дерево''' c <tex>n</tex> вершинами - дерево c <tex>n</tex> вершинами, вершинам которого взаимно однозначно соответствуют числа от 1 до n.
}}
 
{{Теорема
|author=Кэли
''Первый способ.''
: Так как между помеченными деревьями порядка c <tex>n</tex> вершинами и последовательностями длины <tex>n - 2</tex> из чисел от <tex>1</tex> до <tex>n</tex> существует биекция ([[Коды Прюфера|Код Прюфера]]), то количество помеченных деревьев совпадает с количеством последовательностей длины <tex>n - 2</tex> из чисел от <tex>1</tex> до <tex>n = n^{n - 2}</tex>.
''Второй способ.''
: С помощью [[Подсчет числа остовных деревьев с помощью матрицы Кирхгофа |матрицы Кирхгофа]] для полного графа на <tex>n</tex> вершинах. Число помеченных деревьев порядка c <tex>n</tex>вершинами, очевидно, равно числу остовов в полном графе <tex>K_n</tex>, которое есть <tex>n^{n-2}</tex> по следствию теоремы Кирхгофа.
}}
{{Утверждение
|statement=Число помеченных корневых деревьев с <tex>n</tex> вершинами есть <tex>T_n = n^{n - 21}</tex>.
|proof=
Данное утверждение является следствием [[#th_kelly|теоремы Кэли]].<br>
}}
== Подвешенные помеченные деревья с порядком на детях ==
{{Утверждение
|statement=Число помеченных корневых деревьев с <tex>n</tex> вершинами с порядком на детях есть <tex>T_n = n!\cdot C_n</tex>.
|proof=
Как и в непомеченном случае, структура объекта остается неизменной:<br>
: <tex>T = U\times Seq(T)</tex><br>
Производящая функция будет иметь вид:<br>
: <tex>T(s) = s\dfrac{1}{1 - T(s)} \iff T(s) = \sum\limits_{n=1}^{\infty} \dfrac{1 - \sqrt{1 - 4s}}{2} \iff T(s) = \sum\limits_{n=1}^{\infty} \dfrac{C_nn!}{n!}s^n</tex><br>
Таким образом, число помеченных корневых деревьев с <tex>n</tex> с порядком на детях вершинами есть <tex>T_n = n!\cdot C_n</tex>
}}
 
== Подвешенные помеченные деревья без порядка на детях ==
{{Утверждение
|statement=Как и в непомеченном случае, структура объекта остается неизменной: <tex>T = U\times Set(T)</tex>.<br>
Производящая функция будет иметь вид: <tex>T(s) = s\cdot e^{T(s)}</tex><br>
}}
Заметим, что в данной ситуации не получится простого соответствия, как в случае с деревьями с порядком на детях.<br>
В случае порядка на детях не было нетривиальных автоморфизмов, порядок на детях однозначно задавал, как будут располагаться поддервевья.
Если порядка на детях нет, ситуация становится сложнее:
[[File:Marked_trees_no_order_example.jpg|250px|left]]
<br>
<br>
В данном примере в А два представленных дерева {{---}} одинаковые, а в B {{---}} разные.<br>
Для <tex>T(s)</tex> нет однозначно выражаемой формулы. Однако, <tex>T_n</tex> можно получить, раскрыв экспоненту до <tex>n</tex>-ого члена, а именно <tex>e^{T(s)} = \sum\limits_{k = 0}^{n}\dfrac{(T(s))^k}{k!}</tex><br>
Более подробное объяснение происходящего можно посмотреть в лекции<ref>Станкевич А.С. Лекции по дискретной математике // Помеченные объекты и экспоненциальные ПФ, 2020. URL: https://youtu.be/6qQQj6G8-tA?t=4391</ref>.
<br>
<br>
<br>
<br>
<br>
= См.также =
*[[Конструирование комбинаторных объектов и их подсчёт]]
*[[Лемма Бёрнсайда и Теорема Пойа]]
*[[Числа Каталана]]
= Литература =
 
[[Категория: Дискретная математика]]
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Комбинаторика]]
[[Категория: Подсчёт числа объектов]]
[[Категория: Комбинаторные объекты]]
[[Категория: Свойства комбинаторных объектов]]
436
правок

Навигация