<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
MMT:<br><br>MMT can be made to meet FBC by replacing "...over all candidates outside that set" with<br>"at top or over all candidates outside that set".<br><br>But it still isn't ideal, because it makes all middle ratings strongly conditional, preventing middle<br>support for a lesser-evil who is genuinely a middle candidate, between favorite and the unacceptables,<br>whose voters have good strategic reason to not support your favorites, and shouldn't be expected<br>to.<br><br>Anyway, MMT doesn't avoid Mono-Add-Plump failure, and only improves on MDDTR by not<br>failing Plurality in the ABC or in Kevin's MMPO bad-example.<br><br>To MMT, I prefer MMPO, MDDTR, MTAOC, and the ABC-passing new methods of Forrest and Chris.<br><br>MTAOC:<br><br>As I posted it, MTAOC works tolerably, but not exactly as I'd intended. Say you top-rate two candidates, and<br>only of them is close enough to your conditionally middle-rated lesser-evil for us to expect mutuality. The<br>MTAOC that I posted can cancel your middle vote for that lesser evil just because hir voters don't support<br>_both_ of your top-rated candidates, including the one that is quite distant from their own candidate.<br><br>Requiring only that a lesser-evil's top-supporters only mutually support _one_ of your top-rated<br>candidates, however, would be too lenient. Maybe they'd support only one of your bare compromises<br>that you strategically rated top, rather than a favorite of yours.<br><br>Much improved MTAOC refinement:<br><br>So it's best to let the voter specify which of hir top-rated candidates are "coalition-sufficient"--candidates<br>whom you expect a conditionally-middle-rated lesser-evil's top-supporters to mutually support, in order<br>for them to get your conditional middle vote.<br><br>The ballot would then, strictly-speaking, be 5-slot ballot, though the method is just the same 3-slot<br>method with conditional-support refinements.<br><br>As before, you give, to a candidate, a conditional or unconditional middle rating. But now, if you do, <br>you can also indicate which of your top-rated candidates are "coalition-sufficient", meaning that<br>a conditionally-middle-rated candidate can get your middle rating if hir top-supporters support<br>that "coalition-sufficient" top-rated candidate of yours.<br><br>The count rule for the method that I now call MTAOC is best expressed as pseudocode. That doesn't<br>make it too complicated to propose. The pseudocode is simpler than that for STV, and STV has been<br>publicly accepted, in the U.S. and in Australia.<br><br>For STV or MTAOC, when you tell someone what the method does, what it guarantees, what<br>kind of voting it allows, that person won't insist on reading, understanding and approving the<br>computer program that implements it.<br><br>I'd also like to hear brief and natually & obviously motivated explanations for what Chris's and<br>Forrrest's ABC-passing methods do--to tell people why they want that method, without their<br>reading the more complicated details of the official count rule.<br><br>This pseudocode for MTAOC consists of three sections:<br><br>1. Determine support-parity for each ordered pair of candidates.<br><br>2. Determine if y top-voters mutually support at least one of your coalition-sufficient<br>candidates. If not, your conditional middle-rating for y is marked unkept.<br><br>3. If not, take back your unkept middle-rating of y--toward achieving support-parity<br>between y and one of your coalition-sufficient candidates.<br><br>Now, the pseudocode.<br><br>First a few definitions:<br><br>middle(x,y) is the number of ballots that top-rate x but not y, and middle-rate y.<br><br>middle(b,y) = "yes" means that ballot b middle-rates y<br><br>condmiddle(b,y) = "yes" means that ballot b conditionally middle-rates y.<br><br>middle(y) is the number of middle ratings that y has (allowing for any withdrawn conditional middle ratings).<br><br>sufficient(b,x) = "yes" if ballot b marks candidate x as coalition-sufficient.<br><br>par(x,y) and keep(b,y) are defined in the pseudocode.<br><br>Let me know if I've left anything out.<br><br>Initialize par(x,y) at "yes" for all permutations of x and y.<br><br>Initialize keep(b,y) at "no" for all permutations of b and y.<br><br><br>Comment: Determine support-parity for each ordered pair of candidates:<br><br>for all x<br>...for all y<br>......if middle(x,y) > middle(y,x) then:<br>.........par(x,y) = "no"<br>......endif<br>...next y<br>next x<br><br>Comment: Determine if y top-voters mutually support at least one of your <br>coalition-sufficient candidates. If not, your conditional middle support of y<br>is marked unkept:<br><br>for all b<br>...for all x<br>......for all y<br>.........if par(x,y) = "yes", and sufficient(b,x) = "yes", and condmiddle(b,y) = "yes", then:<br>............keep(b,y) = "yes"<br>.........endif<br>......next y<br>...next x<br>next b<br><br>Comment: If kept(b,y) = "no", then take back your unkept middle rating of y--toward<br>achieving support-parity between y and one of your coalition-sufficient candidates:<br><br>for all x<br>...for all y<br>......for all b<br>.........if keep(b,y) = "no", and par(x,y) = "no", and condmiddle(b,y) = "yes"<br>............and sufficient(b,x) = "yes", then:<br>............middle(b,y) = "no"<br>............condmiddle(b,y) = "no"<br>............recalculate middle(x,y)<br>............recalculate middle(y)<br>.........endif<br>......next b<br>...next y<br>next x<br><br>[end of pseudocode]<br><br>That's how conditional middle ratings are dealt with. That pseudocode<br>gives the new value for each middle(y). Those are the middle-rating values that are<br>used in the MTA top + middle count, in MTAOC.<br><br>Mike Ossipoff<br><br><br><br><br>                                        </div></body>
</html>