Wiki

Version 6 (Panagiotis Louridas, 05/19/2010 11:38 am)

1 1 Panagiotis Louridas
h1. Calculation of Voting Power
2 1 Panagiotis Louridas
3 1 Panagiotis Louridas
This is a project hosting software for calculating the voting power of voters with weighted votes in an assembly.
4 1 Panagiotis Louridas
5 1 Panagiotis Louridas
The software is open source and released under the terms of the "BSD license":http://www.opensource.org/licenses/bsd-license.php.
6 1 Panagiotis Louridas
7 1 Panagiotis Louridas
h1. Overview
8 1 Panagiotis Louridas
9 1 Panagiotis Louridas
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.
10 1 Panagiotis Louridas
11 1 Panagiotis Louridas
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.
12 1 Panagiotis Louridas
13 1 Panagiotis Louridas
The index is as follows:
14 1 Panagiotis Louridas
* Suppose we have _n_ voters, each with a specified weight.
15 1 Panagiotis Louridas
* The voters are free to vote as they please.
16 1 Panagiotis Louridas
* All votes are _yes_ or _no_.
17 1 Panagiotis Louridas
* 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).
18 1 Panagiotis Louridas
* 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.
19 1 Panagiotis Louridas
* Count the number of critical votes for a voter.
20 1 Panagiotis Louridas
* Take all possible partitions of voters in yes and no camps.
21 1 Panagiotis Louridas
* Divide the number of critical votes for a voter by the number of all possible voter partitions.
22 1 Panagiotis Louridas
* The result is the probability that the voter can swing a vote.
23 1 Panagiotis Louridas
24 1 Panagiotis Louridas
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.
25 1 Panagiotis Louridas
26 1 Panagiotis Louridas
h1. The Software
27 1 Panagiotis Louridas
28 2 Panagiotis Louridas
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.
29 2 Panagiotis Louridas
30 3 Panagiotis Louridas
To use the program, type
31 3 Panagiotis Louridas
<pre>
32 3 Panagiotis Louridas
perl voting_power.pl < voter_file
33 3 Panagiotis Louridas
</pre>
34 3 Panagiotis Louridas
35 3 Panagiotis Louridas
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.:
36 3 Panagiotis Louridas
<pre>
37 3 Panagiotis Louridas
France:4
38 3 Panagiotis Louridas
Germany:4
39 3 Panagiotis Louridas
Italy:4
40 3 Panagiotis Louridas
Belgium:2
41 3 Panagiotis Louridas
Netherlands:2
42 3 Panagiotis Louridas
Luxembourg:1
43 3 Panagiotis Louridas
</pre>
44 3 Panagiotis Louridas
(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.)
45 3 Panagiotis Louridas
46 6 Panagiotis Louridas
If you want to work with coalitions, then you add the votes for all of them, you remove the individual voters and add one supervoter (standing for the coalition) in the  input file. The supervoter's line can have an additional field that specifies the numbers of members in the coalition (this additional field, set to 1, will not hurt if present
47 6 Panagiotis Louridas
in single voters). That means, if Belgium, Netherlands and Luxembourg always voted as a block, the correct voting power should be calculated based on the following file:
48 6 Panagiotis Louridas
<pre>
49 6 Panagiotis Louridas
France:4
50 6 Panagiotis Louridas
Germany:4
51 6 Panagiotis Louridas
Italy:4
52 6 Panagiotis Louridas
BeNeLux:5:3
53 6 Panagiotis Louridas
</pre>
54 6 Panagiotis Louridas
55 5 Panagiotis Louridas
The operation of the program is specified by the following switches:
56 3 Panagiotis Louridas
<pre>
57 3 Panagiotis Louridas
-q, --quorum
58 3 Panagiotis Louridas
     Set the quorum (number of voters required to reach decision)
59 3 Panagiotis Louridas
-s, --samples
60 3 Panagiotis Louridas
     Set the number of samples
61 5 Panagiotis Louridas
-t, --threshold
62 1 Panagiotis Louridas
     Set the threshold (amount of votes required to pass)
63 5 Panagiotis Louridas
-p, --percent
64 5 Panagiotis Louridas
     Output results as percentages
65 5 Panagiotis Louridas
-v, --verbose
66 5 Panagiotis Louridas
     Outputs group information (very large output)
67 5 Panagiotis Louridas
 -h, --help
68 5 Panagiotis Louridas
     Print this help screen     
69 3 Panagiotis Louridas
</pre>
70 3 Panagiotis Louridas
71 2 Panagiotis Louridas
h1. Support
72 2 Panagiotis Louridas
73 2 Panagiotis Louridas
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).