Подсчет деревьев — различия между версиями
| Cuciev (обсуждение | вклад) м (Napisal po-russky) | м (rollbackEdits.php mass rollback) | ||
| (не показано 13 промежуточных версий 3 участников) | |||
| Строка 1: | Строка 1: | ||
| − | |||
| − | |||
| Описание всех используемых далее комбинаторных объектов можно найти в статье [[Конструирование комбинаторных объектов и их подсчёт|"конструирование комбинаторных объектов и их подсчёт"]]. | Описание всех используемых далее комбинаторных объектов можно найти в статье [[Конструирование комбинаторных объектов и их подсчёт|"конструирование комбинаторных объектов и их подсчёт"]]. | ||
| = Непомеченные [[Дерево, эквивалентные определения|деревья]] = | = Непомеченные [[Дерево, эквивалентные определения|деревья]] = | ||
| Строка 6: | Строка 4: | ||
| {{Утверждение | {{Утверждение | ||
| |id=unmarked_bin | |id=unmarked_bin | ||
| − | |statement=Число непомеченных бинарных деревьев | + | |statement=Число непомеченных бинарных деревьев <tex>T_n</tex> равно <tex>C_{n}</tex> (<tex dpi="150">n</tex>-ое [[Числа Каталана|число Каталана]]). | 
| |proof= | |proof= | ||
| Устройство бинарного дерева в терминах комбинаторных классов выражается следующим образом <tex>T = \varepsilon + z\times T\times T</tex>.<br> | Устройство бинарного дерева в терминах комбинаторных классов выражается следующим образом <tex>T = \varepsilon + z\times T\times T</tex>.<br> | ||
| Строка 12: | Строка 10: | ||
| Решением данного уравнения будет <tex>T(s) = \frac{1 - \sqrt{1 - 4s}}{2s}</tex>. | Решением данного уравнения будет <tex>T(s) = \frac{1 - \sqrt{1 - 4s}}{2s}</tex>. | ||
| Тогда: | Тогда: | ||
| − | :<tex dpi="150">T_{n}= | + | :<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>-ое [[Числа Каталана|число Каталана]]. | 
| }} | }} | ||
| Строка 28: | Строка 26: | ||
| :<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>-ое [[Числа Каталана|число Каталана]]. | :<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>-ое [[Числа Каталана|число Каталана]]. | ||
| − | + | <gallery mode="packed-hover" widths=400px heights=300px> | |
| − | + | Image:Sequence_of_rooted_Trees.png|''Последовательность корневых деревьев'' | |
| + | Image:Ordered_Rooted_Trees.png|''Последовательность помеченных корневых деревьев'' | ||
| + | </gallery> | ||
| + | |||
| == Подвешенные непомеченные деревья без порядка на детях == | == Подвешенные непомеченные деревья без порядка на детях == | ||
| Пусть <tex dpi="130">T_{n}</tex> {{---}} количество таких деревьев с <tex dpi="130">n</tex> вершинами. <tex dpi="130">F=MSet(T)</tex> {{---}} множество всех лесов из данных деревьев, так как лес можно интерпретировать как мультимножество из деревьев. <tex dpi="130">F_{n}=f_{n,n}</tex> {{---}} количество лесов с суммарным количество вершин <tex dpi="130">n</tex>. <tex dpi="130">f_{n, k}</tex> {{---}} количество таких лесов из <tex dpi="130">n</tex> вершин, что деревья в них содержат не более чем <tex dpi="130">k</tex> вершин. Чтобы получить дерево из <tex dpi="130">n</tex> вершин, достаточно взять <tex dpi="130">1</tex> вершину и подвесить к ней лес деревьев с суммарным количеством вершин <tex dpi="130">n-1</tex>. Тогда: | Пусть <tex dpi="130">T_{n}</tex> {{---}} количество таких деревьев с <tex dpi="130">n</tex> вершинами. <tex dpi="130">F=MSet(T)</tex> {{---}} множество всех лесов из данных деревьев, так как лес можно интерпретировать как мультимножество из деревьев. <tex dpi="130">F_{n}=f_{n,n}</tex> {{---}} количество лесов с суммарным количество вершин <tex dpi="130">n</tex>. <tex dpi="130">f_{n, k}</tex> {{---}} количество таких лесов из <tex dpi="130">n</tex> вершин, что деревья в них содержат не более чем <tex dpi="130">k</tex> вершин. Чтобы получить дерево из <tex dpi="130">n</tex> вершин, достаточно взять <tex dpi="130">1</tex> вершину и подвесить к ней лес деревьев с суммарным количеством вершин <tex dpi="130">n-1</tex>. Тогда: | ||
| :<tex dpi="150">T_{n}=F_{n-1}</tex>. | :<tex dpi="150">T_{n}=F_{n-1}</tex>. | ||
| :<tex dpi="150">F_{n}=f_{n, n}</tex>. | :<tex dpi="150">F_{n}=f_{n, n}</tex>. | ||
| − | :<tex dpi="150"> | + | :<tex dpi="150">f_{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> вершинами образуют последовательность A000081<ref>[http://oeis.org/A000081 Number of unlabeled rooted trees with n node]</ref>. | Количество таких деревьев с <tex dpi="130">n</tex> вершинами образуют последовательность A000081<ref>[http://oeis.org/A000081 Number of unlabeled rooted trees with n node]</ref>. | ||
| − | + | <gallery mode="packed-hover" widths=400px heights=300px> | |
| − | + | Image:Forests.png|''Последовательность леса'' | |
| + | Image:Rooted_Trees.png|''Последовательность корневых деревьев'' | ||
| + | </gallery> | ||
| = Помеченные деревья = | = Помеченные деревья = | ||
| {{Определение | {{Определение | ||
| |definition= | |definition= | ||
| − | '''Помеченное дерево''' c <tex>n</tex> вершинами - c <tex>n</tex> вершинами, вершинам которого взаимно однозначно соответствуют числа от 1 до n. | + | '''Помеченное дерево''' c <tex>n</tex> вершинами - дерево c <tex>n</tex> вершинами, вершинам которого взаимно однозначно соответствуют числа от 1 до n. | 
| }} | }} | ||
| Строка 86: | Строка 89: | ||
| Производящая функция будет иметь вид: <tex>T(s) = s\cdot e^{T(s)}</tex><br> | Производящая функция будет иметь вид: <tex>T(s) = s\cdot e^{T(s)}</tex><br> | ||
| }} | }} | ||
| − | + | В предыдущем пункте порядок на детях однозначно задавал, как будут располагаться поддеревья, теперь же подсчёт оказывается сложнее: | |
| − | В  | + | [[File:Marked_trees_no_order_example.jpg|250px|left]] | 
| − | + | <br> | |
| − | [[File:Marked_trees_no_order_example.jpg|250px| | + | <br> | 
| В данном примере в А два представленных дерева {{---}} одинаковые, а в B {{---}} разные.<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> | Для <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>. | Более подробное объяснение происходящего можно посмотреть в лекции<ref>Станкевич А.С. Лекции по дискретной математике // Помеченные объекты и экспоненциальные ПФ, 2020. URL: https://youtu.be/6qQQj6G8-tA?t=4391</ref>. | ||
| + | <br> | ||
| + | <br> | ||
| + | <br> | ||
| + | <br> | ||
| + | <br> | ||
| = См.также = | = См.также = | ||
Текущая версия на 19:40, 4 сентября 2022
Описание всех используемых далее комбинаторных объектов можно найти в статье "конструирование комбинаторных объектов и их подсчёт".
Непомеченные деревья
Бинарные деревья
| Утверждение: | 
| Число непомеченных бинарных деревьев  равно  (-ое число Каталана). | 
| Устройство бинарного дерева в терминах комбинаторных классов выражается следующим образом . 
 | 
| Утверждение: | 
| Производящая функция числа непомеченных полных бинарных деревьев: . | 
| Устройство бинарного дерева в терминах комбинаторных классов выражается следующим образом . | 
Подвешенные непомеченные деревьея с порядком на детях
Пусть — количество таких деревьев с вершинами. — множество всех последовательностей из данных деревьев. — количество последовательностей с суммарным количество вершин . Чтобы получить дерево из вершин, достаточно взять вершину, и подвесить к ней последовательность деревьев с суммарным количеством вершин . Тогда:
- .
- , где — -ое число Каталана.
Подвешенные непомеченные деревья без порядка на детях
Пусть — количество таких деревьев с вершинами. — множество всех лесов из данных деревьев, так как лес можно интерпретировать как мультимножество из деревьев. — количество лесов с суммарным количество вершин . — количество таких лесов из вершин, что деревья в них содержат не более чем вершин. Чтобы получить дерево из вершин, достаточно взять вершину и подвесить к ней лес деревьев с суммарным количеством вершин . Тогда:
- .
- .
- .
Количество таких деревьев с вершинами образуют последовательность A000081[1].
Помеченные деревья
| Определение: | 
| Помеченное дерево c вершинами - дерево c вершинами, вершинам которого взаимно однозначно соответствуют числа от 1 до n. | 
| Теорема (Кэли): | 
| Число помеченных деревьев с  вершинами равно . | 
| Доказательство: | 
| Можно доказать формулу двумя способами. Первый способ. 
 Второй способ. 
 | 
| Утверждение: | 
| Число помеченных корневых деревьев с  вершинами есть . | 
| Данное утверждение является следствием теоремы Кэли. | 
Подвешенные помеченные деревья с порядком на детях
| Утверждение: | 
| Число помеченных корневых деревьев с  вершинами с порядком на детях есть . | 
| Как и в непомеченном случае, структура объекта остается неизменной: Производящая функция будет иметь вид: | 
Подвешенные помеченные деревья без порядка на детях
| Утверждение: | 
| Как и в непомеченном случае, структура объекта остается неизменной: . Производящая функция будет иметь вид: | 
В предыдущем пункте порядок на детях однозначно задавал, как будут располагаться поддеревья, теперь же подсчёт оказывается сложнее:
В данном примере в А два представленных дерева — одинаковые, а в B — разные.
Для  нет однозначно выражаемой формулы. Однако,  можно получить, раскрыв экспоненту до -ого члена, а именно 
Более подробное объяснение происходящего можно посмотреть в лекции[2].
См.также
- Конструирование комбинаторных объектов и их подсчёт
- Лемма Бёрнсайда и Теорема Пойа
- Числа Каталана
- Генерация комбинаторных объектов в лексикографическом порядке
Литература
- ↑ Number of unlabeled rooted trees with n node
- ↑ Станкевич А.С. Лекции по дискретной математике // Помеченные объекты и экспоненциальные ПФ, 2020. URL: https://youtu.be/6qQQj6G8-tA?t=4391





