Connected component (graph theory)
From Wikipedia, the free encyclopedia
In an undirected graph, a connected component or component is a maximal connected subgraph. Two vertices are in the same connected component if and only if there exists a path between them. In a drawing of a graph, the connected components can each be drawn separately with empty space between them. A nonempty connected graph has one connected component. Directed graphs have a similar concept called strongly connected component
In an undirected graph, the existence of a path between two vertices u and v is an equivalence relation, since:
- There is a trivial path of length zero from any vertex to itself. (reflexivity)
- If there is a path from u to v, it also a path from v to u. (symmetry)
- If there is a path from u to v and a path from v to w, we can attach them together to form a path from u to w. (transitivity)
The connected components are then the equivalence classes of this relation.
The multiplicity of the eigenvalue 0 in the Laplacian of a graph is equal to the number of connected components in the graph.
Connected components are useful because often algorithms or theorems can be applied to each connected component individually, taking advantage of it being a connected graph, and combine these solutions to obtain a solution for the entire graph. For example, if we find a minimum spanning tree or a maximum matching for each connected component, their union is a minimum spanning forest or maximum matching for the entire graph.
Many computational problems related to connected components are complete for the complexity class SL, such as:
- Are two vertices in the same connected component? Different connected components?
- Is a graph connected? Not connected?
- Do two graphs have the same number of connected components? Different number of components?
- Is the number of connected components even? Is it odd?
Since SL=L, these problems all lie in L and so can be solved with a deterministic machine in O(log n) space. However, the most practical algorithms for them are randomized algorithms using random walks.