A Bit of History
Mechthild Stoer and Frank Wagner published "A Simple Min-Cut Algorithm" in 1997, providing a strikingly clean way to compute the global minimum cut of a weighted, undirected graph — the cheapest way to split the graph's vertices into two non-empty groups, without any pre-specified source or sink. Their algorithm made a splash precisely because of its title: unlike the classical approach (running Ford-Fulkerson-style max-flow between a fixed vertex and all \(n-1\) other candidates), their method achieves comparable or better runtime with a conceptually far simpler algorithm.
Working Principle
The algorithm repeats a "minimum cut phase" until only 2 vertices (or "super-vertices") remain:
- Maximum adjacency search: starting from an arbitrary vertex, repeatedly add the vertex most strongly connected (by total edge weight) to the already-selected set, until every vertex has been added — producing an ordering \(v_1, v_2, \ldots, v_n\).
- The cut-of-the-phase is the cut separating the last vertex \(v_n\) added from all the others — record its weight as a candidate for the global minimum.
- Merge the last two vertices added (\(v_{n-1}\) and \(v_n\)) into a single super-vertex, combining their edge weights to all other vertices, and repeat from step 1 on the now-smaller graph.
After \(n-1\) phases, the graph has shrunk to a single super-vertex, and the true global minimum cut is the smallest cut-of-the-phase recorded across all phases.
Key Insight
The genius of the algorithm is a theorem the authors prove: the cut-of-the-phase, computed via maximum adjacency search, is always a valid minimum cut separating the last two vertices merged — so merging them can never destroy the true global minimum cut, which must still be present somewhere in the smaller, contracted graph if it wasn't the one just found.
Worked Example
On a small 4-vertex weighted graph, the first maximum adjacency search might produce the order \(A, B, C, D\) (each chosen because it has the strongest total connection to the already-visited set). The cut-of-the-phase separates \(D\) from \(\{A,B,C\}\), with weight equal to the sum of \(D\)'s edge weights to the rest. Merging \(C\) and \(D\) into a super-vertex \(CD\) (combining their edges), the algorithm repeats on the smaller 3-vertex graph \(\{A, B, CD\}\), continuing until only one super-vertex remains — the overall minimum across all recorded cut-of-the-phase values is the answer.
Correctness
The correctness proof rests entirely on the "cut-of-the-phase is a valid min-cut between the last two vertices" lemma mentioned above. Since a global minimum cut must separate some pair of vertices, and every pair gets merged together at some phase during the algorithm's run, the true global minimum is guaranteed to be recorded as some phase's cut-of-the-phase value at the latest possible moment before that specific pair is merged — meaning the minimum over all phases is provably the true global answer, not just a heuristic approximation.
Complexity Analysis
Each maximum adjacency search phase takes \(O(E + V\log V)\) using a Fibonacci heap (or \(O(V^2)\) with a simple array-based priority structure), and there are \(O(V)\) phases total:
$$\text{Time: } O(VE + V^2 \log V) \qquad \text{(Fibonacci heap implementation)}$$
This comfortably matches or beats classical max-flow-based global min-cut approaches (which would otherwise require \(O(V)\) separate max-flow computations), while requiring no flow-network machinery whatsoever — no source, no sink, no augmenting paths.
Implementation
Real-World Applications
Network Reliability & Image Segmentation
Telecommunications network designers use global minimum cut computations to find a network's weakest link — the cheapest set of connections whose failure would split the network into two disconnected pieces — directly informing where redundant links are most valuable. The same global min-cut computation, applied to a graph built from image pixels and their visual similarity, underlies certain unsupervised image segmentation techniques, splitting an image into its most weakly-connected regions.
Exercises
- Trace through one full minimum-cut phase by hand on a small 4-vertex weighted graph, identifying the maximum adjacency order and the resulting cut-of-the-phase.
- Explain why the algorithm needs no source or sink vertex, in contrast to Ford-Fulkerson-style max-flow computations from earlier deep dives.
- Compare running Stoer-Wagner once versus running Ford-Fulkerson \(n-1\) times (fixing one vertex as source and trying every other vertex as sink) to find the same global minimum cut — which approach is conceptually simpler, and why?
- Challenge: Modify the implementation to also track and return the actual partition of vertices achieving the minimum cut, not just its weight.
Limitations
Undirected Graphs Only
Stoer-Wagner requires an undirected graph with non-negative edge weights — it does not apply to directed graphs, where minimum cuts must account for edge direction and the problem becomes substantially more complex. It also computes only the single global minimum cut, not (for instance) the minimum cut separating two specific pre-chosen vertices, for which the Ford-Fulkerson-style max-flow approach remains the appropriate tool.