Skip to content

Instantly share code, notes, and snippets.

@jrmoserbaltimore
Last active July 26, 2020 18:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jrmoserbaltimore/dc59428216ceb7b645a32958c6a9ef6f to your computer and use it in GitHub Desktop.
Save jrmoserbaltimore/dc59428216ceb7b645a32958c6a9ef6f to your computer and use it in GitHub Desktop.

Ordered preferences X≻A → if X is not a candidate, voter votes for A

14: Alex≻Bobbie≻Chris≻Dane  \
12: Bobbie≻Alex≻Chris≻Dane   | ← 51% majority, doesn't count.
25: Chris≻Bobbie≻Alex≻Dane  /
49: Dane≻Chris≻Bobbie≻Alex  ← Most votes, wins plurality

Instant runoff voting:

14: Alex≻Bobbie≻Chris≻Dane      ← 26% after Bobbie eliminated, 51% after Chris eliminated
12: Bobbie≻Alex≻Chris≻Dane  ← Eliminated first, votes to Alex
25: Chris≻Bobbie≻Alex≻Dane    ← Eliminated second (25 to 26), votes to Alex
49: Dane≻Chris≻Bobbie≻Alex  ← Too many voting

Alex wins.

Problem: Eliminate Dane and Chris first. Both of these go to Bobbie

14: Alex≻Bobbie ← 12%
12: Bobbie≻Alex ← 12+25+49 = 86%
25: -----≻Bobbie≻Alex≻Dane
49: ----≻-----≻Bobbie≻Alex

Instant runoff elects Alex.

Closer look:

14: Alex≻Bobbie≻Chris≻Dane  \        \ ←26 vs 51 = 51% of the 51%.
12: Bobbie≻Alex≻Chris≻Dane   | ← 51% /
25: Chris≻Bobbie≻Alex≻Dane  /
49: Dane≻Chris≻Bobbie≻Alex  ← Too many voting

The 51% mutual majority controls the election. Within that is another mutual majority (Alex/Bobbie). All other votes don't matter.

Modification:

14: Alex≻Bobbie≻Chris≻Dane ← 26%, but now Chris has 27%
12: Bobbie≻Alex≻Chris≻Dane ← Eliminated, goes to Alex
25: Chris≻Bobbie≻Alex≻Dane ← 25% + 2% from Dane voters = 27%
2: Dane≻Chris≻Bobbie≻Alex  ← Most voters stayed home. Dane eliminated first.

Dane voters, by not voting, had Dane eliminated before Chris. Chris was their second choice, so got their votes. By not voting, Dane voters had more voting power (?!)

Condrcet:

14: Alex≻Bobbie≻Chris≻Dane
12: Bobbie≻Alex≻Chris≻Dane
25: Chris≻Bobbie≻Alex≻Dane \ ← Add these: 25+49 = 74%
49: Dane≻Chris≻Bobbie≻Alex /

14: Alex≻Bobbie≻Chris≻Dane \
12: Bobbie≻Alex≻Chris≻Dane  | ← Add these: 14+12+25 = 51%
25: Chris≻Bobbie≻Alex≻Dane /
49: Dane≻Chris≻Bobbie≻Alex

Chris vs Bobbie: 74% vote Chris. Chris vs. Alex: 74% vote Chris. Chris vs. Dane: 51% vote Chris.

One more test:

11: Alex≻Bobbie≻Chris≻Dane ← Losers. 3 don't come out to vote \
12: Bobbie≻Alex≻Chris≻Dane                                     | ← 49.5%
25: Chris≻Bobbie≻Alex≻Dane                                    /
49: Dane≻Chris≻Bobbie≻Alex                                       ← 50.5%

Dane wins if 3 Alex voters don't show up (Alex voters prefer Chris to Dane).

Contrast with IRV, where Alex wins if TOO MANY Dane voters show up (Dane voters prefer Chris to Alex).

Every vote matters equally under Condorcet: the candidate with all majorities wins.

Condorcet shares a flaw in all ranked elections: if there are too many candidates and voters don't rank sufficiently far down the ballot, voters form islands. The election ranks the winner of the largest faction (plurality again).

Single Transferable Vote generally shares IRV's flaw, but contained: select 7 and the deviation is within 1/7 a span of similar candidates, selected by roughly 1/7 the voters. STV resists the island effect because voters sharing top ranks (sort of a mutual plurality) in different orders determine one selection, and then lose voting power—they retain only as much in proportion to their excess beyond the quota. Further ranking doesn't matter: if they're near-quota, they lose most voting power; and if they're a huge group around a popular candidate, they lose LESS of their voting power and then bolster another candidate, and THEN lose the rest.

STV to nominate 7 as a nonpartisan primary primes a Condorcet election with diverse candidates fit proportionally to the voters's ideals and in small enough number that voters generally overlap the natural Condorcet winner, avoiding distorted outcomes and intransitive results.

Party primary is deeply, deeply flawed: if we consider Alex/Bobbie/Chris as of a party using Condorcet as a party primary, the party nominates Bobbie, eliminating Chris; then the general election is between Bobbie and Dane. Party primary excludes voters from each separate nominating election, such that subsets of voters decide for whom other voters shall not vote. This allows systems like Plurality to nominate far-fringe candidates so long as they have enough power in the party (especially since moderates tend to vote less in party primaries).

STV primary + Condorcet general election ensures every vote has equal impact. It eliminates the mass disenfranchisement of popular vote systems by determining consensus among all majorities intersecting on a single candidate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment