[EM] Exact elections -- Proof of concept
Daniel Carrera
dcarrera at gmail.com
Sun Jan 30 15:18:12 PST 2022
Here is a more complete implementation. The example in the previous email
was more of a tutorial + demonstration. This one is more of an actual code
that you would use. You can have more candidates and higher dimensions. The
usage is very straightforward:
#
# EXAMPLE 2
#
n_candidates = 4
n_dim = 5
candidates = np.random.rand(n_candidates,n_dim)
unit_bound = [ [0,1] for j in range(n_dim) ]
names = ['A','B','C','D']
tally = compute_tally(candidates,names,unit_bound)
This is an example with 4 candidates in a 5-dimensional space. The
candidates are uniformly randomly distributed and the bounds are the unit
hypercube. To make the results legible, you need to supply a list of names
('A', 'B', 'C', 'D') for the candidates. The compute_tally() function does
all the work and you just get a dictionary that tells you what fraction of
voters choose each ballot.
For example:
In [18]: tally
Out[18]:
{'A>B>C>D': 0.2158439457766137,
'A>B>D>C': 0.058557168066913655,
'A>C>B>D': 0.0872,
'A>C>D>B': 0.0292,
'A>D>B>C': 0.1043845169888461,
'A>D>C>B': 0.09699999999999999,
'B>A>C>D': 0.019399596489520984,
...
and so on.
Cheers,
--
Dr. Daniel Carrera
Postdoctoral Research Associate
Iowa State University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.electorama.com/pipermail/election-methods-electorama.com/attachments/20220130/f7185ca2/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: election.py
Type: text/x-python
Size: 4029 bytes
Desc: not available
URL: <http://lists.electorama.com/pipermail/election-methods-electorama.com/attachments/20220130/f7185ca2/attachment.py>
More information about the Election-Methods
mailing list