[EM] real world 9-winner election using RRV
Warren Smith
warren.wds at gmail.com
Sat Jun 25 08:12:53 PDT 2011
If you have a loop like
for(i=1 to C)
if(x[i]>best}{ best=x[i]; ibest=i; }
then you will find the maximum x[] but breaking ties always by choosing the
maximum index i.
However, you can pre-prepare a random permutation of {1,2,...,C} as follows
for(i=1 to C) p[i]=i;
for(i=C down to 2){ t=random integer from 1 to i; swap(p[i], p[t]); }
and then the original loop can be replaced by
for(i=1 to C)
if(x[p[i]]>best}{ best=x[p[i]]; ibest=p[i]; }
in which case all ties are broken randomly.
It is probably best to regenerate a new random permutation p[] every time
you do stuff, don't re-use old p[].
This kind of thing is very important in many kinds of election
simulations because
biased-tie-breaking in many simulations can completely throw your
statistics off.
If in the present election you run STV (say) then you really should
run STV many times
with different random numbers each run, and report the statistics of
the results.
--
Warren D. Smith
http://RangeVoting.org <-- add your endorsement (by clicking
"endorse" as 1st step)
and
math.temple.edu/~wds/homepage/works.html
More information about the Election-Methods
mailing list