Fast algorithms for finding nearest common ancestors
SIAM Journal on Computing
Matrix multiplication via arithmetic progressions
STOC '87 Proceedings of the nineteenth annual ACM symposium on Theory of computing
On finding lowest common ancestors: simplification and parallelization
SIAM Journal on Computing
Recursive star-tree parallel data structure
SIAM Journal on Computing
Rectangular matrix multiplication revisited
Journal of Complexity
Nearest common ancestors: a survey and a new distributed algorithm
Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures
LATIN '00 Proceedings of the 4th Latin American Symposium on Theoretical Informatics
Scaling and related techniques for geometry problems
STOC '84 Proceedings of the sixteenth annual ACM symposium on Theory of computing
Dual Labeling: Answering Graph Reachability Queries in Constant Time
ICDE '06 Proceedings of the 22nd International Conference on Data Engineering
Faster algorithms for finding lowest common ancestors in directed acyclic graphs
Theoretical Computer Science
A Path Cover Technique for LCAs in Dags
SWAT '08 Proceedings of the 11th Scandinavian workshop on Algorithm Theory
Introduction to Algorithms, Third Edition
Introduction to Algorithms, Third Edition
Lowest common ancestors in trees and directed acyclic graphs
Journal of Algorithms
Unique lowest common ancestors in dags are almost as easy as matrix multiplication
ESA'07 Proceedings of the 15th annual European conference on Algorithms
Fast lowest common ancestor computations in dags
ESA'07 Proceedings of the 15th annual European conference on Algorithms
Multiplying matrices faster than coppersmith-winograd
STOC '12 Proceedings of the forty-fourth annual ACM symposium on Theory of computing
All-pairs ancestor problems inweighted dags
ESCAPE'07 Proceedings of the First international conference on Combinatorics, Algorithms, Probabilistic and Experimental Methodologies
Hi-index | 5.23 |
LCA computation for vertex pairs in trees can be achieved in constant time after linear-time preprocessing. However, extension of these techniques to compute LCA for vertex-pairs in DAGs has been not possible due to the non-tree edges in a DAG. In this paper, we present an algorithm for computing the LCA for vertex pairs in a DAG which treats the DAG@?s spanning tree and its non-tree edges separately. Our approach enables us to tap the efficiency of existing LCA algorithms for trees. Furthermore, our algorithm decomposes the DAG into a set of component trees called clusters which significantly reduces the preprocessing necessary to incorporate non-tree edges in the LCA computation. Our algorithm seamlessly interpolates the performance graph between the best reported algorithms for trees and the best reported algorithms for DAGs depending on the incidence of non-tree edges in the DAG. Using the proposed techniques, it is possible to achieve near-linear preprocessing and constant query time for sparse DAGs.