## Wiki

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

 1 2 3 1 Panagiotis Louridas `h1. Calculation of Voting Power` 1 Panagiotis Louridas 1 Panagiotis Louridas `This is a project hosting software for calculating the voting power of voters with weighted votes in an assembly.` 1 Panagiotis Louridas 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.` 1 Panagiotis Louridas 1 Panagiotis Louridas `h1. Overview` 1 Panagiotis Louridas 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.` 1 Panagiotis Louridas 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.` 1 Panagiotis Louridas 1 Panagiotis Louridas `The index is as follows:` 1 Panagiotis Louridas `* Suppose we have _n_ voters, each with a specified weight.` 1 Panagiotis Louridas `* The voters are free to vote as they please.` 1 Panagiotis Louridas `* All votes are _yes_ or _no_.` 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).` 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.` 1 Panagiotis Louridas `* Count the number of critical votes for a voter.` 1 Panagiotis Louridas `* Take all possible partitions of voters in yes and no camps.` 1 Panagiotis Louridas `* Divide the number of critical votes for a voter by the number of all possible voter partitions.` 1 Panagiotis Louridas `* The result is the probability that the voter can swing a vote.` 1 Panagiotis Louridas 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.` 1 Panagiotis Louridas 1 Panagiotis Louridas `h1. The Software` 1 Panagiotis Louridas 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.` 2 Panagiotis Louridas 3 Panagiotis Louridas `To use the program, type` 3 Panagiotis Louridas `
`
3  Panagiotis Louridas  `perl voting_power.pl < voter_file`
3  Panagiotis Louridas  `
` 3 Panagiotis Louridas 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.:` 3 Panagiotis Louridas `
`
3  Panagiotis Louridas  `France:4`
3  Panagiotis Louridas  `Germany:4`
3  Panagiotis Louridas  `Italy:4`
3  Panagiotis Louridas  `Belgium:2`
3  Panagiotis Louridas  `Netherlands:2`
3  Panagiotis Louridas  `Luxembourg:1`
3  Panagiotis Louridas  `
` 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.)` 3 Panagiotis Louridas 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` 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:` 6 Panagiotis Louridas `
`
6  Panagiotis Louridas  `France:4`
6  Panagiotis Louridas  `Germany:4`
6  Panagiotis Louridas  `Italy:4`
6  Panagiotis Louridas  `BeNeLux:5:3`
6  Panagiotis Louridas  `
` 6 Panagiotis Louridas 5 Panagiotis Louridas `The operation of the program is specified by the following switches:` 3 Panagiotis Louridas `
`
3  Panagiotis Louridas  `-q, --quorum`
3  Panagiotis Louridas  `     Set the quorum (number of voters required to reach decision)`
3  Panagiotis Louridas  `-s, --samples`
3  Panagiotis Louridas  `     Set the number of samples`
5  Panagiotis Louridas  `-t, --threshold`
1  Panagiotis Louridas  `     Set the threshold (amount of votes required to pass)`
5  Panagiotis Louridas  `-p, --percent`
5  Panagiotis Louridas  `     Output results as percentages`
5  Panagiotis Louridas  `-v, --verbose`
5  Panagiotis Louridas  `     Outputs group information (very large output)`
5  Panagiotis Louridas  ` -h, --help`
5  Panagiotis Louridas  `     Print this help screen     `
3  Panagiotis Louridas  `
` 3 Panagiotis Louridas 2 Panagiotis Louridas `h1. Support` 2 Panagiotis Louridas 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). `