Faster algorithms for finding lowest common ancestors in directed acyclic graphs

  • Authors:
  • Artur Czumaj;Mirosaw Kowaluk;Andrzej Lingas

  • Affiliations:
  • Department of Computer Science, University of Warwick, Coventry CV4 7AL, United Kingdom;Institute of Informatics, Warsaw University, Warsaw, Poland;Department of Computer Science, Lund University, 22100 Lund, Sweden

  • Venue:
  • Theoretical Computer Science
  • Year:
  • 2007

Quantified Score

Hi-index 5.23

Visualization

Abstract

We present two new methods for finding a lowest common ancestor (LCA) for each pair of vertices of a directed acyclic graph (dag) on n vertices and m edges. The first method is surprisingly natural and solves the all-pairs LCA problem for the input dag on n vertices and m edges in time O(nm). The second method relies on a novel reduction of the all-pairs LCA problem to the problem of finding maximum witnesses for Boolean matrix product. We solve the latter problem (and hence also the all-pairs LCA problem) in time O(n^2^+^@l), where @l satisfies the equation @w(1,@l,1)=1+2@l and @w(1,@l,1) is the exponent of the multiplication of an nxn^@l matrix by an n^@lxn matrix. By the currently best known bounds on @w(1,@l,1), the running time of our algorithm is O(n^2^.^5^7^5). Our algorithm improves the previously known O(n^2^.^6^8^8) time-bound for the general all-pairs LCA problem in dags by Bender et al. Our additional contribution is a faster algorithm for solving the all-pairs lowest common ancestor problem in dags of small depth, where the depth of a dag is defined as the length of the longest path in the dag. For all dags of depth at most h@?n^@a, where @a~0.294, our algorithm runs in a time that is asymptotically the same as that required for multiplying two nxn matrices, that is, O(n^@w); we also prove that this running time is optimal even for dags of depth 1. For dags with depth hn^@a, the running time of our algorithm is at most O(n^@w@?h^0^.^4^6^8). This algorithm is faster than our algorithm for arbitrary dags for all values of h@?n^0^.^4^2.