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

Henrik Ingo henrik.ingo at
Sat Mar 4 13:50:32 UTC 2017

Purely as a FYI on Schulze method, it is implemented in the Liquid
Feedback system:

Liquid Feedback has been used for years in Central Europe, notably by
several chapters of the Pirate Party, but also some cooperatives, etc.

Note: LF itself is IMO not suitable for use by SPI - at least not
within the scope of the proposal now discussed.

Note: My intent here is to be purely informational. I'm not advocating
for or against the Schulze method compared to other STV methods.


On Sat, Mar 4, 2017 at 3:01 PM, Markus Schulze
<markus.schulze at> wrote:
> Hallo,
> 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
> candidate.
> 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
> _______________________________________________
> Spi-general mailing list
> Spi-general at

henrik.ingo at
+358-40-5697354        skype: henrik.ingo            irc: hingo

My LinkedIn profile:

More information about the Spi-general mailing list