[EM] STV method based on previously introduced clone-proof Condorcet single winner method

Ross Hyman rahyman at sbcglobal.net
Thu Apr 4 16:48:34 PDT 2013


Here is a tentative proposal for an STV method based on an extension to multiple seats of the clone-proof Condorcet method I introduced earlier.  It is based on several ideas from Schulze STV.  

Start with a variant way of defining the previous single winner method that is exactly equivalent if each ballot is complete:
V(B,A) is the number of ballots that rank B above A.
V(B) is the number of ballots that rank B at the top.
S(A) = Sum_B V(B,A) V(B) is the score for candidate A.
Eliminate the candidate with highest score. Recalculate V(B)’s.  Repeat until one candidate remains.  The method is clone proof and for complete ballots it will elect a Condorcet winner if there is one.

This method is generalizable to proportional elections for N winners by replacing the sum over candidates, B, with a sum over all of the N-candidate sets, Beta:
First, ballots are proportionally completed like in Schulze STV.
Scores are calculated for each candidate via:
S(A) = Sum_Beta V(Beta,A) V(Beta,not Beta).
Eliminate the candidate with highest score.  Recalculate V(Beta, not Beta).  (The V(Beta,A)'s do not need to be recalculated).  Repeat until N candidates remain.  

V(Beta,A) is defined as in Schulze STV and is determined by a proportional approval voting method where candidates in Beta that are ranked above A on a ballot are approved.  V(Beta, not Beta) is determined similarly where candidates in Beta that are ranked above all candidates not in Beta are approved.  

Here is an alternative scaling method for calculating V(Beta,A) (which I introduced in an earlier post for proportional approval voting):
1.	Each ballot approves those candidates from candidate set Beta that are ranked higher than candidate A.
2.	V_i,C is the vote from ballot i for candidate C. Initially the vote value of each ballot is distributed equally amongst each of its approved candidates. 
3.	 The total vote for each candidate C, V_C = sum_i V_i,C is calculated.  V_Smallest is the vote total of the candidate with the smallest vote total.  
4.	V_i,C is reduced to V_i,C V_smallest/V_C.
5.	 The reduced total vote on each ballot i, W_i = sum_C V_i,C is calculated.
6.	V_I,C is increased to V_i,C V_i/W_i.
7.	Go to step 3.
The count is repeated until V_smallest has converged.  V(Beta,A) is the converged value of V_smallest.
V(Beta, not Beta) is calculated similarly, except that each ballot approves those candidates from candidate set Beta that are ranked higher than every candidate not in Beta.









More information about the Election-Methods mailing list