-------------------------------
Credit for the basic idea of this method goes to Chris Benham. The following is intended to be a description of his proposed method, written in the form of an algorithm.
Working through examples raised some issues of interpretation; after clarification from Chris Benham I have corrected the algorithm. Call this Generalized Bucklin 2.3. DISCLAIMER: this is my translation of his descriptions of his method; any errors in translation or interpretation are my own.
Voters submit ranked ballots, listing candidates in rank order, most-preferred as rank 1, next-most-preferred as rank 2, and so forth, equal preferences ok. The ballot will offer space for as many ranks as there are candidates. The voter may list as many candidates, or as few, as they wish, but only one vote per candidate. The voter may assign as many candidates as they wish to any particular rank, but ranks must begin with 1 and proceed through 2, 3, and so forth, with no ranks skipped between candidates. This is the sort of ballot used in a single-seat method known as "Majority Choice Approval", except that the number of ranks is not arbitrarily limited.
Sort the ballots into groups with identical rankings. Tally each group.
(1) Set Candidate tallies to zero. Calculate the Winning Threshold (Do subroutine Q).
(2) Count the ballots, each ballot being added to the tally of the highest-ranked candidate still in the race. Equal preferences are counted in the style of Approval voting, as a full vote for each candidate.
(3) Does any candidate's tally exceed the WT?
If so, go to (4).
If not, count voter's next-ranked choices, and add these counts to the candidate's tallies. (If there is no candidate ranked next, the ballot counts as an abstention. If there are no ballots with anyone ranked next, go to (2).) Go to (3). (4) Mark the (so far unmarked) candidate with the highest tally as a "winner", but do not remove them from the contest yet. (If there is a tie, do subroutine T.)
(5) Are there still more empty seats than "winners"?
If not, Award seats to all candidates marked as "winners". You are finished.
If so, Reduce the ballots contributing to the tally of the most recently marked "winner". (Do subroutine R.) Because a ballot may contribute a vote to more than one candidate, some of the tallies of other candidates may also have been reduced. Recount the tallies of the remaining candidates.
Does any OTHER candidate, besides the one(s) already marked as "winners", now exceed the WT? If so, go to (4).
If not, Award seats to all candidates marked as "winners", and remove them from the race. Go to (1).
Subroutine Q: Calculate the Winning Threshold WT. Sum the tallies of the groups with identical rankings to find the total number of ballots. Ballots in which all listed candidates have already been seated and removed from the race are NOT to be counted. Count S = the seats yet to be matched with "winners". Droop quota DQ = (#ballots)/(S+1) ,
Set WT = DQ.
Subroutine T: Breaking ties. Look at the ballots contributing to the tally of each of the tied candidates. Whichever candidate has the greater number of first-rank votes wins the tie. If they are tied in first-rank votes, then whichever has the greater number of second-rank votes wins the tie, and so forth. If they are tied all the way down, flip a coin.
Subroutine R: Reducing ballots after a candidate wins a seat. Count the ballots that contributed to the victory of the candidate = CB. (These should already be sorted into groups with identical rankings, as mentioned above.) Multiply the tally of each contributing group by R= (CB-WT)/(CB). If R is negative, set the tally of each contributing group to zero.
-----------------------------------------
EXAMPLE CASE 1:
(JBH) For reference, I will copy: From Adam Tarr:
the nightmare scenario of IRV:
10% FarRight>Right>Centrist>Left>FarLeft [call this group "A""- JBH] 10% Right>FarRight>Centrist>Left>FarLeft [B] 15% Right>Centrist>FarRight>Left>FarLeft [C] 16% Centrist>Right>Left>FarRight>FarLeft [D] 15% Centrist>Left>Right>FarLeft>FarRight [E] 13% Left>Centrist>FarLeft>Right>FarRight [F] 11% Left>FarLeft>Centrist>Right>FarRight [G] 10% FarLeft>Left>Centrist>Right>FarRight [H]
Centrist has the most first place votes, the most second place votes, and the most third place votes. Centrist is the only candidate who does not appear fourth or fifth on any ballot. Centrist would win in a landslide over any other candidate in a two-way race. Centrist is quite obviously the popular choice by ANY reasonable measure.
In Condorcet, plurality, top two runoff, or really any reasonable method, Centrist wins. But in IRV, Centrist is eliminated before the final runoff, and Right wins in a squeaker.
Consider what would result from using Generalized Bucklin 2.3 with this example. Assume 1000 voters. #seats = 1, Droop quota = 500
First Round: 100 FarRight, 250 Right, 310 Centrist, 240 Left, 100 FarLeft. Nobody exceeds Winning Threshold with first-rank votes. Second-rank votes added to the tallies:
200 FarRight, 510 Right, 590 Centrist, 490 Left, 210 FarLeft. Two candidates exceed WT, seat awarded to candidate with the largest tally.
Centrist wins. ---------------------------
Assume the same set of voters, with four seats to be filled instead of one. 1000 ballots, S=4, WT= DQ= 200
First Round: First-rank votes tallied. Three candidates exceed the WT, Centrist (with 310 votes) marked as a "winner". Tallies of groups D and E are multiplied by R= (310-200)/(310) = 0.3548387, so now
A = 100 ballots B= 100 C= 150 D= 56.774192 E= 53.225807 F= 130 G= 110 H= 100
Loop back to (4). Right (with 250 votes) marked as a "winner". Tallies of groups B and C are multiplied by R= (250-200)/(250) = 0.2, so now
A= 100 B= 20 C= 30 D= 56.774192 E= 53.225807 F= 130 G= 110 H= 100
Loop back to (4). Left (with 240 votes) now marked as a "winner". Tallies of groups F and G are multiplied by (240-200)/(240)= 0.1666... , so now
A= 100 B= 20 C= 30 D= 56.774192 E= 53.225807 F= 21.6666... G= 18.3333... H= 100
No candidates' tallies presently exceed WT.
Proceeding by looping back to (1).
Centrist, Right, and Left are seated and removed from the race. Tallies for FarLeft and FarRight are reset to zero. Ballots total 400, Seats remaining = 1, Droop Quota= 200. Highest-rank votes are tallied.
FarRight gets 100 from A, 20 from B, 30 from C, 56.774192 from D. Total= 206.774192
FarLeft gets 53.225807 from E, 21.6666 from F, 18.3333 from G, 100 from H. Total= 193.2257
FarRight wins the last seat.
-----------------------------
The above is originally an IRV example, and voters filled out their ballots with complete rankings, of ALL candidates, even their last choice. Under GB rules, they probably wouldn't do that. Following are the ballots I guess the same voters would submit under GB:
A 10% (FR) > (R)
B 10% (R, FR) > (C)
C 15% (R, C) > (FR)
D 16% (C, R) > (L)
E 15% (C, L) > (R)
F 13% (L, C) > (FL)
G 11% (L, FL) > (C)
H 10% (FL) > (L)
First Round: All five candidates exceed the WT. Skipping to the interesting part: Centrist, Right, and Left are marked as "winners". After each designation we did subroutine R, which now leaves
A= 100 B= 34.40799 C= 34.116394 D= 36.390819 E= 31.949772 F= 27.689802
G= 35.445135 H= 100
FarRight now has 134.4, FarLeft has 135.4, Both have now fallen below the WT, so Centrist, Right, and Left are seated and removed from the race. We loop back to (1). Tallies for FarLeft and FarRight are reset to zero. Ballots for groups D and E are exhausted. Ballots now total 331.65931, Seats remaining = 1, Droop Quota= 165.82965. Highest-rank votes are tallied. FarRight gets 168.52438, FarLeft gets 163.13493,
FarRight wins the last seat.
SO: In this example, GB 2.3 seems to perform OK as a method of PR. I invite suggestions for harder cases.
--
----------------------------------
John B. Hodges, jbhodges@ @usit.net
Do Justice, Love Mercy, and Be Irreverent.
----
Election-methods mailing list - see http://electorama.com/em for list info
