Combinatorial Species of Phylogenetic Trees
I would like to study the combinatorial class H of labelled phylogenetic trees, defined as rooted trees, whose internal nodes are unlabelled and are constrained to have outdegree ≥2, while their leaves have labels attached to them.
According to Flajolet, Sedgewick: Analytic Combinatorics, p. 128, this class satisfies the recursive specification H=Z+Set≥2(H) I defined their species H by the code
Z=species.SingletonSpecies()
E2=species.SetSpecies(min=2)
G=CombinatorialSpecies()
H=CombinatorialSpecies()
G.define(E2(Z+G))
H=Z+G
The number of labelled structures is given by the integer sequence.
In particular I tried to calculate (for a small cardinal number)
- a list of such structures.
- a generating series of this structures.
- the number of such structures.
- isomorphism-types of such structures.
- a generating series of the isomorphism-types of such structures.
- a random such structure.
- automorphism-groups of of such structures.
using the following code:
1. H.structures([1,2,3]).list()
2. g = H.generating_series()
3. g.counts(3)
4. H.isotypes([1,2,3])
5. g=H.isotype_generating_series()
6. r=H.structures([1,2,3]).random_element()
7. r.automorphism_group()
Only 2. seems to work.
If my code ist correct, I wonder if some of these (i.e. composition species) are not implemented and when (whether) they will be.