Week 3: The Voting Methods
April 3, 2024
Hello everyone, and welcome back to my blog. This week I started working on more code that will contribute to the simulation. More specifically, I focused on the voting systems themselves.
A voting system is, simply, a method used to choose a winner in an election while taking everyone’s opinion into account. There are many different voting systems that exist, and each one has its unique set of properties. The four voting systems (Coombs, Bucklin, plurality with runoff, and Schulze) that I chose were picked due to their differing and unique mechanisms. Coombs first checks whether there is a candidate with a majority of first preference votes, if there is, that candidate is declared the winner. Otherwise, the candidate with the highest number of least placed votes is eliminated, and the ballots that ranked the eliminated candidate first are reallocated to their second-preference candidate. The cycle then repeats, eliminating candidates until a candidate receives a majority of the ballots.
Bucklin, similarly, requires its winner to reach a majority of votes. It tallies up the first round of preferences, and if a candidate achieves a majority, it is declared the winner. If no candidate has a majority, the number of times each candidate was preferred second gets added to their first place tallies. If any candidate’s sum of first and second place votes is greater than 50% of the total ballots in the election, then they are the winner. This addition goes on until a candidate reaches a majority of votes, or every preference on every ballot is tallied, at which point the candidate with the plurality of votes wins.
Plurality with runoff first determines the two candidates with the most first-place rankings. If neither have a majority, then all the other candidates are eliminated and there is a runoff election between the two leading candidates using the secondary preferences on the ballots that most preferred the eliminated candidates.
Lastly, Schulze is the only election that is condorcet consistent, which means that its winner will always be the candidate that is preferred over every other candidate in a head-to-head election. It uses the margins between candidates to decide its winners.
Most of these voting systems, as well as the other aspects of the simulation, are taken from pref-voting, a python package developed by my onsite advisor Eric Pacuit. However, many of the functions had to be adapted for the simulation, which is what I spent the majority of this week doing. The adaptations aren’t fully complete yet, and I need to make a few decisions as to how they’ll work with truncated ballots, given that a few of the voting systems weren’t designed to work with incomplete preferences. But that’s next week’s task!
Leave a Reply
You must be logged in to post a comment.