two communities (or clusters) such that each community induces a good expander
and the cut between the two communities has sparsity $1/poly\log n$, recovers
the two communities.
More precisely, upon running the protocol, every node assigns itself a
binary label of $m= \Theta(\log n)$ bits, so that with high probability, except
for a small number of outlier nodes, nodes in the same community have labels of
Hamming distance $o(m)$, while nodes in different communities have labels of
Hamming distance at least $m/2 -o(m)$. We refer to such an outcome as a {\em
community-sensitive labeling} of the graph.
The algorithm uses $\Theta(\log^2 n)$ local memory and converges after
each node makes $\Theta(\log^2 n)$ steps of local work. In an asynchronous
model in which each node is activated by an independent Poisson clock with
average one, the protocol converges with high probability in time
$\Theta(\log^2 n)$.
Our algorithm and its analysis work for the \emph{(random) population
protocol} model, where anonymous nodes do not share any global clock (the
model is asynchronous) and communication takes place over one single
(random) edge per round. We believe that this is the first provably-effective
protocols for community detection that works in this model.