Multi-Winner 3-2-1 Voting

My favorite voting method is 3-2-1 voting[1], my second favorite is approval voting. Both are methods for selecting one winner. Approval voting has variations for choosing multiple winners, but 3-2-1 voting doesn’t—until now.

I’m going to explain approval voting, sequential proportional approval voting, 3-2-1 voting, and proportional sequential 3-2-1 voting—which is my multi-winner version of 3-2-1 voting.

Note: I think it works well, but I’m no professional, and I haven’t proved anything about it. There’s also one detail I’m still not sure about. If you can help me test it better or prove certain properties about it, I’d much appreciate it.

Approval voting

Approval voting is simple—each voter can vote for as many candidates as they want, and the one that got the most votes is elected. It’s good because it’s simple, there’s relatively little incentive for strategic voting, and it leads to relatively high voter satisfaction.

Sequential Proportional Approval Voting

Like approval voting, each voter can vote for as many candidates as they want, and the first winner is the one that got the most votes. Then all the ballots are reweighed, such that each vote is equal , where X is the amount of elected candidates voted for on the ballot, and another candidate is elected. Repeat until all the seats are filled.

So if I voted for the first candidate that was elected, in the second round my vote would be worth 12. If I also voted for the second candidate elected, then in the third round my vote will be worth 13, and if didn’t vote for the second candidate elected, my vote would still be worth 12 in the third round.

This is good because it achieves proportional representation[2] in a relatively simple way, and with little incentive for strategic voting. Without reweighing the ballots, the more similar you are to the winning candidate the more likely you are to win, which will create a situation where a parliament of clones is elected.

3-2-1 voting

In 3-2-1 voting you rate as many candidates as you want as either “bad”, “ok”, or “good”. Then the winner is selected in 3 steps:

  1. The three candidates who got the most “good” ratings are selected.

  2. Of them, the one with the most “bad” ratings is cast out.

  3. Of the two remaining, the one that is ranked higher than the other on more ballots is elected.

This is more complicated than approval voting, but it pays for that complexity by disincentivizing candidates from being polarizing, and preventing the most polarizing candidate from being elected, even if they are the most popular.

Proportional Sequential 3-2-1 voting

I like 3-2-1 voting, so I created this method based on sequential proportional approval voting to make 3-2-1 voting multi-winner.

The initial voting phase is the same, you rate as many candidates as you want as either “bad”, “ok”, or “good”. The first winner is selected in the same 3 steps as in the single-winner case:

  1. The three candidates who got the most “good” ratings are selected.

  2. Of them, the one with the most “bad” ratings is cast out.

  3. Of the two remaining, the one that is ranked higher than the other on more ballots is elected.

The candidate that is cast out in step 2, the “rejected candidate”, is completely removed from the candidate list and cannot be elected anymore. This is a detail I’m uncertain about, and it should be tested whether it’s better with or without it.

Then after each round the ballots are reweighed—each ballot’s weight becomes , where X is the amount of elected candidates rated “good” on the ballot, and Y is the amount of rejected candidates rated “bad” on the ballot.

I hope this carries over the benefits of 3-2-1 voting from single-winner elections to multi-winner elections.

I have written a python implementation of this voting method, but it doesn’t properly simulate voter preferences and doesn’t measure voter satisfaction. Also, I don’t know how to prove any properties about it. So though this method seems good to me, I don’t actually know if it is. I would very much like help with both of these things. If you think you can help please leave a comment or send me a message.

And just one last note about parties—It’s not clear to me how Proportional Sequential Approval Voting or other multi-winner voting methods are supposed to be used when voting for parties instead of individual candidates. My idea is each round you pick a party like you would pick a candidate, and the top unelected member of that party gets elected (the parties need to come to the elections with a sorting), the ballots reweighed, and importantly, the elected and rejected parties aren’t removed from the list, and are selected from again. I don’t currently have an implementation of this, but if I do I’ll post it here and add a link in the text.

Thank you Justis from the LessWrong feedback team for your feedback on the article.

  1. ^

    Also discussed on LW here

  2. ^

    Not perfectly, but fairly well