DemocracyOS / democracyos

Democracia en Red is focusing on specific implementations of DemocracyOS. We are working now working with governments and activists all over Latin America. If you are interested in our online participation tools you can check them out on our site.
https://democraciaos.org/en/
GNU General Public License v3.0
1.77k stars 616 forks source link

Add ranked voting system #1378

Closed PeterTheOne closed 6 years ago

PeterTheOne commented 7 years ago

Add the option for a ranked voting system, it has some advantages to rank multiple proposals. The outcome is a more ideal election outcome, it withstands manipulative voting strategies.

Preferential voting or rank voting describes certain voting systems in which voters rank outcomes in a hierarchy on the ordinal scale (ordinal voting systems). When choosing between more than two options, preferential voting systems provide a number of advantages over first-past-the-post voting (also called plurality voting).

https://en.wikipedia.org/wiki/Ranked_voting_system

Instant-runoff voting, single transferable vote and Borda count are used in governmental elections today. I myself prefer the Schulze method, it has some advantages over other methodes and is used by many Open Source organizations like Debian, Ubuntu, etc. Other voting software like wasa2il and UniLiquid also use the Schulze method.

As far as I know there are no javascript schulze method libs on npm yet. And I'm not sure what else would need to be done to make this happen. There needs to be the possibility of multiple opposing proposals.

PeterTheOne commented 7 years ago

fyi @madcsaba (you asked about ranked voting in a different issue somewhere..)

madcsaba commented 7 years ago

We have a very detailed plan for that @magwas can tell some aspects.Thanks for the note @petertheone

santisiri commented 7 years ago

Hey @PeterTheOne we have already in place the UX required for ranked voting in Sovereign. First release coming soon. Check it out.

magwas commented 7 years ago

I would like to ask everyone concerned to familiarize with the effects of different voting systems. The fact that non-preferential voting simply cannot contain enough information to actually compute the group preferences is a minor concern compared to the devastating effect to candidate's behavior, thus the whole political culture. See the result of the last US election as an illustration. I would like to advocate against using anything but Condorcet. If you need a Condorcet implementation in any particular language, I am happy to contribute one (Schulze). Just ask.

magwas commented 7 years ago

In another note, I did some research on the sociology, information and game theory aspects of decision-making in large groups. As a result, I have put together a proposal, which carefully balances the incentives of the different players concerned, the information flow, and a handful of other aspects: https://docs.google.com/document/d/1OcSbLVbuzJ6FvandNKvS1iuqevryIkuayhiSmjd0SjA/edit I know that this paper is very hard to understand, does not even contain the reasoning behind some elements, and some parts of the proposal feels weird. I would nevertheless like to ask you to review it, and discuss those aspects which you (plan to) implement in other ways. I am happy to detail the theoretical aspects and long-term consequences of design decisions. Informed decisions would help you to create an even better software, and users to create real democracy.

PeterTheOne commented 7 years ago

I just found this library https://github.com/anarchodin/caritat (haven't looked at the code yet). It could be of use.

mjlescano commented 7 years ago

@PeterTheOne, anarchodin/caritat looks like a really a good option :)

As an starting point for this issue; we added Poll functionality on #1382. Which is important because we modified the topic schema to let the addition of new voting strategies fairly easy. So, PRs more than welcome :D

franciclo commented 6 years ago

Will be adding this feature in the future, closing this by now, has been an interesting discussion.

PeterTheOne commented 6 years ago

@franciclo Is it fixed in some project plan? Or is it more of a "won't add this right now"?

franciclo commented 6 years ago

@PeterTheOne Yes it is in our plans to add this feature, we will create a Github project to follow up in the near future.