Jump to content

Schulze method

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Twilsonb (talk | contribs) at 05:35, 29 July 2009 (The path heuristic: format sub-points to be more readable). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Schulze method is a voting system developed in 1997 by Markus Schulze that selects a single winner using votes that express preferences. The method can also be used to create a sorted list of winners. The Schulze method is also known as Schwartz Sequential Dropping (SSD), Cloneproof Schwartz Sequential Dropping (CSSD), Beatpath Method, Beatpath Winner, Path Voting, and Path Winner.

If there is a candidate who is preferred pairwise over the other candidates, when compared in turn with each of the others, the Schulze method guarantees that candidate will win. Because of this property, the Schulze method is (by definition) a Condorcet method.

Currently, the Schulze method is the most wide-spread Condorcet method (list). The Schulze method is used by several organizations including Wikimedia, Debian, Gentoo, and Software in the Public Interest.

Many different heuristics for computing the Schulze method have been proposed. The most important heuristics are the path heuristic and the Schwartz set heuristic that are described below. All heuristics find the same winner and only differ in the details of the computational procedure to determine this winner.

The path heuristic

Example Schulze method ballot

Under the Schulze method (as well as under other preferential single-winner election methods), each ballot contains a complete list of all candidates and the individual voter ranks this list in order of preference. Under a common ballot layout (as shown in the image to the right), ascending numbers are used, whereby the voter places a '1' beside the most preferred candidate, a '2' beside the second-most preferred, and so forth.

Each voter may ...

  • ... give the same preference to more than one candidate. This indicates that this voter is indifferent between these candidates.
  • ... skip preferences. However, skipping preferences has no impact on the result of the elections, since only the order, in which the candidates are ranked, matters and not the absolute numbers of the preferences.
  • ... keep candidates unranked. When a voter doesn't rank all candidates, then this is interpreted as if this voter:
... (1) strictly prefers all ranked to all unranked candidates, and
... (2) is indifferent between all unranked candidates.

The basic idea of the path heuristic for the Schulze method is the concept of indirect defeats, the so-called paths.

If candidate C(1) pairwise beats candidate C(2), candidate C(2) pairwise beats candidate C(3), candidate C(3) pairwise beats candidate C(4), ..., and C(n-1) pairwise beats candidate C(n), then we say that there is a path from candidate C(1) to candidate C(n). The strength of the path C(1),...,C(n) is the weakest pairwise defeat in this sequence.

In other words:

  • Suppose d[V,W] is the number of voters who strictly prefer candidate V to candidate W.
  • A path is a sequence of candidates C(1),...,C(n) with d[C(i),C(i+1)] > d[C(i+1),C(i)] for all i = 1,...,(n-1).
  • The strength of the path C(1),...,C(n) is the minimum of all d[C(i),C(i+1)] for i = 1,...,(n-1).

The strength of the strongest path from candidate A to candidate B is the maximum of the strengths of all paths from candidate A to candidate B.

Candidate A pairwise beats candidate B indirectly if either

  • the strength of the strongest path from candidate A to candidate B is stronger than the strength of the strongest path from candidate B to candidate A or
  • there is a path from candidate A to candidate B and no path from candidate B to candidate A.

Indirect defeats are transitive. That means: If candidate A pairwise beats candidate B indirectly and candidate B pairwise beats candidate C indirectly, then also candidate A pairwise beats candidate C indirectly. Therefore, no tie-breaker is needed for indirect defeats.

Procedure

Suppose d[V,W] is the number of voters who strictly prefer candidate V to candidate W.

A path from candidate X to candidate Y of strength p is a sequence of candidates C(1),...,C(n) with the following properties:

  1. C(1) = X and C(n) = Y.
  2. For all i = 1,...,(n-1): d[C(i),C(i+1)] > d[C(i+1),C(i)].
  3. For all i = 1,...,(n-1): d[C(i),C(i+1)] ≥ p.

p[A,B], the strength of the strongest path from candidate A to candidate B, is the maximum value such that there is a path from candidate A to candidate B of that strength. If there is no path from candidate A to candidate B at all, then p[A,B] : = 0.

Candidate D is better than candidate E if and only if p[D,E] > p[E,D].

Candidate D is a potential winner if and only if p[D,E] ≥ p[E,D] for every other candidate E.

Remark

It is possible to prove that p[X,Y] > p[Y,X] and p[Y,Z] > p[Z,Y] together imply p[X,Z] > p[Z,X] [1]. Therefore, it is guaranteed (1) that the above definition of "better" really defines a transitive relation and (2) that there is always at least one candidate D with p[D,E] ≥ p[E,D] for every other candidate E.

Example

Example (45 voters; 5 candidates):

5 ACBED (that is, 5 voters have order of preference: A > C > B > E > D)
5 ADECB
8 BEDAC
3 CABED
7 CAEBD
2 CBADE
7 DCEBA
8 EBADC
d[*,A] d[*,B] d[*,C] d[*,D] d[*,E]
d[A,*] 20 26 30 22
d[B,*] 25 16 33 18
d[C,*] 19 29 17 24
d[D,*] 15 12 28 14
d[E,*] 23 27 21 31
The matrix of pairwise defeats looks as follows:

The graph of pairwise defeats looks as follows:

The strength of a path is the strength of its weakest link. For each pair of candidates X and Y, the following table lists the strongest path from candidate X to candidate Y. The critical defeats of the strongest paths are underlined.

... to A ... to B ... to C ... to D ... to E
from A ...
A-(30)-D-(28)-C-(29)-B
A-(30)-D-(28)-C
A-(30)-D
A-(30)-D-(28)-C-(24)-E
from A ...
from B ...
B-(25)-A
B-(33)-D-(28)-C
B-(33)-D
B-(33)-D-(28)-C-(24)-E
from B ...
from C ...
C-(29)-B-(25)-A
C-(29)-B
C-(29)-B-(33)-D
C-(24)-E
from C ...
from D ...
D-(28)-C-(29)-B-(25)-A
D-(28)-C-(29)-B
D-(28)-C
D-(28)-C-(24)-E
from D ...
from E ...
E-(31)-D-(28)-C-(29)-B-(25)-A
E-(31)-D-(28)-C-(29)-B
E-(31)-D-(28)-C
E-(31)-D
from E ...
... to A ... to B ... to C ... to D ... to E
The strongest paths are:
p[*,A] p[*,B] p[*,C] p[*,D] p[*,E]
p[A,*] 28 28 30 24
p[B,*] 25 28 33 24
p[C,*] 25 29 29 24
p[D,*] 25 28 28 24
p[E,*] 25 28 28 31
The strengths of the strongest paths are:

Candidate E is a potential winner, because p[E,X] ≥ p[X,E] for every other candidate X.

As 25 = p[E,A] > p[A,E] = 24, candidate E is better than candidate A.

As 28 = p[E,B] > p[B,E] = 24, candidate E is better than candidate B.

As 28 = p[E,C] > p[C,E] = 24, candidate E is better than candidate C.

As 31 = p[E,D] > p[D,E] = 24, candidate E is better than candidate D.

As 28 = p[A,B] > p[B,A] = 25, candidate A is better than candidate B.

As 28 = p[A,C] > p[C,A] = 25, candidate A is better than candidate C.

As 30 = p[A,D] > p[D,A] = 25, candidate A is better than candidate D.

As 29 = p[C,B] > p[B,C] = 28, candidate C is better than candidate B.

As 29 = p[C,D] > p[D,C] = 28, candidate C is better than candidate D.

As 33 = p[B,D] > p[D,B] = 28, candidate B is better than candidate D.

Therefore, the Schulze ranking is E > A > C > B > D.

Implementation

Suppose C is the number of candidates. Then the strengths of the strongest paths can be calculated with the Floyd–Warshall algorithm [2]. The following Pascal-like pseudocode illustrates the determination of such a path.

Input: d[i,j] is the number of voters who strictly prefer candidate i to candidate j.
Output: p[i,j] is the strength of the strongest path from candidate i to candidate j.
for i : = 1 to C
begin
   for j : = 1 to C
   begin
      if ( i  j ) then
      begin
         if ( d[i,j] > d[j,i] ) then
         begin
            p[i,j] : = d[i,j]
         end
         else
         begin
            p[i,j] : = 0
         end
      end
   end
end

for i : = 1 to C
begin
   for j : = 1 to C
   begin
      if ( i  j ) then
      begin
         for k : = 1 to C
         begin
            if ( i  k ) then
            begin   
               if ( j  k ) then
               begin
                  p[j,k] : = max ( p[j,k], min ( p[j,i], p[i,k] ) )
               end
            end
         end
      end
   end
end

The Schwartz set heuristic

Procedure

The Schwartz set heuristic for the Schulze method is an iterative heuristic.

At each stage, we proceed as follows:

  1. For each pair of undropped candidates X and Y: If there is a directed path of undropped links from candidate X to candidate Y, then we write "X → Y"; otherwise we write "not X → Y".
  2. For each pair of undropped candidates V and W: If "V → W" and "not W → V", then candidate W is dropped and all links, that start or end in candidate W, are dropped.
  3. The weakest undropped link is dropped. If several undropped links tie as weakest, all of them are dropped.

The procedure ends when all links have been dropped. The winners are the undropped candidates.

Example

Example (30 voters; 4 candidates):

3 ACDB
9 BACD
8 CDAB
5 DABC
5 DBCA
d[*,A] d[*,B] d[*,C] d[*,D]
d[A,*] 16 17 12
d[B,*] 14 19 9
d[C,*] 13 11 20
d[D,*] 18 21 10
The matrix of pairwise defeats looks as follows:

The graph of pairwise defeats looks as follows:

We get: "A → B", "A → C", "A → D", "B → A", "B → C", "B → D", "C → A", "C → B", "C → D", "D → A", "D → B", and "D → C".

As there is no pair of candidates V and W with "V → W" and "not W → V", no candidate can be dropped.

The weakest undropped link (A:B=16:14) is dropped.

Thus, we get:

We get: "A → B", "A → C", "A → D", "B → A", "B → C", "B → D", "C → A", "C → B", "C → D", "D → A", "D → B", and "D → C".

As there is no pair of candidates V and W with "V → W" and "not W → V", no candidate can be dropped.

The weakest undropped link (A:C=17:13) is dropped.

Thus, we get:

We get: "not A → B", "not A → C", "not A → D", "B → A", "B → C", "B → D", "C → A", "C → B", "C → D", "D → A", "D → B", and "D → C".

As "B → A" and "not A → B", candidate A is dropped and all links, that start or end in candidate A, are dropped.

Thus, we get:

The weakest undropped link (B:C=19:11) is dropped.

Thus, we get:

We get: "not B → C", "not B → D", "C → B", "C → D", "D → B", and "not D → C".

As "C → B" and "not B → C", candidate B is dropped and all links, that start or end in candidate B, are dropped; as "C → D" and "not D → C", candidate D is dropped and all links, that start or end in candidate D, are dropped.

As candidate C is the unique undropped candidate, candidate C is the unique winner.

Satisfied and failed criteria

Satisfied criteria

The Schulze method satisfies the following criteria:

If winning votes is used as the definition of defeat strength, it also satisfies:

If margins as defeat strength is used, it also satisfies:

Failed criteria

The Schulze method violates the following criteria:

Independence of irrelevant alternatives

The Schulze method fails independence of irrelevant alternatives. However, the method adheres to a less strict property that is sometimes called independence of Smith-dominated alternatives. It says that if one candidate (X) wins an election, and a new alternative (Y) is added, X will win the election if Y is not in the Smith set. Local IIA implies the Condorcet criterion.

Comparison with other preferential single-winner election methods

The following table compares the Schulze method with other preferential single-winner election methods:

Monotonic Condorcet Condorcet loser Majority Majority loser Mutual majority Smith ISDA Clone independence Reversal symmetry Polynomial time Participation, Consistency
Schulze Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No
Ranked Pairs Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No
Kemeny-Young Yes Yes Yes Yes Yes Yes Yes Yes No Yes No No
MiniMax Yes Yes No Yes No No No No No No Yes No
Nanson No Yes Yes Yes Yes Yes Yes No No Yes Yes No
Baldwin No Yes Yes Yes Yes Yes Yes No No No Yes No
Instant-runoff voting No No Yes Yes Yes Yes No No Yes No Yes No
Coombs No No Yes Yes Yes Yes No No No No Yes No
Contingent voting No No Yes Yes Yes No No No No No Yes No
Sri Lankan contingent voting No No No Yes No No No No No No Yes No
Supplementary voting No No No Yes No No No No No No Yes No
Borda Yes No Yes No Yes No No No No Yes Yes Yes
Bucklin Yes No No Yes Yes Yes No No No No Yes No
Plurality Yes No No Yes No No No No No No Yes Yes
Anti-plurality Yes No No No Yes No No No No No Yes Yes

This is the main difference between the Schulze method and the Ranked Pairs method:

Suppose the MinMax score of a set X of candidates is the strength of the strongest pairwise win of a candidate A ∉ X against a candidate B ∈ X. Then the Schulze method, but not the Ranked Pairs method, guarantees that the winner is always a candidate of the set with minimum MinMax score [10]. So, in some sense, the Schulze method minimizes the strongest pairwise win that has to be overturned when determining the winner.

History of the Schulze method

The Schulze method was developed by Markus Schulze in 1997. The first times that the Schulze method was discussed in a public mailing list were in 1998 [11] and in 2000 [12]. In the following years, the Schulze method has been adopted e.g. by Software in the Public Interest (2003) [13], Debian (2003) [14], Gentoo (2005), TopCoder (2005), Sender Policy Framework (2005), and the French Wikipedia section (2005). The first books on the Schulze method were written by Tideman (2006) and by Stahl and Johnson (2007). In the then following years, the Schulze method has been adopted e.g. by Wikimedia (2008) and KDE (2008).

Use of the Schulze method

sample ballot for Wikimedia's Board of Trustees elections

The Schulze method is not currently used in government elections. However, it is starting to receive support in some public organizations. Organizations which currently use the Schulze method are:

Notes

  1. ^ Schulze1, section 2.3
  2. ^ a b Schulze1, section 2.4
  3. ^ Schulze1, section 4.2
  4. ^ Schulze1, section 4.4
  5. ^ Schulze1, section 4.5
  6. ^ Schulze1, section 4.3
  7. ^ Schulze1, section 4.1
  8. ^ Schulze1, section 6
  9. ^ Schulze1, section 3.7
  10. ^ Schulze1, section 9
  11. ^ See:
  12. ^ See:
  13. ^ a b Process for adding new board members, January 2003
  14. ^ a b Constitutional Amendment: Condorcet/Clone Proof SSD Voting Method, June 2003
  15. ^ Election of the Annodex Association committee for 2007, February 2007
  16. ^ Condorcet method for admin voting, January 2005
  17. ^ See:
  18. ^ Codex Alpe Adria Competitions
  19. ^ Fellowship Guidelines
  20. ^ Report on HackSoc Elections, December 2008
  21. ^ Adam Helman, Family Affair Voting Scheme - Schulze Method
  22. ^ See:
  23. ^ Logo Competition, May 2009
  24. ^ See:
  25. ^ See this mail.
  26. ^ article XI section 2 of the bylaws
  27. ^ See:
  28. ^ See:
  29. ^ FSFLA Voting Instructions Template:Sp icon; FSFLA Voting Instructions Template:Pt icon
  30. ^ See:
  31. ^ GnuPG Logo Vote, November 2006
  32. ^ User Voting Instructions
  33. ^ Haskell Logo Competition, March 2009
  34. ^ A club by any other name ..., April 2009
  35. ^ section 3.4.1 of the Rules of Procedures for Online Voting
  36. ^ See:
  37. ^ See:
  38. ^ See:
  39. ^ article 8.3 of the bylaws
  40. ^ See:
  41. ^ Lumiera Logo Contest, January 2009
  42. ^ article 5 of the constitution
  43. ^ The MKM-IG uses Condorcet with dual dropping. That means: The Schulze ranking and the ranked pairs ranking are calculated and the winner is the top-ranked candidate of that of these two rankings that has the better Kemeny score. See:
  44. ^ Wahlmodus
  45. ^ Benjamin Mako Hill, Voting Machinery for the Masses, July 2008
  46. ^ See:
  47. ^ NSC Jersey election, NSC Jersey vote, September 2007
  48. ^ Thomas Goorden, CS community city ambassador elections on January 19th 2008 in Antwerp and ..., November 2007
  49. ^ Voting Procedures
  50. ^ 2006 Community for Pittsburgh Ultimate Board Election, September 2006
  51. ^ LogoVoting, December 2007
  52. ^ See:
  53. ^ See:
  54. ^ See:
  55. ^ See:
  56. ^ The Schulze method is one of three methods recommended for decision-making. See here.
  57. ^ Wikipedia polls, May 2009
  58. ^ See here and here.
  59. ^ See:
  60. ^ See here.

Note that these sources may refer to the Schulze method as CSSD, SSD, beatpath, path winner, etc.

General

Tutorials

Advocacy

Research papers

Books

  • Saul Stahl and Paul E. Johnson (2007), Understanding Modern Mathematics, Sudbury: Jones and Bartlett Publishers, ISBN 0-7637-3401-2
  • Nicolaus Tideman (2006), Collective Decisions and Voting: The Potential for Public Choice, Burlington: Ashgate, ISBN 0-7546-4717-X

Software

Legislative projects