[EM] A more understandable description of the Bucklin-Range method
Kristofer Munsterhjelm
km_elmet at t-online.de
Fri Nov 11 06:49:33 PST 2016
A long time ago (in 2015), I wrote a sketch of a Bucklinesque
multiwinner method, but it might have been a bit complex since it used
sums over max functions.
Here's a simpler version, although tie breaking details could still be
fairly difficult. Thus it's still not fully a method, and would have to
be improved to work well in practice as well. If anyone could help with
that, it'd be nice :-) There are plenty of devils in the details.
As before, the method has two parts which we might call an inner and an
outer part. The inner part takes the voting data as well as a threshold,
and outputs winners along with their weights. The outer part consists of
finding the least value for the threshold that gives the desired number
of winners from the inner part.
The inner part goes like this:
======================================================================
We start with a list of unassigned voters, equal to all the voters, and
a list of unelected candidates. We also have a list of elected
candidates and, for each candidate, a list of confirmed supporters of
that candidate: these lists start empty.
We also start with a bar, call it b, equal to the max rating found on
any ballot. (I assume the minimum rating is 0.)
1. Until the unassigned voters' list is empty or b < 0:
1.1. For each unelected candidate X:
Call an unassigned voter "a potential supporter of X" if he
rates X higher than the bar.
Let a potential supporter's surplus be how much more highly he
rates the candidate than the bar; i.e. his rating of X, minus b.
Range version:
Let X's score be the sum of potential supporters'
surpluses.
Bucklin version:
Let X's score be the number of potential supporters.
If X's score is greater than or equal to the threshold,
consider X electable.
1.2. Elect one of the electable candidates found above, if any. If there
is a tie, choose one of the candidates with greatest score. (Some
additional tiebreaks or more sophisticated logic could be useful here.)
1.3. For each elected candidate Y:
Move all potential supporters of Y from the unassigned voters
list to Y's assigned voters list. (Note: this may remove some
potential supporters from other candidates, so order matters
here, and so there should be some kind of tiebreak here as
well).
1.4. If no voters were reassigned anywhere:
Lower the bar by some very slight amount, QLTD style.
1.5. Loop.
2. Return the elected candidates as winners. Their weights are equal to
the number of assigned voters (confirmed supporters) they have.
======================================================================
Intuitively, we have voters who have a certain reluctance to elect a new
candidate, but will flock to already elected candidates if no additional
support shows up for their higher preferences. The method thus tends
towards fewer, and more centrist winners with higher thresholds, since
there has to be greater support before a candidate is elected.
The "find the least threshold" bit is annoying, as is not knowing how
far one can decrement the bar each time. Getting rid of either would
make the method better.
More information about the Election-Methods
mailing list