[EM] Kristofer Munsterhjelm suggests multiwinner voting method

Kristofer Munsterhjelm km-elmet at broadpark.no
Tue Aug 18 22:40:47 PDT 2009


Warren Smith wrote:
> Kristofer Munsterhjelm:
> A possible reweighting-free method could work like this:
> 
> 1. Construct a social ordering based on Range ballots. Call this
> ordering (fixed from here on), X.
> 2. Count the input ballots, Plurality style
> 3. If a candidate is supported by more than a Droop quota:
> 3.1. Elect this candidate.
> 3.2. Eliminate the candidate from all ballots and from X.
> 3.3. Go to 2 unless we have the entire council.
> 4. If no candidate is supported by more than a Droop quota:
> 4.1. Eliminate the candidate which X ranks last, from all ballots and
> from X.
> 4.2. Go to 2.
> 
> --WDS:
> Seems to me, this method fails to be proportional.
> Let 51% of the voters and half the candidates be Democrat and 49% of
> the voters and other half of the candidates Republican.
> X then orders D1>D2>D3>...>Dn>R1>R2>...>Rn.
> Every eliminated candidate is republican.  Assuming the council size is <=n,
> we end up with 100% Democrat council, misrepresenting the 51-49
> population.

That's true. I thought that the elimination logic would force the method 
to be Droop proportional because at some point there's only one 
candidate left, and then any method that elects a candidate that has a 
Droop quota will elect the right candidate. However, in your example, 
there's always another candidate supported by more, so the only thing we 
accomplish is to have at least *one* candidate supported by a Droop 
quota - in your case, the first Democrat.

In more concrete terms:

399: DA > DB > DC > RA > RB > RC
397: RA > RB > RC > DA > DB > DC

3 to elect. Now the Droop quota is 199. The DPC says the Democrats 
should get 2 seats (being supported by more than 2 Droop quotas but less 
than 3), and that the Republicans should get at least one seat (397 
being barely less than two Droop quotas).

Could this version work, technically? Replace 3 by
3. "For any and all candidates supported by more than a Droop quota:"
Then the first round elects DA and RA. These are then eliminated, and 
the next round elects DB. I suppose there could be problems with 
something like:

2 Droop quotas + 1 support A > B > C
1 Droop quota + 1 supports D > E > F
1 Droop quota + 1 supports G > H > I

Then the method "should" elect A and B in one go, so that they get two 
while all the others get one. Otherwise:
First round: A, D, G, elected; whereas it should be A, B, someone else. 
But there has to be more than three seats for the above to be possible, 
so say there are four. Then first round elects A, D, G, and second 
elects B (because we go in order of greatest number of Plurality votes 
first), WWWWW.

So, to clarify, the rephrased 3 would be:

3a. Make an ordered list of all candidates that are supported by more 
than a Droop quota, having those supported by most voters first.
3b. Denote the number of seats left on the council, Q.
3b.1. Elect either the Q first voters on the list, or the entire list if 
there are less than Q members on it.
3b.2. If the former, we're now done.  Otherwise,
3b.3. Eliminate these candidates.
3b.4. Go to 2.

It would probably still not be proportional beyond the Droop 
proportionality criterion, though.

> It's an interesting question whether there can be a proportional
> multiwinner voting method
> without needing to use "reweighting"... but this is not it.  "Asset
> voting" works
>    http://rangevoting.org/Asset.html
> but it is "unconventional."

The kind of methods that Brian Olson calls "combinatoric" would be both 
proportional and not need reweighting, I think. Those involve 
determining a pairwise score for "council configuration A vs council 
configuration B" and then using a Condorcet method to determine the 
winner council. Schulze STV is such a method, although it doesn't use 
Condorcet plainly; it only has pairwise data on some council vs council 
"challenges", and AFAIK uses beatpaths to complete that.


More information about the Election-Methods mailing list