Mapping preferential voting into approval voting, take two

Yesterday I described my first ideas at mapping the preferential voting method used in Liquid Feedback, to an approval voting method as supported by Helios Voting.

After writing it I had a Heureka moment and went back to check some details on how Liquid Feedback, and in particular the Schulze method actually works. It turns out it is not necessary at all to keep a record of the +N ... 0 ... -N scores given to each vote, this is merely an implementation approach used in Liquid Feedback. The only thing that is really needed is just the pairwise comparisons of all alternatives. This is stored in Liquid Feedback in the battle table. In fact, that is precisely what Solon delivers back to Liquid Feedback as results of the voting.

The battle table is very simple, using our (A, B, C, Q) example of yesterday:

issue_id winning_initiative losing_initiative count
[some id] A B 7
[some id] A C 2
[some id] A Q 4
[some id] B A 6
[some id] B C 3
[some id] B Q 9
[some id] C A 8
[some id] C B 6
[some id] C Q 3
[some id] Q A 4
[some id] Q B 9
[some id] Q C 6

The good news is, encoding this as a Helios election is both feasible and straightforward. We can create a referendum with multiple 1-out-of-N questions, each question allowing to compare one alternative pair:

Question 1: How do you compare alternatives A and B?
[ ] Prefer A over B
[ ] A and B are equal
[ ] Prefer B over A

Question 2: How do you compare alternatives A and C?
[ ] ...

Tallying the results of such a Helios referendum will immediately produce the results that can be written back to the battle table of Liquid Feedback.

There is still a small thing that with this approach it would be possible for a voter to cast votes containing "circular paths" that contradict each other. E.g. voting A as better than B, then B as better than C, and then C as better than A. Of course, this can be prevented by the user interface, but ultimately of course it would have to be enforced by the cryptographic algorithm. Probably there could be some zero-knowledge-proof that enforces this property.

Otoh, I don't know how harmful such circular / contradictory choices are to the Schulze method. Maybe it's not an issue. I suppose this is a good topic for further study.

Add new comment

The content of this field is kept private and will not be shown publicly. Cookie & Privacy Policy
  • No HTML tags allowed.
  • External and mailto links in content links have an icon.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Each email address will be obfuscated in a human readable fashion or, if JavaScript is enabled, replaced with a spam resistent clickable link. Email addresses will get the default web form unless specified. If replacement text (a persons name) is required a webform is also required. Separate each part with the "|" pipe symbol. Replace spaces in names with "_".
About the bookAbout this siteAcademicAmazonBeginnersBooksBuildBotBusiness modelsbzrCassandraCloudcloud computingclsCommunitycommunityleadershipsummitConsistencycoodiaryCopyrightCreative CommonscssDatabasesdataminingDatastaxDevOpsDrizzleDrupalEconomyelectronEthicsEurovisionFacebookFrosconFunnyGaleraGISgithubGnomeGovernanceHandlerSocketHigh AvailabilityimpressionistimpressjsInkscapeInternetJavaScriptjsonKDEKubuntuLicensingLinuxMaidanMaker cultureMariaDBmarkdownMEAN stackMepSQLMicrosoftMobileMongoDBMontyProgramMusicMySQLMySQL ClusterNerdsNodeNoSQLodbaOpen ContentOpen SourceOpenSQLCampOracleOSConPAMPPatentsPerconaperformancePersonalPhilosophyPHPPiratesPlanetDrupalPoliticsPostgreSQLPresalespresentationsPress releasesProgrammingRed HatReplicationSeveralninesSillySkySQLSolonStartupsSunSybaseSymbiansysbenchtalksTechnicalTechnologyThe making ofTungstenTwitterUbuntuvolcanoWeb2.0WikipediaWork from HomexmlYouTube