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.

About the bookAbout this siteAcademicAccordAmazonAppleBeginnersBooksBuildBotBusiness modelsbzrCassandraCloudcloud computingclsCommunitycommunityleadershipsummitConsistencycoodiaryCopyrightCreative CommonscssDatabasesdataminingDatastaxDevOpsDistributed ConsensusDrizzleDrupalEconomyelectronEthicsEurovisionFacebookFrosconFunnyGaleraGISgithubGnomeGovernanceHandlerSocketHigh AvailabilityimpressionistimpressjsInkscapeInternetJavaScriptjsonKDEKubuntuLicensingLinuxMaidanMaker cultureMariaDBmarkdownMEAN stackMepSQLMicrosoftMobileMongoDBMontyProgramMusicMySQLMySQL ClusterNerdsNodeNoSQLNyrkiöodbaOpen ContentOpen SourceOpenSQLCampOracleOSConPAMPParkinsonPatentsPerconaperformancePersonalPhilosophyPHPPiratesPlanetDrupalPoliticsPostgreSQLPresalespresentationsPress releasesProgrammingRed HatReplicationSeveralninesSillySkySQLSolonStartupsSunSybaseSymbiansysbenchtalksTechnicalTechnologyThe making ofTransactionsTungstenTwitterUbuntuvolcanoWeb2.0WikipediaWork from HomexmlYouTube

Search

Recent blog posts

Recent comments