[EM] mutual majority set
Warren Smith
warren.wds at gmail.com
Sun Feb 6 15:18:42 PST 2011
>James Green-Armytage:
>Below is the matlab program that I wrote to find the mutual majority
>set...you need to input:
> (the number of candidates)
> (the number of voters)
> (a V by C matrix of voter utilities over candidates)
>It examines each subset of the whole set of candidates (including the
>whole set itself), and determines whether the subset is a mutual
>majority set, i.e. whether a COMMON majority of voters prefer every candidate
>in the set to every candidate outside the set. If this is true of more
>than one set, it chooses the smallest of these.
--Interesting computer science math and logic problem.
Hopefully what I now say is not contaminated with errors:
MM-SUBSET-CLOSURE THEOREM:
MM-sets are closed under subset, that is, they can
be ordered so S1<S2<S3<...<Sn where < means subset and there are n MM-sets.
PROOF:
LEMMA if A and B are MM-sets it is not possible for both
(A contains somebody X not in B) and
(B contains somebody Y not in A) to happen since then
a majority would prefer to X over Y but a majority would prefer Y over X.
HENCE B must be a subset of A (or vice versa).
QED.
COROLLARY:
There are at most C-1 different non-boring
MM-sets if C candidates ("boring"=empty or full), and it is possible
in linear(C)
space to write them all down (in a suitable notation). So it is kind
of silly for
JGA's program only to output the smallest, you might as well output all of them.
DEFINITION:
An ordinary (not mutual) majority set shall mean a candidate-subset
such that every member of the set is preferred pairwise versus every
candidate outside the set, by a majority (but the majorities as voter
subsets can vary).
OM-THEOREM:
There are at most C-1 non-boring ordinary-majority sets, they are
closed under subset,
and all can be written down in linear(C) space [same proof as before
also works].
MM==>OM THEOREM:
A mutual-majority set automatically is an ordinary-majority set, but
the reverse can fail.
LINEAR TIME ALGORITHM:
All ordinary-majority sets can be found by an algorithm which inputs
the (C-1)*C/2 pairwise
election results (i.e. who wins in each pair) and runs in time linear
in the size of the input.
The algorithm is the depth-first search algorithm for "topological
sorting" , see
http://en.wikipedia.org/wiki/Topological_sorting
and it will produce an ordering of the candidates such that any
ordinary-majority set
has to consist of a prefix of that ordering.
POLYTIME QUESTION: given VxC matrix, is there a polynomial(in V and C)-time
algorithm to determine whether a non-boring mutual majority set (we
won't allow the full
or empty set) exists? Or can we prove this problem is NP-complete?
REMARK: If there is such a polytime algorithm for the yes/no existence
problem, then I can use it fairly easily to construct another polytime
algorithm for finding and printing every MM-set.
ANSWER: yes, there is a polytime algorithm for finding and printing all MM-sets:
Use the algorithm above to find all OM-sets. use the MM==>OM theorem to
realize only these sets need to be checked, check them all in polynomial time
using basically JGA's technique (intersect all the voter subsets that
prefer X over Y
for X in and Y not in the set, see if result is a majority).
REMARK: This seems to obsolete JGA's exponential-time algorithm.
SPEED QUESTION: What is the fastest algorithm you can think of?
I have stopped with only the fact a polytime algorithm exists, without trying
to find the fastest possible polynomial.
Thinking a bit, it seems the algorithm I proposed will, if implemented
naively, run in time
O( V*C^3 ). I think I can see how to speed it up to O(V*C^2). If
you can speed it up further to O(V*C) then you are best possible since
it has to take that long just to read the input.
--
Warren D. Smith
http://RangeVoting.org <-- add your endorsement (by clicking
"endorse" as 1st step)
and
math.temple.edu/~wds/homepage/works.html
More information about the Election-Methods
mailing list