Tree Contractions and Evolutionary Trees
<|reference_start|>Tree Contractions and Evolutionary Trees: An evolutionary tree is a rooted tree where each internal vertex has at least two children and where the leaves are labeled with distinct symbols representing species. Evolutionary trees are useful for modeling the evolutionary history of species. An agreement subtree of two evolutionary trees is an evolutionary tree which is also a topological subtree of the two given trees. We give an algorithm to determine the largest possible number of leaves in any agreement subtree of two trees T_1 and T_2 with n leaves each. If the maximum degree d of these trees is bounded by a constant, the time complexity is O(n log^2(n)) and is within a log(n) factor of optimal. For general d, this algorithm runs in O(n d^2 log(d) log^2(n)) time or alternatively in O(n d sqrt(d) log^3(n)) time.<|reference_end|>
@article{kao2001tree,
    title={Tree Contractions and Evolutionary Trees},
    author={Ming-Yang Kao},
    journal={SIAM Journal on Computing, 27(6):1592--1616, December 1998},
    year={2001},
    archivePrefix={arXiv},
    eprint={cs/0101030},
    primaryClass={cs.CE cs.DS}
}