Cache Oblivious Algorithms for Computing the Triplet Distance between Trees

被引:0
|
作者
Brodal G.S. [1 ]
Mampentzidis K. [1 ]
机构
[1] Aarhus University, Denmark
来源
ACM Journal of Experimental Algorithmics | 2021年 / 26卷
关键词
cache oblivious algorithm; Phylogenetic tree; tree comparison; triplet distance;
D O I
10.1145/3433651
中图分类号
学科分类号
摘要
We consider the problem of computing the triplet distance between two rooted unordered trees with n labeled leaves. Introduced by Dobson in 1975, the triplet distance is the number of leaf triples that induce different topologies in the two trees. The current theoretically fastest algorithm is an O(n log n) algorithm by Brodal et al. (SODA 2013). Recently, Jansson and Rajaby proposed a new algorithm that, while slower in theory, requiring O(n log 3 n) time, in practice it outperforms the theoretically faster O(n log n) algorithm. Both algorithms do not scale to external memory. We present two cache oblivious algorithms that combine the best of both worlds. The first algorithm is for the case when the two input trees are binary trees, and the second is a generalized algorithm for two input trees of arbitrary degree. Analyzed in the RAM model, both algorithms require O(n log n) time, and in the cache oblivious model O(n/B log 2 n/M) I/Os. Their relative simplicity and the fact that they scale to external memory makes them achieve the best practical performance. We note that these are the first algorithms that scale to external memory, both in theory and in practice, for this problem. © 2021 ACM.
引用
收藏
相关论文
共 50 条
  • [1] Efficient Algorithms for Computing the Triplet and Quartet Distance Between Trees of Arbitrary Degree
    Brodal, Gerth Stolting
    Fagerberg, Rolf
    Mailund, Thomas
    Pedersen, Christian N. S.
    Sand, Andreas
    PROCEEDINGS OF THE TWENTY-FOURTH ANNUAL ACM-SIAM SYMPOSIUM ON DISCRETE ALGORITHMS (SODA 2013), 2013, : 1814 - 1832
  • [2] Cache oblivious algorithms
    Kumar, P
    ALGORITHMS FOR MEMORY HIERARCHIES: ADVANCED LECTURES, 2003, 2625 : 193 - 212
  • [3] Computing the rooted triplet distance between galled trees by counting triangles
    Jansson, Jesper
    Lingas, Andrzej
    JOURNAL OF DISCRETE ALGORITHMS, 2014, 25 : 66 - 78
  • [4] The Cache Complexity of Multithreaded Cache Oblivious Algorithms
    Matteo Frigo
    Volker Strumpen
    Theory of Computing Systems, 2009, 45 : 203 - 233
  • [5] Cache-Oblivious Algorithms
    Frigo, Matteo
    Leiserson, Charles E.
    Prokop, Harald
    Ramachandran, Sridhar
    ACM TRANSACTIONS ON ALGORITHMS, 2012, 8 (01)
  • [6] The Cache Complexity of Multithreaded Cache Oblivious Algorithms
    Frigo, Matteo
    Strumpen, Volker
    THEORY OF COMPUTING SYSTEMS, 2009, 45 (02) : 203 - 233
  • [7] Cache-oblivious algorithms
    Leiserson, CE
    ALGORITHMS AND COMPLEXITY, PROCEEDINGS, 2003, 2653 : 5 - 5
  • [8] Exact algorithms for computing the tree edit distance between unordered trees
    Akutsu, Tatsuya
    Fukagawa, Daiji
    Takasu, Atsuhiro
    Tamura, Takeyuki
    THEORETICAL COMPUTER SCIENCE, 2011, 412 (4-5) : 352 - 364
  • [9] Cache-oblivious B-trees
    Bender, MA
    Demaine, ED
    Farach-Colton, M
    SIAM JOURNAL ON COMPUTING, 2005, 35 (02) : 341 - 358
  • [10] Cache-Oblivious R-Trees
    Lars Arge
    Mark de Berg
    Herman Haverkort
    Algorithmica, 2009, 53 : 50 - 68