[EM] VoteFair Ranking software version 6.0 in C++ with MIT license

VoteFair electionmethods at votefair.org
Sun Dec 15 22:42:38 PST 2019


Recently I "ported" the Perl-language VoteFair Ranking software to the 
C++ language.  The Perl version was released under the Perl Artistic 
License.  The C++ version is available under the MIT license.  Here is 
the link to the new C++ version:

   https://github.com/cpsolver/VoteFair-ranking-cpp

For those who don't already know about VoteFair ranking, here is a brief 
description (copied from the announcement on Reddit):

VoteFair Ranking uses ranked ballots and provides two kinds of PR 
(Proportional Representation). In addition to allocating some 
statewide/nationwide seats based on political-party preferences, each 
double-sized-plus district has two seats, and the second seat is won by 
the candidate who best represents the voters who are not 
well-represented by the first-seat winner.

An additional fairness feature of VoteFair Ranking is that voters rank 
the political parties, and the results determine which two or three 
parties in that district can offer a second candidate in the next 
election. It also identifies which parties are so unpopular (in that 
district) that they should not be allowed to offer any candidate in that 
district. (Remember that vote splitting is what currently limits each 
political party to a single candidate.)

The ballots are very simple. One question asks voters to rank the 
candidates in that district, and the other question asks voters to rank 
political parties. The recommended ballot format is paper ballots with 
ovals that are marked to indicate first choice, second choice, third 
choice, and so on down to least-favorite choice. The software allows 
more than one candidate (or party) to be marked at the same preference 
level.

Recently the Perl version was used in the 2019 Canadian Federal Election 
Anti-Vote-Splitting Poll here:

   https://www.newsherenow.com/news_here_now_poll_results_canada.html

Alas, there were not enough participants to provide meaningful results.

VoteFair calculations use pairwise counting to ensure especially fair 
results. Specifically, VoteFair popularity ranking is mathematically 
equivalent to the Condorcet-Kemeny method. Although some people dismiss 
this method as requiring too much computer time when there are lots of 
candidates, this software is very fast, even when there are 50 choices.

The VoteFair.org website has been using earlier versions of VoteFair 
Ranking software for the last two decades, so the software has been used 
for many real-life elections and polls in non-governmental organizations 
throughout the world.


Here is what I wrote in response to a question about how the software 
works:  If you're already familiar with "Condorcet" methods, the 
foundation of the calculations can be thought of this way: When the 
pairwise (one-on-one) counts are arranged in a table (matrix) the 
sequence of candidates (from possibly most popular to possibly least 
popular) is rearranged until the biggest counts are in the upper-right 
triangular area (of the table/matrix), and the smallest counts are in 
the lower-left triangular area.


Richard Fobes


More information about the Election-Methods mailing list