# [EM] Highly-expressive preference voting

Juho Laatu juho.laatu at gmail.com
Sun Aug 30 00:32:52 PDT 2015

```On 29 Aug 2015, at 22:45, Sebastiaan Snoeckx <ikke at sebastiaansnoeckx.be> wrote:

> 27/08/15 16:13, Juho Laatu <juho.laatu at gmail.com>:

>> Theres's however one situation in my mind where partial votes could be useful. If we have multiple parties and each party has say 100 candidates, then it would make sense to be able to rank the strongest candidates of party A and strongest candidates of party B without having to rank all the 100 candidates of party A in order to tell that all party A candidates are better than any party B candidate.
>>
>> This problem could be solved also by allowing the voter to rank various groups. We come back to your group-candidate-ranking from another point of view. Instead of casting a partial vote one could cast a vote that treats voters as groups. The aforementioned voter could vote A1 > A2 > PartyA > B1 > B2, where "PartyA" refers to all party A candidates except A1 and A2 (since they were ranked separately). This means that the voter ranks A3 and A4 equal, but worse than A1 and A2, and  both better than B1 and B2. If you want to have a partial vote (not taking position on if party A is better that party B), that could be e.g. (A1 > A2 > PartyA), (B1 > B2 > PartyB).
>>
>
> I hadn't even considered such a use-case; it does seem like a good idea. Does anyone have examples of (real-life?) elections where this is allowed, and how then do they calculate the votes?

I'm not aware of any real life examples. Maybe there are none.

The most problematic part in vote counting might be the ballot format. I assumed that there are lots of candidates.

If one lists all of them on the ballot paper, and also all the possible groupings, the ballot paper will be very long. It would be enough to have a limited number of columns. The voter would put a mark on some squares of the matrix (at some column next to the chosen name of a group or individual). The example vote that I discussed above could be cast using only five columns.

Another approach would be to give numbers to all the candidates and groupings, The ballot paper could be rather small. In the example vote above it would be enough to write on the ballot paper e.g. numbers "117 105 100 222 256" (where 100 is the number of Party A, 200 is the number of Party B etc.).

The actual counting of the votes (sum of pairwise preferences and final result) will probably be done with computers rather than by hand.

>> P.S. I sometimes proposed groupings in candidates lists or in the ballots as one solution to eliminating strategies from Condorcet style ranked methods. But I guess strategic voting is not of interest in this discussion.
>>
>
> I'm not sure if I get your point here. Isn't a candidate grouping not the same as being allowed to equally rank candidates?

Yes. These proposals included also some new approaches to vote counting.

The simplest approach was to organise all the candidates as a binary tree. The counting process would first decide if the winner should come from the "right" wing or from the "left" wing, and then proceed downwards towards the candidates in the leaves. This would of course limit the "expressiveness" of the election and voters somewhat, but the benefit would be that this approach would eliminate cyclic preferences and cyclic preference related strategic voting possibilities. (I tend to think that in typical real life elections this kind of strategies are not easy and efficient to use, so it is possible that no such defence mechanisms are even needed (I'm thinking about Condorcet methods here).)

Some other approaches were to allow voters or parties/groupings to name groupings within which cyclic preferences would not be counted against the voters within that grouping. I mean that even if votes / preference matrix within party/grouping C is strongly cyclic, and preferences between groupings would be weak and possibly cyclic, a candidate of party C should still be able to win. I'll skip any detailed definitions of such algorithms here.

Juho

```