More general variant: Candidate sets of N candidates are notated by Greek letters.
Define V(Alpha,Beta) 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 all candidates in Beta not in Alpha and returning the votes for the candidate in Alpha with the fewest votes. Define M(Alpha,Beta) as an odd function of V(Alpha,Beta)-V(Beta,Alpha) so that it is antisymmetric in Alpha and Beta. Some examples are M(Alpha,Beta) = V(Alpha,Beta)-V(Beta,Alpha), M(Alpha,Beta) = Sign(V(Alpha,Beta)-V(Beta,Alpha)), and M(Alpha,Beta) = (V(Alpha,Beta)-V(Beta,Alpha))/( V(Alpha,Beta)+V(Beta,Alpha)). 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 all candidates not in Alpha and returning the votes for the candidate in Alpha with the fewest votes. M(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. 1. Scores are calculated for each candidate set that is in contention via: S(Alpha) = Sum_Beta M(Alpha,Beta)V(Beta) where the sum is over all candidate sets that are in contention. 2. The candidate set with the lowest score is removed from contention. If only one candidate set remains in contention that candidate set is the winning set and the count ends. Otherwise proceed to step 3. 3. If a candidate set is removed from contention that is the last one to contain a certain candidate, then that candidate is eliminated and the V(Alpha)'s are recalculated with eliminated candidates removed from all ballots. 4. Go to Step 1. ---- Election-Methods mailing list - see http://electorama.com/em for list info