Successfully reported this slideshow.
Computing the all-pairs quartet
distance on a set of evolutionary trees
                                Martin Stissing 1
...
Quartets and quartet distance
                                                         a
Quartet: Four named species in an...
Quartets and quartet distance



        C                             A   C
A

B   D       E                     B
      ...
Quartets and quartet distance
                A   C          A   B
                        ABCD           
              ...
Quartets and quartet distance
                A   C          A   B
                        ABCD           
              ...
Quartets and quartet distance
                A   C          A   B
                        ABCD           
              ...
Quartets and quartet distance
                A   C          A   B
                        ABCD           
              ...
Quartets and quartet distance
                A   C          A   B
                        ABCD           
              ...
Quartets and quartet distance
                A      C           A       B
                            ABCD               ...
Previous work
G. Estabrook, F. McMorris, and C. Meacham.
Comparison of undirected phylogenetic trees based on subtrees of
...
Previous work
        G. Estabrook, F. McMorris, and C. Meacham.
        Comparison of undirected phylogenetic trees based...
C. Christiansen, T. Mailund, C. N. S. Pedersen, and M. Randers
                                 Previous work
            ...
QDist
QDist: Implements the O(n2) and O(n log2 n) time algorithm for
computing the quartet distance between binary trees

...
QDist
QDist: Implements the O(n2) and O(n log2 n) time algorithm for
computing the quartet distance between binary trees
 ...
QDist
QDist: Implements the O(n2) and O(n log2 n) time algorithm for
computing the quartet distance between binary trees
 ...
QDist
QDist: Implements the O(n2) and O(n log2 n) time algorithm for
computing the quartet distance between binary trees
 ...
Counting shared (directed) quartets
                                                   Directed quartets
Idea: Iterate ove...
Counting using colouring

Idea: Alternatively, colour leaves
according to nodes in one tree
and count compatible colouring...
Comparing sets of trees

Observation: Shared sub-trees
implies shared quartets.
Comparing sets of trees

Observation: We can share
results between trees by merging
them into a DAG.
Experiment – DAG size
The size of the DAG depends on the similarity of the input trees




                      Simulatio...
Experiment – Running time
         Running time of “DAG versus DAG” algorithm on a standard Linux PC




The straightforwa...
Summary
Results

Utilizing shared tree structure speeds up
the computation significantly ...

Future work

Extension to no...
Computing the quartet distance
        between evolutionary trees of
              bounded degree

                       ...
Comparing partially resolved trees
C. Christiansen, T. Mailund, C. N. S. Pedersen, and M. Randers
                                 Previous work
            ...
C. Christiansen, T. Mailund, C. N. S. Pedersen, and M. Randers
                                 Previous work
            ...
Algorithms for partially resolved trees
Idea: Iterate over all pairs of edges (or nodes) in
the two trees, and count for e...
QuartetDist
  QuartetDist: Computes quartet distance (or normalized
  similarity, i.e. quartet fit similarity) between gen...
C. Christiansen, T. Mailund, C. N. S. Pedersen, and M. Randers
                                 Previous work
            ...
Counting using colouring

Idea: Alternatively, colour leaves
according to nodes in one tree
and count compatible colouring...
Counting using colouring

Idea: Alternatively, colour leaves
according to nodes in one tree
and count compatible colouring...
Counting using colouring

Idea: Alternatively, colour leaves
according to nodes in one tree
and count compatible colouring...
Counting using colouring

Idea: Alternatively, colour leaves
according to nodes in one tree
and count compatible colouring...
Shared “butterfly” quartets
Shared “star” quartets
Colouring
Colouring
Colouring
Colouring
Colouring
Colouring
Colouring
Colouring
Colouring
Colouring




            Smaller-half trick
Colouring




                      Smaller-half trick




In total: All colourings takes time O(n log n) ...
Hierarchical decomposition tree
Let T be an unrooted tree of size n
with degree at most d. A component C
in T is:

A singl...
Hierarchical decomposition tree
Let T be an unrooted tree of size n
with degree at most d. A component C
in T is:

A singl...
Hierarchical decomposition tree
Annotation of node C in H(T)

A d-tuple denoting the number of leaves in
C coloured in eac...
Hierarchical decomposition tree
Annotation of node C in H(T)

A d-tuple denoting the number of leaves in
C coloured in eac...
Hierarchical decomposition tree
Hierarchical decomposition tree
Hierarchical decomposition tree




Observation: F is a polynomial of at most
d2 variables of degree at most 4, i.e. It ca...
Hierarchical decomposition tree


                        Summing it all up
     Colouring leaves and updating H(T) takes ...
Upcoming SlideShare
Loading in …5
×

Presentation at APBC 2007

640 views

Published on

  • Be the first to comment

  • Be the first to like this

Presentation at APBC 2007

  1. 1. Computing the all-pairs quartet distance on a set of evolutionary trees Martin Stissing 1 Thomas Mailund 1,2 Christian Nørgaard Storm Pedersen 1 Gerth Stølting Brodal 1 Rolf Fagerberg 3 (1) University of Aarhus, (2) Oxford University, (3) University of Southern Denmark
  2. 2. Quartets and quartet distance a Quartet: Four named species in an d unrooted tree c b Quartet topology: The topology of a the quartet induced by the tree d c b butterfly quartet butterfly quartet butterfly quartet star quartet Quartet distance: The number of quartets that differs in topology between the two trees
  3. 3. Quartets and quartet distance C A C A B D E B D E
  4. 4. Quartets and quartet distance A C A B ABCD  B D C D C A C A B D E B D E
  5. 5. Quartets and quartet distance A C A B ABCD  B D C D A C A B ABCE  C B E C E A C A B D E B D E
  6. 6. Quartets and quartet distance A C A B ABCD  B D C D A C A B ABCE  C B E C E A C A A D A D ABDE  B E B E B D E B D E
  7. 7. Quartets and quartet distance A C A B ABCD  B D C D A C A B ABCE  C B E C E A C A A D A D ABDE  B E B E B D E A D A D B ACDE  D E C E C E
  8. 8. Quartets and quartet distance A C A B ABCD  B D C D A C A B ABCE  C B E C E A C A A D A D ABDE  B E B E B D E A D A D B ACDE  D E C E C E B D B D BCDE  C E C E
  9. 9. Quartets and quartet distance A C A B ABCD  B D C D A C A B ABCE  C B E C E A C A A D A D ABDE  B E B E B D E A D A D B ACDE  D E C E C E B D B D BCDE  C E C E Quartet distance = binom(5,4) - 3 = 5 - 3 = 2
  10. 10. Previous work G. Estabrook, F. McMorris, and C. Meacham. Comparison of undirected phylogenetic trees based on subtrees of four evolutionary units. Systematic Zoology., 27:27-33, 1978. W. Day and C. R. Doucette. Expected behaviour of quartet distances between undirected tree. Proc. 18th International Numerical Taxonomy Conference, 1984 C. R. Doucette An efficient algorithm to compute quartet dissimilarity measures. O(n3) Bachelor of Science (Honours) Dissertation. Memorial University of Newfoundland, 1985 M. Steel and D. Penny. Distribution of tree comparison metrics—some new results. Systematic Biology, 42(2):126–141, 1993. D. Bryant, J. Tsang, P. E. Kearney, and M. Li. O(n2) Computing the quartet distance between evolutionary trees. Proc. 11th Symp. on Discrete Algorithms (SODA), 285–286, 2000. G. S. Brodal, R. Fagerberg, and C. N. S. Pedersen O(n log2 n) Computing the quartet distance in time O(n log n). O(n log n) Algorithmica, 38(2): 377-395, 2003.
  11. 11. Previous work G. Estabrook, F. McMorris, and C. Meacham. Comparison of undirected phylogenetic trees based on subtrees of four evolutionary units. Systematic Zoology., 27:27-33, 1978. W. Day and C. R. Doucette. Expected behaviour of quartet distances between undirected tree. Proc. 18th International Numerical Taxonomy Conference, 1984 C. R. Doucette An efficient algorithm to compute quartet dissimilarity measures. O(n3) Algorithms are forScience (Honours) Dissertation. Bachelor of fully resolved trees (binary trees) only. Memorial University of Newfoundland, 1985 Quartet distance between binary trees seems easier to compute ... and D. Penny. M. Steel Distribution of tree comparison metrics—some new results. Systematic Biology, 42(2):126–141, 1993. D. Bryant, J. Tsang, P. E. Kearney, and M. Li. O(n2) Computing the quartet distance between evolutionary trees. Proc. 11th Symp. on Discrete Algorithms (SODA), 285–286, 2000. G. S. Brodal, R. Fagerberg, and C. N. S. Pedersen O(n log2 n) Computing the quartet distance in time O(n log n). O(n log n) Algorithmica, 38(2): 377-395, 2003.
  12. 12. C. Christiansen, T. Mailund, C. N. S. Pedersen, and M. Randers Previous work Algorithms for computing the quartet distance between trees of arbitrary degree Proc of Workshop on Algorithms in Bioinformatics (WABI), 77-88, 2005 O(n3) O(d2n2) G. Estabrook, F. McMorris, and C. Meacham. Pedersen, M. Randers, and M. Stissing C. Christiansen, T. Mailund, C. N. S. Comparison of undirected phylogeneticdistance between trees ofof Fast calculation of the quartet trees based on subtrees arbitrary degrees four evolutionary units. Systematic Zoology., 27:27-33, 1978. Algorithms for Molecular Biology, 1(16), 2006 O(dn2) W. Day and Stissing, C. N. S. Pedersen, T. Mailund, G. S. Brodal, and R. Fagerberg M. C. R. Doucette. Expected behaviour the quartet distance between evolutionary trees of bounded degree Computing of quartet distances between undirected tree. th Proc. 18 Proc. of APBC, 2007 International Numerical Taxonomy Conference, 1984 O(d9 n log n) C. R. Doucette An efficient algorithm to compute quartet dissimilarity measures. O(n3) Algorithms are forScience (Honours) Dissertation. Bachelor of fully resolved trees (binary trees) only. Memorial University of Newfoundland, 1985 Quartet distance between binary trees seems easier to compute ... and D. Penny. M. Steel Distribution of tree comparison metrics—some new results. Systematic Biology, 42(2):126–141, 1993. D. Bryant, J. Tsang, P. E. Kearney, and M. Li. O(n2) Computing the quartet distance between evolutionary trees. Proc. 11th Symp. on Discrete Algorithms (SODA), 285–286, 2000. G. S. Brodal, R. Fagerberg, and C. N. S. Pedersen O(n log2 n) Computing the quartet distance in time O(n log n). O(n log n) Algorithmica, 38(2): 377-395, 2003.
  13. 13. QDist QDist: Implements the O(n2) and O(n log2 n) time algorithm for computing the quartet distance between binary trees http://www.birc.au.dk/~mailund/qdist.html
  14. 14. QDist QDist: Implements the O(n2) and O(n log2 n) time algorithm for computing the quartet distance between binary trees ... we want to compare 10,000 trees of size 200 using Qdist, is that possible? Takes about 2·10,0002 sec ≈ 6 years ... http://www.birc.au.dk/~mailund/qdist.html
  15. 15. QDist QDist: Implements the O(n2) and O(n log2 n) time algorithm for computing the quartet distance between binary trees ... we want to compare 10,000 trees of size 200 using Qdist, is that possible? Takes about 2·10,0002 sec ≈ 6 years ... Immediate solution: Perform O(k2) comparisons between two tree using time O(n log2 n) or O(n2) each ... http://www.birc.au.dk/~mailund/qdist.html
  16. 16. QDist QDist: Implements the O(n2) and O(n log2 n) time algorithm for computing the quartet distance between binary trees ... we want to compare 10,000 trees of size 200 using Qdist, is that possible? Takes about 2·10,0002 sec ≈ 6 years ... Immediate solution: Perform O(k2) comparisons between two tree using time O(n log2 n) or O(n2) each ... Faster solution: Exploit similarities between the input trees by merging them into a single DAG-structure which allows “common subtrees” to be shared. All comparisons are performed by comparing the DAG against the input trees, or against itself. The speed-up depends on compactness of the DAG ... http://www.birc.au.dk/~mailund/qdist.html
  17. 17. Counting shared (directed) quartets Directed quartets Idea: Iterate over all pairs of edges in the two trees, and count for each pair how many associated quartets are shared. The problem is to define “associated” such each quartet is counted as most once ... b b B1 B2 e1 e2 a,d A1 a,d A2 C1 C2 c c
  18. 18. Counting using colouring Idea: Alternatively, colour leaves according to nodes in one tree and count compatible colourings in the other All colourings in one tree can be produced in O(n log n) – Smaller half trick Each colouring can be counted in amortized O(log n) – Hierarchical decomposition and polynomial manipulations Brodal et al.: Computing the Quartet Distance between Evolutionary Trees in Time O(n log n), Algoritmica 38(2), 2003.
  19. 19. Comparing sets of trees Observation: Shared sub-trees implies shared quartets.
  20. 20. Comparing sets of trees Observation: We can share results between trees by merging them into a DAG.
  21. 21. Experiment – DAG size The size of the DAG depends on the similarity of the input trees Simulation setup Simulating one binary tree with n leaves: evolve kn sequences of length m on the k tree, construct k neighbor joining trees from the resulting kn sequences
  22. 22. Experiment – Running time Running time of “DAG versus DAG” algorithm on a standard Linux PC The straightforward “all-against- The “DAG-DAG” approach takes between 20 and 500 all” approach takes 3000 seconds for the same comparisons depending on the second for comparing 100 trees similarity of the trees of size 500
  23. 23. Summary Results Utilizing shared tree structure speeds up the computation significantly ... Future work Extension to non-binary trees and trees with unequal leaf sets Applications?
  24. 24. Computing the quartet distance between evolutionary trees of bounded degree Martin Stissing 1 Christian Nørgaard Storm Pedersen 1 Thomas Mailund 1,2 Gerth Stølting Brodal 1 Rolf Fagerberg 3 (1) University of Aarhus, (2) Oxford University, (3) University of Southern Denmark
  25. 25. Comparing partially resolved trees
  26. 26. C. Christiansen, T. Mailund, C. N. S. Pedersen, and M. Randers Previous work Algorithms for computing the quartet distance between trees of arbitrary degree Proc of Workshop on Algorithms in Bioinformatics (WABI), 77-88, 2005 O(n3) O(d2n2) G. Estabrook, F. McMorris, and C. Meacham. Pedersen, M. Randers, and M. Stissing C. Christiansen, T. Mailund, C. N. S. Comparison of undirected phylogeneticdistance between trees ofof Fast calculation of the quartet trees based on subtrees arbitrary degrees four evolutionary units. Systematic Zoology., 27:27-33, 1978. Algorithms for Molecular Biology, 1(16), 2006 O(dn2) W. Day and Stissing, C. N. S. Pedersen, T. Mailund, G. S. Brodal, and R. Fagerberg M. C. R. Doucette. Expected behaviour the quartet distance between evolutionary trees of bounded degree Computing of quartet distances between undirected tree. th Proc. 18 Proc. of APBC, 2007 International Numerical Taxonomy Conference, 1984 O(d9 n log n) C. R. Doucette An efficient algorithm to compute quartet dissimilarity measures. O(n3) Algorithms are forScience (Honours) Dissertation. Bachelor of fully resolved trees (binary trees) only. Memorial University of Newfoundland, 1985 Quartet distance between binary trees seems easier to compute ... and D. Penny. M. Steel Distribution of tree comparison metrics—some new results. Systematic Biology, 42(2):126–141, 1993. D. Bryant, J. Tsang, P. E. Kearney, and M. Li. O(n2) Computing the quartet distance between evolutionary trees. Proc. 11th Symp. on Discrete Algorithms (SODA), 285–286, 2000. G. S. Brodal, R. Fagerberg, and C. N. S. Pedersen O(n log2 n) Computing the quartet distance in time O(n log n). O(n log n) Algorithmica, 38(2): 377-395, 2003.
  27. 27. C. Christiansen, T. Mailund, C. N. S. Pedersen, and M. Randers Previous work Algorithms for computing the quartet distance between trees of arbitrary degree Proc of Workshop on Algorithms in Bioinformatics (WABI), 77-88, 2005 O(n3) O(d2n2) G. Estabrook, F. McMorris, and C. Meacham. Pedersen, M. Randers, and M. Stissing C. Christiansen, T. Mailund, C. N. S. Comparison of undirected phylogeneticdistance between trees ofof Fast calculation of the quartet trees based on subtrees arbitrary degrees four evolutionary units. Systematic Zoology., 27:27-33, 1978. Algorithms for Molecular Biology, 1(16), 2006 O(dn2) W. Day and Stissing, C. N. S. Pedersen, T. Mailund, G. S. Brodal, and R. Fagerberg M. C. R. Doucette. Expected behaviour the quartet distance between evolutionary trees of bounded degree Computing of quartet distances between undirected tree. th Proc. 18 Proc. of APBC, 2007 International Numerical Taxonomy Conference, 1984 O(d9 n log n) C. R. Doucette An efficient algorithm to compute quartet dissimilarity measures. O(n3) Algorithms are forScience (Honours) Dissertation. Bachelor of fully resolved trees (binary trees) only. Memorial University of Newfoundland, 1985 Quartet distance between binary trees seems easier to compute ... and D. Penny. M. Steel Distribution of tree comparison metrics—some new results. Systematic Biology, 42(2):126–141, 1993. D. Bryant, J. Tsang, P. E. Kearney, and M. Li. O(n2) Computing the quartet distance between evolutionary trees. Proc. 11th Symp. on Discrete Algorithms (SODA), 285–286, 2000. G. S. Brodal, R. Fagerberg, and C. N. S. Pedersen O(n log2 n) Computing the quartet distance in time O(n log n). O(n log n) Algorithmica, 38(2): 377-395, 2003.
  28. 28. Algorithms for partially resolved trees Idea: Iterate over all pairs of edges (or nodes) in the two trees, and count for each pair how many associated quartets are shared. The problem is to define “associated” such each quartet is counted as most once ... Different solutions Type Time Space Center based O(n3) O(n) Edge based O(|V||V'|·d·d') O(n2) Edge based O(n+|V||V'|·id·id') O(n+|V||V'|) Node based O(n+|V||V'|·min{id,id'}) O(n+|V||V'|) - n is the number of species/leaves “worst case”-tree - |V|, |V'| are number of internal nodes in T and T' |V|=id=O(n) - id, id' are internal degree of T and T'
  29. 29. QuartetDist QuartetDist: Computes quartet distance (or normalized similarity, i.e. quartet fit similarity) between general trees A simple GUI Implementation in Java by Martin Randers and Chris Christiansen http://www.birc.au.dk/~chrisc/qdist/
  30. 30. C. Christiansen, T. Mailund, C. N. S. Pedersen, and M. Randers Previous work Algorithms for computing the quartet distance between trees of arbitrary degree Proc of Workshop on Algorithms in Bioinformatics (WABI), 77-88, 2005 O(n3) O(d2n2) G. Estabrook, F. McMorris, and C. Meacham. Pedersen, M. Randers, and M. Stissing C. Christiansen, T. Mailund, C. N. S. Comparison of undirected phylogeneticdistance between trees ofof Fast calculation of the quartet trees based on subtrees arbitrary degrees four evolutionary units. Systematic Zoology., 27:27-33, 1978. Algorithms for Molecular Biology, 1(16), 2006 O(dn2) W. Day and Stissing, C. N. S. Pedersen, T. Mailund, G. S. Brodal, and R. Fagerberg M. C. R. Doucette. Expected behaviour the quartet distance between evolutionary trees of bounded degree Computing of quartet distances between undirected tree. th Proc. 18 Proc. of APBC, 2007 International Numerical Taxonomy Conference, 1984 O(d9 n log n) C. R. Doucette An efficient algorithm to compute quartet dissimilarity measures. O(n3) Algorithms are forScience (Honours) Dissertation. Bachelor of fully resolved trees (binary trees) only. Memorial University of Newfoundland, 1985 Quartet distance between binary trees seems easier to compute ... and D. Penny. M. Steel Distribution of tree comparison metrics—some new results. Systematic Biology, 42(2):126–141, 1993. D. Bryant, J. Tsang, P. E. Kearney, and M. Li. O(n2) Computing the quartet distance between evolutionary trees. Proc. 11th Symp. on Discrete Algorithms (SODA), 285–286, 2000. G. S. Brodal, R. Fagerberg, and C. N. S. Pedersen O(n log2 n) Computing the quartet distance in time O(n log n). O(n log n) Algorithmica, 38(2): 377-395, 2003.
  31. 31. Counting using colouring Idea: Alternatively, colour leaves according to nodes in one tree and count compatible colourings in the other This approach does not explicitly consider all pairs of nodes/edges, which makes it possible to achieve a sub-quadratic running time Brodal et al.: Computing the Quartet Distance between Evolutionary Trees in Time O(n log n), Algoritmica 38(2), 2003.
  32. 32. Counting using colouring Idea: Alternatively, colour leaves according to nodes in one tree and count compatible colourings in the other This approach does not explicitly consider all pairs of nodes/edges, which makes it possible to achieve a sub-quadratic running time Ideas can be generalized to trees of maximum degree d . Use d colours instead of 3, use a more complex hierarchical decomposition tree ... Brodal et al.: Computing the Quartet Distance between Evolutionary Trees in Time O(n log n), Algoritmica 38(2), 2003.
  33. 33. Counting using colouring Idea: Alternatively, colour leaves according to nodes in one tree and count compatible colourings in the other This approach does not explicitly consider all pairs of nodes/edges, which makes it possible to achieve a sub-quadratic running time Ideas can be generalized to trees of maximum degree d . Use d colours instead of 3, use a more complex hierarchical decomposition tree ... Brodal et al.: Computing the Quartet Distance between Evolutionary Trees in Time O(n log n), Algoritmica 38(2), 2003.
  34. 34. Counting using colouring Idea: Alternatively, colour leaves according to nodes in one tree and count compatible colourings in the other Efficiently calculated using hierarchical decomposition tree This approach does not explicitly consider all pairs of nodes/edges, which makes it possible to achieve a sub-quadratic running time Ideas can be generalized to trees of maximum degree d . Use d colours instead of 3, use a more complex hierarchical decomposition tree ... Brodal et al.: Computing the Quartet Distance between Evolutionary Trees in Time O(n log n), Algoritmica 38(2), 2003.
  35. 35. Shared “butterfly” quartets
  36. 36. Shared “star” quartets
  37. 37. Colouring
  38. 38. Colouring
  39. 39. Colouring
  40. 40. Colouring
  41. 41. Colouring
  42. 42. Colouring
  43. 43. Colouring
  44. 44. Colouring
  45. 45. Colouring
  46. 46. Colouring Smaller-half trick
  47. 47. Colouring Smaller-half trick In total: All colourings takes time O(n log n) ...
  48. 48. Hierarchical decomposition tree Let T be an unrooted tree of size n with degree at most d. A component C in T is: A single node in T, or A connected subset of nodes in T with degree at most d. A hierarchical decomposition tree H(T) of T is a rooted binary tree: A leaf is simple component (single node in T). An internal node is a composite component of its children.
  49. 49. Hierarchical decomposition tree Let T be an unrooted tree of size n with degree at most d. A component C in T is: A single node in T, or A connected subset of nodes in T with degree at most d. A hierarchical decomposition tree H(T) of T is a rooted binary tree: A leaf is simple component (single node in T). An internal node is a composite component of its children. Lemma: A hierarchical decomposition tree H(T) of T of height O(d log n) can be constructed in time O(dn)
  50. 50. Hierarchical decomposition tree Annotation of node C in H(T) A d-tuple denoting the number of leaves in C coloured in each of the d colours. A function F of d × “degree of C” variables – representing counts of each colour in the remaining leaves of T The function F yields the number of quartets associated to nodes in C and compatible with colouring ...
  51. 51. Hierarchical decomposition tree Annotation of node C in H(T) A d-tuple denoting the number of leaves in C coloured in each of the d colours. A function F of d × “degree of C” variables – representing counts of each colour in the remaining leaves of T The function F yields the number of quartets associated to nodes in C and compatible with colouring ... The function at the root is a constant which counts the total number of quartets compatible with the current colouring in time O(1) ...
  52. 52. Hierarchical decomposition tree
  53. 53. Hierarchical decomposition tree
  54. 54. Hierarchical decomposition tree Observation: F is a polynomial of at most d2 variables of degree at most 4, i.e. It can be manipulated in time O(d8) ... Lemma: Initial annotation takes time O(d9n). Updating the annotation when changing a colour takes amortized time O(d9 log n) ...
  55. 55. Hierarchical decomposition tree Summing it all up Colouring leaves and updating H(T) takes amortized time O(log n × d9 log n) per node v1 in T1. Counting takes time O(1) per node v1 in T1. In total: O(d9 n log2 n). ... with “contractions” in H(T) the total time can be improved Observation: F is n)polynomial of at most to O(d9 n log a ... d2 variables of degree at most 4, i.e. It can be manipulated in time O(d8) ... Lemma: Initial annotation takes time O(d9n). Updating the annotation when changing a colour takes amortized time O(d9 log n) ...

×