TTR-IRV - Fastest way to count Condorcet?

The way it’d work is that you’d rank the candidates, and then you’d find the majority preference between the two candidates with the most first-choice votes, and eliminate the loser and repeat until you have one candidate left. It’s BTR-IRV but focusing on the candidates with more votes first, and its cycle resolution seems maybe too random to be gamed. Are these two methods the fastest ways out there to count Condorcet, and/or easy to explain to voters? Preferably this would be run with equal-ranking allowed.

So if I’m a voter, clearly I want my preferred candidate to avoid getting into runoffs, which are just chances to be eliminated. So if I can, I’d like to avoid giving my candidate a first preference. However, since pairwise outcomes determine elimination, I still need my candidate to have good pairwise results, and particularly to win as often as possible. Thus, I don’t want to hurt their pairwise results against opponents I am not sure they will beat. So I want to preference some ultraweak candidate above my favorite, then support my favorite. I can do this by writing in some joke name for my first choice, like “Mickey Mouse”. Preferably, I use a unique joke name so that my joke write-in is eliminated as late as possible.

1 Like

Once I do this, I can use burial to try to knock out an opponent who leads my preferred candidate pairwise.
With honest preferences:
33: A>B>C
33: B>A>C
33: C>B>A
B is the Condorcet Winner.

With burying + “Mickey Mouse” strategy
11: Mickey Mouse>A>C>B
11: Jesus H. Christ>A>C>B
11: George Washington>A>C>B
33: B>A>C
33: C>B>A

B and C have the most first choice votes. Due to burying, C knocks out B. Now A receives the first choice votes of the B supporters, meaning that A is now exposed to runoffs, but it doesn’t matter, because B was the only candidate whom A loses a runoff to (including the write-ins. A wins.

Can’t the C voters equally rank B as 1st choice to avoid this outcome? It’d be 33 C = 33 B in the first round, and presumably B goes forth to beat A. It doesn’t seem like much to ask a weak minority to have to do some Approval-style strategic voting, especially since they’ll be noticing other groups doing even more bizarre stuff.

Also, electing A doesn’t seem so terrible, since they have 1st or 2nd choice support from 2/3rds of the voters.

Would randomly picking any two candidates for a pairwise elimination reduce the viability of the strategy you mentioned? It’d definitely be faster to count, since there’s no need to check who has the most first-choice votes (although that still might be useful to end the counting early if anyone has a majority of 1st choice votes.)

Also, I figure the easiest way to handle write-in candidates in Condorcet is to disqualify them all if not enough ballots ranked a write-in candidate, or didn’t rank the same one.

This “Random Pairwise Elimination” method is non-deterministic with Condorcet cycles, though I believe it guarantees a Smith Set winner, and the non-deterministic nature could very well increase strategy resistance.

Another thing to mention is that pairwise eliminations can randomly eliminate CWs who tied with someone else. Maybe you could avoid eliminating the tied candidates and keep going until you have to eliminate one to get a winner?

It would speed up vote-counting even further to stick with the winner of previous pairwise eliminations and randomly choose one candidate to face them, since presumably fewer ballots need to be shuffled around when one of the candidates remains constant, and anyways someone who wins a few matchups is more likely to win more than a random uneliminated candidate.

This method could be summed up as “Pick any two candidates and eliminate the one ranked higher by fewer voters. Repeat until only (# of winners) candidates remain.”

  1. Force your candidate into the Smith set through burying.
  2. Clones

What could be the worst possible result of this strategy (how bad could the strategy-imposed winner potentially be)?

Also, there now is actually a backfire risk to that strategy, since if B eliminates A but loses to C because of A voters’ burying, they get a worse result. Cloning C helps somewhat, but the C voters might not want to go along with that. This is actually a fascinating example of a randomized lottery where a voter has to add up their cardinal utilities to decide what to do, in an ordinal method - with the caveat that they might emphasize avoiding a worst-case scenario.

I’m actually not sure now if this method guarantees a Smith Set winner, since it’s maybe too random to do so.

Actually, I think any pairwise elimination method can potentially elect a candidate who loses all but one of their pairwise matchups in a Condorcet cycle. The way to get around this might be some simple “batch elimination” step where any candidates unranked or ranked lowest on a majority of ballots are disqualified or some such.

Your method can fail in an extremely dramatic way.

34 A>B>C>D
33 B>C>D>A
33 C>D>A>B

We randomly compare B and C. C is eliminated.
We randomly compare B and A. B is eliminated.
We compare A and D. A is eliminated.
D wins.
Everyone prefers C over D.


I wonder if it’d be possible, once only one candidate is remaining, to determine whether any other candidate can beat them, and if so, maybe who has the largest victory margin or some such to decide who among them should win. This does run into the issue that if a very weak candidate is the only one remaining, it’ll essentially be random as to who has the largest victory against them. I think a good strategy would actually be to have two clones to ensure that one of the clones has a 100% victory over the other in the event that either is the last candidate remaining, though perhaps voters would have varying preferences between the clones that weakens the effect, so you’d want to have one clearly superior clone among the pair.

I’m also starting to wonder if it’s possible to look at previous pairwise eliminations somehow i.e. since A eliminated B, maybe it’s sensible to do something recursive which checks if D can beat B too, just to ensure he truly is a better candidate than A. The issue with this approach is that the method just becomes a full-blown Condorcet method.

Maybe it’s most sensible to just use Random Pairwise Elimination to find out who’s most likely to be the Condorcet winner, check if they truly are a Condorcet winner using pairwise comparisons, and if they’re not, then run a different method. I’m guessing that saves vote-counting time in a majority of cases, especially because you still record the pairwise matchups between eliminated candidates and can use that if you have to do a full-blown Condorcet check.

All of this is probably very moot if the poll workers/vote-counters have a sense of who may be most likely to win the Condorcet election, since they can skip to doing a pairwise count for that candidate and then any other likely viables first. Perhaps they can use RPE if all of the likely viables fail to be CWs.

has a name: Minimax Condorcet

At this point it is easier to just run another method already.

As an example of how RPE makes counting easier, take the Wikipedia example where 42% of voters put Memphis as their 1st choice, 26% Nashville, 15% Chattanooga, 17% Knoxville.

Randomly comparing Chattanooga and Nashville, Nashville prevails 68 to 32.
Memphis v. Knoxville, Knoxville prevails 58 to 42.
Nashville v. Knoxville, Nashville prevails 68 to 32. Nashville is now the only remaining candidate.

Checking the only so-far unchecked pairwise matchup for Nashville, Nashville v. Memphis, Nashville prevails 58 to 42, and is a Condorcet winner. This only required 4 pairwise checks, whereas doing another method would’ve potentially required more (i.e. if you checked Chattanooga v. Knoxville, Chattanooga v. Memphis, and then Chattanooga v. Nashville, only then would you realize Chattanooga couldn’t be the CW, and you’d have to do several more checks to find out Nashville was.)

In the event of a Condorcet cycle, as long as you recorded the results of all the checked RPE matchups, you can just skip checking those again when you’re doing the complete analysis of all matchups. So I’m guessing this may be the fastest way to count Condorcet.

Empirically, the candidates with the most 1st choice votes tend to be CWs, so maybe it’s better to start by checking whether they’re CWs, otherwise you could start doing RPEs. The other thing is that pairwise eliminations can eliminate weak Condorcet winners, so maybe if the final remaining candidate isn’t a CW, it’d be a good idea to prioritize checking a candidate who had a tie and was randomly eliminated in a previous RPE first for whether they’re the CW before moving on to other candidates.

I think the best way to sum it up is to try TTR-IRV to identify the likely CW, but in the few instances where there’s a cycle, collect any necessary additional pairwise data to run any cycle resolution method (or stick with the TTR-IRV winner despite reduced strategy resistance.) You still could end up with someone who loses all but one pairwise match up under TTR-IRV in a Condorcet cycle though, so best to just use it as a vote-counting trick.

The pairwise matrix can be determined in a single pass through the ballots, and it can be “counted in precincts”. Any implementation of RPE that saved on the total number of pairwise checks would require that either the votes are assembled centrally, or the necessary pairwise checks are communicated from a central authority to the precincts, and that the results of the pairwise checks are communicated from the precincts to the central authority. The next pairwise check would have to wait until the central authority had determined the winner of the previous matchup, requiring the ballots to be counted multiple times (unless the precincts just decide to count all possible matchups at once, which is probably easier than running multiple counts, but won’t save on any pairwise checks).

Considering most jurisdictions will probably want to have an idea of how well the losers performed, I think RPEs make the most sense for small hand-counted elections.

My Condorset codes starts at line 409 – Many browsers will show the source code with Cntl/J. My ballots are a 2-D array: one entry per ballot and each ballot is an array of all votes for every candidate. Those contain the name (subscript of the candidate’s array) and that candidates rank (or place) on that ballot.
When you choose Condorset on the radio button, that is the only thing the page does. RCV Page

I found out that “Sequential comparison” seems to be the name in the literature for pairwise eliminations.

Seeing as Condorcet PR methods always elect the Condorcet-winning winner set, it seems that a way to speed up their computation when a CW winner set exists is to do pairwise eliminations of winner sets until one remains, and then check that the remaining one wins all pairwise matchups. If there’s a Smith set of winner sets, most cycle resolution methods will choose from it, so finding that could be optimized for in conjunction or instead.

It should be mentioned that pairwise elimination can eliminate weak Condorcet winners, so if you had to randomly eliminate candidates because of a tie, and you’ve eliminated all but one candidate and that one’s not the CW, it might be worth first checking whether the tie-eliminated candidates are weak CWs.

It seems like using RPEs might help in quickly identifying the Smith Set algorithmically, since the Smith Set is guaranteed to be some equally large or smaller subset of the set of candidates that beat the RPE winner as well as the RPE winner themselves.