[Election-Methods] Strategy/polling simulation for simple methods

Kevin Venzke stepjak at yahoo.fr
Mon Jan 21 20:40:49 PST 2008


I've been writing a group of simulations to see what happens when
intelligent factions gradually adjust their planned voting strategy in
response to "polls." Currently I've implemented FPP, antiplurality, any
combination methods (i.e. grant X points to one candidate and deduct Y
points from another), Approval, top-two runoff, and VFA. (Though the voter
AI for TTR and VFA are works in progress...)

The setup is that each faction has the same maximum possible size. What
introduces randomness is that only a random proportion of each faction will
show up to vote in each poll. I've been doing 500 polls between each
opportunity for a faction to reconsider their vote, and sometimes factions
are forced to wait awhile (so that poll results don't drastically change

For each round of polls I can also note the rate of agreement between the
poll winner and the sincere CW (if there is one), sincere MF (if there is
one), and social utility maximizer given the voters who show up.

The strategy used varies by the method. Approval is the easiest:
Expectation can be perfectly calculated from the previous round of polls.
Approve above expectation.

FPP, antiplurality, and combinations involve estimating the value and
likelihood of all ties that could be broken from a given vote.

TTR is similar but harder (a vote is effective if it moves a candidate into
second place in the first round; tricky to guess the value of the vote and
also which probabilities to compare; for example if a candidate is 100%
guaranteed to come in first or second then there is no value in voting for
him at all).

VFA is quite tricky, even though the "for" and "against" votes can be
determined independently. The value of a "for" vote for A over B needs to
consider the ability of each to place first, the likelihood that either
will be disqualified, and ideally also the likelihood that a different
candidate is disqualified and A could beat B only placing second (but here
I face a apples-oranges problem when I want to add this in). The "against"
vote currently considers the expected benefit from disqualifying the
candidate, and not even the observed odds of disqualification (though it
should be related when everyone thinks along the same lines). I used to
consider the observed odds, but this created a problem where voters felt
they should only vote against a candidate who might be disqualified, no
matter how good that candidate was.

For this post, I decided to plug this scenario into each method:

2: D>A>B>C>E 99 80 40 10 1 (utilities)
2: A>B>D>C>E 90 60 50 20 1
1: B>A>C>D>E 90 60 30 12 1
1: B>C>A>E>D 90 60 30 12 1
2: C>B>E>A>D 90 60 50 20 1
2: E>C>B>A>D 99 80 40 10 1
(quantities are of factions, not voters)

FPP: This immediately almost seems to be at equilibrium with everyone
voting for their favorite candidate. With everybody having equal odds,
nobody feels compelled to move their vote.

Eventually, though, some candidate has a bad run and one of their factions
goes somewhere else. And from there other candidates drop like flies.
Ultimately the equilibrium usually ends up being A vs. C, split down the
middle. But if A or C is the first candidate to fall, B will take their
place, and have very high win odds.

In one case I saw B take the votes from all the factions except for D and
E, who continued to vote for their candidates. Eventually D had a bad run
and those voters moved to B. At this point E's win odds dropped to nothing,
and factions started to go back to voting for their sincere favorites again
since there was no reason to vote for a guaranteed winner. In this
particular case the reversion to the original scenario was total.

Antiplurality: This method is a mess. At first everyone votes against D or
E, the two most extreme candidates. This results in a large tie in odds
among ABC. So voters move their votes to the most extreme of these: A and
C. Then B wins with 100% odds (not everybody changes strategy at once).
Then B will start to get votes (due to it being one of the only meaningful
options), or perhaps A and C will start to lose votes (since voting against
them is pointless if they never win), putting them back in the running.
Over many runs of polls, B's win odds bounce around from nothing to 100%.
No equilibrium can be reached.

Approval: Starts out with the factions voting DA, ABD, BA, BC, CBE, and EC.
B wins 60% of the resulting polls with the rest to A and C. ABC voters
start dropping a compromise or two in response. The main effect is that A
and C lose votes from the B voters, causing B's win odds to get even
higher. A and C voters may also try dropping support for B, but eventually
one of them won't do very well and they will put the B vote back. This
ultimately kills their candidate because there's no way to win when all
their voters back B, and B voters give nothing back.

The equilibrium ends up being DAB, AB, B, B, C, EC, or else the reverse. B
wins maybe 85% of the polls with the rest going to C in this case.

I should note that with random scenarios, I was a bit alarmed at how
frequently Approval never reached equilbrium at all, as factions ran around
in circles offering and retracting compromises however they felt they were

Top-two Runoff: Not much fun. It starts out at equilibrium, with every
faction content to just vote for their favorite in the first round. B wins
35-40% of the polls, and D and E win well under 10% each.

However, if I drop the number of polls from 500 to 200, we can make it more
likely that a faction gets scared and moves. This also makes it unlikely
that we can get a different equilibrium, though. I'm currently looking at a
fairly stable situation where the D factions vote sincerely, the A and B
factions vote for A, and the C and E factions vote for E. A wins the polls
over 80% of the time, D only a few percent; A and E each make the second
round over 90% of the time.

The tranquility is disturbed when the A>B>D faction moves their vote from A
to D. It's a combination of confidence that A will place, and desire to
have D rather than E in the finals if possible. But the result of the
strategy change is a big hit to A, and the faction changes their vote back
to A at the next opportunity.

Running through many cases this is the only hiccup I see. In one case, in
response to this strategy change, one of the C>B>E>A>D factions moves their
vote from E to A. But it doesn't last long.

Running quickly through over and over from scratch, these situations also
show up as being at equilibrium for long stretches:

VFA: We start with everyone voting for their sincere favorite, and against
either D or E. Always either D or E is then projected to be disqualified,
hurting their win odds. Immediately D and E voters start moving in,
switching their "for" votes to A and C. This then causes the "against"
votes to follow to A and C, since it's pointless to vote against candidates
that no one is voting for. B does not fare well, since the D and E factions
don't favor B. Thus the B voters are likely to move to A or C as well.

It tends to get close to an equilbrium where only two candidates receive
"for" or "against" votes. But as soon as this is guaranteed, factions
(usually multiple) try to move their "for" vote to their sincere favorite,
since there's no reason not to. So far it seems to me that rather than
introduce a third contender, this mainly introduces a lot of chaos because
everybody's trying to do it.

This set of votes seems to be an equilibrium though: "For" votes for
AAAABBCCCC, "against" votes for CCCCCAAAAA. B hardly ever wins this, but
his presence is enough to keep any fourth candidate from finding support.

I have noticed just now that with this situation, if A does particularly
badly in a given run, some of their voters may move their "for" vote to B.
This makes B dominate, can obliterate A, and makes C voters waffle as to
which candidate to vote against. But if eventually A is gone and C voters
decide on voting against B, we again reach the chaotic situation where
factions try to vote for their sincere favorites again.

I should reiterate that my voter AI code for TTR and VFA may be poor. But I
see behavior that mostly makes sense. (It does sometimes happen that my VFA
voters decide to vote for and against the same candidate. The logic that
goes into a "for" vote vs. an "against" vote is independent and not very
similar, so I'm afraid this bug may always exist.)

I plan to play around with different scenarios in the future. I'm not sure
I will implement any new methods. (Rank methods are out unless the range of
available strategies is extremely limited, and not difficult to evaluate.)

Hopefully this is a somewhat interesting read. Any thoughts?

Kevin Venzke

Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail http://mail.yahoo.fr

More information about the Election-Methods mailing list