Sida 1 av 1

For developers : Mathematical descript. of the voting system

InläggPostat: 2006-11-21 14.42
av Magnus Gustavsson
Mechanism details of the AD-algorithm
Each proposal has a certain accumulated support, which is represented by a any number between -1 and +1. When the voting starts, the accumulated support for the proposal is set to 0. For every day with a certain balance of votes for and against, the accumulated support grows by a constant. If there is a side switch from pro to against of vice versa, the accumulated support is set back to zero.
A vote is considered accepted or rejected when:

(Current value, called mean value in the graph) + (accumulated support) > 1 (accepted) or> -1 (rejected) (Formula corrected by Magnus G, Aktivdemokrati)

This means that many votes, in relation to the total in the electors list, for or against a proposal without majority switches gives a shorter voting period than in a very narrow field of interest (few voters).



for:

P (a proposal)

A (accumulated support)

A* (New accumulated support today)

M (Momentary support) (the sum of all votes for yes)

M* (New momentary support today)

t (days the vote has run when calculation of A)

d (democray constant), could be set to 1, 7, 30 or 356 for pedagogic reasons Z (polulation number)

At start of the vote A and M are set to zero. This is also made every time the momentary support have passed the level of zero to the other side (switching majority).

During the continous vote the value of A is calculated once a day:

Daily Update

Between 00:00 and 02:00 each day the system runs an update on all propositions in the system that have the status in-voting.

Momentary and Accumulated Support Update

When a proposition is first created its values momentary-support* and accumulated-support* are both set to 0.

Once each day the support values for a proposition P is updated as follows:

1. Set momentary-support* to the sum of all votes on P (all who have not actively voted on P are assumed to have voted blank).
2. Increase accumulated-support* with momentary-support*. (since momentary-support* could have a negative value, this could in practice mean a decrease)

Giving formula 1:

A* = M* + A

Finish Condition Check:

In addition, we have to check if the voting on a proposition is finished. To do so we need to calculate the accumulated support (without the star). Just follow these steps:

Set the accumulated support to the accumulated-support* divided by the total number of members and the democratic-constant (which is typically 7).

This would give formula 2:

A = A* /(dxZ)

Actions for the program: When A reaches +1 or -1, the vote is over and +1 means that the proposal is approved, -1 that it's rejected. If M* have been dropping down to or under zero due to a majority switch, A is set to zero. Next day, the value of A is used again in formula 1. And so on..

Conclusion:

Depending of the set value of d, the vote will take number of days in the relation of how many are voting out of all members of the electoral list. Basicly: For a certain amount of yes-voters in a particular proposal, P, many members and a high value for d will mean longer voting times (many days) until enough M* has been added to A making it as large as (d times Z), compared with few members and/or a small democracy constant, d.

Re: More detailed description on how the AD-system should wo

InläggPostat: 2008-05-17 13.45
av MrPerfect72
Are you sure it is a good idea to put this text as the first text that people read? Wouldn´t it be better if this text was part of a design document for progammers only? Don´t you agree that the party program (http://aktivdemokrati.se/manifesto/) is better as a first thread in the english forum?

...and if you keep it high as a thread, at least have a better headline that this is for programmers and that it is a detailed description of only one part of continous voting?

Re: Mathematical description on how the voting system will work

InläggPostat: 2008-09-24 09.38
av Magnus Gustavsson
You are right Martin. Ive changed the heading.

Re: For developers : Mathematical desc. of the voting system

InläggPostat: 2011-01-30 04.37
av jonas
Here is the rest of the text from the original site that now is gone:
( http://top.xwiki.com/xwiki/bin/view/Main/Voting_Methods )

A vote can be –1 (for a “no”), 0 (for “abstains from voting”) +1 (for yes”). At the start of the voting, everybody is considered to have voted 0 for the proposal except the proposer who automatically is considered to have vote +1. Votes can be changed at any time before the proposal is either accepted or rejected. Votes are tied to one's identity within the system, this identity itself being an avatar therefore protecting one's real identity while allowing for trust building and transparency-accountability. For general reference on voting systems a place to start is wikipedia's article on voting methods