Score-Bucklin: score several candidates, and if nobody has a majority of points, your 2nd rank scores are added in, etc

There’s a modification to IRV where you can equally rank candidates, and each candidate equally ranked gets one vote (like Approval.) It’s possible to do the same with Score for Bucklin (though I don’t know how the ballot paper would look): instead of all of your scores counting at once, you can “rank” your scores so that only the scores from the 1st rank are counted. If no candidate has a majority of points (or similar threshold), activate the scores in the 2nd rank, etc. Maybe you could even give Candidate A a 8/10 in the 1st rank and a 10/10 in the 2nd rank.

It’s possible to do this with IRV as well i.e. eliminate candidates with fewest points, activate their voters’ second rank points, etc. until someone has a majority of points.

Maybe something can even be done for Condorcet to fix this:

Cardinal weighted pairwise has been around since 2004.

1 Like

Since you mentioned Condorcet, your proposal is reminiscent of some discussions on the Election-Methods email list over the last spring/summer.

Several contributors suggested variations of rank flattening, where preferences were clustered like

A > B >> C > D > E >> F > G

Top-down flattening would be to use only A > B on the first pass, then if no CW exists, include the next cluster (A > B > C > D), etc. This is like your suggestion.

Bottom up clustering is slightly different:

  • On the first pass, use all preferences: A > B > C > D > E > F > G
  • On the next pass, flatten bottom scores: A > B > C > D > F=G
  • On the next pass, flatten next level scores: A > B > C=D=E=F=G
  • On the final pass, reduce to approval: A = B > C = D = E = F = G

With only one “>>” allowed, this reduces to the method Condorcet-full//Condorcet-approved-only//Approval, which has some chicken-dilemma and burial resistance.

However, another method has even more CD and Burial resistance, Approval Sorted Margins (https://electowiki.org/wiki/Approval_Sorted_Margins). And I have recently been playing with a variant of that, Ranked Score Sorted Margins, which I think adapts rather well to either single-winner or Droop PR multiwinner (https://github.com/dodecatheon/approval-sorted-margins, see rssmqrv.py). In the latter case, seed the candidate ranking in descending order of total score sum, then successively swap the pairwise-out-of-order candidates with minimum score difference until the sequence is completely in order pairwise.

What are the issues with Condorcet using Score as the cycle resolution method? With a 0 to 10 scale, it could work, especially if the Condorcet winner definition is expanded to include a candidate who is rated equally or higher than other candidates by a majority.

That’s a broad question. If you’re comparing to Score, then you lose Participation and Immunity from Irrelevant Alternatives, as with other Condorcet methods. You also don’t satisfy Later-no-harm, very important to RCV folks, and Later-no-help, which confers robust burial resistance. But RSSM is still fairly resistant to burial and has simple anti-chicken-dilemma strategies, more so than other Condorcet completion methods.

The real question is, what are you trying to solve for in a single winner election? My goal is to find the candidate closest to the centroid of the sentiment distribution, with a method that resists strategic voting to encourage sincere expression. RSSM does that as well as anything else I’ve seen, with the ease-of-use of Score.

It seems to me that STAR is also trying to find the centroid winner, but can fail sometimes owing to its lack of clone-independence. STAR advocates argue that their failures are not failures. But if you can’t pass a basic Yee picture test, which is a very low bar for centroid approximation, then you aren’t going to find the centroid winner in general use.

As stated in the Approval Sorted Margins page, Sorted Margins yields the pairwise ordering that does the minimal damage to the underlying seed ranking. Also see the definition of a Marginal Defeat. The Sorted Margins winner has no marginal defeats.

I just added an example to the repo of the 2013 Minneapolis Mayoral election. Since RCV doesn’t translate exactly to Score, I approximated it by giving first choice 5 points, 2nd choice 4 points, and 3rd choice 3 points. RSSMQRV gives the same winner and runner-up result as RCV for that election. You can run it using

 ./rssmqrv.py -vv -t 1 -i examples/actual-mayoral-election.csv | less

(Edit: also RSSM does indeed satisfy the expanded Condorcet criterion that if a candidate is not defeated by any other candidate, they are the winner. Such a CW might tie another candidate, but that other candidate would have a pairwise defeat to another candidate.)

I’d probably recommend doing some kind of normalization possibly with some increase in scores for the higher choices i.e. 1st choice gets 5, 2nd choice gets 4, and 3rd choice gets 0 if they’re your last choice, etc.

For the RCV sample, I was basically just trying to handle a ranked choice ballot. Such a ballot doesn’t handle equal ranking, and is in the format

First Choice, Second Choice, Third Choice

with actual candidate names, including situations like 'James “Jimmy” Something, Jr."!

Some ballots had results like “undervote,undervote,Something”. I would interpret that as 3 points for Something.

So I think the 5 for first, 4 for second, 3 for third is reasonable. If you want to give a candidate zero score, you simply don’t list them.

I don’t know how reliable that is. If there are 5 candidates, and someone votes “undervote, undervote, undervote, undervote, Something”, it’s possible they might be trying to express that they want to defeat something.