Minimax Ex.33 — SCC: drop a loser and the winner changes¶
Generated from minimax_ex33_scc.yaml — do not edit by hand. Regenerate: python STARVote_LH_tabulation_engine/tools_adam/scripts/build_yaml_pages.py.
Method: Ranked Robin (RCV-RR / Copeland) · 1 seat · Expected winner: D
Scenario¶
Felsenthal's Minimax subset-choice-condition example — the spoiler failure. Source: Dan S. Felsenthal (2010), Appendix A10, Example 33, adapted from P.C. Fishburn, "Paradoxes of Voting", American Political Science Review 68 (1974: 540). Seven voters, four candidates: 3×(D>C>B>A), 2×(A>D>C>B), 2×(B>A>D>C). The social ordering cycles (A>D>C>B>A), so Minimax reaches for its second clause: worst pairwise losses are A 5, B 5, C 7, D 4, and D is elected on the smallest. Now let B — who cannot win, and does not — leave the race before the vote. On the same ballots minus B, A is ranked first by 4 of 7, an absolute majority, and wins outright. Removing a LOSER changed the winner from D to A: the subset choice condition (SCC) failure, the formal version of what campaigns call a spoiler. Reproduce the second count with: minimax_report.py --drop B, which recomputes every pairwise from the same ballots. At 4 candidates and 7 voters this is close to minimal — Brandt, Matthäus & Saile (2022) show a 3-candidate, 7-voter instance exists, so this one carries a single extra candidate. Labels are Felsenthal's own A/B/C/D so the case can be read side by side with the paper's table. Tabulated here as Ranked Robin for the pairwise matrix Minimax reads; Ranked Robin also lands on D, by a different route — Copeland ties A and D at 2 wins each and the margin tiebreak separates them.
Ballots¶
Each row is one voter's ranking, most-preferred first (N: prefix = N identical ballots).
3:D>C>B>A
2:A>D>C>B
2:B>A>D>C
What the engine says¶
The count, step by step — the rounds and how the winner is reached:
--- Ranked Robin (RCV-RR / Copeland) Method (single winner) ---
Tabulating 7 ballots (ranked ballots).
Ballots:
3 × D > C > B > A
2 × A > D > C > B
2 × B > A > D > C
Round-Robin — every pair, head-to-head (For – Against):
D beats C 7 – 0
D beats B 5 – 2
A beats D 4 – 3
C beats B 5 – 2
A beats C 4 – 3
B beats A 5 – 2
--- Pairwise (Round-Robin) Matrix ---
Head-to-head / pairwise comparison — the Ranked Robin tally
Legend: For - Equal Support - Against (row vs column)
| D | C | B | A |
----------------------------------------------------
D > | --- |7 - 0 - 0 |5 - 0 - 2 |3 - 0 - 4 |
C > | 0 - 0 - 7 | --- |5 - 0 - 2 |3 - 0 - 4 |
B > | 2 - 0 - 5 |2 - 0 - 5 | --- |5 - 0 - 2 |
A > | 4 - 0 - 3 |4 - 0 - 3 |2 - 0 - 5 | --- |
Win–loss record — Copeland score = wins + ½·ties (highest score wins; ties broken by total margin, then lot order):
# Candidate W–L–T Copeland Margin Beats
1 D 2–1–0 2 +9 B, C
2 A 2–1–0 2 -1 D, C
3 B 1–2–0 1 -3 A
4 C 1–2–0 1 -5 B
Winner — Ranked Robin (RCV-RR): D
*** 2 candidates tie for the most wins (D, A) — tied on the tally, not a cycle (some of them beat others head-to-head, but no loop closes). Resolved by total margin, then lot order.
Full audit — preference matrix, Condorcet, and score distribution¶
--- Smith Set (the generalized Condorcet winner) ---
The smallest group whose every member beats every candidate outside it —
the honest answer to "who is even in contention?".
Smith set (4 of 4): D, A, C, B
Outside (0): —
More than one member ⇒ NO Condorcet winner: the top of the tournament is a
cycle, so the strongest "candidate" is a set, not a person. Which member of
the set should win is exactly what Minimax / Ranked Pairs / Schulze disagree
about — see 05_Ranked_Robin/01_Learn/cycle_resolution.md.
Note: the Copeland leaders (D, A) are only part of the set — the
win–loss table's top block understates how wide the contention is.
Ranked Robin (RCV-RR) winner D is INSIDE the Smith set. ✓
Guaranteed: Ranked Robin (Copeland) is Smith-efficient — every member of
the set outscores every outsider, so the top of the win–loss table is
always inside the set, however the tie among them is then broken.
More: 07_Concepts/topics/smith_set.md
Everything in one file: the _tabulated mirror (regenerated on every run; every analysis forced on).
Run it yourself:
python STARVote_LH_tabulation_engine/starvote_larry_hastings.py method_comparisons/felsenthal_paradoxes/cases/minimax_ex33_scc.yaml
See also¶
- Condorcet efficiency (topic hub)
- Ties & tie-breaking (topic hub)
- The tie-breaking ladder (full chain)
- Vote splitting (worked set)
- Glossary · all cases by method
More cases in this set: bv2144_mxfmhm_plurality · bv2144_mxfmhm_star · bv2145_6fj2kg_irv · bv2145_6fj2kg_ranked_robin · bv2145_6fj2kg_star · bv2146_krk2px_irv · bv2146_krk2px_ranked_robin · bv2146_krk2px_star · bv2147_9gdrqg_irv · bv2147_9gdrqg_star · bv2148_h87k6v_irv · bv2148_h87k6v_star · bv2149_byk9v2_irv · bv2149_byk9v2_star · bv2150_dxg8pb_irv · bv2150_dxg8pb_ranked_robin · bv2150_dxg8pb_star · bv2151_97hbpw_irv · bv2151_97hbpw_ranked_robin · bv2151_97hbpw_star · bv2152_r6ctvy_approval · bv2152_r6ctvy_ranked_robin · bv2153_pcttmr_approval · bv2153_pcttmr_irv · bv2153_pcttmr_ranked_robin · bv2154_wq6yv7_approval · bv2154_wq6yv7_irv · bv2154_wq6yv7_ranked_robin · bv2160_r6qc8h_plurality · bv2160_r6qc8h_star · bv2161_q3h4fk_plurality · bv2161_q3h4fk_star · bv2162_4htk44_irv · bv2162_4htk44_ranked_robin · bv2162_4htk44_star · bv2163_74j6vv_irv · bv2163_74j6vv_ranked_robin · bv2163_74j6vv_star · bv2164_xbqq8t_plurality · bv2164_xbqq8t_ranked_robin · bv2164_xbqq8t_star · bv2165_9vxcj7_plurality · bv2165_9vxcj7_star · bv2166_b7b8dv_plurality · bv2166_b7b8dv_star · bv2167_f3dxq9_plurality · bv2167_f3dxq9_star · coombs_ex18_monotonicity · coombs_ex20_amalgamated · coombs_ex20_district1 · coombs_ex20_district2 · coombs_ex21_twin_after · coombs_ex21_twin_before · coombs_ex22_scc · felsenthal_ex6_pareto_approval · felsenthal_ex6_ranked_robin · minimax_ex30_noshow_after · minimax_ex30_noshow_before · minimax_ex31_truncation · minimax_ex32_amalgamated · minimax_ex32_district2 · succ_elim_ex10_amalgamated · succ_elim_ex10_district1 · succ_elim_ex10_district2 · succ_elim_ex11_twin_after · succ_elim_ex11_twin_before · succ_elim_ex12_sincere · succ_elim_ex12_truncated · succ_elim_ex9_noshow · succ_elim_ex9_pareto