<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 6, 2023, 1:43 AM Kristofer Munsterhjelm <<a href="mailto:km_elmet@t-online.de">km_elmet@t-online.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 7/6/23 03:35, Forest Simmons wrote:<br>
> For each candidate Y, let RBAFP(Y) be Y's  Random Ballot Anti-Favorite <br>
> Probability ... the probability that on a randomly drawn ballot, <br>
> candidate Y would be the candidate designated as "anti-favorite" (worst <br>
> position) on the ballot.<br>
> <br>
> For each candidate X, let S(X) be the sum over all Y that defeat X, of <br>
> RBAFP(Y).<br>
> <br>
> Elect argmin(S(X))<br>
<br>
Let's consider the three-candidate ABCA cycle case.<br>
<br>
If I'm not mistaken, at least when all ballots are fully specified, <br>
RBAFP(Y) is linearly related to just Y's Antiplurality score, because <br>
the probability is Y's antiplurality count or score, divided by the <br>
number of voters.<br>
<br>
So in this simple cycle, we associate with A the strength of the number <br>
of last preference votes for the candidate who beats A pairwise. So in <br>
my terminology: lpC. Since minimum wins, and my "linear" methods elect <br>
the candidate with a *maximum*, A's score is thus -lpC.<br>
<br>
<br>
I just created a burial example finder that uses linear programming; I <br>
was going to write a post about using a sort of alternating method <br>
(first find DMTCBR burial example, then find method that doesn't fail <br>
it, then find a burial example that *it* fails, etc) as a poor man's <br>
quantifier elimination, but I haven't got around to do it. Still, it's <br>
useful for finding a particular example.<br>
<br>
What we want is:<br>
        - A has >1/3 first preferences and is the honest Condorcet winner, <br>
hence the dominant mutual third candidate.<br>
        - Then some BAC voters change their vote into BCA<br>
        - As a result there's an ABCA cycle and B wins, i.e.<br>
                - lpA is less than lpC (B has a better score than A),<br>
and             - lpB is less than lpC (B has a better score than C).<br>
<br>
This produces the following example:<br>
        2: A>B>C<br>
        1: B>C>A (honest is B>A>C)<br>
        2: C>A>B<br>
<br>
It's an A>B>C>A cycle: A has 2 first preferences out of 5, hence >1/3 <br>
first preferences. The probabilities of a ballot having a last <br>
preference for<br>
        A is 1/5<br>
        B is 2/5<br>
        C is 3/5<br></blockquote></div></div><div dir="auto">Since these events are mutually exclusive, the probabilities should not surpass 100 percent.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
A's penalty (to be minimized) is C's probability, i.e. 3/5. B's penalty <br>
is A's last place probability, i.e. 1/5; and C's penalty is B's: 2/5.<br>
<br>
So the social ordering is B>C>A. Hence the burial paid off. It pushed A <br>
from first to last place.<br>
<br>
However, the example election has an unusual configuration: the burial <br>
fails for every method implemented by LeGrand's rbvote (my mirror is at <br>
<a href="https://munsterhjelm.no/km/rbvote/calc.html" rel="noreferrer noreferrer" target="_blank">https://munsterhjelm.no/km/rbvote/calc.html</a>). Thus it might well have <br>
been hard to spot the flaw.<br>
<br>
In case it might be of interest, I've added the AMPL/GMPL linear program <br>
below :-) I've added integer constraints so that the ballot weights are <br>
all integer, which strictly speaking makes this an integer program, but <br>
it would work even without those constraints.<br>
<br>
var ABC >= 0 integer;<br>
var ACB >= 0 integer;<br>
var BAC >= 0 integer;<br>
var BCA >= 0 integer;<br>
var CAB >= 0 integer;<br>
var CBA >= 0 integer;<br>
var V >= 0 integer;<br>
var lpA >= 0 integer;<br>
var lpB >= 0 integer;<br>
var lpC >= 0 integer;<br>
<br>
minimize voters: V;<br>
<br>
s.t. def_V: V = ABC + ACB + BAC + BCA + CAB + CBA;<br>
s.t. fpA_exceeds_third: 3 * (ABC + ACB) >= 1 + ABC + ACB + BAC + BCA + <br>
CAB + CBA;<br>
s.t. AbeatsB: ABC + ACB + CAB >= BAC + BCA + CBA + 1;<br>
s.t. BbeatsC: BAC + BCA + ABC >= CAB + CBA + ACB + 1;<br>
s.t. CbeatsAafter: CAB + CBA + BCA >= ABC + ACB + BAC + 1;<br>
s.t. AbeatsCbefore: ABC + ACB + BAC + 1 >= BCA + CAB + CBA;<br>
<br>
s.t. def_lpA: lpA = BCA + CBA;<br>
s.t. def_lpB: lpB = ACB + CAB;<br>
s.t. def_lpC: lpC = BAC + ABC;<br>
<br>
s.t. lpA_less_than_lpC: lpC >= lpA + 1;<br>
s.t. lpB_less_than_lpC: lpB >= lpA + 1;<br>
<br>
solve;<br>
<br>
It can easily be adapted to find burial examples for other methods. For <br>
instance, here are constraints for Smith,Antiplurality and Smith,Bucklin:<br>
<br>
s.t. lpB_less_than_lpC: lpC >= lpB + 1;<br>
s.t. lpB_less_than_lpA: lpA >= lpB + 1;<br>
<br>
which gives<br>
        2: A>B>C<br>
        1: B>C>A<br>
        1: C>A>B<br>
        1: C>B>A<br>
<br>
(Funnily, with three candidates and complete ballots, Bucklin seems to <br>
be just Majority,Antiplurality: either someone has a majority, or the <br>
candidate with the greatest first pref + second pref count wins; but <br>
first + second + last prefs = number of voters, so that's the same as <br>
the candidate with the fewest last place votes winning!)<br>
<br>
-km<br>
</blockquote></div></div></div>