IRV Prime
IRV Prime is a voting method variation of instant-runoff voting (classic IRV) developed by Marcos Boyington that selects a single winner using votes that express each voter's order of preference, like IRV. It is a generalization of Condorcet IRV that works when there is no Condorcet winner.
Classic IRV eliminates candidates which had a chance of winning the election while preserving candidates that will lose. IRV Prime finds every candidate which has a chance of winning (candidates in the Schwartz set) & eliminates candidates we know won't win (those losing in the final round).
Procedure
- Find the instant-runoff voting (IRV) winners using the classic/standard rounds, where the candidate with least votes is eliminated & their votes redistributed (call this set Winners)
- Find the candidates which satisfy the Schwartz set
- Re-run the IRV election once for each candidate in the Schwartz set, preserving that candidate as well as all candidates in Winners set; each candidate in the Schwartz set which defeats one of the Winners is added to the Winners-Prime set.
- Re-run the IRV election preserving all Winners and all Winners-Prime, proceeding with normal elimination when they are all that remain
Note that using the Schwartz set is simply to reduce the number of rounds; the results are the same if the set of all candidates or the Smith set is used instead.
Algorithm
GetWinner(NumWinners, PrefSchedule) { // Step 1: Classic IRV, find classic winners RemainingCandidates = PrefSchedule while (RemainingCandidates.Length > NumWinners) { RemainingCandidates = RemainingCandidates.EliminateLeast() } Winners = RemainingCandidates.TopCandidates(NumWinners) // Step 2: Build round where only candidates remaining are // classic winners & schwartz set PrefMatrix = getPreferenceMatrix(PrefSchedule) SchwartzSet = getSchwartz(PrefMatrix) Keepers = union(Winners, SchwartzSet) PrimeRound = PrefSchedule.EliminateAllExcept(Keepers) // Step 3: Find candidates who can win against classic winners WinnersPrime = {} for (S in SchwartzSet) { Keepers = union(S, Winners) PossibleWinner = PrimeRound.EliminateAllExcept(Keepers) WinnersPrime = union(WinnersPrime, PossibleWinner.TopCandidates(1)) } // Step 4: Run final round from prime round eliminating all who // lose against classic winners RemainingCandidates = PrimeRound.EliminateAllExcept(union(Winners, WinnersPrime)) while (RemainingCandidates.Length > NumWinners) { RemainingCandidates = RemainingCandidates.EliminateLeast() } return RemainingCandidates.TopCandidates(NumWinners) }
Proof of failing later-no-harm
Consider the following votes:
102 A 101 B 100 C 5 A>B>C 5 B>C>A 5 C>A>B
A wins IRV (after C is eliminated)
The Schwarz set is {ABC}
A wins AB. C wins AC. So, WinnersPrime is {AC}.
C wins {AC}
Thus, C is overall winner.
....
Now, some C voters add a later preference:
102 A 101 B 100 C>B 5 A>B>C 5 B>C>A 5 C>A>B
B wins IRV (after C is eliminated). The Schwarz set is B. So B wins overall. This violates later-no-harm.
An example
Imagine the following vote preferences:
Preference | Number of Votes |
---|---|
L, CR | 47 |
R, CR | 39 |
R | 5 |
CR, R | 5 |
Resulting in the following preference matrix:
Candidate Preference | R | CR | L |
---|---|---|---|
R over | 39 | 45 | |
CR over | 52 | 44 | |
L over | 47 | 47 |
In instant-runoff voting, R is elected as CR is eliminated:
Candidate | Votes |
---|---|
R | 49 |
L | 47 |
In RCV Prime, because L does not end up in Winners-Prime but CR does, the final round instead looks like:
Candidate | Votes |
---|---|
CR | 52 |
R | 49 |
And CR wins with a larger majority than the candidate that would win with IRV
Strategy
Voters are left with only a single honest rank strategy to best serve their favorite candidate while minimizing the possibility of getting a less preferred candidate:
1-3) Favorite candidates 4) Favorite frontrunner (if not already covered in 1-3) 5) Least-hated who is a frontrunner with opposing views
This voting strategy guarantees that a voter's favorite candidate will win if they are preferred by the largest number of voters; it also guarantees that if those candidates cannot win (do not have the largest number of voters), that a preferred candidate will win as long as they have the largest number of voters.
Comparison to cardinal systems
- See also: Left, Center, Right
Cardinal methods always pick the utilitarian winner (B in the example below) even in theoretical scenarios where that candidate is never preferred:
Preference | Number of Votes |
---|---|
Group 1 (C > B > A) | N |
Group 2 (A > B > C) | N + 1 |
In this theoretical example, IRV Prime would pick A. In practice, however, a non-0 percentage of voters will rank B first. As long as C and B voters combined have more voters, the method will pick the utilitarian winner since it is a Condorcet method.