ncase / ballot Goto Github PK
View Code? Open in Web Editor NEWAn interactive guide to alternative voting systems
License: Creative Commons Zero v1.0 Universal
An interactive guide to alternative voting systems
License: Creative Commons Zero v1.0 Universal
My understanding of Approval Voting is that it would mirror FPTP in some situations, in the sense that a voter would vote for their most preferred candidate (as with FPTP) PLUS any additional candidates that fall within their personal approval threshold.
Your Approval Voting model, however, only has voters approving candidates within their approval threshold. If no candidates fall within that threshold, voters in your model cast no ballot, instead of just voting for their most preferred/nearest candidate (even if that candidate falls outside of the voter's approval threshold) as they would in FPTP. In other words, in a real-world application of Approval Voting, a voter would more likely bullet vote for a single candidate than not vote for any candidate at all.
Clearly, this issue gets to questions of individual voter strategy in an approval voting system. But making it so easy for voters to cast no ballot whatsoever seems to be an error in your sandbox model. Is it an easily correctable one?
Otherwise, this is a fantastic and incredibly useful tool -- thank you!
STAR voting is Score Then Automatic Runoff, a slight tweak of score. It's still pretty simply to explain and understand, and it's not just theoretical. http://www.equal.vote/ is actually in process of getting it on the 2018 ballot to be potentially implemented in two counties in Oregon. So this isn't bonus for the math nerds, this is real deal stuff that people need to understand!
It should be very easy to add, it's not complex mathematically.
Could you add #anchor tags so we could link directly to the Condorcet cycle demo, for example?
it's possible for a winning candidate to lose, by becoming more popular. What a glitch!
It is possible for a sitting candidate to lose a subsequent election if they become more popular, but only if another candidate has become even more popular. In the example the triangle has become more popular but the hexagon has become even more popular. This is not a glitch, it is how the system is supposed to work.
When you move the voter base you are not changing an election, you are comparing the results of different elections.
You must remember that a candidate is only winning if they have greater than 50% of the vote in the current election. At no point in the second election is the triangle ever winning.
There may be problems with IRV but I donβt think that the example you have used demonstrates them.
Maybe the way you have chosen to represent the voters has influenced the way you view the results?
How about translation of this page in other languages ?
Would you be open to pull request of that kind ?
Do you plan some translation with Weblate or something similar ?
Regards,
Millicent
So great to read a great article and find the great code in a great repo! :)
It would be nice to add another (ranking) voting system: "majority judgement"1, which is close to "score voting", but with voters giving a score to a subset of candidates (a better explanation @GBodin?).
There is interest for of having this around LaPrimaire.org
I see how clean and practical your code is, so maybe you can give us a few advices and @GBodin and I do it ;)
Yet, the key point is having both visualisation and mathematics behind valid and explicit. And for the moment I have no clue.
Please, add established voting system used at ballroom competitions around the world: the scating system:
http://mat.uab.es/~xmora/escrutini/skating2en.pdf
It's complex system, but it's battle tested for 80 years few times per week.
When i refresh the webpage (https://ncase.me/ballot/) in firefox 70.0 on linux, the squares/triangles/etc don't load again. Also tested with addons disabled. The page works correctly on the first load or if i close/reopen the tab.
Everything seems to work correctly in chromium.
Sadly, "Canada's Cutie-In-Chief"'s picture is missing :(
The Canada's Cutie-In-Chief link in index.html line 159 is no longer served. I would open a pull request with an alternative but I feel like, given the name, the picture was special and I do not believe it is my place to do so.
If you would be so kind to prepare public translations to this work of yours as you did with Attractor Landscapes, helping with translation without the fear of altering something you would not want to be altered.
The idea that I would like to help translate this work of yours came up since there have been some rather disturbing ballots in Germany just recently. Maybe I thought, this explorable explanation should also be available for non english speakers.
I am aware Nicky never extends his existing creations (e.g. this ballot & voting systems explainer). Yet I do not know of a better place to have such discussion than here π.
Some years ago I was passing by a highway ad board depicting a few candidates for municipality ballot. And because of my two decades long frustration with politics (both communal as well as governmental & international) I asked myself what is the reason the voted people do not actually seemingly represent any more the personalities we have voted for.
And suddenly an answer has struct me. Because they can not. Why? Well, because the group the winning candidates form is mutually incompatible. So why are we all blind to our innermost needs which include social synergy in a group of people and vote for separate individuals? Thus basically causing inherent incompatibility and basically guaranteeing the representatives will be severely limited in forming a functional and highly effective team.
So why not to actually always vote for a tuple of exactly 3 arbitrary persons (let us consider for simplicity only teams with number of members being a multiple of 3) to include in the final team and for 3 arbitrary persons (up to 2 of which might be identical from the first tuple) to not include in the final team. The final team would consist of tuples mostly voted for (e.g. using the methods in Nicky's explainer) minus the tuples voted against. A tie (i.e. at least two tuples with the same number of votes) would require stopping the ballot or some "escape hatch".
Advantages:
Disadvantages:
Thoughts?
P.S. All voting schemes I have ever seen always focused on individuals. I am surprised that the whole world became so dumb and degenerated that this focus on 1 individual is ubiquitous and no "tuple-based scheme" is being used anywhere (Googling it did not yield any results!).
P.P.S. Technically I should call this "set voting" as the order is meaningless but I liked "tuple voting" more subjectively π.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.