Minimum Vertex Cover in Bipartite Graphs
Learn how to find a minimum vertex cover in bipartite graphs.
There’s no known polynomial time algorithm for finding a minimum vertex cover in a general graph. However, when it comes to finding a minimum vertex cover in bipartite graphs, once again, the Ford-Fulkerson algorithm comes to the rescue.
In this lesson, we see exactly how to do this. But first, we want to make the following assumption about residual networks in the hope that it will make the exposition easier to understand:
Assumption: The edges with zero capacity in the residual network play no role in the discussions that follow. For this reason, we have simply assumed that they are absent in the residual network.
This assumption greatly simplifies the illustrations as well as the proofs. For instance, instead of using a convoluted expression like “reachable from using only edges with non-zero capacity,” we can simply say “reachable from .”
The basic idea
The Ford-Fulkerson algorithm can be used for finding a minimum vertex cover in bipartite graphs. To do this, a flow network is created against a given bipartite graph having partite sets and . This is done in exactly the same way as was seen for the problem of finding a maximum matching:
After the Ford-Fulkerson algorithm is run to completion on , there is no augmenting path in its corresponding residual network. If is the set of vertices in the residual network reachable from , and consists of the remaining vertices, then the edges in the flow network from to form a minimum cut . Vertices in and can be carefully picked to form a minimum vertex cover as follows:
We’ll see in a bit why this forms a minimum vertex cover.
Example
Consider the flow network on the left side of the illustration below, built from a bipartite graph. Using the Ford-Fulkerson algorithm on the flow network, a maximum matching of size can be found in the original bipartite graph, corresponding to the edges from to with unit flow. Such a matching would leave the vertices and unmatched.
The residual network corresponding to the flow network is shown on the right in the illustration below. Notice how when there is unit flow on an edge in the flow network, the direction of the corresponding edge in the residual network reverses. However, if there is no flow in an edge of the flow network, the direction of the corresponding edge in the residual network remains unchanged.
In the residual network, the vertices in that are reachable from the source are highlighted in red, and all other vertices that are in ...