[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