Minimum Cut
18 Jan 2024
Overview
Suppose we are given graph G with vertex set V and edge set E.
Let V=[n], then each edge e∈E can be written as e=(u,v) for u,v∈[n].
Cut
A cut C=S1,S2 of graph G is a partition of vertices V into a set S1 and S2=V∖S1.
An edge (u,v) crosses the cut C if u∈Si and v∈Sj for i=j.
The size of the cut C is the number of edges that cross C.
Minimum Cut
The minimum cut is the smallest cut across all pairs of sets of verticies.
Karger's Algorithm
Karger's Minimum Cut Algorithm
- Start with G and iteratively reduce the number of vertices via edge contractions
- In each step, choose a random edge and merge the two endpoints of an edge into a single vertex which preserves edges.
- Allow multi-edges but not self loops
- Iterate until there are only two vertices u1 and u2 left
- Return all vertices merged into u1 as S1, and the rest in u2 as S2.
Analysis
Suppose the graph is disconnected. Then, we always return the correct min-cut.
Suppose the graph contains two components connected by a single edge. The algorithm is successful as long as it avoids selecting the single edge crossing the two components.
As long as it avoids the single edge, each edge contraction will shrink one of the two components.
It is unlikely that we choose that edge.
Fix a cut C=S1,S2 of size k.
The probability that we contract an edge of C is ∣E∣k.
Since the min-cut is k, then each vertex must have degree of at least k so ∣E∣≥2nk
The probability that we do not contract an edge of C is at least 1−nk/2k=nn−2.
After i steps, the number of vertices left is n−i; the probability that we do not contract an edge of C is at least n−in−i−2.
The probability of success is at least
nn−2×n−1n−3×n−2n−4×⋯×31≥n(n−1)2.
Therefore, the probability of success is at least n22, and after O(n2) applications we will succeed with probability 0.99.