andrewcmyers/civs

Add STAR Voting method

masiarek opened this issue · 6 comments

https://civs.cs.cornell.edu/rp.html
CIVS currently supports five rules for Condorcet completion: Minimax-PM (the default rule), Schulze (also known as Beatpath Winner or Cloneproof Schwartz Sequential Dropping), Maximize Affirmed Majorities (MAM), a deterministic variant of MAM called CIVS Ranked Pairs, and a runoff-based Condorcet algorithm called Condorcet-IRV.

I can help with this...
programming, or at least - I can help with testing, expected results, load files, etc.
or, whatever you may need for me to help with this, prepare documentation (technical, end user).

Sure, this seems like a fine idea. Tabulation algorithms are pretty modular; minimax.pm is a good model to follow. We would also want a description of it on the web pages.

Hi Andrew! In addition to adding another tabulation algorithm, the vote input UI would also need to be expanded to allow cardinal voting systems. STAR uses a 0 to 5 scale.

I note that CIVS allows ties, so you could kinda submit a STAR ballot with the current UI by ranking candidates 1st through 5th with ties. But, that would be tedious and confusing from the pov of voters accustomed to rating candidates versus ranking them.

Would you consider a more general enhancement to CIVS enabling support for cardinal voting systems such as STAR?

I would start by implementing the algorithm on top of the current UI and then think about UI support. Everything above rank 6 can be treated as a score of 5. Proportional mode with weights already has a "cardinal" interface, so it should be easy to support the UI changes.

fyi, STAR tabulation would be a little different than you describe, but I get the idea. A score of 5 translates to a ranking of 1st and any ranking above 5 would be treated as a score of zero.

As to a starting point for the STAR tabulator, I believe your suggestion above is to use minimax.pm as a model? Is rank_candidates the only public method to implement?

You also need to implement print_details

We are working on Functional Specification document for STAR Voting: https://docs.google.com/document/d/1x9lwhHUYAGa1JVrKuqQ1WKHYoXUEtvySH8KC3YY1ARY/edit

One of the open questions is what kind of Ballot Upload file format should we use: https://docs.google.com/document/d/1dK8sWezZxy-Ax7UXJStNy2gFk0ONVwVvi3VzqHmNbc4/edit#heading=h.qz3rx1wlrgik

Please feel free to leave some comments, questions, suggestions.