Loading [MathJax]/jax/output/HTML-CSS/jax.js

First time here? Check out the FAQ!

Ask Your Question
1

Combinatorial Species of Phylogenetic Trees

asked 7 years ago

Frank Zenter gravatar image

updated 7 years ago

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+Set2(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)

  1. a list of such structures.
  2. a generating series of this structures.
  3. the number of such structures.
  4. isomorphism-types of such structures.
  5. a generating series of the isomorphism-types of such structures.
  6. a random such structure.
  7. 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.

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
2

answered 7 years ago

tmonteil gravatar image

updated 7 years ago

Note that the species module is mostly a raw translation of the old code from mupad-combinat. There are plans to update it, in particular, Jean-Baptiste Priez started to work on it, but left academia since then. Would you be interested in working on it ?

That said, why not defining H in a simpler way as follows:

sage: Z=species.SingletonSpecies()
sage: H=CombinatorialSpecies()
sage: H.define(Z+species.SetSpecies(min=2)(H))

Then, you can do, at least:

sage: g = H.generating_series()
sage: oeis([g.count(i) for i in range(10)])
0: A000311: Schroeder's fourth problem; also number of phylogenetic trees with n nodes; also number of total partitions of n.
Preview: (hide)
link

Comments

...unfortunately i have only one up for (the answer and) the oeis...

dan_fulea gravatar imagedan_fulea ( 7 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 7 years ago

Seen: 409 times

Last updated: Apr 01 '18