Articulation Point
Articulation Point
In a graph, a vertex is called an articulation point if removing it and all the edges associated with it results in the
increase of the number of connected components in the graph. For example consider the graph given in
following figure.
If in the above graph, vertex 1 and all the edges associated with it, i.e. the edges 1-0, 1-2 and 1-3 are removed,
there will be no path to reach any of the vertices 2, 3 or 4 from the vertices 0 and 5, that means the graph will
split into two separate components. One consisting of the vertices 0 and 5 and another one consisting of the
vertices 2, 3 and 4 as shown in the following figure.
Likewise removing the vertex 0 will disconnect the vertex 5 from all other vertices. Hence the given graph has
two articulation points: 0 and 1.
There is an algorithm that can help find all the articulation points in a given graph by a single Depth First
Search, that means with complexity O(V+E), but it involves a new term called "Back Edge" which is explained
below:
Given a DFS tree of a graph, a Back Edge is an edge that connects a vertex to a vertex that is discovered before
it's parent. For example consider the graph given in Fig. 1. The figure given below depicts a DFS tree of the
graph.
In the above case, the edge 4 - 2 connects 4 to an ancestor of its parent i.e. 3, so it is a Back Edge. And similarly
3 - 1 is also a Back edge.
Articulation Points of a Graph
A vertex is said to be an articulation point in a graph if removal of the vertex and associated edges
disconnects the graph. So, the removal of articulation points increases the number of connected components in
a graph.
The main aim here is to find out all the articulations points in a graph.
Example
Let’s take an undirected graph and try to find articulation points simply by following the definition:
Bridges in a graph
Given an undirected Graph, The task is to find the Bridges in this Graph.
An edge in an undirected connected graph is a bridge if removing it disconnects the graph. For a disconnected
undirected graph, the definition is similar, a bridge is an edge removal that increases the number of
disconnected components.
Input:
Output: (1, 6)
Biconnected Graph
1. It is connected, i.e. it is possible to reach every vertex from every other vertex, by a simple path.
2. Even after removing any vertex the graph remains connected.
The given graph is clearly connected. Now try removing the vertices one by one and observe. Removing any of
the vertices does not increase the number of connected components. So the given graph is Biconnected.
Now consider the following graph which is a slight modification in the previous graph.
In the above graph if the vertex 2 is removed, then here's how it will look:
Clearly the number of connected components have increased. Similarly, if vertex 3 is removed there will be no
path left to reach vertex 0 from any of the vertices 1, 2, 4 or 5. And same goes for vertex 4 and 1. Removing
vertex 4 will disconnect 1 from all other vertices 0, 2, 3 and 4. So the graph is not Biconnected.
Now what to look for in a graph to check if it's Biconnected. By now it is said that a graph is Biconnected if it
has no vertex such that its removal increases the number of connected components in the graph. And if there
exists such a vertex then it is not Biconnected. A vertex whose removal increases the number of connected
components is called an Articulation Point.