Proofs: Markov clustering
These are the human proofs of Markov clustering, at full length.
Each MCL iterate is column stochastic and stays inside the components, the read-out is a partition that refines the components, and a fixed point of inflation has uniform columns sketch
This proof shows: correctness.
This page proves the facts that hold for every run of MCL. It does not prove that the loop of lines L3 to L8 converges: no such proof is known to this page, and the implementation stops after a fixed number of iterations if the change stays above . The status is a sketch for that reason; each lemma below is proved in full.
Let have vertices and weights , and let be the matrix of line L1, so for every . Let be an integer, , and . Write for the vertex sets of the connected components of , and say that a matrix respects the components if whenever and lie in different components.
Lemma 1 (column stochastic). Every matrix that the algorithm holds after line L2 or line L7 is column stochastic.
Proof. After line L2, column of has the entry , so its sum is positive, and dividing by it gives a nonnegative column with sum 1.
Assume is column stochastic. Then is column stochastic: for column-stochastic and , and . Line L6 raises the entries of a column of to the power ; since sums to 1 and has entries, its largest entry is at least , so the column of powers has a positive sum and the first division of line L7 gives a column with sum 1. The largest entry of is again at least , so pruning keeps it, the column still has a positive sum, and the second division gives a nonnegative column with sum 1.
Lemma 2 (components). Every matrix that the algorithm holds respects the components.
Proof. with means that is an edge, so and lie in the same component; so respects the components, and so does after line L2, which only rescales columns. If and respect the components and lie in different components, then in each differs in component from or from , so each term is 0. So respects the components. Lines L6 and L7 map zero entries to zero entries (, and a rescaled or pruned zero is zero), so they keep the property.
Lemma 3 (the read-out). Lines L9 and L10 return a partition of , and each of its parts lies inside one component of .
Proof. The connected components of any graph on partition . By Lemma 2, every edge of has or , so and lie in the same component of . A path in therefore stays inside one component of , and so does each component of .
Lemma 4 (fixed points of inflation). Let be a probability vector with , that is for all . Then all the nonzero entries of are equal, so is uniform on its support , with value .
Proof. Let . For , dividing by gives , and since , , the same value for each in . The entries sum to 1, so the value is .
Lemma 5 (stopping). The loop of lines L3 to L8 ends.
Proof. Line L8 ends the loop when the change is at most or when the number of iterations reaches the fixed limit, and each iteration raises that number by 1.
Theorem. MCL(, , , , ) stops and returns a partition of in which each cluster lies inside one connected component of . Every matrix it computes is column stochastic, and if it stops at a matrix whose columns are fixed by inflation, each column is uniform on its support.
Proof. Lemma 5 gives termination, Lemma 3 the partition and the components, Lemma 1 the stochasticity and Lemma 4 the shape of the columns.
What is not proved here. That the loop reaches a change below for every input, and that the limit is doubly idempotent ( and ). Van Dongen studies these limits in the SIAM paper cited on the node page: he describes their structure as attractor systems with the vertices that flow to them, and shows that the clustering they define is stable under small perturbations, so that the iteration, once close to such a limit, keeps its clustering.
∎