@rob, Score Sorted Margins is mentioned on the Approval Sorted Margins page on electowiki.org as a variant.
Forest Simmons invented ASM, and I just extended it to scores.
@rob, Score Sorted Margins is mentioned on the Approval Sorted Margins page on electowiki.org as a variant.
Forest Simmons invented ASM, and I just extended it to scores.
@keith-edmonds Just tested my implementation of MES and it gets the same results as you state for SSS, on these two examples.
@keith-edmonds @brozai , is there a way to get the Wikipedia page author to also put a page on electowiki.org? Seems like it might be faster since no approval would be required.
@Keith-Edmonds I'm kind of disappointed. I was replying to a thread about ranked methods. In this forum, I would have thought that anyone interested in ranked methods would know the basics of Condorcet. At the very least, I was not writing with the expectation that my method would "catch on" with the public, but rather that readers of this forum would consider it and discuss it. Promotion is a completely different matter. As far catching on with the public, I think Approval has the best shot at that, since you can explain it in 10 seconds: Vote for every candidate you approve of.
The ASM page has links to Condorcet, which you can read up on.
@Keith-Edmonds Could you be more specific about what you don't understand?
Do you understand tabulating total preference? If not, if you are using scores 0 to 5, with 3 and higher preferred, then total preference score is the sum of all ballots 3 and higher. If you are using A, B, and C for preferred votes, total preference is all ballots scoring A, B, or C, and total approved is all ballots scoring A-E, excluding F.
Do you understand the pairwise array? If not, that is a matrix A[i,j], with rows and columns corresponding to the candidates. A[i,j] is incremented by 1 for every ballot that rates candidate i higher than candidate j.
Do you understand putting the candidates in an initial ranking, seeded by preference score? If not, start with a sequence of all the candidates. Then sort them in descending order by their total preference score, above.
Do you understand pairwise out of order? If not, consider each pair of candidates as you go through the candidate ranking, with X coming earlier (i.e. higher ranking) than Y. Pairwise out of order means that in the pairwise contest between X and Y, Y gets more ballots higher than X.
Do you understand preference margin? If not, what that means is the difference between candidate X's total preference score and candidate Y's total preference score.
I'm not sure what else might not be clear here. I guess I assumed that someone who spends time looking into this stuff would have familiarity with the terminology commonly used with Condorcet methods. I've explained this before to people completely unfamiliar with voting methods, and they could follow what I was saying.
@Keith-Edmonds There is python code in https://github.com/dodecatheon/approval-sorted-margins/blob/master/asm.py , and it is also described in section https://electowiki.org/wiki/Approval_Sorted_Margins#Approval_Sorted_Margins
The general procedure for PASM is,
Tabulate total preference and pairwise scores.
Seed initial candidate ranking by sorting in descending order of total preference.
Repeat until the candidate ranking has no pairwise out-of-order candidates:
Find all pairwise out of order pairs. (i.e. A(Y, X) > A(X, Y), for candidate X earlier than Y)
Select the pair with minimum preference margin (i.e., P(X) - P(Y) is minimal for all such pairs
Swap those candidates in the ordering.
The winner is the first candidate in the resulting sequence.
Re: Least-bad Single-winner Ranking Method?
Among Condorcet methods, I'm most happy with Approval Sorted Margins. It's simple and resolves in a sensible way.
https://electowiki.org/wiki/Approval_Sorted_Margins
I used to maintain that page a lot but haven't had time recently.
Lately I like to think of the method as Preference Approval Sorted Margins. I feel like it's less confusing for voters if any ranking above Reject is interpreted as some level of acceptance for that candidate winning, but that there is a higher preference for certain candidates.
Let's say you have 6 tiers of approval. The top 3 tiers, A, B, and C, are preferred. Tiers D and E are approved (tolerable / acceptable). Tier F is disapproved/Reject. Rank can be inferred from rating.
This gives the same degree of expression as 4 levels of ranking with a preference cutoff. In general, any ranking with M levels with a preference cutoff is equivalent to 2M - 2 levels with top (M-1) ranks preferred, next (M-2) ranks approved, bottom rejected.
Voters are instructed to give a rating of A, B, or C to their preferred candidate, ratings D or E to candidates they can tolerate, and F to those they reject completely.
Count pairwise preferences and total preference, and total approval.
Seed an initial ranking by sorting in descending order of total preference, breaking ties with descending order of total approval. There's some room for argument on further tie-breakers, but that should do for now.
Then search the entire seeded ranking for the pair that is out of order pairwise, with minimum preference margin (breaking ties with minimum approval margin, etc.). Swap that pair. Then repeat until the sequence is in pairwise order.
This process is symmetric and biased toward higher preference. It is intuitive to voters. It is Condorcet compliant, Smith efficient, and clone resistant. It is not completely burial resistant, but it is more resistant to chicken dilemma and burial than other methods (if an "ally" is a strategic threat, put them in the approved but not preferred slot).
As described in the Electowiki page, this method is optimal in that it disrupts the overall preference rating as minimally as possible.