We develop a path cover technique to solve lowest common ancestor (LCA for short) problems in a directed acyclic graph (dag). Our method yields improved upper bounds for two recently studied problem variants, computing one (representative) LCA for all pairs of vertices and computing all LCAs for all pairs of vertices. The bounds are expressed in terms of the number n of vertices and the so called width w(G) of the input dag G. For the first problem we achieve O(n2 w(G) polylog(n)) time which improves the upper bound of [KL07] for dags with w(G) = O( n^{0.376-\delta}) for a constant \delta>0. For the second problem our O(n2 w(G)2 polylog(n)) upper time bound subsumes the O(n^{3.334}) bound established in [EMN07] for w(G) = O(n^{0.667-\delta}).\\ As a second major result we show how to combine the path cover technique with LCA solutions for dags with small depth [CKL07]. Our algorithm attains the best known upper time bound for this problem of O(n^{2.575}). However, most notably, the algorithm performs better on a vast amount of input dags, i.e. dags that do not have an almost linear-sized subdag of extremely regular structure.\\ Finally, we apply our technique to improve the general upper time bounds on the worst case time complexity for the problem of reporting LCAs for each triple of vertices recently established by Yuster and to develop space-efficient (subquadratic) LCA algorithms.
«
We develop a path cover technique to solve lowest common ancestor (LCA for short) problems in a directed acyclic graph (dag). Our method yields improved upper bounds for two recently studied problem variants, computing one (representative) LCA for all pairs of vertices and computing all LCAs for all pairs of vertices. The bounds are expressed in terms of the number n of vertices and the so called width w(G) of the input dag G. For the first problem we achieve O(n2 w(G) polylog(n)) time which imp...
»