Reweighted range voting: Difference between revisions

m
no edit summary
(keep link internal)
mNo edit summary
 
(18 intermediate revisions by 7 users not shown)
Line 1:
[[File:RRV Procedure.svg|thumb|RRV Procedure]]
'''Reweighted Score Voting''', also known as '''Reweighted Range Voting''' ('''RRV'''), is a [[Multi-Member System | Multi-Member ]] [[Score voting]] System. It is the natural extension of the [[Jefferson Method]] to a [[Multi-Member System]]. If two-level score (i.e. [[Approval voting]]) ballots are used then it reduces to [[Sequential proportional approval voting]].
"'''Reweighted range voting'''" (also possibly referred to as '''reweighted score voting''') is one of many [[cardinal proportional representation]] voting systems. It is a [[multi-member system]] (and a variant on [[score voting]]) designed as a natural extension of the [[Webster]] or [[Jefferson Method]] to a [[multi-member system]]. If two-level score (i.e. "[[approval voting]]") ballots are used then it reduces to [[sequential proportional approval voting|sequential proportional approval voting ("SPAV")]]. It is therefore one of the three extensions of [[sequential proportional approval voting]] to score ballots along with [[sequential proportional score voting]] and [[single distributed vote]].
 
==Procedure==
Line 34 ⟶ 35:
# For the final seat available, the two highest-scoring candidates remaining runoff, with the candidate preferred (scored higher) by more reweighted ballots winning the final seat.
 
==RelatedExample Systemscode==
Below is some example code, written in [[Python]] and posted by [[User:Fsargent]]:
 
<syntaxhighlight lang="python" line="">
If Approval ballots are used RRV reduces to [[Sequential proportional approval voting]]. An arguably more natural extension of [[Sequential proportional approval voting]] to score ballots is [[Single distributed vote]]. These systems are very similar.
import pandas
 
ballots = [
{"Red": 5, "Green": 0, "Yellow": 3, "Blue": 5},
{"Red": 5, "Green": 0, "Yellow": 0, "Blue": 4},
{"Red": 0, "Green": 5, "Yellow": 0, "Blue": 1},
{"Red": 1, "Green": 2, "Yellow": 4, "Blue": 3},
{"Red": 1, "Green": 0, "Yellow": 2, "Blue": 0},
{"Red": 1, "Green": 3, "Yellow": 0, "Blue": 1},
{"Red": 0, "Green": 0, "Yellow": 5, "Blue": 0},
{"Red": 5, "Green": 0, "Yellow": 0, "Blue": 4},
]
 
seats = 4
seated = []
max_score = max(max(ballot.values()) for ballot in ballots)
 
#reweight
def reweight(ballot):
seated_scores = [
ballot[candidate] for candidate in ballot if candidate in seated
]
weight = 1/(1+sum(seated_scores)/max_score)
return {candidate: weight*ballot[candidate] for candidate in ballot}
 
def nextRound(ballots):
reweightedBallots = [reweight(ballot) for ballot in ballots]
winner = pandas.DataFrame(reweightedBallots).sum().drop(seated).idxmax()
print(pandas.DataFrame(reweightedBallots).sum())
seated.append(winner)
return reweightedBallots
 
while len(seated) < seats:
nextRound(ballots)
print(seated)
</syntaxhighlight>
 
Here is the output of the script when executed:
<syntaxhighlight lang="python" line="">
Red 18.0
Green 10.0
Yellow 14.0
Blue 18.0
dtype: float64
['Red']
Red 10.000000
Green 9.166667
Yellow 11.500000
Blue 10.833333
dtype: float64
['Red', 'Yellow']
Red 8.881410
Green 8.500000
Yellow 6.903846
Blue 9.256410
dtype: float64
['Red', 'Yellow', 'Blue']
Red 6.684219
Green 7.078755
Yellow 6.121795
Blue 6.947497
dtype: float64
['Red', 'Yellow', 'Blue', 'Green']
</syntaxhighlight>The example illustrates the order in which the four candidates are seated (<code>'Red'</code>, then <code>'Yellow'</code>, then <code>'Blue'</code>, then <code>'Green'</code>). After reordering to cluster similar voters, the ballots may be expressed as [[ABIF]] as follows:
 
<syntaxhighlight lang="text">
1: [Red]/5 = [Blue]/5 > [Yellow]/3 > [Green]/0
2: [Red]/5 = [Blue]/4 > [Yellow]/0 = [Green]/0
1: [Yellow]/5 > [Green]/0 = [Blue]/0 = [Red]/0
1: [Yellow]/4 > [Blue]/3 > [Green]/2 > [Red]/1
1: [Yellow]/2 > [Red]/1 > [Green]/0 = [Blue]/0
1: [Green]/5 > [Blue]/1 > [Red]/0 = [Yellow]/0
1: [Green]/3 > [Red]/1 = [Blue]/1 > [Yellow]/0
</syntaxhighlight>
 
<code>'Red'</code> and <code>'Blue'</code>are tied in the first round, with scores of "<code>18.0</code>". Because of the tie, the software arbitrarily chooses <code>'Red'</code>(though <code>'Blue'</code> may be arbitrarily chosen with the method in a different software implementation). After that, [[User:RobLa]] gets lost (as of April 2022), so someone else is going to have to explain how <code>'Blue'</code> falls behind <code>'Yellow'</code> in reweighted ballots of the second round.
 
 
==Related systems==
 
If [[Ballot#Approval ballot|approval ballots]] are used, RRVthis method reduces to [[Sequentialsequential proportional approval voting|sequential proportional approval voting ("SPAV")]]. An arguably more natural extension of [[Sequential proportional approval voting]]"SPAV" to score ballots is [[Singlesingle distributed vote]]. These systems are very similar.
 
[[Category:Cardinal voting methods]]
[[Category:Proportional voting methods]]
[[Category:Multi-winner voting methods]]
[[Category:Cardinal PR methods]]
[[Category:Highest averages-reducing voting methods]]
[[Category:Adjustable-proportionality voting methods]]