abcvoting Benchmark Dashboard

About the Benchmarks

Instance Generation

1000 benchmark instances are generated using various probability models from the abcvoting library:

  • IC (Impartial Culture): Each candidate is approved independently with probability p (p=0.3 or p=0.5)
  • IC fixed-size: Each voter approves exactly k candidates uniformly at random (k=2, 3, or 4)
  • Truncated Mallows: Voters have correlated preferences based on a central ranking with dispersion parameter
  • Urn fixed-size: Polya-Eggenberger urn model with replacement parameter

Instance Parameters

  • Number of voters: Uniformly sampled from [5, 100]
  • Number of candidates: Uniformly sampled from [5, 100]
  • Committee size: Between max(3, num_cand/10) and max(4, num_cand/3)

Instance Ordering

Instances are sorted by number of candidates, then by committee size, then by number of voters. This ordering prioritizes the parameters that most affect computational complexity for ABC voting rules.

Benchmark Execution

  • Each rule/algorithm combination runs through instances in order
  • A cumulative timeout applies to all instances together (not per-instance)
  • When the cumulative runtime exceeds the timeout, remaining instances are skipped
  • The "Completed" column shows how many instances finished before timeout

Instance Distribution: Voters vs Candidates

Committee Size Distribution

Resolute Mode

Rule Algorithm Completed Total Runtime
AV
Approval Voting (AV)
standardfastest1000/100099ms
SAV
Satisfaction Approval Voting (SAV)
standardfastest1000/1000134ms
PAV
Proportional Approval Voting (PAV)
gurobifastest1000/100021.10s
SLAV
Sainte-Laguë Approval Voting (SLAV)
gurobifastest1000/100025.08s
CC
Approval Chamberlin-Courant (CC)
gurobifastest1000/100013.87s
lex-CC
Lexicographic Chamberlin-Courant (lex-CC)
gurobifastest692/1000timeout
2-Geometric
2-Geometric Rule
gurobifastest1000/10003.0m
Adams-AV
Adams Approval Voting
gurobifastest1000/100057.95s
seq-PAV
Sequential Proportional Approval Voting (seq-PAV)
standardfastest1000/10007.34s
revseq-PAV
Reverse Sequential Proportional Approval Voting (revseq-PAV)
standardfastest1000/100047.45s
seq-SLAV
Sequential Sainte-Laguë Approval Voting (seq-SLAV)
standardfastest1000/10007.47s
seq-CC
Sequential Approval Chamberlin-Courant (seq-CC)
standardfastest1000/10005.07s
seq-Phragmén
Phragmén's Sequential Rule (seq-Phragmén)
float-fractionsfastest1000/10005.25s
minimax-Phragmén
Phragmén's Minimax Rule (minimax-Phragmén)
gurobifastest1000/10004.3m
leximax-Phragmén
Phragmén's Leximax Rule (leximax-Phragmén)
gurobifastest1/1000timeout
Maximin-Support
Maximin Support Method (MMS)
nx-max-flowfastest492/1000timeout
Monroe
Monroe's Approval Rule (Monroe)
gurobifastest576/1000timeout
Greedy Monroe
Greedy Monroe
standardfastest1000/100030.75s
minimaxav
Minimax Approval Voting (MAV)
gurobifastest983/1000timeout
lex-MAV
Lexicographic Minimax Approval Voting (lex-MAV)
brute-forcefastest⚠ differs from "fastest"-default237/1000timeout
Equal Shares
Method of Equal Shares (aka Rule X) with Phragmén phase
float-fractionsfastest1000/10007.63s
Equal Shares with AV completion
Method of Equal Shares (aka Rule X) with AV completion
float-fractionsfastest1000/10005.62s
Equal Shares with increment completion
Method of Equal Shares (aka Rule X) with increment completion
gmpy2-fractionsfastest⚠ differs from "fastest"-default1000/10001.1m
Phragmén-Eneström
Method of Phragmén-Eneström
float-fractionsfastest1000/10003.33s
Consensus Rule
Consensus Rule
float-fractionsfastest1000/10003.76s
Trivial Rule
Trivial Rule
standardfastest1000/100027ms
E Pluribus Hugo
E Pluribus Hugo (EPH)
float-fractionsfastest1000/10003.41s

Irresolute Mode (max_num_of_committees=10)

Rule Algorithm Completed Total Runtime
AV
Approval Voting (AV)
standardfastest1000/1000170ms
SAV
Satisfaction Approval Voting (SAV)
standardfastest1000/1000180ms
PAV
Proportional Approval Voting (PAV)
gurobifastest1000/100054.86s
SLAV
Sainte-Laguë Approval Voting (SLAV)
gurobifastest1000/10001.0m
CC
Approval Chamberlin-Courant (CC)
gurobifastest1000/10001.3m
lex-CC
Lexicographic Chamberlin-Courant (lex-CC)
gurobifastest665/1000timeout
2-Geometric
2-Geometric Rule
gurobifastest934/1000timeout
Adams-AV
Adams Approval Voting
gurobifastest1000/10002.4m
seq-PAV
Sequential Proportional Approval Voting (seq-PAV)
standardfastest555/1000timeout
revseq-PAV
Reverse Sequential Proportional Approval Voting (revseq-PAV)
standardfastest224/1000timeout
seq-SLAV
Sequential Sainte-Laguë Approval Voting (seq-SLAV)
standardfastest724/1000timeout
seq-CC
Sequential Approval Chamberlin-Courant (seq-CC)
standardfastest970/1000timeout
seq-Phragmén
Phragmén's Sequential Rule (seq-Phragmén)
float-fractionsfastest643/1000timeout
minimax-Phragmén
Phragmén's Minimax Rule (minimax-Phragmén)
gurobifastest400/1000timeout
leximax-Phragmén
Phragmén's Leximax Rule (leximax-Phragmén)
gurobifastest1/1000timeout
Maximin-Support
Maximin Support Method (MMS)
nx-max-flowfastest314/1000timeout
Monroe
Monroe's Approval Rule (Monroe)
gurobifastest257/1000timeout
minimaxav
Minimax Approval Voting (MAV)
pulp-highsfastest526/1000timeout
lex-MAV
Lexicographic Minimax Approval Voting (lex-MAV)
brute-forcefastest⚠ differs from "fastest"-default237/1000timeout
Equal Shares
Method of Equal Shares (aka Rule X) with Phragmén phase
float-fractionsfastest317/1000timeout
Equal Shares with AV completion
Method of Equal Shares (aka Rule X) with AV completion
float-fractionsfastest696/1000timeout
Phragmén-Eneström
Method of Phragmén-Eneström
float-fractionsfastest847/1000timeout
Consensus Rule
Consensus Rule
float-fractionsfastest970/1000timeout
Trivial Rule
Trivial Rule
standardfastest1000/1000137ms
E Pluribus Hugo
E Pluribus Hugo (EPH)
float-fractionsfastest1000/10003.44s