How hard can tallying ranked voting be?
-
My understanding of ranked voting is that a voter puts down his choices as an ordered set, and for the first round, the #1 votes are tallied; if no one has 50%+1, then the lowest vote-getter gets discarded, and everyone who had him as #1 simply have everyone else move up a place, and the process repeats. As long as there aren't too many candidates - and indeed, there is hardly ever more than 6 candidates who get more than 2% of the vote - than a complete list pertaining to the permutations of the candidates could be released, and done so as they are counted, like a canonical election. I use the number 6 because 6! - 720 is still a digestible number. In fact, the law could be written so only that the first round eliminates everyone outside of the top-6. For example, using this 6 number, the state's Secretary of State :-\ could release the vote total of every permutation of the 6, and election-nerds like the gang at 538.com or the NY Times' (infamous) needle could crank the numbers as they see fit trying to put out the probabilities for the 6 at that instance.
-
My understanding of ranked voting is that a voter puts down his choices as an ordered set, and for the first round, the #1 votes are tallied; if no one has 50%+1, then the lowest vote-getter gets discarded, and everyone who had him as #1 simply have everyone else move up a place, and the process repeats. As long as there aren't too many candidates - and indeed, there is hardly ever more than 6 candidates who get more than 2% of the vote - than a complete list pertaining to the permutations of the candidates could be released, and done so as they are counted, like a canonical election. I use the number 6 because 6! - 720 is still a digestible number. In fact, the law could be written so only that the first round eliminates everyone outside of the top-6. For example, using this 6 number, the state's Secretary of State :-\ could release the vote total of every permutation of the 6, and election-nerds like the gang at 538.com or the NY Times' (infamous) needle could crank the numbers as they see fit trying to put out the probabilities for the 6 at that instance.
how is it possible to discuss political elections without getting political?
-
My understanding of ranked voting is that a voter puts down his choices as an ordered set, and for the first round, the #1 votes are tallied; if no one has 50%+1, then the lowest vote-getter gets discarded, and everyone who had him as #1 simply have everyone else move up a place, and the process repeats. As long as there aren't too many candidates - and indeed, there is hardly ever more than 6 candidates who get more than 2% of the vote - than a complete list pertaining to the permutations of the candidates could be released, and done so as they are counted, like a canonical election. I use the number 6 because 6! - 720 is still a digestible number. In fact, the law could be written so only that the first round eliminates everyone outside of the top-6. For example, using this 6 number, the state's Secretary of State :-\ could release the vote total of every permutation of the 6, and election-nerds like the gang at 538.com or the NY Times' (infamous) needle could crank the numbers as they see fit trying to put out the probabilities for the 6 at that instance.
There are different ways of implementing Ranked Voting. [Ranked voting - Wikipedia](https://en.wikipedia.org/wiki/Ranked\_voting)
"Time flies like an arrow. Fruit flies like a banana."
-
My understanding of ranked voting is that a voter puts down his choices as an ordered set, and for the first round, the #1 votes are tallied; if no one has 50%+1, then the lowest vote-getter gets discarded, and everyone who had him as #1 simply have everyone else move up a place, and the process repeats. As long as there aren't too many candidates - and indeed, there is hardly ever more than 6 candidates who get more than 2% of the vote - than a complete list pertaining to the permutations of the candidates could be released, and done so as they are counted, like a canonical election. I use the number 6 because 6! - 720 is still a digestible number. In fact, the law could be written so only that the first round eliminates everyone outside of the top-6. For example, using this 6 number, the state's Secretary of State :-\ could release the vote total of every permutation of the 6, and election-nerds like the gang at 538.com or the NY Times' (infamous) needle could crank the numbers as they see fit trying to put out the probabilities for the 6 at that instance.
Ranking all (or all-minus-one) options would be tedious if there were many. I imagine that "ranking your top three" would simplify things considerably when there are a lot of options from which to choose. Maybe something like "top three or the SQRT of the number of options" would suffice?
-
My understanding of ranked voting is that a voter puts down his choices as an ordered set, and for the first round, the #1 votes are tallied; if no one has 50%+1, then the lowest vote-getter gets discarded, and everyone who had him as #1 simply have everyone else move up a place, and the process repeats. As long as there aren't too many candidates - and indeed, there is hardly ever more than 6 candidates who get more than 2% of the vote - than a complete list pertaining to the permutations of the candidates could be released, and done so as they are counted, like a canonical election. I use the number 6 because 6! - 720 is still a digestible number. In fact, the law could be written so only that the first round eliminates everyone outside of the top-6. For example, using this 6 number, the state's Secretary of State :-\ could release the vote total of every permutation of the 6, and election-nerds like the gang at 538.com or the NY Times' (infamous) needle could crank the numbers as they see fit trying to put out the probabilities for the 6 at that instance.
If we use bit groupings for the ranks of each candidate, that would look something like: Bits per candidate: floor(log_2(candidateCount)) + 1 Bits per vote: candidateCount * bitsPerCandidate Total space for election: voters * bitsPerVote So given 300,000,000 voters with 12 candidates: space = 300,000,000 * 12 * (floor(log_2(12)) + 1) space = 14,400,000,000 bits or 1.8 GB Given the same amount of voters with 24 candidates: space = 300,000,000 * 24 * (floor(log_2(24)) + 1) space = 36,000,000,000 bits or 4.5 GB Space definitely isn't the issue. What about the algorithm? 1) Bin every vote by first-pick candidate. 2) If no bin is >50% of the votes, re-bin the lowest bin and repeat #2. 3) The >50% bin is your winner. I honestly don't see why this would be an issue. Worst case scenario something like v+(c-2)*(v/2) run-time where v is the vote count and c is the number of candidates. v/2 is just a napkin-math average since the redistributed bins would start out small and grow as the candidate list got shorter. Again, just a bunch of napkin math so I probably missed something but I never bought the "it's too hard to compute" excuse either :~ And I'm sure there are clever tricks to reduce the time required. EDIT: For reference, if processing a vote takes: 1 microsecond: 30 minutes to determine a winner @ 300M votes, 12 candidates 1 millisecond: 20 days, 20 hours to determine a winner @ 300M votes, 12 candidates And this is a single-threaded, un-optimized, brute-force approach.
-
If we use bit groupings for the ranks of each candidate, that would look something like: Bits per candidate: floor(log_2(candidateCount)) + 1 Bits per vote: candidateCount * bitsPerCandidate Total space for election: voters * bitsPerVote So given 300,000,000 voters with 12 candidates: space = 300,000,000 * 12 * (floor(log_2(12)) + 1) space = 14,400,000,000 bits or 1.8 GB Given the same amount of voters with 24 candidates: space = 300,000,000 * 24 * (floor(log_2(24)) + 1) space = 36,000,000,000 bits or 4.5 GB Space definitely isn't the issue. What about the algorithm? 1) Bin every vote by first-pick candidate. 2) If no bin is >50% of the votes, re-bin the lowest bin and repeat #2. 3) The >50% bin is your winner. I honestly don't see why this would be an issue. Worst case scenario something like v+(c-2)*(v/2) run-time where v is the vote count and c is the number of candidates. v/2 is just a napkin-math average since the redistributed bins would start out small and grow as the candidate list got shorter. Again, just a bunch of napkin math so I probably missed something but I never bought the "it's too hard to compute" excuse either :~ And I'm sure there are clever tricks to reduce the time required. EDIT: For reference, if processing a vote takes: 1 microsecond: 30 minutes to determine a winner @ 300M votes, 12 candidates 1 millisecond: 20 days, 20 hours to determine a winner @ 300M votes, 12 candidates And this is a single-threaded, un-optimized, brute-force approach.
Jon McKee wrote:
- Bin every vote by first-pick candidate.
You called out the problem here without realizing it. They're binning sheets of paper in stacks and counting the stacks. :omg: :wtf: There's also a lot of paper dumped into the "needs fixing" bin, that they need to arrange for the voters to show up and un:elephant: before they can be counted. :doh: If it was being done electronically though you're right that a computer could spit out the total almost instantly. :rolleyes:
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius
-
Jon McKee wrote:
- Bin every vote by first-pick candidate.
You called out the problem here without realizing it. They're binning sheets of paper in stacks and counting the stacks. :omg: :wtf: There's also a lot of paper dumped into the "needs fixing" bin, that they need to arrange for the voters to show up and un:elephant: before they can be counted. :doh: If it was being done electronically though you're right that a computer could spit out the total almost instantly. :rolleyes:
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius
Dan Neely wrote:
You called out the problem here without realizing it. They're binning sheets of paper in stacks and counting the stacks.
I'll never understand how in the US we've been successfully testing millions of kids every year via paper "ballots" (scantron sheets) that are tallied electronically, but when it comes to our literal democracy we suddenly have the IQ of broccoli :confused:
-
Dan Neely wrote:
You called out the problem here without realizing it. They're binning sheets of paper in stacks and counting the stacks.
I'll never understand how in the US we've been successfully testing millions of kids every year via paper "ballots" (scantron sheets) that are tallied electronically, but when it comes to our literal democracy we suddenly have the IQ of broccoli :confused:
And what exactly do you have against broccoli?
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius
-
And what exactly do you have against broccoli?
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius