Data structures and algorithms 3: multi-dimensional searching and computational geometry
Data structures and algorithms 3: multi-dimensional searching and computational geometry
Kaikoura tree theorems: computing the maximum agreement subtree
Information Processing Letters
On the agreement of many trees
Information Processing Letters
Fast comparison of evolutionary trees
Information and Computation
Sparse Dynamic Programming for Evolutionary-Tree Comparison
SIAM Journal on Computing
Maximum Agreement Subtree in a Set of Evolutionary Trees: Metrics and Efficient Algorithms
SIAM Journal on Computing
Tree Contractions and Evolutionary Trees
SIAM Journal on Computing
An O(nlog n) Algorithm for the Maximum Agreement Subtree Problem for Binary Trees
SIAM Journal on Computing
Computing the Agreement of Trees with Bounded Degrees
ESA '95 Proceedings of the Third Annual European Symposium on Algorithms
Scaling and related techniques for geometry problems
STOC '84 Proceedings of the sixteenth annual ACM symposium on Theory of computing
Theoretical Computer Science
Hi-index | 0.89 |
In this paper, we solve the maximum agreement subtree problem for a set T of k rooted leaf-labeled evolutionary trees on n leaves where T contains a binary tree. We show that the O(kn3)-time dynamic-programming algorithm proposed by Bryant [Building trees, hunting for trees, and comparing trees: theory and methods in phylogenetic analysis, Ph.D. thesis, Dept. Math., University of Canterbury, 1997, pp. 174-182] can be implemented in O(kn2+n2 logk-2 n log log n) and O(kn3-1/(k-1)) time by using multidimensional range search related data structures proposed by Gabow et al. [Scaling and related techniques for geometry problems, in: Proc. 16th Annual ACM Symp. on Theory of Computing, 1984, pp. 135-143] and Bentley [Multidimensional binary search trees in database applications, IEEE Trans. Softw. Eng. SE-5 (4) (1979) 333-340], respectively. When k n - log log log n)/(log log n), the first implementation will be significantly faster than Bryant's algorithm. For k = 3, it yields the best known algorithm which runs in O(n2 log n log log n)-time.