Lecture from: 15.05.2025 | Video: Homelab | Rui Zhangs Notes
In this lecture, we study the classic global Minimum Cut (MIN-CUT) problem in undirected multigraphs. We explore a powerful randomized algorithm based on edge contractions - a method that is conceptually simple, easy to implement, and surprisingly effective. By carefully analyzing the probability of preserving a minimum cut, we obtain efficient Monte Carlo algorithms whose success probability can be amplified. We conclude with an improved version using recursive contraction to optimize runtime further.
Problem Definition
The Global Min-Cut Problem
Let be an undirected multigraph (i.e., multiple edges between the same pair of vertices are allowed, but no self-loops).
A cut in is a subset of edges such that removing all edges in disconnects the graph. That is, the graph becomes disconnected.
The minimum cut of , denoted , is defined as:
Alternatively, one can think of cuts as induced by partitions of , where:
- ,
- The cut-set consists of all edges with one endpoint in and the other in
- Then,
This problem is of central importance in network reliability, graph connectivity, and clustering.
Observations and First Approach
Let’s begin with a few basic facts.
- If is disconnected, then
- For connected , the following bound always holds:
This makes sense: removing all edges incident to a single vertex will disconnect it from the rest of the graph.
Using Max-Flow Algorithms
We can compute minimum s-t cuts efficiently (e.g., via Ford-Fulkerson or push-relabel). To find a global min-cut, we can compute s-t min-cuts:
- Fix a source vertex
- For every other vertex , compute min-cut between and
This results in flow computations.
- Each computation takes in best known implementations
- Total time:
This becomes the benchmark we aim to beat.
Why can we fix ?
The reason we can fix a single node and compute the minimum - cut for all other nodes is due to the submodularity and symmetry of cuts in undirected graphs:
Any global minimum cut must separate some pair of nodes. So, by computing the minimum cut between one fixed node and all others, we are guaranteed to find at least one of the minimum cuts of the graph.
This works because the smallest cut found among all - cuts (for fixed ) is equal to the global minimum cut. You don’t need to try all pairs - the worst-case cut is always revealed by some - pair involving any fixed .
Randomized Algorithm via Edge Contraction
Edge Contraction Operation
Given an undirected multigraph , and an edge , the contraction of merges vertices and into a new vertex . All edges incident to or now attach to , and any parallel edges are preserved (multiple edges between same pairs allowed).
- Any loops formed are discarded
- The number of vertices decreases by 1
Why Contracting Makes Sense
Let’s denote the contracted graph as . If a minimum cut does not use edge , then is still a cut in , and:
However, in general:
That is, contraction cannot make the minimum cut value smaller. It either increases or preserves it.
Lemma: Cut Value Monotonicity under Contraction
Let . Then:
- If for some minimum cut , then
This motivates selecting edges not in the minimum cut. But we don’t know the cut yet - so we pick edges randomly and hope not to hit the critical ones.
The Random Contraction Algorithm
Cut(G):
while |V(G)| > 2:
choose edge e ∈ E uniformly at random
G ← G/e
return size of the cut formed by the remaining two vertices
This process leaves exactly two supernodes, and the set of edges between them corresponds to some cut in the original graph.
Key Insight
If none of the minimum cut edges are contracted, then the final cut is a minimum cut. So what is the probability that this happens?
Let , and suppose is a minimum cut of size . Then:
- Each vertex has degree at least
- Total number of edges
Thus, the probability that a randomly chosen edge is in the cut is at most:
So:
This means with each contraction, the chance of not destroying the minimum cut is reasonably high.
Total Success Probability
Let be the worst-case success probability for a graph with vertices. Then:
Iterating this recurrence yields:
Thus, the success probability is small - only - but not negligible, and we can amplify it.
Amplifying Success Probability
Run the algorithm times. Output the smallest cut found. Then:
- With probability at least , the minimum cut is found
- For example, success probability
Each run takes time (assuming naive edge lists). Total time:
Improved Version: Karger-Stein Algorithm (Bootstrapping)
Let’s reduce the number of contraction steps by stopping early - say, when the graph has vertices left.
Then:
- Run the contraction process until vertices remain
- Recursively apply the min-cut algorithm on the smaller graph
This reduces the chance of killing the minimum cut, especially in the later stages.
Runtime Analysis
Let . Then the runtime is:
Repeating times still gives time overall.
Final Result
This recursive bootstrapped approach leads to a runtime of:
and is known as the Karger-Stein algorithm.
Summary
Algorithm | Time Complexity | Success Probability |
---|---|---|
Max-flow on all s-t pairs | Deterministic | |
Karger’s Basic Contraction | ||
Karger-Stein Bootstrapped |
When we don’t know what the minimum cut is, the best we can do is to avoid breaking it - and with luck, that’s enough.
Continue here: 24 Smallest Enclosing Disk via Randomized Algorithms