Voting system R&D (Re: 2017 update to the SPI voting algorithm for Board elections)

Markus Schulze markus.schulze at
Sat Mar 4 13:01:33 UTC 2017


I recommend Schulze STV. This method is described mainly
in section 9 of this paper:

Source codes can be found here:

multi01g.cpp is multi-threading for g++.
multi01v.cpp is multi-threading for Microsoft Visual C++.
singl01g.cpp is single-threading for g++.
singl01v.cpp is single-threading for Microsoft Visual C++.


When Schulze STV is used, then each voter gets a complete
list of all candidates and ranks these candidates in order
of preference. The individual voter may give the same
preference to more than one candidate and he may keep
candidates unranked.


Schulze STV is an STV method, in so far as it satisfies
Dummett-Droop Proportionality: When strictly more than
x Droop Quotas of voters strictly prefer every candidate
of a set B of (at least x) candidates, then at least
x candidates of set B must be elected. (See section 9.3
of "verylong.pdf".)


In single-winner elections, a "Condorcet winner" is a
candidate who wins every 2-way contest. The property of
being a Condorcet winner is very important because, when
some candidate X is a Condorcet winner, then candidate X
is also a Condorcet winner when some other candidate is
removed. So when some candidate X is a Condorcet winner,
we can declare this candidate the winner, knowing that
he doesn't owe his win to the presence of some other

Schulze STV has the following property: Suppose M is the
number of seats. When some candidate X wins in every
(M+1)-candidate contest, then he is also a winner overall.
Again, the property of winning in every (M+1)-candidate
contest is important because, when some candidate X has
this property, then candidate X still has this property
when some other candidate is removed. (See section 9.4
of "verylong.pdf".)


The analysis of Schulze STV is very short because most
of its properties follow directly from the fact that,
in the single-winner case, Schulze STV is identical to
the Schulze single-winner election method, which is
analyzed in sections 2--4 of "verylong.pdf". The Schulze
single-winner election method is currently used by SPI.

Markus Schulze

More information about the Spi-general mailing list