[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