English

A note on convex characters, Fibonacci numbers and exponential-time algorithms

Populations and Evolution 2016-07-28 v3 Data Structures and Algorithms Combinatorics

Abstract

Phylogenetic trees are used to model evolution: leaves are labelled to represent contemporary species ("taxa") and interior vertices represent extinct ancestors. Informally, convex characters are measurements on the contemporary species in which the subset of species (both contemporary and extinct) that share a given state, form a connected subtree. Given an unrooted, binary phylogenetic tree T on a set of n >= 2 taxa, a closed (but fairly opaque) expression for the number of convex characters on T has been known since 1992, and this is independent of the exact topology of T. In this note we prove that this number is actually equal to the (2n-1)th Fibonacci number. Next, we define g_k(T) to be the number of convex characters on T in which each state appears on at least k taxa. We show that, somewhat curiously, g_2(T) is also independent of the topology of T, and is equal to to the (n-1)th Fibonacci number. As we demonstrate, this topological neutrality subsequently breaks down for k >= 3. However, we show that for each fixed k >= 1, g_k(T) can be computed in O(n) time and the set of characters thus counted can be efficiently listed and sampled. We use these insights to give a simple but effective exact algorithm for the NP-hard maximum parsimony distance problem that runs in time Θ(ϕnn2)\Theta( \phi^{n} \cdot n^2 ), where ϕ1.618...\phi \approx 1.618... is the golden ratio, and an exact algorithm which computes the tree bisection and reconnection distance (equivalently, a maximum agreement forest) in time Θ(ϕ2npoly(n))\Theta( \phi^{2n}\cdot \text{poly}(n)), where ϕ22.619\phi^2 \approx 2.619.

Keywords

Cite

@article{arxiv.1508.02598,
  title  = {A note on convex characters, Fibonacci numbers and exponential-time algorithms},
  author = {Steven Kelk and Georgios Stamoulis},
  journal= {arXiv preprint arXiv:1508.02598},
  year   = {2016}
}

Comments

added a significant number of new results to the previous version (on dynamic programming, g-spectra and so on)

R2 v1 2026-06-22T10:31:08.281Z