Minimax Ex.30 — before: all 19 vote, Minimax elects B¶
Generated from minimax_ex30_noshow_before.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: A
Scenario¶
The BEFORE half of Felsenthal's Minimax no-show pair. Source: Dan S. Felsenthal, "Review of Paradoxes Afflicting Various Voting Procedures Where One Out of m Candidates (m ≥ 2) Must Be Elected", University of Haifa / LSE, revised 26 May 2010; Appendix A10, Example 30 (credited to Hannu Nurmi, private communication 22.2.2010). 19 voters, four candidates: 5×(D>B>C>A), 4×(B>C>A>D), 3×(A>D>C>B), 3×(A>D>B>C), 4×(C>A>B>D). The social ordering cycles (C>A>D>B>C), so there is no Condorcet winner and Minimax must fall back on its second clause — elect whoever's worst pairwise loss is smallest. Worst losses: A 13, B 11, C 12, D 14, so Minimax elects B. Then compare minimax_ex30_noshow_after.yaml, where three of the four C>A>B>D voters stay home and A wins instead — an outcome those absent voters PREFER to B. That is the no-show paradox, and read in the other direction it is the twin paradox. Labels are Felsenthal's own A/B/C/D so the case can be read side by side with the paper's table; this is an academic reproduction, not a scenario with a cast. Minimax has no tabulator in the LH engine or on BetterVoting, so the file is tabulated here as Ranked Robin — which prints the full pairwise matrix, the exact object Minimax reads. Ranked Robin then breaks the Copeland tie by margin and elects A, not B: same matrix, different cycle-breaker. For the Minimax count itself run tools_adam/pref_voting_tabulation_engine/minimax_report.py, which is cross-checked against pref_voting.
Ballots¶
Each row is one voter's ranking, most-preferred first (N: prefix = N identical ballots).
5:D>B>C>A
4:B>C>A>D
3:A>D>C>B
3:A>D>B>C
4:C>A>B>D
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 19 ballots (ranked ballots).
Ballots:
5 × D > B > C > A
4 × B > C > A > D
3 × A > D > C > B
3 × A > D > B > C
4 × C > A > B > D
Round-Robin — every pair, head-to-head (For – Against):
D beats B 11 – 8
D beats C 11 – 8
A beats D 14 – 5
B beats C 12 – 7
A beats B 10 – 9
C beats A 13 – 6
--- Pairwise (Round-Robin) Matrix ---
Head-to-head / pairwise comparison — the Ranked Robin tally
Legend: For - Equal Support - Against (row vs column)
| D | B | C | A |
----------------------------------------------------------------
D > | --- |11 - 0 - 8 |11 - 0 - 8 | 5 - 0 - 14 |
B > | 8 - 0 - 11 | --- |12 - 0 - 7 | 9 - 0 - 10 |
C > | 8 - 0 - 11 | 7 - 0 - 12 | --- |13 - 0 - 6 |
A > | 14 - 0 - 5 |10 - 0 - 9 | 6 - 0 - 13 | --- |
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 A 2–1–0 2 +3 D, B
2 D 2–1–0 2 -3 B, C
3 B 1–2–0 1 +1 C
4 C 1–2–0 1 -1 A
Winner — Ranked Robin (RCV-RR): A
*** 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, B, C
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 A 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_ex30_noshow_before.yaml
See also¶
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_ex31_truncation · minimax_ex32_amalgamated · minimax_ex32_district2 · minimax_ex33_scc · 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