Skip to content

Minimax Ex.31 — truncation: the same 19 voters, four ballots cut to their top two

Generated from minimax_ex31_truncation.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

Felsenthal's Minimax truncation example, and the one case on this page where the repo does NOT reproduce the paper's winner — for a reason worth reading. Source: Dan S. Felsenthal (2010), Appendix A10, Example 31 (credited to Hannu Nurmi, private communication 24.2.2010). The same 19 voters as minimax_ex30_noshow_before.yaml, except the four C>A>B>D voters now state only their top two, C>A, saying nothing about B versus D. Felsenthal reports that this promotes C — the truncators' first choice — from loser to winner: the truncation paradox. That result depends entirely on a CONVENTION for the pair those four voters left unstated. Felsenthal applies the equal-probability convention: an unstated pair counts half a vote to each side, which inflates B's worst loss from 11 to 13 and hands the smallest worst loss (12) to C. This repo, the LH engine and BetterVoting all use the other convention — a voter who said nothing about B versus D gets no say in B versus D — under which the pair simply drops out, B's worst loss stays 11, and Minimax still elects B. No paradox appears. Both readings are defensible and the page states both; what is not defensible is quoting the result without the convention that produced it. Reproduce Felsenthal with: minimax_report.py --equal-prob, and the repo's reading by running the same tool without the flag. 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; Ranked Robin elects A.

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

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

Round-Robin — every pair, head-to-head (For – Against):
   D  beats B   11 –  4
   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 -  4 -  4 |11 -  0 -  8 | 5 -  0 - 14 |
  B > |  4 -  4 - 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      +1  C, B
    3  C          1–2–0         1      -1  A
    4  B          1–2–0         1      -3  C

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_ex31_truncation.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_ex30_noshow_before · 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