Definition · Contraction, and the algorithmTo contract an edge uv of a multigraph, replace u and v by a single supernode, redirect every other edge at u or v to it, and delete the edges that have become loops. Parallel edges are kept. Karger's algorithm repeatedly contracts a uniformly random edge until two supernodes remain, and returns the set of edges between them, which is a cut of the original graph.
The algorithm always returns a cut — the two supernodes are a bipartition of the vertices, and the surviving edges are exactly the edges crossing it. What it does not always return is a minimum cut, and that is the only thing that can go wrong. This is a Monte Carlo algorithm: the running time is fixed and the answer is sometimes wrong.
Theorem · The survival boundFix a minimum cut C of a connected graph on n vertices. Karger's algorithm returns C with probability at least 2/(n(n − 1)).
Let k = |C|. Every vertex has degree at least k, or else the edges at a vertex of smaller degree would be a smaller cut, so the number of edges is at least nk/2. A uniformly random edge is one of the k in C with probability at most k/(nk/2) = 2/n, so the first contraction misses C with probability at least 1 − 2/n.
If C was missed, the contracted graph has n − 1 vertices and C is still a cut of it, still of size k, and still minimum — contraction cannot create a smaller cut. So the same bound applies with n − 1 in place of n, and inductively the probability that all n − 2 contractions miss C is at least the product of 1 − 2/i for i from n down to 3.
That product is ((n−2)/n)·((n−3)/(n−1))·…·(1/3), which telescopes to 2/(n(n − 1)). And if no edge of C was ever contracted, then every supernode lies wholly on one side of C, so the two surviving supernodes are exactly the two sides and the algorithm returns C.
□
At n = 6 the bound reads 2/30 = 1/15, about 0.067. That is a guarantee for every graph on six vertices and every minimum cut in it, and it is very far from what happens on any particular graph — which is what the rest of this page is about.
What the lab computes instead of the bound
The panel does not sample and it does not quote the bound as the answer. For a named cut it computes the exact probability by recursion over contraction states: a state is the current partition of the vertices into supernodes, and the probability of success from a state is the sum over pairs of supernodes that do not straddle the cut of multiplicity/m times the probability of success from the merged state. Different contraction orders reach the same state, so the recursion is memoised and the whole computation is a few dozen states rather than |E|! edge orders.
Then it enumerates every bipartition to find all the minimum cuts, and adds their probabilities. That second step is not optional: the algorithm succeeds if it returns any of them, and on graphs with symmetry there are several.
Example · Two triangles joined by two edgesThe opening graph is 1-2, 1-3, 2-3, 4-5, 4-6, 5-6, 1-4, 2-5: six vertices, eight edges. Exhaustive search over all 31 bipartitions finds a minimum cut of 2 edges, and three cuts achieve it — isolating vertex 3, isolating vertex 6, and splitting the two triangles apart. Their exact probabilities are 13/70, 13/70 and 6/35, and the probability of returning one of the three is 19/35 ≈ 0.5429. Every one of them clears the bound 1/15.
Notice that the cut the graph was built to illustrate — the pair of joining edges — is the least likely of the three, at 6/35 against 13/70. The two cuts that isolate a single vertex are easier to find, because each is protected by only two edges out of eight rather than by two edges that the contraction of a triangle keeps threatening.
The measured rate, and the seeds that missed
Over seeds 1 to 120 the algorithm returned a minimum cut 67 times: a rate of 67/120 ≈ 0.5583, against an exact probability of 19/35 ≈ 0.5429. The measurement is above the truth here and will be below it at another slider position, and it is a measurement either way. Move the seed count and watch it wander around a number that does not move.
Fifty-three of those 120 seeds failed, and the panel names them rather than reporting a rate and stopping. Seed 5 is the first: it returned a cut of 3 edges rather than 2. That is what with high probability means, and it is the reason the phrase is on the page in those words. A guarantee whose failures you have never seen is one you will eventually quote as though it were an always claim.
For contrast, switch the graph to a four-cycle. It has six minimum cuts, each of exactly two edges, each with probability exactly 1/6 — which is exactly the bound 2/(n(n − 1)) at n = 4 — and they sum to 1. The algorithm never fails on that graph, and 120 of 120 seeds succeeded. A graph where the bound is tight for every cut and the algorithm is nevertheless certain to succeed is worth a minute's thought: the bound is per cut, and there are six of them.