[EM] Re: Condorcet package-wvx
Daniel Bishop
dbishop at neo.tamu.edu
Fri Feb 25 01:32:29 PST 2005
Dave Ketchum wrote:
> On Fri, 25 Feb 2005 00:01:11 -0800 Russ Paielli wrote:
>
> ...
>
>> On the theoretical side, what exactly would an equal-ranking
>> capability accomplish? Does it give the voter some significant
>> strategic mechanism, or is it simply way for the voter to express
>> indecision? If it's the latter, then it is completely unnecessary. If
>> the voter truly rates the candidates as precisely equal down to the
>> tenth decimal place, then it really shouldn't matter to him which he
>> ranks above the other. If the decision is really that difficult, he
>> can flip a coin. Why make the system more complicated than it needs
>> to be?
>
>
> Conceded it complicates the counting, though I do not see that as major.
It doesn't complicate the counting. Especially if you use the code from
my website.
def pairwise_matrix(ballots):
"""Return a matrix M such that M[i][j] = votes for candidate #i over #j.
ballots = a list of ballots, where each ballot is a list B with each
B[i] = the rank (1=best) of candidate #i"""
if not ballots:
return []
n = len(ballots[0]) # number of candidates
matrix = [[0] * n for i in xrange(n)]
for ballot in ballots:
if len(ballot) != n:
raise ValueError("ballots have unequal lengths")
for i in xrange(n):
for j in xrange(n):
if ballot[i] < ballot[j]: # i preferred over j
matrix[i][j] += 1
Note that there's not even an explicit test for equal rankings.
(The GUI is simply a row of radio buttons for each candidate, each
corresponding to a rank,)
More information about the Election-Methods
mailing list