[EM] Random and reproductible tie-breaks
Kristofer Munsterhjelm
km-elmet at broadpark.no
Wed Oct 1 07:33:23 PDT 2008
Stéphane Rouillon wrote:
> Hi,
>
> for an anti-fraud purpose, the capacity to repeat the counting operation
> is a must.
> Hence I recommand to use a reproductible random procedure to break ties.
> This allows the use of different computers to reproduce the counting
> operation, while always obtaining the same result despite ties.
This is a somewhat late reply, but here's my suggestion:
For a ranked ballot method, use Random Voter Hierarchy, as by the MAM
definition, to construct a tie-breaker ordering (ranked ballot). When
you encounter a tie, use that ordering. If it's a multiwinner method,
invalidate the tie-breaker after a candidate has been elected, and use
roulette wheel selection based on reweighted values when constructing
the random voter hierarchy.
To make the randomness reproducible, there are two methods to do so. The
first would be to use a strong cryptographic hash, say SHA-256. Each
candidate can submit a string, and those strings are all sorted and
concatenated, then fed through the hash. The result is used as a seed
for a pseudorandom RNG. In case no candidate bothers to submit a string,
the list of strings should start off with some variables, like the year
of the election, or perhaps some easily verifiable data of higher entropy.
The second is simpler. After the ballots have been gathered, but before
the election, have the candidates watch a lottery machine. Use its
output, which is made public, as a seed for the RNG.
If you really want to overdo it, you could also translate the ranked
ballots to integers, then feed all those integers through the hash. Sort
candidates alphabetically. The problem with this way of doing it is that
if there's even one miscount, then the hash will be different when the
audit's done.
As an example of why Random Candidate can't be used even with cloneproof
methods, consider this election. We'll use Schulze, which is cloneproof.
10: A > B > C
10: B > C > A
10: C > A > B
Classic three-way tie. Random candidate gives A, B, or C with 1/3
probability (as is fair). Now, let's clone A.
10: A1 = A2 = A3 = A4 > B > C
10: B > C > A1 = A2 = A3 = A4
10: C > A1 = A2 = A3 = A4 > B
Schulze returns A1 = A2 = A3 = A4 = B = C. So the tiebreaker decides.
With Random Candidate, the A group has probability 4/6, with B at
probability 1/6, and C at probability 1/6. Thus, cloning paid off for A.
There would be a slight problem here with Random Voter Hierarchy, since
it'd have to go through all the ballots in order to find out that A1 =
A2 = A3 = A4 on everybody's ballot; thus the process would be lengthy
and difficult to audit correctly.
More information about the Election-Methods
mailing list