The following PR approval voting procedure is an approval limit of Schulze STV
A score for each candidate set is determined in the following way: The vote
of each ballot is distributed amongst the ballot's approved candidates in the
candidate set. The score for each candidate set is the largest possible vote
for the candidate in the set with the smallest vote. The candidate set with
the highest score wins the election.
example: 2 seats
approval voting profile
10 a
6 a b
2 b
5 a b c
4 c
The possible candidate sets are: {a b}, {a c}, and {b c}.
score for {a b} determined from
10 a
11 a b
2 b
score for {a b} = 11.5
score for {a c} determined from
16 a
5 a c
4 c
score for {a c} = 9
score for {b c} determined from
8 b
5 b c
4 c
score for {b c} = 8.5
set {a b} wins.
Schulze uses a maximum flow algorithm to distribute the votes optimally on each
ballot for each candidate set. Here is another algorithm.
v_i,a is the vote assigned to candidate a from the ith ballot. The optimal
v_i,a is determined iteratively.
1) Initially, the vote for each ballot is distributed equally between all the
candidates in the candidate set that are approved by that ballot.
2) The total vote for a candidate in the set is determined from v_a = sum_i
v_i,a. The lowest vote is a lower bound for the candidate score.
3) Form the adjusted vote w_i,a = v_i,a/v_a.
4) The adjusted vote for each ballot is w_i = sum_a w_i,a.
5) The new v_i,a = w_i,a / w_i. Proceed to step 2.
----
Election-Methods mailing list - see http://electorama.com/em for list info