Cumulative Transferable Voting, round 3
- Bruce Gilson has memorialized my last iteration and given the method a
snappier name, Cumulative Transferable Voting.
On 24 Jun 2010 18:42:41 -0700, Bruce R. Gilson wrote:
However, I ran into a problem (see link on that page) which made me
realize that a summable Cumulative Transferable Vote would be neither
feasible nor satisfactory to the voter.
So I've come up with a new variation. It's a non-summable version and
has rounds similar to those in STV.
In a multi-winner election, a voter would like to just vote for
candidates and not have to worry about whether they were giving too
much weight to one candidate, or whether they have used all their
votes. They would like their vote for popular candidates to be
reduced to exactly what they need to be elected (and no more) and let
the rest of their vote be distributed among their other choices
proportionally. If some of their choices are eliminated, their
remaining votes should be redistributed as if they hadn't wasted them
on the losing candidates.
Voters use a range ballot and cast scores for any number of candidates
using a range of 0 through 10. The total weight of a ballot is 1, so
the more candidates you vote for, the more your individual vote is
spread out among all your choices.
For example, say I vote A:10, B:10, C:6, D:4, E:1, F:1
The sum of all scores is 10 + 10 + 6 + 4 + 1 + 1 = 32
In general, let's denote k non-normalized scores by alpha_i, for i
in the range 0 to k-1, and the sum of all alphas as S.
The normalized vote distribution for my example ballot is
A:10/32, B:10/32, C:6/32, D:4/32, E:1/32, F:1/32
In general, let's denote these k normalized scores by beta_i, for i in
the range 0 to k-1.
So far, so good. It's like score voting but with fractional votes.
Here's the trick:
Let's say that when all the votes are tallied, A has more votes than
required for the quota, therefore we should multiply the normalized A
votes on all ballots by a coefficient gamma, equal to the quota
divided by A-total, to reduce A's original total to exactly the amount
necessary to meet the quota.
Then we should proportionally increase the normalized votes given to
the other candidates.
However, if we decrease A's NON-normalized vote by a certain amount X,
the ballot's score sum is reduced by that same amount, which would
automatically increase the normalized votes for the other
(non-eliminated) candidates in exactly the distribution that the voter
would desire. So let's solve for that value:
What is the amount X such that
(alpha_j - x) / (S - x) = gamma * (alpha_j / S)
to reduce the score of candidate j? Solving for x, we get
x = alpha_j * (1 - gamma) / (1 - (gamma * alpha_j)/S)
Substituting alpha_j/S = beta_j,
x = alpha_j * (1 - gamma) / (1 - gamma*beta_j)
This formula is very convenient, because all we need to do for a
quota-reduction or elimination round recount is, for each ballot,
(a) reduce the original non-normalized score of one candidate by x
(b) recalculate the ballot's normalized scores
(c) tally the ballot's new scores into the current round's totals
If candidate j is eliminated completely, that means gamma is zero, and
x is equal to alpha_j, just as you'd expect.
Continue as one does for STV: reduce scores of candidates who have
been seated and redistributed, until none meet the quota, then
eliminate candidates and redistribute until another candidate meets
the quota or the number of non-eliminated candidates equals the number
of seats not yet filled.
A caveat and a corollary:
1) Vote transfer can be applied ONLY on non-bullet-vote ballots, which
means we need to store information about bullet voting and
calculate gamma a little more carefully in practice.
2) On a ballot with redistribution, you can recalculate the new
normalized scores easily as
beta_i := beta_i * S / (S - x)
for all candidates i other than candidate j whose score is
reduced by gamma.
Frango ut patefaciam -- I break so that I may reveal