Results 1  10
of
29
Nearest Common Ancestors: A survey and a new distributed algorithm
, 2002
"... Several papers describe linear time algorithms to preprocess a tree, such that one can answer subsequent nearest common ancestor queries in constant time. Here, we survey these algorithms and related results. A common idea used by all the algorithms for the problem is that a solution for complete ba ..."
Abstract

Cited by 90 (12 self)
 Add to MetaCart
(Show Context)
Several papers describe linear time algorithms to preprocess a tree, such that one can answer subsequent nearest common ancestor queries in constant time. Here, we survey these algorithms and related results. A common idea used by all the algorithms for the problem is that a solution for complete balanced binary trees is straightforward. Furthermore, for complete balanced binary trees we can easily solve the problem in a distributed way by labeling the nodes of the tree such that from the labels of two nodes alone one can compute the label of their nearest common ancestor. Whether it is possible to distribute the data structure into short labels associated with the nodes is important for several applications such as routing. Therefore, related labeling problems have received a lot of attention recently.
An optimal minimum spanning tree algorithm
 J. ACM
, 2000
"... Abstract. We establish that the algorithmic complexity of the minimum spanning tree problem is equal to its decisiontree complexity. Specifically, we present a deterministic algorithm to find a minimum spanning tree of a graph with n vertices and m edges that runs in time O(T ∗ (m, n)) where T ∗ is ..."
Abstract

Cited by 60 (12 self)
 Add to MetaCart
Abstract. We establish that the algorithmic complexity of the minimum spanning tree problem is equal to its decisiontree complexity. Specifically, we present a deterministic algorithm to find a minimum spanning tree of a graph with n vertices and m edges that runs in time O(T ∗ (m, n)) where T ∗ is the minimum number of edgeweight comparisons needed to determine the solution. The algorithm is quite simple and can be implemented on a pointer machine. Although our time bound is optimal, the exact function describing it is not known at present. The current best bounds known for T ∗ are T ∗ (m, n) = �(m) and T ∗ (m, n) = O(m · α(m, n)), where α is a certain natural inverse of Ackermann’s function. Even under the assumption that T ∗ is superlinear, we show that if the input graph is selected from Gn,m, our algorithm runs in linear time with high probability, regardless of n, m, or the permutation of edge weights. The analysis uses a new martingale for Gn,m similar to the edgeexposure martingale for Gn,p.
Allpairs shortest paths with real weights in O(n³ / log n) time
 PROC. OF THE 9TH WADS, LECTURE NOTES IN COMPUTER SCIENCE 3608
, 2005
"... We describe an O(n³ / log n) ..."
Dominators in Linear Time
, 1997
"... A linear time algorithm is presented for finding dominators in control flow graphs. ..."
Abstract

Cited by 37 (0 self)
 Add to MetaCart
A linear time algorithm is presented for finding dominators in control flow graphs.
A Simple, Fast Dominance Algorithm
"... The problem of finding the dominators in a controlflow graph has a long history in the literature. The original algorithms su#ered from a large asymptotic complexity but were easy to understand. Subsequent work improved the time bound, but generally sacrificed both simplicity and ease of implemen ..."
Abstract

Cited by 36 (1 self)
 Add to MetaCart
(Show Context)
The problem of finding the dominators in a controlflow graph has a long history in the literature. The original algorithms su#ered from a large asymptotic complexity but were easy to understand. Subsequent work improved the time bound, but generally sacrificed both simplicity and ease of implementation. This paper returns to a simple formulation of dominance as a global dataflow problem. Some insights into the natureofdominance lead to an implementation of an O(N )algorithm that runs faster, in practice, than the classic LengauerTarjan algorithm, which has a timebound of O(E log(N)). We compare the algorithm to LengauerTarjan because it is the best known and most widely used of the fast algorithms for dominance. Working from the same implementationinsights,wealso rederive (from earlier work on control dependence by Ferrante, et al.)amethodforcalculating dominance frontiers that we show is faster than the original algorithm by Cytron, et al. The aim of this paper is not to present a new algorithm, but, rather, to make an argument based on empirical evidence that algorithms with discouraging asymptotic complexities can be faster in practice than those more commonly employed. We show that, in some cases, careful engineering of simple algorithms can overcome theoretical advantages, even when problems grow beyond realistic sizes. Further, we argue that the algorithms presented herein are intuitive and easily implemented, making them excellent teaching tools.
Improved Algorithms for Finding Level Ancestors in Dynamic Trees
 Automata, Languages and Programming, 27th International Colloquium, ICALP 2000, number 1853 in LNCS
, 2000
"... Given a node x at depth d in a rooted tree LevelAncestor(x; i) returns the ancestor to x in depth d i. We show how to maintain a tree under addition of new leaves so that updates and level ancestor queries are being performed in worst case constant time. Given a forest of trees with n nodes wher ..."
Abstract

Cited by 29 (1 self)
 Add to MetaCart
(Show Context)
Given a node x at depth d in a rooted tree LevelAncestor(x; i) returns the ancestor to x in depth d i. We show how to maintain a tree under addition of new leaves so that updates and level ancestor queries are being performed in worst case constant time. Given a forest of trees with n nodes where edges can be added, m queries and updates take O(m(m;n)) time. This solves two open problems (P.F.
A New, Simpler LinearTime Dominators Algorithm
 ACM Transactions on Programming Languages and Systems
, 1998
"... this article is organized as follows. Section 2 outlines Lengauer and Tarjan's approach. Section 3 gives a broad overview of our algorithm and dierentiates it from previous work. Section 4 presents our algorithm in detail, and Section 5 analyzes its running time. Section 6 presents our new path ..."
Abstract

Cited by 28 (5 self)
 Add to MetaCart
(Show Context)
this article is organized as follows. Section 2 outlines Lengauer and Tarjan's approach. Section 3 gives a broad overview of our algorithm and dierentiates it from previous work. Section 4 presents our algorithm in detail, and Section 5 analyzes its running time. Section 6 presents our new pathcompression result, on which the analysis relies. Section 7 describes our implementation, and Section 8 reports experimental results. We conclude in Section 9
Algorithms for Computing the Static Single Assignment Form
 JOURNAL OF THE ACM (JACM
, 2003
"... ... In this paper, we propose a framework within which we systematically derive (i) properties of the SSA form and (ii) OEplacement algorithms. This framework is based on a new relation called merge which captures succinctly the structure of a program's control flow graph that is relevant to ..."
Abstract

Cited by 20 (1 self)
 Add to MetaCart
... In this paper, we propose a framework within which we systematically derive (i) properties of the SSA form and (ii) OEplacement algorithms. This framework is based on a new relation called merge which captures succinctly the structure of a program's control flow graph that is relevant to its SSA form. The OEplacement algorithms we derive include most of the ones described in the literature, as well as several new ones. We also evaluate experimentally the performance of some of these algorithms on the SPEC95 benchmarks. Some of the algorithms described here are optimal for a single variable. However, their repeated application is not necessarily optimal for multiple variables. We conclude the paper by describing such an optimal algorithm, based on the transitive reduction of the merge relation, for multivariable OEplacement in structured programs. The problem for general programs remains open.
A shortest path algorithm for realweighted undirected graphs
 in 13th ACMSIAM Symp. on Discrete Algs
, 1985
"... Abstract. We present a new scheme for computing shortest paths on realweighted undirected graphs in the fundamental comparisonaddition model. In an efficient preprocessing phase our algorithm creates a linearsize structure that facilitates singlesource shortest path computations in O(m log α) ti ..."
Abstract

Cited by 18 (5 self)
 Add to MetaCart
(Show Context)
Abstract. We present a new scheme for computing shortest paths on realweighted undirected graphs in the fundamental comparisonaddition model. In an efficient preprocessing phase our algorithm creates a linearsize structure that facilitates singlesource shortest path computations in O(m log α) time, where α = α(m, n) is the very slowly growing inverseAckermann function, m the number of edges, and n the number of vertices. As special cases our algorithm implies new bounds on both the allpairs and singlesource shortest paths problems. We solve the allpairs problem in O(mnlog α(m, n)) time and, if the ratio between the maximum and minimum edge lengths is bounded by n (log n)O(1) , we can solve the singlesource problem in O(m + nlog log n) time. Both these results are theoretical improvements over Dijkstra’s algorithm, which was the previous best for real weighted undirected graphs. Our algorithm takes the hierarchybased approach invented by Thorup. Key words. singlesource shortest paths, allpairs shortest paths, undirected graphs, Dijkstra’s
Finding dominators in practice
 In Proceedings of the 12th Annual European Symposium on Algorithms, volume 3221 of Lecture Notes in Computer Science
, 2004
"... Abstract. The computation of dominators in a flowgraph has applications in program optimization, circuit testing, and other areas. Lengauer and Tarjan [17] proposed two versions of a fast algorithm for finding dominators and compared them experimentally with an iterative bit vector algorithm. They c ..."
Abstract

Cited by 17 (8 self)
 Add to MetaCart
(Show Context)
Abstract. The computation of dominators in a flowgraph has applications in program optimization, circuit testing, and other areas. Lengauer and Tarjan [17] proposed two versions of a fast algorithm for finding dominators and compared them experimentally with an iterative bit vector algorithm. They concluded that both versions of their algorithm were much faster than the bitvector algorithm even on graphs of moderate size. Recently Cooper et al. [9] have proposed a new, simple, treebased iterative algorithm. Their experiments suggested that it was faster than the simple version of the LengauerTarjan algorithm on graphs representing computer program control flow. Motivated by the work of Cooper et al., we present an experimental study comparing their algorithm (and some variants) with careful implementations of both versions of the LengauerTarjan algorithm and with a new hybrid algorithm. Our results suggest that, although the performance of all the algorithms is similar, the most consistently fast are the simple LengauerTarjan algorithm and the hybrid algorithm, and their advantage increases as the graph gets bigger or more complicated. 1