[EM] Generalized Bucklin PR 2.3, basic PR examples

John B. Hodges jbhodges at usit.net
Sat Aug 23 11:15:08 PDT 2003


This post is to put on record a corrected version, with some 
examples, to demonstrate its ability to do elementary PR.
-------------------------------
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.



More information about the Election-Methods mailing list