Connectivity¶
Algorithms¶
Testing connectivity and finding connected components are classic tasks when working with graphs. Recall that depending on whether the graph is directed or not, we have two different notions of connectivity, i.e. strong and weak connectivity.
-
jgrapht.algorithms.connectivity.
is_connected
(graph)[source]¶ Compute connected components of a graph.
For directed graphs this method computed strongly connected components.
- Parameters
graph – the graph. Must be directed
- Returns
a tuple containing a boolean value on whether the graph is connected and an iterator over all connected components. Each component is represented as a vertex set
-
jgrapht.algorithms.connectivity.
is_strongly_connected_gabow
(graph)[source]¶ Computes strongly connected components in a directed graph.
This is Cheriyan-Mehlhorn/Gabow’s algorithm and can be found at:
Gabow, Harold N. “Path-Based Depth-First Search for Strong and Biconnected Components; CU-CS-890-99.” (1999).
Running time \(\mathcal{O}(n+m)\).
- Parameters
graph – the graph. Must be directed
- Returns
a tuple containing a boolean value on whether the graph is strongly connected and an iterator over all connected components. Each component is represented as a vertex set
-
jgrapht.algorithms.connectivity.
is_strongly_connected_kosaraju
(graph)[source]¶ Computes strongly connected components in a directed graph.
This is an implementation based on:
Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to algorithms. MIT press.
Running time \(\mathcal{O}(n+m)\).
- Parameters
graph – the graph. Must be directed
- Returns
a tuple containing a boolean value on whether the graph is strongly connected and an iterator over all connected components. Each component is represented as a vertex set
-
jgrapht.algorithms.connectivity.
is_weakly_connected
(graph)[source]¶ - Computes weakly connected components in a directed graph or
connected components in an undirected graph.
This is a simple BFS based implementation.
Running time \(\mathcal{O}(n+m)\).
- Parameters
graph – the graph.
- Returns
a tuple containing a boolean value on whether the graph is connected and an iterator over all connected components. Each component is represented as a vertex set