Wiki

Version 2 (Panagiotis Louridas, 05/07/2010 03:35 pm) → Version 3/6 (Panagiotis Louridas, 05/07/2010 03:50 pm)

h1. Calculation of Voting Power

This is a project hosting software for calculating the voting power of voters with weighted votes in an assembly.

The software is open source and released under the terms of the "BSD license":http://www.opensource.org/licenses/bsd-license.php.

h1. Overview

A common error is the assumption that, in weighted voting, the power of a voter is their voting weight. In reality, although the weight of a voter is important, we must take into account the weights of the other voters, as well as the decision making rule, in order to arrive at a conclusion about the actual voting power each participant in the vote has.

The term _voting power_ refers to an index that captures the power of a voter to influence the outcome of a voting process. There have been several definitions of voting power in the literature, although they remained outside the discussions of mainstream politics until late in the 20th century; what's more, definitions of voting power were proposed, forgotten, and reinvented during the years. Perhaps the most intuitive definition is the one given by "Lionel Sharples Penrose":http://en.wikipedia.org/wiki/Lionel_Penrose in 1946; according to this definition, the voting power of a voter is the probability that they can swing the vote. This is known as the Penrose index or the "Penrose Banzhaf index":http://en.wikipedia.org/wiki/Penrose%E2%80%93Banzhaf_index, after "John Francis Banzhaf III":http://en.wikipedia.org/wiki/John_F._Banzhaf_III who reinvented the index in 1965.

The index is as follows:
* Suppose we have _n_ voters, each with a specified weight.
* The voters are free to vote as they please.
* All votes are _yes_ or _no_.
* There is a rule that decides when a vote passes; it may be 50% of the weights of the proponents (simple majority), or some other figure; in addition, it may require that a number of voters also support (a given quorum).
* A voter is critical in a vote if without them the vote does not pass, but with them it passes. That is, the vote must be a swing vote, decided by the voter.
* Count the number of critical votes for a voter.
* Take all possible partitions of voters in yes and no camps.
* Divide the number of critical votes for a voter by the number of all possible voter partitions.
* The result is the probability that the voter can swing a vote.

The above definition does not lead to a practical procedure for non-toy problems, as suffers from combinatorial explosion regarding the enumeration of swings and the partitions; hence, one has to find an alternative method to calculate it for many real-world assemblies.

h1. The Software

The software consists of a "Perl script":http://code.grnet.gr/projects/voting-power/repository/entry/voting_power.pl that calculates the Penrose index. It calculates the index by a Monte Carlo method: it generates a large number of voter groups and determines the percentage of those where a voter is critical; this is the Penrose index for the voter. Currently it does not give a confidence interval for the estimate it provides; however, since there will be a number of voters with identical weights, one can check how accurate the results are by noting the differences between voters with identical weights.

To use the program, type
<pre>
perl voting_power.pl < voter_file
</pre>

The input file is a text file containing in each line the id of the voter, a colon, and the number of votes, e.g.:
<pre>
France:4
Germany:4
Italy:4
Belgium:2
Netherlands:2
Luxembourg:1
</pre>
(These were the weights of the countries that formed the first European Economic Community in the "Treaties of Rome":http://en.wikipedia.org/wiki/Treaties_of_Rome in 1957 - 1958. Interestingly, Luxembourg had a vote but no voting power.)

The voting rule is specified by the following switches:
<pre>
-q, --quorum
Set the quorum (number of voters required to reach decision)
-s, --samples
Set the number of samples
-t, --threshold
Set the threshold (amount of votes required to pass)
</pre>

h1. Support

For questions, comments, suggestions, etc., you may contact its author, Panos Louridas. The address is the author's surname at the hosting organisation (grnet in greece).