Finite-time consensus in a compromise process
P. L. Krapivsky, A. Yu. Plakhov
TL;DR
This work analyzes finite-time consensus in a binary compromise process where two randomly chosen agents replace their opinions by their average. It proves that finite-time consensus occurs if and only if the number of agents satisfies $N=2^k$, and the minimal time to consensus is $m_k = k\,2^{k-1}$; for non-power-of-two $N$ consensus is impossible under general-position initial conditions. The paper provides a detailed treatment of the $N=4$ case, obtaining the exact consensus-time distribution, cumulants, and an exponential tail, and extends the analysis to the large-$N$ regime where configurations are dominated by singlets and duplets with a precise recurrence for their distribution. It concludes with a discussion of extensions to arbitrary connected graphs, proposing a conjecture that the $k$-dimensional cube is the minimal subgraph supporting finite-time consensus and outlining future research directions in graph-based variants. Overall, the results give a sharp, quantitative picture of when and how fast consensus can emerge in this averaging dynamics and set the stage for broader network generalizations.
Abstract
A compromise process describes the evolution of opinions through binary interactions. Opinions are real numbers, and at each step, two randomly selected agents reach a compromise by averaging their pre-interaction opinions. We prove that if the number $N$ of agents is a power of two, then consensus emerges after a finite number of compromise events with probability one; otherwise, consensus cannot be reached in a finite number of steps, provided the initial opinions are in a general position. The number of steps required to reach consensus is random for $N=2^k$ with $k\geq 2$. We prove that the smallest number of steps is $k\cdot 2^{k-1}$ when the initial opinions are in a general position. For $N=4$, we determine the distribution of the number of steps. In particular, we show that it has a purely exponential tail and compute all cumulants.
