2

I have a situation.

3 parties participated in a hypothetical election between 10 voters. The voting followed normal Condorcet method, with voter ranking the parties in the order of their choice. (Eg. Voter 1 maybe ranked P1 as 2, P2 as 3 and P3 as 1).

Problem is, I do not have the ballot papers of all voters to see their rankings for one on one comparisons. All I have is a cumulative table, that lists how many of each ranks every party received.

Example:

Parties/Ranks   1 2 3

P1              3 2 5
P2              2 6 2
P3              5 2 3

(Total across every row and every column is 10 = number of voters, as it should be.)

Can I find out who won?

Been bangin' my head on this for about 4 days now. Tried a lot of methods, some or the other case (usually with one or more zeros) breaks it. Couldn't find anything online of this sort.

1

Conclusion: using only Condorcet matrices you cannot prove the existence of a winner (a party that has won over all other parties) in your particular case study. That scenario exists and is valid but there are others where parties are tied. See the long answer for the mathematical formulation and resolution of the problem.


By no means I'm an expert in probabilities but this seems like a good example for Permutations. That is, if P3 = A, P2 = B and P1 = C your possible combinations would be (n!):

ABC ACB BAC BCA CAB CBA

Therefore the probability of party A being in first place is:

P(ABC) + P(ACB) = 0.5

Continuing with the same logic we could say that:

P(ABC) + P(ACB) = 0.5 # A being first

P(BAC) + P(CAB) = 0.2 # A being second

P(BCA) + P(CBA) = 0.3 # A being third

P(BAC) + P(BCA) = 0.2 # B being first

P(ABC) + P(CBA) = 0.6 # B being second

P(ACB) + P(CAB) = 0.2 # B being third

P(CAB) + P(CBA) = 0.3 # C being first

P(ACB) + P(BCA) = 0.2 # C being second

P(ABC) + P(BAC) = 0.5 # C being third

In theory we could build a matrix from this (we have the equations for it) but it would return singular matrices (non-inversible or degenerate). As user @James K mentioned the probabilities of our permutations must be necessarily a multiplier of 0.1 since only 10 votes were made. As so the following test for all absolute values in votes (to avoid floating point comparisons which tends to be a problem in computer science) was made:

def test(val):
    p1 = val
    p2 = 5 - p1
    p3 = 5 - p1
    p4 = 2 - p3
    p5 = 2 - p2
    p6 = 3 - p5

    #     ABC ACB BAC BCA CAB CBA
    ps = [p1, p2, p3, p4, p5, p6]
    flag = False
    if all([p>=0 for p in ps]) and all([p<=9 for p in ps]):
        print(val, [p for p in ps] , True)
        flag = True
    else:
        print(val, [p for p in ps] , False)

    if flag:
        #       P1            P2            P3
        res = [[0           , p2 + p5 + p6, p4 + p5 + p6], # P1
               [p3 + p4 + p1, 0           , p3 + p4 + p6], # P2
               [p1 + p2 + p3, p1 + p2 + p5, 0           ]] # P3
        print(np.matrix(res))

for i in range(1,10):
    test(i) 

Which result in this:

1 [1, 4, 4, -2, -2, 5] False
2 [2, 3, 3, -1, -1, 4] False
3 [3, 2, 2, 0, 0, 3] True
4 [4, 1, 1, 1, 1, 2] True
5 [5, 0, 0, 2, 2, 1] True
6 [6, -1, -1, 3, 3, 0] False
7 [7, -2, -2, 4, 4, -1] False
8 [8, -3, -3, 5, 5, -2] False
9 [9, -4, -4, 6, 6, -3] False

Meaning that there are only 3 solutions for the problem (P(ABC) being 3, 4, or 5). By analyzing their Condorcet matrices we see that:

3 [3, 2, 2, 0, 0, 3] True

#     P1 P2 P3
#P1 [[0  5  3]
#P2  [5  0  5]
#P3  [7  5  0]]

1) P3 wins over P1, P3 ties with P2

4 [4, 1, 1, 1, 1, 2] True

#     P1 P2 P3
#P1 [[0  4  4]
#P2  [6  0  4]
#P3  [6  6  0]]

2) P3 wins over P1, P3 wins over P2

5 [5, 0, 0, 2, 2, 1] True

#     P1 P2 P3
#P1 [[0  3  5]
#P2  [7  0  3]
#P3  [5  7  0]]

3) P3 wins over P2, P3 ties with P1, P1 wins over P2

As so we cannot conclude with certainty that P3 is the winner using a Condorcet matrix, unless we define a completeness criteria for the cases when ties happen. In your example only one of the scenarios gives P3 as the winner over all other parties. To solve this problem you can consider Ranked Pairs of the Schulze method.

| improve this answer | |
  • I don't think your logic works, aside from using probability to guess what the actual orders of preference were. You say 0.3 # A being third when it's easy to spot p3 cannot be third. Indeed, 50% of voters had A as first choice (we know this for sure). Then, for p3 to end in last place each of the alternatives needs to have at least 50% of voters choosing the alternative over p3. – JJJ Feb 16 '19 at 5:11
  • @JJJ The OP table is for cumulated votes. So literally 0.3 (=3/10) of the voters voted in a permutation that had A on third place. These are not probabilities of winning and losing. These are the probabilities per permutation (which is what is required to solve the Condorcet method). – armatita Feb 16 '19 at 11:10
  • 1
    Something is wrong here, since we know there are 10 voters, so P(ABC) etc must all be multiples of 0.1 – James K Feb 20 '19 at 17:53
  • 1
    Found the error. You write "P(ACB) + P(CBA) = 0.2 # B being third" That should be P(CAB). This makes the matrix singular. – James K Feb 20 '19 at 17:54
  • 1
    This is (I think), and does demonstrate that while no Condorcet winner can be proven, if a winner exists, it must be P3. I think you're are using a sledgehammer to crack a nut; but the method could be useful in more complex situations. – James K Feb 21 '19 at 11:54
0

P3 is preferred over P2 and P1 by 5 people who picked P3 first. At best, P1 or P2 might tie from that fact alone.

P3 could be tied with P2 if the 2 people who picked P1 second picked P3 third. If 1 picked P3 first, then there are at least 6 people (that 1 plus the 5 who picked P1 third).

P3 could be tied with P1 if at least 3 of the 6 people who picked P2 second picked P1 third.

Because there aren't enough people who picked P3 third, only one of P2 and P1 could be tied.

So we can say that P3 is at least tied for first. But we can't say that neither P2 nor P1 is tied. There is no known Condorcet winner.

We can guess that P3 won. All that takes is for the 3 people who picked P3 second to have split over who they picked third. If at least 1 picked P2 and at least 1 picked P1, then that pushes P3 over the top. But we can't definitely say that from the data you have.

There are often tiebreakers in the situation of a Condorcet tie. A common one would be the party with the most first place votes wins. That would be P3. Or you could flip a coin or roll a die. Or use @armatita's probabilistic method. But these should have been declared before the vote.

The fairest thing at this point would be to rerun the election with clearer rules and possibly better ballot tracking (count the number of each permutation rather than the number with each rank).

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .