Algorithm Search⌘K

Proofs: Clique percolation method

These are the human proofs of Clique percolation method, at full length.

The clique percolation method outputs the k-clique communities full

This proof shows: correctness, termination.

Let GG be a simple undirected graph and k≥2k \ge 2. Let CC be the list of line L1, which holds each kk-clique of GG exactly once. A face of a kk-clique AA is a set A∖{x}A \setminus \{x\} with x∈Ax \in A, so AA has exactly kk faces, each of size k−1k - 1. Let ∼\sim be the equivalence relation on the cliques generated by adjacency, where AA and BB are adjacent when ∣A∩B∣=k−1|A \cap B| = k - 1.

Termination. The list CC is finite, each clique has kk faces, and each UNION and each lookup in HH ends. Line L8 runs over the finitely many classes. So the algorithm stops.

Lemma 1 (faces and adjacency). Two distinct kk-cliques AA and BB are adjacent if and only if they have a common face.

Proof. If ∣A∩B∣=k−1|A \cap B| = k - 1, let F=A∩BF = A \cap B. Then A=F∪{x}A = F \cup \{x\} for the one x∈A∖Bx \in A \setminus B, so F=A∖{x}F = A \setminus \{x\} is a face of AA, and in the same way a face of BB. Conversely, a common face FF has F⊆A∩BF \subseteq A \cap B, so ∣A∩B∣≥k−1|A \cap B| \ge k - 1, and A≠BA \ne B with ∣A∣=∣B∣=k|A| = |B| = k gives ∣A∩B∣≤k−1|A \cap B| \le k - 1. □\square

Write c≡c′c \equiv c' when the indices cc and c′c' are in the same set of the union-find at the end.

Lemma 2 (the union-find classes). For all indices c,c′c, c', c≡c′c \equiv c' if and only if C[c]∼C[c′]C[c] \sim C[c'].

Proof. Each union joins equivalent cliques. Line L7 calls UNION(c,H[F])(c, H[F]) only when FF is a face of C[c]C[c] and H[F]H[F] was stored for a clique with the face FF (line L7 stores H[F]←c′′H[F] \leftarrow c'' only for a face FF of C[c′′]C[c'']). The two indices differ, since a clique has distinct faces and cc is handled once, so by Lemma 1 the two cliques are adjacent. The relation ≡\equiv is the smallest equivalence that contains the pairs joined by UNION, and each such pair is in ∼\sim, which is an equivalence. So c≡c′c \equiv c' implies C[c]∼C[c′]C[c] \sim C[c'].

Adjacent cliques are joined. Let C[c]C[c] and C[c′]C[c'] be adjacent, with the common face FF by Lemma 1. The first index c0c_0 handled at line L4 among those whose clique has the face FF stores H[F]=c0H[F] = c_0, and H[F]H[F] never changes after that, since line L7 stores only for a face not in HH. Every later index with the face FF meets F∈HF \in H and is joined with c0c_0. So c≡c0≡c′c \equiv c_0 \equiv c'. Since ∼\sim is generated by adjacency and ≡\equiv is an equivalence, C[c]∼C[c′]C[c] \sim C[c'] implies c≡c′c \equiv c'. □\square

Theorem. CPM(G,k)(G, k) outputs, for each class Q\mathcal{Q} of ∼\sim, the set ⋃A∈QA\bigcup_{A \in \mathcal{Q}} A, once, and nothing else.

Proof. By Lemma 2, the map c↦C[c]c \mapsto C[c] sends the classes of the union-find onto the classes of ∼\sim, one to one, since CC lists each clique once. Line L8 visits each class QQ of the union-find once, and line L9 outputs ⋃c∈QC[c]\bigcup_{c \in Q} C[c], which is the union of the cliques of the matching class of ∼\sim. Every class of ∼\sim is the image of one class QQ, so every kk-clique community is output, and each output is one of them. ■\blacksquare

Back to Clique percolation method