Koning's theorem states that the cardinality of the maximum matching in a bipartite graph is equal to the size of its minimum vertex cover.

Wikipedia states that there is an equivalent version of the theorem for weighted graphs as well. I tried searching in a lot of places but could not find this theorem.

To be more specific, I want to know what is the equivalent version of Konig's theorem in the case of Minimum Weight Vertex Cover in Bipartite Graphs where each vertex $v \in G$ is assigned a weight $w_v$ and the task is to find a vertex cover of the minimum possible weight.

If the equivalence is just the maximum weighted matching in $G$, what are the weights of the edges in this graph? Because as far as I understand, we have only assigned weights to the vertices of the graph $G$.

Thank you for your time :)


So I found the answer.

The equivalence is that the min weight vertex cover of a bipartite graph can be computed as the maximum flow in a related bipartite graph. In the unweighted case, this maximum flow corresponds to the maximum carnality matching in a bipartite which is exactly the version of Konig's theorem that we all know and love.

For the sake of completeness here is the reduction of bipartite min weight vertex cover to max flow.

Let $G = (A,B)$ be the given bipartite graph. Construct a flow network $N$ by connecting the a source $S$ to all nodes in $A$ and all nodes in $B$ to a sink $T$.

Let the capacity of all original edges in $G$ be $\infty$. The capacity of all edges of the form $(S,a)$ where $a \in A$ will be $w_a$ and the similarly the capacity of all edges $(b, T)$ where $b \in B$ will be $w_b$. Every $S-T$ cut in this network corresponds to exactly one vertex cover and every vertex cover corresponds to an $S-T$ cut. Thus the min-cut a.k.a. the maximum flow will give us the minimum weight vertex cover.

For a more detailed proof refer this.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.