Find Strongly Connected Components in a Directed Graph: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 13: Line 13:


=Kosaraju's Two-Pass Algorithm=
=Kosaraju's Two-Pass Algorithm=
The algorithm has three steps:
1. Reverse all of the arcs of the given graph. Let G<sup>rev</sup> = G with all arcs revered.
2. Do the first depth-first search pass on the reversed graph. The practical implementation should run DFS on the original graph G but going in the opposite direction of the arcs.

Revision as of 22:11, 4 October 2021

External

Internal

Overview

Finding strongly connected components in a directed graph is a form of clustering heuristics: strongly connected components represent clusters where the objects represented by the vertices are clustered in some way.

Strongly connected components of a directed graph can be computed with Kosaraju's Two-Pass algorithm, which consists of two passes of depth-first search.

Kosaraju's Two-Pass Algorithm

The algorithm has three steps:

1. Reverse all of the arcs of the given graph. Let Grev = G with all arcs revered.

2. Do the first depth-first search pass on the reversed graph. The practical implementation should run DFS on the original graph G but going in the opposite direction of the arcs.