Testing 2-vertex connectivity and computing pairs of vertex-disjoint s-t paths in digraphs
ICALP'10 Proceedings of the 37th international colloquium conference on Automata, languages and programming
Finding strong bridges and strong articulation points in linear time
COCOA'10 Proceedings of the 4th international conference on Combinatorial optimization and applications - Volume Part I
Approximating the smallest 2-vertex connected spanning subgraph of a directed graph
ESA'11 Proceedings of the 19th European conference on Algorithms
Proceedings of the twenty-second annual ACM-SIAM symposium on Discrete Algorithms
Finding strong bridges and strong articulation points in linear time
Theoretical Computer Science
Dominators, directed bipolar orders, and independent spanning trees
ICALP'12 Proceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part I
An experimental study of dynamic dominators
ESA'12 Proceedings of the 20th Annual European conference on Algorithms
Finding dominators via disjoint set union
Journal of Discrete Algorithms
Hi-index | 0.00 |
We present linear-time algorithms for the classic problem of finding dominators in a flowgraph, and for several other problems whose solutions require evaluating a function defined on paths in a tree. Although all these problems had linear-time solutions previously, our algorithms are simpler, in some cases substantially. Our improvements come from three new ideas: a refined analysis of path compression that gives a linear bound if the compressions favor certain nodes; replacement of random-access table look-up by a radix sort; and a more careful partitioning of a tree into easily managed parts. In addition to finding dominators, our algorithms find nearest common ancestors off-line, verify and construct minimum spanning trees, do interval analysis of a flowgraph, and build the component tree of a weighted tree. Our algorithms do not require the power of a random-access machine; they run in linear time on a pointer machine. The genesis of our work was the discovery of a subtle error in the analysis of a previous allegedly linear-time algorithm for finding dominators. That algorithm was an attempt to simplify a more complicated algorithm, which itself was intended to correct errors in a yet earlier algorithm. Our work provides a systematic study of the subtleties in the dominators problem, the techniques needed to solve it in linear time, and the range of application of the resulting methods. We have tried to make our techniques as simple and as general as possible and to understand exactly how earlier approaches to the dominators problem were either incorrect or overly complicated.