[EM] Proportional Representation from Ratings Ballots
Raph Frank
raphfrk at gmail.com
Thu Nov 5 09:37:50 PST 2009
On Thu, Nov 5, 2009 at 1:37 PM, Brian Olson <bql at bolson.org> wrote:
> IRNR can be extended to proportional elections, and the algorithm goes like
> this:
>
> 0. Ballots accept ratings >=0 for all choices. Each choice gets a global
> 'weight' of 1.0
> 1. Sum up normalized weighted ratings ballots. Normalized means that ratings
> for choices a,b,c,d scaled so that sqrt(a^2 + b^2 + c^2 + d^2) == 1. Before
> normalization, each rating is multiplied by the global weight for the
> choice.
So, for each ballot
(w(a)*a)^2 + (w(b)*b)^2 + ... = 1
where w(a) = a's weight and a is the rating given to a by that voter?
Also, does rescaling also include adding a constant so that the worst
candidate is given a score of zero?
> 2. If some choices sum up over the quota, decrease the global weight for
> them such that they would sum up equal to the quota. Goto 1.
> 3. If not enough choices sum up equal to the quota, disqualify lowest sum
> choice. Set their weight to 0.0. (No vote will go to them but be
> redistributed at normalization to voter's other preferences.) Goto 1.
I don't think this is a PR method/
The idea should be that you consume some of your vote if a candidate
is elected. However, the squaring breaks that effect.
In the case of Meek's method (which is similar to this), the total
vote is constant. If I give 0.2 votes to an elected candidate, then I
can give at most 0.8 to any other candidate.
Anyway, I am not sure your method meets the Droop criterion, or at
least modified for ratings.
It should be possible for a group of voters numbering more than the
quota to guarantee that they get a seat.
For example (assuming 2 seats)
Party A (65 voters):
A1: 0.7
A2: 0.7
B: 0
Party B (35 voters)
A1: 0
A2: 0
B: 1
Round 1
A1: 45.5
A2: 45.5
B: 35
All 3 have exceeded the quota.
A1 or A2 will be elected and that will cause the 2nd unelected member
of that party to increase his vote since they exceeded the quota.
Thus after round 2, both A1 parties will be elected.
> I think it's a good method that will give good results. On the down side,
> it's kinda complicated, especially some of the implementation details of
> computing with floating point numbers and allowing for some small epsilon of
> roundoff error.
It seems of similar complexity to Meek. In principle, you could use a
maths library that stores the error.
If A's vote is between 45.1 and 45.2 and B's vote is 44.4 to 44.5,
then you can still say that A has won.
More information about the Election-Methods
mailing list