[EM] Preliminary simulation of fpA-{sum, max} fpC and compromise vs burial incentive

Kristofer Munsterhjelm km_elmet at t-online.de
Tue Nov 22 16:01:28 PST 2022


So I finally wrote something quick (and hopefully less messy than my 
previous manipulability checker) to determine strategy susceptibility 
for a few voting methods. It's still very unoptimized and thus quite 
slow, but I've attached the Python source to my post. PDFs showing 
results can be found here: 
https://munsterhjelm.no/km/python_vote_strats/ and the Python source is 
available there as well.

This should both give some ideas as to where to take fpA-fpC, as well as 
the relative proportion of compromise vs burial for some Condorcet 
methods. (However, as my figures seem somewhat different from Daniel 
Carrera's, there may still be bugs. So take this with a pinch.)

I'll first note some observations, then explain how to use the Python 
code, and then how to read the bar charts.

For impartial culture, the observations seem to be:

- The two simple fpA-fpC generalizations are not robustly strategy 
resistant the way IRV is. While they do well with three candidates, as 
the number of candidates increases, the susceptibility increases; and at 
10 candidates, it's up at Minmax level.

- That said, even Contingent vote (which is a quick proxy for IRV) gets 
more susceptible to strategy as the number of candidates increases. I 
suspect that for any voting method in impartial culture, and any 
susceptibility level, there exists a sufficiently large number of voters 
and candidates where that method is vulnerable to strategy at least that 
often.

- The simple generalizations also lose strategy resistance when the 
number of voters is increased for more than four candidates, whereas 
Contingent vote and its Smith,Plurality version both seem to level off 
for a fixed number of candidates. See e.g. the contingent 99 voters 5 
candidates graph.

- fpA-max fpC is more resistant than fpA-sum fpC, both in terms of total 
susceptibility and in how much can be accomplished by just burial or 
compromise vs having to do both at once.

- There seems to be a baseline compromise level that all the depicted 
Condorcet methods follow -- see the sum of the blue plus purple bars for 
Copeland, Minmax, and the two fpA-fpC methods. If this really is 
universal, it might be possible to derive results about what that level 
is for *any* Condorcet method as number of voters approaches infinity. 
But I'd need to implement something known to be strategy resistant and 
Condorcet, e.g. Smith//IRV, to know whether the pattern is real or just 
a fluke.

- On some of the graphs, Contingent has a lower susceptibility than 
Smith-Contingent, even for three candidates. On the face of it, this 
shouldn't be possible since there's a proof that "Condorcet else X" is 
never less resistant than X alone, assuming certain majority-based 
criteria hold for X. I think the answer is that my simulation doesn't 
take more complex strategies into account, which means that Contingent 
has quite a few strategies that are neither full compromise nor full 
burial nor both at the same time.

- Smith-Contingent vote is both summable and robust to strategy with the 
number of candidates fixed in IC. This shows that summability and 
robustness is compatible. Furthermore, the method is vulnerable to my 
"nobodies ranked first" problem: if every voter ranked himself first, it 
would be unable to call a winner. So neither ISDA nor (the weaker) 
immunity to the nobodies ranked first problem is required for a method 
to be strategically robust in IC.

("Strategically robust" here would probably mean something close to: 1. 
the method starts at a low susceptibility level for modest number of 
candidates in IC. 2. With not too many candidates, the limit of 
strategic susceptibility as number of voters goes to infinity is not one.)

Note that this is all under impartial culture, which in a sense is the 
most tie-prone of them all. Spatial models might show much less 
potential for strategy.

---

Usage:

The Python code can be used by starting an interactive interpreter (e.g. 
python3 or ipython3), importing the strategy and generators modules, and 
then calling plot_MC_proportions, for instance like this:

strategy.plot_MC_proportions(election_space=generators.strict_ordinal_elections(99, 
5))

Note that burial doesn't yet work with the truncated ballot generators, 
as the burial function doesn't check if the candidate is unranked. And, 
as mentioned, it is very slow. Implementing a cache (for things like the 
current election's Condorcet matrix) would help a lot, as would reusing 
elections, e.g. drawing just 1000 and testing the same 1000 on each 
method instead of drawing 1000 * num methods elections in the 
Monte-Carlo simulator.

The code may understate nonmonotone methods' strategic susceptibility 
because it's possible that e.g. upranking a compromise all the way to 
first may not work but upranking it to second place does, as a 
consequence of pushover. But I don't have any nonmonotone methods 
implemented yet, so that shouldn't be a problem :-)

----

Reading the bar charts:

These are stacked charts, so the total height of a method's bar gives 
how often simple (compromise, burial, or minmaxing/two-sided 
maipulation) strategies work. It doesn't check for more complex 
strategies or coordinated arbitrary-ballot ones, so the total bar may 
still understate susceptibility slightly. But as Daniel Carrera noted 
back in January, most methods' strategy vulnerability can be exploited 
with simple strategies.

The "burial only" bar corresponds to elections where burial worked, but 
compromising didn't. The "compromise only" bar similarly corresponds to 
elections where compromising worked but burial didn't. The "burial and 
compromise" bar is for elections where either strategy worked, and 
"two-sided only" is for elections where two-sided strategy worked but 
neither burial nor compromising worked.

Two-sided strategy is simply putting the candidate you're trying to win 
first and the candidate who used to win last, i.e. doing both burial and 
compromising at once. Burial is putting the winner last, and 
compromising is putting a favored candidate first.

When an election is tested, it's tested for the possibility that the 
group that prefers A to the current winner W can get A elected by 
employing strategy, for any other candidate A. If there exists any such 
A, then the strategy is considered to be successful. In the case of 
ties, what is counted is whether the A>W voters are able to insert A 
into the set of winners.

-km
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ballots.py
Type: text/x-python
Size: 6220 bytes
Desc: not available
URL: <http://lists.electorama.com/pipermail/election-methods-electorama.com/attachments/20221123/d18f5a37/attachment-0004.py>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: generators.py
Type: text/x-python
Size: 6669 bytes
Desc: not available
URL: <http://lists.electorama.com/pipermail/election-methods-electorama.com/attachments/20221123/d18f5a37/attachment-0005.py>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: methods.py
Type: text/x-python
Size: 7185 bytes
Desc: not available
URL: <http://lists.electorama.com/pipermail/election-methods-electorama.com/attachments/20221123/d18f5a37/attachment-0006.py>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: strategy.py
Type: text/x-python
Size: 8126 bytes
Desc: not available
URL: <http://lists.electorama.com/pipermail/election-methods-electorama.com/attachments/20221123/d18f5a37/attachment-0007.py>


More information about the Election-Methods mailing list