[EM] More about the Webster-ish method, and implementation

Kristofer Munsterhjelm km-elmet at broadpark.no
Fri May 22 00:58:19 PDT 2009


All this talk about IRV/STV being arbitrary and unfair inspired me to 
try to actually implement my Webster/DSC hybrid, wich I've named Set 
Webster. The general idea remains the same:

Sort solid (or acquiescing, or half-solid, depending on how you want) 
coalitions in order from most voters to least, breaking ties by sorting 
the coalitions of greatest cardinality first. Then, for a given divisor, 
each set is entitled to (exactly) the minimum of its cardinality and the 
number of voters supporting the coalition, divided by the divisor and 
rounded off. Go down the list, affirming constraints unless the 
constraint would leave no possible solution sets, in which case one says 
the number of voters supporting that coalition has been contradicted.

Then simply find the divisor that leaves the least number of voters 
contradicted. The constraints end up narrowing the set of possible 
assemblies down to either one or more; usually one, but if there are 
more, then that's a tie. I pick a random set from the result if that's 
the case, but there may be better tiebreakers.

There may also be ties between divisors. Say that both divisor x and y 
results in an assembly that contradict z voters, but the assembly is 
different. If x is a tie-among-sets (more than one winning set), and y 
is not, then break the tie in favor of y. Otherwise, it's not clear what 
to pick in order to maintain house monotonicity.

-

The changes I've made are that contradictions no longer count as one per 
solid coalition. It seems more sensible to make them count according to 
the support of the coalition, because otherwise, a group may benefit 
from changing its votes from something like:

90: A > B > C > D

to

30: A > B > C > D
30: A > C > B > D
30: A > D > C > B

in the hope of causing so many contradictions that the method will pick 
another choice, perhaps to include A whereas it would not otherwise do so.

One could make this even more sophisticated, by only counting part of a 
contradiction if it's not entirely contradicted. Say, for instance, that 
earlier constraints have limited your winning sets to
	A B C, A B D
and the next constraint is
	Winner set should have 3 from B C D
then both the winning sets include two out of three. However, I don't 
think that is needed, because if it *does* include two out of three, it 
will get an implicit bonus by not contradicting the "B" and "C" or "D" 
coalitions later on.

-

So, what properties does this method pass? From my limited experiments, 
it seems to be like Webster. That is, it is house monotone (proportional 
ordering, meaning that the result for four winners is equal to the 
result for three winners, plus one more) and population-pair monotone 
(ordinary "monotonicity" - you won't harm a candidate by voting him 
higher). It certainly reduces to Webster in a certain party situation: 
if everybody ranks only the members of the party they support, then each 
party will get a share of the assembly equal to what would be the case 
in Webster.

That means that it is not Droop proportional (doesn't meet quota). 
Again, like Webster, such failures may be rare, but they're present. 
Therefore, if you want to go by the strict word of Woodall, it's not a 
true proportional method.

The method also reduces to DAC/DSC/DHSC in the single-winner case 
(depending on how you calculate the coalitions). That method is more or 
less of the quality of IRV (at least by utilitarian measures - depends 
on how honest the voters are), but if you can't tolerate 
nonmonotonicity, well, it's monotone. It doesn't reweight any faction 
either, so if your complaint is that IRV or STV "counts some people's 
votes before it counts others'", this method solves that as well.

-

I think that, as a consequence of that it's house monotone, Set Webster 
must elect what IRV proponents call "winners with core support". The 
reason it has to do that is that, if it picked a centrist, it would be 
in an unfortunate situation when picking the next seat: however it 
picked the next candidate (unless it chose another centrist), that would 
cause an unfair bias to that side, since the centrist contributes 
equally to all sides. But it's this very property that makes it a 
relatively bad single-winner method: it doesn't pick the centrist.

However, IRV doesn't pick the centrist, either, and it's not house 
monotone, so one may say that that's at least an advantage of Set 
Webster with regards to STV. Of course, if passing the quota 100% of the 
time is more important, then it doesn't matter; STV will still be 
better. (On a side note, if the apportionment proofs port cleanly to 
ranked multiwinner methods, it's possible to make a method that's house 
monotone and passes quota, but that method will by necessity be 
nonmonotonic, i.e. fail mono-raise.)

-

Set Webster may or may not have a polynomial runtime; I'm not sure, 
really. The naive version I've coded in my implementation, which just 
constructs the set of all possible winner sets, then winnows them down 
according to constraints, is definitely not. The sophisticated version 
of my implementation may or may not be - since it makes use of house 
monotonicity, each winner set is recursively defined as one of (the 
winner set of last candidate, plus some other candidate), which means 
that at each round, or number of seats, there are only n sets to check. 
However, the number of solid coalitions may be larger, and so may the 
number of divisors to check. Whether these can be got around by using 
clever tricks, I don't know, so I'll just say, "mostly polytime". It is 
not summable.

As regards divisors, my implementation uses a few tricks to determine 
the significant divisors (where some set constraint changes) by 
determining "tipping points", which are divisors that are the least or 
most that doesn't alter the constraint number for a set. This isn't 
significant to Set Webster itself, but it does improve the runtime.

-

If I'm wrong about any of this - for instance, if it's nonmonotonic in 
some situation not possible in ordinary Webster, then tell me. For that 
matter, if you have questions, just ask!

My implementation was made in g++, and so should compile using GNU C++ 
compilers. I haven't tested it on other compilers.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: set_webster.cc
Type: text/x-c++src
Size: 18315 bytes
Desc: not available
URL: <http://lists.electorama.com/pipermail/election-methods-electorama.com/attachments/20090522/f9853ca8/attachment-0003.cc>


More information about the Election-Methods mailing list