Let G=(V,E) be an undirected connected graph with n vertices, m edges, and min-cut size c∗.
David R. Karger [1] proposed a simple randomized algorithm for estimating the value of c∗, as described thus.
Karger Algorithm.
repeat until two nodes are left in the graph:
Select an edge e=(u,v) from the graph uniformly at random.
Merge its endpoints u and v into new vertex w.
Remove self loops created by the merge.
Connect the edges incident to u or v to new vertex w.
Return the number of edges, denoted as c, between the remaining two vertices.
Each iteration in the algorithm is called a contraction.
Analysis
Theorem. It holds that
Pr[c=c∗]=n(n−1)2.
We can boost the successful probability via repetitions.
Corollary. If we repeat the algorithm 0.5⋅n⋅(n−1)⋅lnn times, the probability we don't find c∗ is at most 1/n.
Proof of the Corollary.
(1−n(n−1)2)0.5⋅n⋅(n−1)⋅lnn≤elnn=n1
□
Proof of the Theorem.
Consider the first iteration of the algorithm.
The key observation is that the degree of each vertex is at least c∗.
Therefore,
m≥c∗⋅n/2.
Fix a min-cut in G, the probability that any of its edges is selected at most
mc∗≤n2.
Therefore, with probability at least 1−2/n, none of the edges in the chosen min-cut is contracted in the first iteration.
Moreover, we have the following observation.
After contracting an edge, each cut in the new graph corresponds to a cut in the original graph.
Therefore, if none of the edges of the chosen min-cut is contracted, it remains to be the min-cut in the new graph.
Conditioned on this, via similar argument, we can prove that in the second iteration, none of the edges of the chosen min-cut is contracted with probability at least 1−2/(n−1).
By induction, it holds that, none of the edges of the chosen min-cut is contracted over all iterations is given by
(1−n2)(1−n−12)…(1−32)=(2n)−1.
□
Number of Min Cuts
Corollary. There are n(n−1)/2 min-cuts in the graph.
Proof.
The events of outputting different min-cuts are disjoint. □
By slightly modifying the algorithm, we can obtain another useful fact.
Theorem. (Approximate Min-Cut). Given t∈[1,n/2], an t-minimal cut is a cut with value ≤tc∗.
It follows that the number of t-minimal cut is bounded by
Proof.
Suppose we run the contraction algorithm, until k=⌈2t⌉ are left.
Then we output one of the 2k cuts uniformly at random.
The probability p that a particular t-minimal cut is outputted is given by