SLIDE 1 Ranked Schröder Trees
Olivier Bodini∗, Antoine Genitrini † and Mehdi Naima∗
March 18th 2019
∗ University of Paris Nord † Sorbonne University
Laboratoire d’Informatique de Paris Nord. Laboratoire d’Informatique de Paris 6.
SLIDE 2 Outline
- 1. Introduction Schröder Trees
- 2. Strongly Increasing Schröder Trees
- 3. Weakly Increasing Schröder Trees
- 4. Relaxed Weakly Increasing Schröder Trees
2
SLIDE 3
Schröder trees: The simplest combinatorial model
1870: Original model by Schröder S = Z + Seq≥2 S. First elements of the enumeration (sn)n = (0, 1, 1, 3, 11, 45, 197, 903, 4279, 20793, . . . )
3
SLIDE 4 Schröder trees: The simplest combinatorial model
Limitations
- 1. almost a simply generated tree: long trunk
- 2. many nodes of arity larger than 3
- 3. no temporal steps
2
SLIDE 5
Strongly Increasing Schröder trees
SLIDE 6 First extension: tree with chronology
1 2 3 6 4 5 8 7 9
Strongly increasing Schröder trees:
- tree-structure: a Schröder tree
- internal nodes increasingly labeled
- uniqueness of each label
- size: number of leaves
3
SLIDE 7 First extension: tree with chronology
1 2 3 6 4 5 8 7 9
Strongly increasing Schröder trees:
- tree-structure: a Schröder tree
- internal nodes increasingly labeled
- uniqueness of each label
- size: number of leaves
In Analytic Combinatorics [BFS92, FS09] S = Z + U ⋆ Seq≥2 S. Through the symbolic method, we get an integral equation in 2 variables. (ordinary in z and exponential in u) We are interested in [zn](Lu S)u=1.
2
SLIDE 8 First extension: tree with chronology
1 2 3 6 4 5 8 7 9
Strongly increasing Schröder trees:
- tree-structure: a Schröder tree
- internal nodes increasingly labeled
- uniqueness of each label
- size: number of leaves
In Analytic Combinatorics [BFS92, FS09] S = Z + U ⋆ Seq≥2 S. Through the symbolic method, we get an integral equation in 2 variables. (ordinary in z and exponential in u) We are interested in [zn](Lu S)u=1. Another combinatorial specification allows to introduce an evolution process.
2
SLIDE 9 An evolution process
1 2 3 6 4 5 8 7 9
Strongly increasing Schröder trees:
- tree-structure: a Schröder tree
- internal nodes increasingly labeled
- uniqueness of each label
- size: number of leaves
How does a tree grow ?
- Start with a single (unlabeled) leaf;
- Iterate the following process: at step
ℓ (for ℓ ≥ 1), select a leaf and replace it by an internal node with label ℓ attached to a sequence of at least two leaves.
3
SLIDE 10 An evolution process
1 2 3 6 4 5 10 8 7 9
Strongly increasing Schröder trees:
- tree-structure: a Schröder tree
- internal nodes increasingly labeled
- uniqueness of each label
- size: number of leaves
How does a tree grow ?
- Start with a single (unlabeled) leaf;
- Iterate the following process: at step
ℓ (for ℓ ≥ 1), select a leaf and replace it by an internal node with label ℓ attached to a sequence of at least two leaves.
4
SLIDE 11 Strongly increasing Schröder trees as a growth process
1 20 2 40 5 3 6 12 4 9 7 18 17 13 28 10 22 43 54 58 14 64 60 86 67 91 79 51 71 74 78 90 27 29 63 34 50 32 55 30 70 75 37 42 39 77 73 81 82 8 16 24 35 11 23 48 15 59 19 21 53 36 87 38 66 94 45 25 46 31 26 80 61 33 65 57 41 52 47 49 56 76 83 88 95 92 84 62 44 69 68 72 85 89 93
Combinatorial specification: S = Z +
S(z) is an ordinary formal series: S(z) = z +
z2 1−z S′(z). 5
SLIDE 12 Strongly increasing Schröder trees as a growth process
1 20 2 40 5 3 6 12 4 9 7 18 17 13 28 10 22 43 54 58 14 64 60 86 67 91 79 51 71 74 78 90 27 29 63 34 50 32 55 30 70 75 37 42 39 77 73 81 82 8 16 24 35 11 23 48 15 59 19 21 53 36 87 38 66 94 45 25 46 31 26 80 61 33 65 57 41 52 47 49 56 76 83 88 95 92 84 62 44 69 68 72 85 89 93
Combinatorial specification: S = Z +
S(z) is an ordinary formal series: S(z) = z +
z2 1−z S′(z).
First elements of the enumeration (sn)n = (0, 1, 1, 3, 12, 60, 360, 2520, 20160, 181440, 1814400, . . . ) Size-n strongly increasing Schröder trees are in bijection with a half of the permutations of {1, 2, . . . , n}. (for n ≥ 2)
5
SLIDE 13 Uniform sampling with an incremental process
From the specification we have,
for n > 2 t1 = 1, t2 = 1.
RandomTree(n): If n=1: Return single leaf Else If n=2: Return a cherry Else T:=cherry For i in 3,. . . ,n-1: k := rand_int(1,i) If k<i: Create a new binary node at position k in T Else: \\k = i Add a new leaf to the last added internal node in T
6
SLIDE 14
Example, RandomTree(8)
RandomTree(n): If n=1: Return single leaf Else If n=2: Return a cherry Else T:=cherry For i in 3,. . . ,n-1: k := rand_int(1,i) If k<i: Create a new binary node at position k in T Else: \\k = i Add a new leaf to the last added internal node in T
7
SLIDE 15
Example, RandomTree(8)
RandomTree(n): If n=1: Return single leaf Else If n=2: Return a cherry Else T:=cherry For i in 3,. . . ,n-1: k := rand_int(1,i) If k<i: Create a new binary node at position k in T Else: \\k = i Add a new leaf to the last added internal node in T
7
SLIDE 16
Example, RandomTree(8)
RandomTree(n): If n=1: Return single leaf Else If n=2: Return a cherry Else T:=cherry For i in 3,. . . ,n-1: k := rand_int(1,i) If k<i: Create a new binary node at position k in T Else: \\k = i Add a new leaf to the last added internal node in T
7
SLIDE 17
Example, RandomTree(8)
RandomTree(n): If n=1: Return single leaf Else If n=2: Return a cherry Else T:=cherry For i in 3,. . . ,n-1: k := rand_int(1,i) If k<i: Create a new binary node at position k in T Else: \\k = i Add a new leaf to the last added internal node in T
7
SLIDE 18
Example, RandomTree(8)
RandomTree(n): If n=1: Return single leaf Else If n=2: Return a cherry Else T:=cherry For i in 3,. . . ,n-1: k := rand_int(1,i) If k<i: Create a new binary node at position k in T Else: \\k = i Add a new leaf to the last added internal node in T
7
SLIDE 19
Example, RandomTree(8)
RandomTree(n): If n=1: Return single leaf Else If n=2: Return a cherry Else T:=cherry For i in 3,. . . ,n-1: k := rand_int(1,i) If k<i: Create a new binary node at position k in T Else: \\k = i Add a new leaf to the last added internal node in T
7
SLIDE 20
Example, RandomTree(8)
RandomTree(n): If n=1: Return single leaf Else If n=2: Return a cherry Else T:=cherry For i in 3,. . . ,n-1: k := rand_int(1,i) If k<i: Create a new binary node at position k in T Else: \\k = i Add a new leaf to the last added internal node in T
7
SLIDE 21
Strict Increasing Schröder trees
Mean Variance Limit law Internal nodes n − ln n ln n Normal distribution Binary nodes n − 2 ln n 4 ln n Normal distribution Degree of root 2e − 3 0.499.. Difference of 2 poissons Leaves attached root
2e n 2e n
Table 1: limiting parameters on Strict Increasing Schröder trees
7
SLIDE 22
Weakly Increasing Schröder trees
SLIDE 23 Weakly increasing Schröder trees as a growth process
1 4 2 11 8 14 17 3 14 12 19 27 22 30 15 35 39 29 49 56 41 62 32 33 20 18 44 48 37 61 70 47 49 26 23 38 40 67 65 42 65 6 5 71 58 64 67 7 9 6 6 8 44 13 54 25 51 66 63 34 59 54 21 45 24 48 7 16 49 53 10 58 57 11 20 26 40 31 28 36 60 46 57 62 68 43 51 55 68 70 50 27 52 56 69 70
S(z) is an ordinary formal series: S(z) = z + S
z2 1−z
First elements of the enumeration (sn)n = (0, 1, 1, 3, 13, 75, 541, 4683, 47293, 545835, 7087261, . . . ) sn corresponds to the (n − 1)-th ordered Bell numbers. Size-n weakly increasing Schröder trees are in bijection with
- rdered partitions of {1, 2, . . . , n − 1}.
8
SLIDE 24 Ordered Bell numbers
Stirling partition numbers Number of ways to partition a set of n objects into k non-empty subsets Example 3
2
- =| {{1, 2}{3}}, {{1, 3}{2}}, {{1}{2, 3}} |= 3.
Ordered Bell numbers Bn =
n
k! n k
B(z) = 1 2 − ez , Bn ∼ n! 2 (ln 2)n+1 .
9
SLIDE 25 Bijection
sn,k is the number of trees with n leaves and k iteration steps Theorem sn,k = k! n − 1 k
sn = Bn−1 = (n − 1)! 2 1 ln 2 n
10
SLIDE 26 Example of the bijection [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
The mapping M2
- p′ = [p1]
- the degree of the root |p1| + 1
- For i ∈ [2, . . . , ℓ]:
p′=add pi to p′ p′ = normalize(p′) For each e ∈ runs(p′
i ):
Create node labeled i with |e| + 1 leaves Add the node at position e1.
p′ = [{3, 4}] M2
11
SLIDE 27 Example of the bijection [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
The mapping M2
- p′ = [p1]
- the degree of the root |p1| + 1
- For i ∈ [2, . . . , ℓ]:
p′=add pi to p′ p′ = normalize(p′) For each e ∈ runs(p′
i ):
Create node labeled i with |e| + 1 leaves Add the node at position e1. p′ = [{3, 4}, {1, 6, 7}]
?
12
SLIDE 28 Example of the bijection [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
The mapping M2
- p′ = [p1]
- the degree of the root |p1| + 1
- For i ∈ [2, . . . , ℓ]:
p′=add pi to p′ p′ = normalize(p′) For each e ∈ runs(p′
i ):
Create node labeled i with |e| + 1 leaves Add the node at position e1. p′ = [{3, 4}, {1, 6, 7}] ∼ = [{2, 3}, {1, 4, 5}] runs(p′
2) = {1}, {4, 5}
?
13
SLIDE 29 Example of the bijection [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
The mapping M2
- p′ = [p1]
- the degree of the root |p1| + 1
- For i ∈ [2, . . . , ℓ]:
p′=add pi to p′ p′ = normalize(p′) For each e ∈ runs(p′
i ):
Create node labeled i with |e| + 1 leaves Add the node at position e1. p′ = [{3, 4}, {1, 6, 7}] ∼ = [{2, 3}, {1, 4, 5}] runs(p′
2) = {1}, {4, 5}
?
14
SLIDE 30 Example of the bijection [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
The mapping M2
- p′ = [p1]
- the degree of the root |p1| + 1
- For i ∈ [2, . . . , ℓ]:
p′=add pi to p′ p′ = normalize(p′) For each e ∈ runs(p′
i ):
Create node labeled i with |e| + 1 leaves Add the node at position e1. p′ = [{3, 4}, {1, 6, 7}] ∼ = [{2, 3}, {1, 4, 5}] runs(p′
2) = {1}, {4, 5}
M2
15
SLIDE 31 Example of the bijection [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
The mapping M2
- p′ = [p1]
- the degree of the root |p1| + 1
- For i ∈ [2, . . . , ℓ]:
p′=add pi to p′ p′ = normalize(p′) For each e ∈ runs(p′
i ):
Create node labeled i with |e| + 1 leaves Add the node at position e1. p′ = [{3, 4}, {1, 6, 7}, {2, 8}] ∼ = [{3, 4}, {1, 5, 6}, {2, 7}] runs(p′
3) = {2}, {7}
?
16
SLIDE 32 Example of the bijection [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
The mapping M2
- p′ = [p1]
- the degree of the root |p1| + 1
- For i ∈ [2, . . . , ℓ]:
p′=add pi to p′ p′ = normalize(p′) For each e ∈ runs(p′
i ):
Create node with |e| + 1 leaves Add the node labeled i at position e1. p′ = [{3, 4}, {1, 6, 7}, {2, 8}] ∼ = [{3, 4}, {1, 5, 6}, {2, 7}] runs(p′
3) = {2}, {7}
?
17
SLIDE 33 Example of the bijection [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
The mapping M2
- p′ = [p1]
- the degree of the root |p1| + 1
- For i ∈ [2, . . . , ℓ]:
p′=add pi to p′ p′ = normalize(p′) For each e ∈ runs(p′
i ):
Create node labeled i with |e| + 1 leaves Add the node at position e1. p′ = [{3, 4}, {1, 6, 7}, {2, 8}] ∼ = [{3, 4}, {1, 5, 6}, {2, 7}] runs(p′
3) = {2}, {7}
M2
18
SLIDE 34 Example of the bijection [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
The mapping M2
- p′ = [p1]
- the degree of the root |p1| + 1
- For i ∈ [2, . . . , ℓ]:
p′=add pi to p′ p′ = normalize(p′) For each e ∈ runs(p′
i ):
Create node labeled i with |e| + 1 leaves Add the node at position e1. p′ = [{3, 4}, {1, 6, 7}, {2, 8}, {5}]
M2
19
SLIDE 35
Weakly Increasing Schröder trees
B(z) = Seq(Set
≥1 (Z)),
B(z) = 1 2 − ez . The degree of the root: B(z, u) = Set
≥1 (UZ) × Seq(Set ≥1 (Z)) + 1
Mean Variance Limit law Iteration steps 0.72n 4 ln n Normal distribution Internal nodes n − ln n ln n Normal distribution Degree of root 2 ln 2 + 1 Poisson distribution New leaves each step 2 ln 2 Poisson distribution
Table 2: limiting parameters on Weakly Increasing Schröder trees
20
SLIDE 36 Connection with other results
- weakly binary increasing trees, [Bodini, Genitrini and
Gittenberger] B(z) = z + B(z + z2) − B(z) bn ∼ γn− ln 2 1 ln 2 n (n − 1)!. Recall weakly increasing Schröder trees: S(z) = z + S(z + z2 1 − z ) − S(z) sn ∼ 1 2 1 ln 2 n (n − 1)!.
21
SLIDE 37
relaxed weakly increasing Schröder trees
SLIDE 38 relaxed weakly increasing Schröder trees
- Relaxing the constraint on minimum degree (unary nodes
allowed).
- At each iteration step at least one binray node.
Combinatorial specification: F(z) = z + F
z2 1−z
(fn)n = (0, 1, 1, 5, 66, 2209, 180549, 35024830, 15769748262, . . . )
22
SLIDE 39 relaxed weakly increasing Schröder trees
Combinatorial specification: F(z) = z + F
z2 1−z
Size-n relaxed weakly increasing Schröder trees fn ∼ γ(n − 1)!2
(n−1)(n−2) 2
.
23
SLIDE 40 relaxed weakly increaing binary trees
relaxed weakly increasing Schröder trees F(z) = z + F
z2 1 − z
fn ∼ γ(n − 1)!2
(n−1)(n−2) 2
. relaxed weakly increaing binary trees Wb(z) = z + Wb(2z + z2) − Wb(2z), wbn ∼ (n − 1)!2
(n−1)(n−2) 2
.
24
SLIDE 41 Conclusion
- Connections between ordinary and exponential generating
functions.
- Study of Strongly and Weakly increasing Schröder trees:
Correspondance with classical structures. Study of typical parameters.
- Furthur generalization with relaxed weakly increasing trees
(New regime).
25
SLIDE 42
Thank you
26
SLIDE 43 Link with Stirling cycle numbers ˆ Sn(u) =
sn,n−kuk = u
n−1
(i + u) SCn(u) = ˆ Sn(u)) × (u + 1)
27