[EM] Calculated failure/success rates using randomized ballots and candidates

Kristofer Munsterhjelm km_elmet at t-online.de
Sun Jan 10 02:09:47 PST 2021

On 08/01/2021 21.36, VoteFair wrote:
> On 1/6/2021 4:23 AM, Kristofer Munsterhjelm wrote:
>> My voting simulator, Quadelect (https://github.com/kristomu/quadelect)
>> supports Kemeny. It doesn't currently support STAR, but it does support
>> Smith,Range. It also supports equal-rank ballots.
> I looked at this software and I like it!
> I was not able to find the portions of code that would indicate which
> tests it does (besides monotonicity, which I did find), and which other
> methods it calculates.  Nor could I find documentation that would point
> out which folders contain that code.

The tests system isn't fully implemented yet; the one thing it can do
currently is test for strategic susceptibility (as defined in my
previous posts), but adding methods requires a recompile. I should fix
that when I have the time.

Just calling quadelect without any parameters will give you a usage
screen, which states that the -M parameter displays a list of every
method that's available. However, it can get pretty cluttered because it
implements set,method and set//method for any set and method I can think
of (e.g. Smith,Plurality or Copeland//DSC).

I should probably put the usage screen up on the repo intro readme as
well as say what functions quadelect has (reading ballots, graphing Yee
diagrams, determining Bayesian regret, and displaying barycentric

> It looks like it reads ballot info (which Warren's software does not do)
> so if I discover that it does some tests of interest I would consider
> looking at your code for further possibilities.

Yes. For instance, you can do the following after cloning the repo:

cmake .
echo "Kemeny(wv)" >methods.txt
echo "Plurality" >>methods.txt
echo "Eliminate-[Plurality]/fd" >>methods.txt
./quadelect -i -if examples/ballots/Burlington2009.txt -m methods.txt

and it will give you the results for Kemeny, Plurality, and IRV:

Method constraint: loaded 3 methods.
Random number generator: using seed 3632605727039915387
Setting up ballot interpretation...
		- input file: examples/ballots/Burlington2009.txt
		- number of interpreters: 1
		- number of methods: 3
*     0: obj =   1.297800000e+04 inf =   0.000e+00 (12)
*    23: obj =   7.636800000e+04 inf =   0.000e+00 (0)
Done getting results for Kemeny(wv)
Done getting results for Plurality
Done getting results for Eliminate-[Plurality]/fd
Result for Kemeny(wv) : Montroll > Kiss > Wright > Smith > Simpson >
Result for Plurality : Wright > Kiss > Montroll > Smith > Write-In > Simpson
Result for Eliminate-[Plurality]/fd : Kiss > Wright > Montroll > Smith >
Write-In > Simpson

> Thank you for bringing it to our attention.

And thank you for pointing out what's missing, from the perspective of
someone who isn't familiar with the program.


More information about the Election-Methods mailing list