Jump to content

Path-based strong component algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by David Eppstein (talk | contribs) at 17:41, 10 June 2010 (longer names; link mehlhorn; templatize clrs). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In graph theory, the Cheriyan–Mehlhorn/Gabow algorithm is a linear-time method for finding the strong components of a digraph. It was discovered in 1996 by Joseph Cheriyan and Kurt Mehlhorn [1] and rediscovered in 1999 by Harold N. Gabow [2] and is a variation on Tarjan's algorithm. The algorithm uses a second stack to decide when to remove vertices in the same strong component from the main stack, instead of a vertex-indexed array of preorder numbers.

The algorithm is easily derived from the "path-based view" of depth-first search. This contrasts with the more widely known "tree-based view" [3]. The path-based view conceptualizes a depth-first search as constructing a sequence of paths [4]. The tree-based view conceptualizes the search as constructing a depth-first spanning tree. The path-based view is simpler and can be used to derive most basic depth-first search algorithms (e.g., topological ordering, strong and biconnected components) [5]. The tree-based view is more powerful and provides the framework for more advanced graph algorithms (e.g., planarity testing, triconnected components).


References

  1. ^ Cheriyan, J.; [[Kurt Mehlhorn title=Algorithms for dense graphs and networks on the random access computer|Mehlhorn, K.]] (1996). Algorithmica. 15: 521–549. {{cite journal}}: Missing or empty |title= (help); Missing pipe in: |author2-link= (help); line feed character in |author2-link= at position 14 (help)
  2. ^ Sedgewick, R. (2002). Algorithms in C, 3rd Ed., Part 5 - Graph Algorithms. Cambridge MA: Addison-Wesley.
  3. ^ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. Introduction to Algorithms. MIT Press and McGraw-Hill.
  4. ^ Gabow, H.N. (2000). "Path-based depth-first search for strong and biconnected components". Information Processing Letters. 74: 107–114.
  5. ^ Gabow, H.N. (2003), "Searching (Ch 10.1)", in Gross, J.L.; Yellen, J. (eds.), Discrete Math. and its Applications: Handbook of Graph Theory, vol. 25, Boca Raton, FL: CRC Press, pp. 953–984