Compilation complexity is the smallest number of bits required to summarize a input to a function, such that the output of the function can be computed correctly. The notion was particularly studied in voting theory.[1] Often, a group has to accept a decision, but some of the voters have not arrived yet. It is desired to take the votes of the present voters and summarize them such that, when the other voters arrive, we can determine the winner. The compilation complexity of a voting-rule is the smallest number of bits required for the summary.
An important advantage of low compilation complexity is that it makes it easier to verify voting outcomes. For example, suppose an elections are held in a country of 1,000,000 people, divided into 1000 voting-stations of 1000 voters each. Low compilation complexity lets us summarize the outcome in each voting-station separately, which is relatively easy to verify by double-counting by representatives of the parties. Then, every citizen can verify the final outcome by summing the results from the 1000 voting stations. This verifiability is important so that the public trusts and accepts the voting rule.[1] Compilation complexity is also algorithmically useful for computing the backward induction winner in Stackelberg voting games.[2]
Let r be a voting rule: a function that takes as input a list of n ranked ballots, representing the preferences of n voters, and returns an outcome. There are some k<n voters whose votes are known. A compilation function is a function f that takes as input a list of k ranked ballots and returns some output such that, given any number u := n-k of additional ranked ballots, the output of r on the entire ballot can be computed exactly.
The compilation complexity of a rule r is the worst-case number of bits in the output of the most efficient compilation function f. This number is typically a function of n (the number of voters), k (the number of known votes) and c (the number of candidates).
A closely related notion is that of equivalence of partial profiles. Suppose there are n voters, of which only k<n have voted. The votes of these k voters are called a partial profile. Given a voting rule r, two partial profiles P and Q on k voters are called r-equivalent if, for any partial profile R, the rule winner on the complete profile P u R is equal to the rule winner on the complete profile Q u R. The relation "r-equivalent" is obviously an equivalence relation, so it partitions the set of profiles on k voters to equivalence classes. We denote by eq(r,k,c) the number of equivalence classes when the voting-rule is r, the number of known votes is k, and the number of candidates is c. The compilation complexity of any rule is the logarithm of the number of equivalence classes, that is,.[1]
This section describes bounds on the compilation complexity of some common single-winner voting rules based on ordinal ballots. The results are based on two papers:
- Chevaleyre, Lang, Maudet and Ravilli-Abadie[1] assume that u (= n-k - the number of unknown voters) is unknown, so their results are given as a function of k and c only.
- Xia and Conitzer[2] study also the case that k (the number of known votes) is unknown, and also the case that both u and k are known. For the latter case, lower compilation complexity results are possible. The upper bounds are constructive: they are based on easy-to-compute compilation functions.
Voting rules based on weighted majority graph
The weighted majority graph of a voter profile is a directed graph in which the nodes are the candidates, and there is a directed edge from x to y iff a majority of voters prefer x to y. The weight of this edge is the number of voters who prefer x to y. Many rules are based only on the majority graph; the number of equivalence classes of such rules is at most the number of possible weighted majority graphs. This number is denoted by T(k,c) - the number of weighted tournaments on c vertices that can be obtained from k voters. Therefore, the compilation complexity is at most log(T(k,c)). An upper bound on log(T(k,c)) is , since it is sufficient to keep, for each pair of candidates x,y, the number of voters who prefer x to y, and this number is between 0 and k.[1]
For Condorcet-consistent rules based on the unweighted majority graph, such as Copeland or voting tree, there exists some constant q such that the compilation complexity is between and When u is unknown, it is between and [2]
For Condorcet-consistent rules based on the order of pairwise elections, such as ranked pairs or Minimax Condorcet method, there exists some constant q such that the compilation complexity is between and When u is unknown, it is between and [2]
For Condorcet-consistent rules based on the weighted majority graph, when u is unknown, the compilation complexity is between and [1]
Bucklin's rule
For the Bucklin voting rule, if min(k,u) ≥ m ≥ 12, the compilation complexity is in ; when u is unknown it is .[2]