[EM] A method "DNA" generator, tester, and fixer
Kevin Venzke
stepjak at yahoo.fr
Sat May 15 11:55:26 PDT 2010
Hello,
I've been working on a new method generator/tester/fixer. I did this once
before, and my approach is still the same, but now truncation is allowed
(instead of strict ranking). The old simulation only defined methods on
8 scenarios, allowing 6561 possible methods. The new simulation defines
methods on 27 scenarios, which means 7.6 trillion methods.
Here are the assumptions: There are three candidates, each with his own
bloc of voters. It's assumed by at least one of my criteria that if one
bloc made up a majority, that candidate would win. So, in all scenarios
there is no majority.
The candidates and blocs are named A, B, and C, corresponding to their
rank in first-preference tally.
Each bloc unanimously votes also for a second preference, or no second
preference.
Methods must be decisive in all scenarios, so to represent a sometimes
indecisive method (C//A, MMPO) I break ties according to A>B>C.
So you see that there are three ways for each faction to vote, which
forms the 27 scenarios. Then with 3 possible winners for each scenario,
you get 3^27 = 7.6 trillion methods.
Some methods aren't quite possible to implement (margins, Borda, probably
QLTD) because they require more information than just the relative bloc
sizes. You can define them if you make assumptions on how large A-B-C are
though.
Methods are described/defined by a DNA-like sequence. Here are some
common methods:
AAAAAAAAAAAAAAAAAAAAAAAAAAA FPP
ABAABAABAABAABAABAABAABAABA IRV
AAAAAAABAAAAAAAABAAAAAAAABA VFA
AAAAAAABAAAAAAAABAAAAAAAACA DSC or SPST (can't differentiate)
AAAABAABCAAAABBABBAAAACCACC DAC
AAAABAABCABABBBBBBAAAACCCCC Bucklin (could use for Approval//FPP too)
ABAABACBBABAABAABBAAAACACCC MMPO//FPP
ABAABACBCABAABAABBAAAACACCC WV (Schulze, RP, Minmax, River)
ABAABACBBABAABAABBAAAACACCC Margins assuming 40% 35% 25%
ABAABAABAABAABAABAAAAAAACCC Margins assuming 49% 27% 24%
ABAABAABCABAABABBBAAAACACCC Condorcet//Approval
ABAABAABAABAABAABAABAABACCC Condorcet//IRV
ABAABACBCABAABABBBAAAACACCC Conditional Approval
ABAABACBBABAABABBBAAAACACCC MAP (Majority Favorite//Antiplurality)
ABAABAABAABAABAABAACAACAACA a new Later-no-harm method I want to propose
AAAABAABCABAABAABBAAAABACCC SMD,TR
The criteria they are tested against are pretty standard, although with
some I can only test subsets due to the limited resolution of the
scenarios. I can't test Participation in general, or Clone-Loser, or
Mono-add-plump.
Here are the criteria at the moment. I can make more, and have tried to
come up with weakened versions of criteria to try to weed out the
completely absurd methods from ones which may have unusual merits.
mays: Named after May's criterion, but actually says that when no bloc
expresses a second preference, then A always wins. This is implied by
the Plurality criterion also.
condnet: Condorcet(net) winner. A candidate with pairwise wins over the
other two candidates always wins.
condgs: Condorcet(gross) winner. A candidate with majorities over the
other two candidates always wins. In practice, here, this means that
every bloc voted for the candidate.
wkcgs: Weak Condorcet(gross) winner. Same as above, but it does not
apply if the candidate is C.
ptcp: Participation for bloc C. If the C voters don't vote, it is assumed
that A will win. Therefore, when the C voters vote C>A, it should never
occur that B wins. (You still have the threat of favorite betrayal by
C voters, but only IRV solves this, as it's the only non-silly method
defined as electing the second preference of the C bloc.)
md: Minimal defense. If two blocs vote for a common candidate and do not
vote for the other of the three candidates, then this latter candidate
must lose.
wkmd: Weak minimal defense. Same as above, except it doesn't apply when
the common candidate is C.
sfc: A pairwise version of Ossipoff's Strategy-Free Criterion. If X has
a majority win over Y, and no one has a majority win over X, then Y
must not win. In practice it is a limited form on LNHarm.
plur: Plurality. In this setting it says that only A can win without
receiving second preferences.
wkplur: Weak plurality. Same as above, but only applies when the winner
is also the Condorcet(net) loser. In practice this usually (or always?)
means that B can win without second-preferences as long as he pairwise
defeats C.
cnetloser: Condorcet(net) loser. A candidate defeated in both pairwise
contests must lose.
cgsloser: Condorcet(gross) loser. A candidate with majorities against
him from both other candidates must lose. This also stands in for
Clone-Winner (if one candidate were split in two in a two-candidate
election), Majority for Solid Coalitions, and Majority Last Preference,
because if this happens it means the other two blocs form a majority
solid coalition united against this candidate.
alp: Bloc A's strict last preference must lose. It's sort of a "right
to try to compromise" for the A bloc. I came up with it to express what
is disappointing about IRV, and fixed by some other methods like DSC.
(You do have to be careful that A bloc can't use this privilege for
offensive strategy: We come to that below.)
lnhm: Later-no-harm. If X wins when bloc X truncated, then X still wins
when a second preference is given.
lnhp: Later-no-help. If X wins when bloc X expressed a second preference,
then X still wins when bloc X truncates.
matb: Mono-add-top for B bloc. If B wins and B bloc is reinforced to
become the largest bloc, then B still wins (but called A).
matc: Mono-add-top for C bloc. If C wins and C bloc is reinforced to
become the middle bloc, then C still wins (but called B).
mr: Mono-raise. If X wins then X still wins when X is raised to become
the second-preference of some bloc. This is a limited form of the
MR criterion which (quite clearly) IRV doesn't fail. I am not sure if
I can define a monotonicity criterion that IRV fails in this setting.
abc: A burying with C. If A wins with A bloc voting A>C, then A still
wins when they just vote A. It is ok if changing A>B to A>C causes A
to win: The thought is that it's more likely that A wouldn't vote for
the "true" second preference if they are trying to steal the election
from him. (Further, suppose that voting A>B makes B win but just voting
A would let A win? Then to criticize the "effect" of A>C seems odd.)
bbc: B burying with C. Same as above except swap A and B. More burial
criteria could be defined: In particular, in some methods it's possible
for C to win by picking the right candidate to support in second place.
trunc: I added this out of curiosity: Truncation is not allowed to
produce a distinct result, which couldn't be obtained by listing some
second preference. This is not necessarily a strategically useful
guarantee though. Most obviously approval-based methods will tend to fail
this.
So, for the above methods I'll list which of the criteria they are
determined to fail. If one failure implies others, I'll list the others
afterwards in parentheses.
AAAAAAAAAAAAAAAAAAAAAAAAAAA FPP
wkcgs (condgs (condnet)) wkmd (md) sfc cgsloser (cnetloser)
ABAABAABAABAABAABAABAABAABA IRV
condgs (condnet) md sfc alp
AAAAAAABAAAAAAAABAAAAAAAABA VFA
wkcgs (condgs (condnet)) wkmd (md) sfc alp bbc (lnhp)
AAAAAAABAAAAAAAABAAAAAAAACA DSC or SPST (can't differentiate)
wkcgs (condgs (condnet)) wkmd (md) sfc bbc (lnhp)
AAAABAABCAAAABBABBAAAACCACC DAC
wkcgs (condgs (condnet)) sfc lnhm trunc
AAAABAABCABABBBBBBAAAACCCCC Bucklin (could use for Approval//FPP too)
ptcp condnet sfc lnhm trunc
(a variant fixes ptcp... may discuss this later)
ABAABACBBABAABAABBAAAACACCC MMPO//FPP
plur abc bbc (lnhp)
ABAABACBCABAABAABBAAAACACCC WV (Schulze, RP, Minmax, River)
lnhm abc bbc (lnhp)
ABAABACBBABAABAABBAAAACACCC Margins assuming 40% 35% 25%
plur abc bbc (lnhp)
ABAABAABAABAABAABAAAAAAACCC Margins assuming 49% 27% 24%
wkmd (md) sfc lnhm abc (lnhp)
ABAABAABCABAABABBBAAAACACCC Condorcet//Approval
ptcp sfc lnhm abc bbc (lnhp) trunc
ABAABAABAABAABAABAABAABACCC Condorcet//IRV
md sfc alp lnhm
ABAABACBCABAABABBBAAAACACCC Conditional Approval
ptcp lnhm abc bbc (lnhp)
ABAABACBBABAABABBBAAAACACCC MAP (Majority Favorite//Antiplurality)
ptcp plur abc bbc (lnhp)
ABAABAABAABAABAABAACAACAACA a new Later-no-harm method I want to propose
condgs (condnet) md sfc lnhp matc
AAAABAABCABAABAABBAAAABACCC SMD,TR
condnet sfc alp lnhm bbc (lnhp) trunc
You may notice that some of the methods can't possibly satisfy some of
the criteria not listed as failed (some Condorcet methods register as
satisfying lnhm or lnhp; some Plurality failures are not detectable;
Condorcet failures of MMPO and Conditional Approval not detectable).
This means that if I discover a new method that supposedly satisfies
some criterion, I can't actually be guaranteed that it satisfies that
criterion in general (if I can even translate the method from DNA into
English in the first place).
In a later post I will probably talk more about interesting things I
can find...
Let me know if you have other method or criterion suggestions, or other
thoughts.
Kevin Venzke
More information about the Election-Methods
mailing list