So I came across this precinct-summable PR method that uses score ballots for v voters and c candidates. It's a bit complicated to describe, but here's my best attempt:
- Each voter i casts a score ballot S_i.
- Suppose S_i ranks n candidates top. Create a matrix M_i and vector w_i where M_i[a, :] = S_i / n and w_i[a] = 1/n if a is ranked top, else both are 0. (Effectively, we're combining all the votes that score each candidate top into one basket. If multiple candidates are scored top,
- Let M be the sum over all voters i of M_i and w the sum of all w_i. (M needs to be normalized by w).
- Let X be formed by dividing row j of M by w[j]. Run RRV (or its optimal form) where the rows of X are "ballots" and the elements of w are the initial ballot weights.
Example: The ballot (A=1, B=2/3, C=1/3, D=0) becomes
M_i =
1 2/3 1/3 0
0 0 0 0
0 0 0 0
0 0 0 0
w_i = [1 0 0 0]^T
while (A=1/2, B=1, C=0, D=1) becomes
M_i =
0 0 0 0
1/4 1/2 0 1/2
0 0 0 0
1/4 1/2 0 1/2
w_i = [0 1/2 0 1/2]^T
Of course, I don't like the discontinuity involved (in splitting between candidates that are scored "top") so I would change the calculation of M to be proportional to the elements of the voter's ballot (so that ends up looking like M_i[:, :] = S_i S_i^T and w = S_i/sum(S_i)). The ballot (A=1, B=2/3, C=1/3, D=0) then becomes
M_i =
1 2/3 1/3 0
2/3 4/9 2/9 0
1/3 2/9 1/9 0
0 0 0 0
w_i = [1/2 1/3 1/6 0]^T
I call this soft Simmons PR (by analogy to "softmax" which was partially an inspiration).
The nice thing is that since there are only c distinct "ballots" in the final step, there might be some kind of efficient special-case algorithm to determine the optimal-PAV (or its score counterpart) winner slate, although I am not completely sure of this.
(Can I not use LaTeX here?)