[EM] Sequential STV method
Ross Hyman
rahyman at sbcglobal.net
Fri Apr 5 09:46:32 PDT 2013
I think this will be the final version.
For sequential STV, as defined by Hill and Gazeley in Voting Matters Issue 20, a candidate set of N candidates should win if it is the only candidate set where “any set of N+1 candidates, consisting of those N and 1 more, will result in the election of those N when an STV election is performed.”
Here is a method that does that. If there is more than one such candidate set it will pick one of them as the winner. If no candidate set satisfies, it will still pick one winning set. (Except for ties.)
Candidate sets of N candidates are notated by Greek letters.
Define V(Alpha,B) by performing your favorite version of STV on a modified ballot set where all candidates have been removed from ballots except those in set Alpha that are ranked higher than B and returning the votes for the candidate in Alpha with the fewest votes.
Define V(Alpha) by performing your favorite version of STV on a modified ballot set where all candidates have been removed from ballots except those in set Alpha that are ranked higher than the highest ranked candidate not in Alpha and returning the votes for the candidate in Alpha with the fewest votes.
Define V(Alpha,Beta) as the V(Alpha,B) where B is the candidate in Beta that is not in Alpha and that maximizes V(Alpha,B).
V(Alpha,Beta) for Alpha and Beta still in contention, will not change as the count proceeds. V(Alpha) will change when candidates are eliminated.
Begin with all candidate sets of N candidates in contention. Scores are calculated for each candidate set that is in contention via:
S(Alpha) = Sum_Beta (V(Alpha,Beta)-V(Beta,Alpha))V(Beta)
where the sum is over all candidate sets Beta that are in contention. The candidate set with the lowest score is removed from contention. If a candidate set is eliminated that is the last one to contain a certain candidate, then that candidate is also eliminated. The S(Alpha)’s and V(Alpha)'s are recalculated retaining only terms in the sum for candidate sets still in contention and with eliminated candidates removed from all ballots. Repeat until only one candidate set remains.
Here is a method for calculating V(Beta,A) based on Schulze STV. Other versions of STV can also be used.:
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) 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