Skip to main content

Module consensus

Module consensus 

Source
Expand description

DeGroot consensus over the ballots on one issue.

A tally counts. Counting is the right answer when every voter is worth the same, and agents are not: a maintainer, a reviewer that has been wrong twice, and a fresh worker all cast one ballot each, and a plurality reports them as three equal opinions. vote already refuses to call a plurality agreement, but it has nothing to say about whose agreement it is.

DeGroot’s model (1974) is the standard answer and is one line: each agent holds an opinion, listens to the agents it trusts, and replaces its opinion with the weighted average of theirs. Written as a matrix, x(t+1) = W x(t) with W row-stochastic. Where that iteration settles is the group’s position, and it is not the mean unless the trust is symmetric.

Three things come out of it that a count cannot give:

  • the limit itself, which weights each ballot by how much the group actually listens to the agent that cast it;
  • social power, the left Perron vector π of W, which says how much each agent moved the result: the limit is πᵀ x(0);
  • the failure to reach one. W converges to agreement only when the trust graph has a single closed group every agent can reach (Berger, 1981). Two teams that cite only each other never converge, and that is a fact about the team worth reporting rather than a number worth averaging.

The opinion here is a distribution over the choices already on the ballots, so nothing new has to be cast: an agent that voted ship starts at one on ship, and the limit is how much of the group’s weight ends up on each option. With no trust configured every agent listens to every other equally, W is doubly stochastic, π is uniform, and the consensus is the tally as a fraction. Configuration only ever moves weight away from that.

M. H. DeGroot, “Reaching a Consensus”, J. Am. Stat. Assoc. 69(345), 1974.

R. A. Berger, “A necessary and sufficient condition for reaching a consensus using DeGroot’s method”, J. Am. Stat. Assoc. 76(374), 1981.

Structs§

AgentLimit
One agent’s row of the result.
Outcome
The result of running DeGroot over one issue’s ballots.

Enums§

Settling
Whether the iteration settled, and on what.
TrustSource
Where the influence matrix came from, for a reader wondering why a result looks the way it does.

Functions§

of_issue
The consensus on one issue of a tracker, under that tracker’s trust rows.
of_plan
What each child of plan settled on.
settle
Settle ballots under cfg.
tally
The plain count, for the line that shows what the weighting changed.