Connectivity in undirected graphs asks whether every vertex can be reached from every other vertex. In directed graphs, direction changes the problem fundamentally. A vertex may reach another vertex without being reachable in return.
For this reason, directed graphs require several notions of connectivity. The most important is strong connectivity.
A directed graph is strongly connected if every vertex can reach every other vertex by directed paths. This means that movement through the graph is possible in both directions, even if the actual paths differ. Strong connectivity is one of the central structural ideas in directed graph theory. (en.wikipedia.org)
19.1 Reachability Revisited
Let
be a directed graph.
A vertex is reachable from a vertex if there exists a directed path from to .
Reachability is directional. It may happen that reaches , while does not reach .
For example, consider the directed graph
The vertex is reachable from , because there is a directed path
However, is not reachable from , because no directed path leaves .
Thus directed reachability differs fundamentally from ordinary graph connectivity.
19.2 Strong Connectivity
A directed graph is strongly connected if for every pair of vertices
there exists a directed path from to and also a directed path from to .
Equivalently, every vertex is reachable from every other vertex.
This condition may be written as
for all vertices and .
Strong connectivity is symmetric at the global level. Although individual arcs are directed, the graph as a whole permits movement between every ordered pair of vertices.
For example, the directed cycle
is strongly connected. From any vertex, one can follow the cycle to reach any other vertex.
19.3 Examples
Example 1. A Strongly Connected Graph
Consider the graph
We verify strong connectivity.
From , we can reach
From , we can reach
Every vertex reaches every other vertex. Therefore the graph is strongly connected.
Example 2. A Graph That Is Not Strongly Connected
Consider the graph
The vertex reaches and . The vertex reaches . But reaches no other vertex.
Therefore the graph is not strongly connected.
Example 3. A Single Vertex
A graph with one vertex and no arcs is strongly connected under the usual convention that every vertex reaches itself by a path of length zero.
19.4 Mutual Reachability
Define a relation on the vertex set by declaring that
if and only if
This relation is called mutual reachability.
It is an equivalence relation.
Reflexivity
Every vertex reaches itself by the trivial path of length zero. Thus
Symmetry
If
then reaches and reaches . Reversing the statement gives
Transitivity
Suppose
Then
Concatenating paths gives
Similarly,
so
Hence
Therefore mutual reachability partitions the vertices into equivalence classes.
These equivalence classes are the strongly connected components.
19.5 Strongly Connected Components
A strongly connected component of a directed graph is a maximal strongly connected subgraph.
“Maximal” means that no additional vertex can be added while preserving strong connectivity.
The vertices of a directed graph partition uniquely into strongly connected components. This decomposition into maximal mutually reachable sets is standard in graph theory. (en.wikipedia.org)
For example, consider the graph
More explicitly,
The vertices and form one strongly connected component, because each reaches the other.
The vertices and form another strongly connected component.
There is an arc from the first component to the second, but no path returns from the second to the first.
Thus the strongly connected components are
19.6 Component Graph
Given a directed graph , collapse each strongly connected component into a single vertex.
The resulting graph is called the component graph or condensation graph.
An arc exists between two components if an arc in the original graph goes from a vertex in one component to a vertex in the other.
A fundamental fact is that the component graph is always a directed acyclic graph.
If the component graph contained a directed cycle, then all components on that cycle would mutually reach one another. They would therefore belong to the same strongly connected component, contradicting maximality.
Thus strongly connected components reduce arbitrary directed graphs into DAG structure.
19.7 Strong Connectivity and Cycles
Directed cycles are closely related to strong connectivity.
Every directed cycle is strongly connected. If
then every vertex can reach every other vertex by moving around the cycle.
However, a strongly connected graph need not be a single cycle. It may contain many overlapping cycles.
For example,
is strongly connected but contains more structure than one simple cycle.
Cycles generate strong connectivity locally. Strong connectivity combines such cycles into a global reachability condition.
19.8 Weak Connectivity
A directed graph is weakly connected if its underlying undirected graph is connected.
This ignores the directions of arcs.
For example,
is weakly connected because the underlying undirected graph
is connected.
But it is not strongly connected, because cannot reach .
Thus strong connectivity is stricter than weak connectivity:
| Property | Direction respected? |
|---|---|
| Weak connectivity | No |
| Strong connectivity | Yes |
Every strongly connected graph is weakly connected. The converse is false.
19.9 Unilateral Connectivity
Some authors also define unilateral connectivity.
A directed graph is unilaterally connected if for every pair of vertices , at least one of the following holds:
This condition is weaker than strong connectivity but stronger than weak connectivity.
The directed path
is unilaterally connected, because every pair of vertices is connected in at least one direction.
But it is not strongly connected.
19.10 Strongly Connected Subgraphs
A subgraph of a directed graph is strongly connected if every pair of vertices in mutually reaches each other within .
Strongly connected subgraphs are important because large directed graphs often contain local regions of high internal connectivity.
For example:
| System | Strongly connected region |
|---|---|
| Web graph | tightly interlinked websites |
| Social network | mutually connected communities |
| Dependency graph | recursive dependency groups |
| Program control graph | loops and recursive structures |
| Transportation network | mutually reachable route clusters |
Strongly connected components isolate these internally reachable regions.
19.11 Characterization Using Paths
A directed graph is strongly connected if and only if every pair of vertices lies on a common directed cycle or can mutually reach each other through chains of directed cycles.
More concretely:
if and only if for every pair ,
This statement is often used as the practical definition.
In finite directed graphs, reachability may be checked using graph search algorithms.
19.12 Strong Connectivity and Adjacency Matrices
Let be the adjacency matrix of a directed graph .
Recall that
counts directed walks of length from vertex to vertex .
Thus is reachable from if and only if there exists some integer such that
The graph is strongly connected if every ordered pair of vertices satisfies this condition for some .
Equivalently, for every , there exists a directed walk from to .
This matrix perspective connects strong connectivity with linear algebra and spectral graph theory.
19.13 Detecting Strong Connectivity
Strong connectivity can be tested algorithmically.
A simple method is:
- Choose a vertex .
- Perform a graph search from .
- Check whether all vertices are reachable from .
- Reverse all arcs.
- Perform another graph search from .
- Check whether all vertices are reachable again.
If both searches reach all vertices, then the graph is strongly connected.
The reason is simple. The first search verifies that every vertex is reachable from . The reversed search verifies that every vertex reaches in the original graph.
More advanced algorithms compute all strongly connected components efficiently. Standard methods include Kosaraju’s algorithm, Tarjan’s algorithm, and Gabow’s algorithm. These algorithms are fundamental in graph processing and compiler theory. (en.wikipedia.org)
19.14 Strong Connectivity in Applications
Strong connectivity appears naturally in many systems.
Communication Networks
A strongly connected communication network allows messages to travel between every pair of locations.
Transportation Systems
In a road network with one-way streets, strong connectivity means every location is reachable from every other location while respecting street directions.
Web Graphs
Groups of mutually linked web pages often form strongly connected components.
Software Systems
Recursive module dependencies form strongly connected regions in dependency graphs.
State Machines
In automata and Markov chains, strong connectivity corresponds to recurrent or communicating states.
19.15 Strong Orientation
An orientation of an undirected graph assigns a direction to each edge.
An orientation is strongly connected if the resulting directed graph is strongly connected.
Not every connected graph admits a strong orientation. A connected undirected graph has a strong orientation if and only if it has no bridge. This classical result is known as Robbins’ theorem. (en.wikipedia.org)
A bridge prevents strong connectivity because crossing it in one direction disconnects the reverse reachability.
19.16 Common Mistakes
A common mistake is to confuse weak connectivity with strong connectivity. A graph may be connected when directions are ignored but disconnected when directions are respected.
Another mistake is to assume that having a directed cycle implies strong connectivity. A graph may contain cycles while still having unreachable regions.
A third mistake is to test reachability only one way. Strong connectivity requires mutual reachability.
A fourth mistake is to confuse strongly connected components with arbitrary connected regions. Strongly connected components are maximal with respect to mutual reachability.
19.17 Summary
A directed graph is strongly connected if every vertex can reach every other vertex through directed paths.
Mutual reachability defines an equivalence relation on the vertex set. Its equivalence classes are the strongly connected components.
Strongly connected components partition every directed graph. Collapsing them produces a directed acyclic component graph.
Strong connectivity is stricter than weak connectivity because it respects arc direction. It is fundamental in network structure, dependency analysis, compiler theory, transportation systems, and graph algorithms. Subsequent chapters build on this idea through directed acyclic graphs, topological ordering, network flow, and advanced directed graph algorithms.