On Mon, Sep 02, 2013 at 10:18:36AM +0200, Kristofer Munsterhjelm wrote: > Here's a short post (since I don't have as much time as I would > like) with an idea of how to make Sainte-Lague even more like STV. I > started thinking about it as part of my thinking that "perhaps > pairwise multiwinner methods will always be too complex"; and so I > tried to include some Condorcet compliance here as well.
I hope I'm not misunderstanding you, but since you're mentioning "pairwise multiwinner methods" and parties I'll write a bit about an idea I've been playing with recently. I'm a fan of Condorcet methods, and notably Ranked Pairs. I wanted to try modifying RP in a way so it could be used for party-list elections, giving a result where the party most people agree on being the best party wins the most seats, rather than the party that have the most first preference votes. Party having the most first preference votes may of course also be the party that most people agree on being the best party. So I implemented a basic Ranked Pair algorithm, but with a tiny modification: When you compare two parties against each other, you divide the amount of votes that prefer party A over party B with the Sainte-Laguë divisor (2 * seats + 1), and do the same for votes that prefer party B over party A. In other words, if 30000 votes prefer party A over party B, 20000 votes prefer party B over party A and neither parties have won any seats, then you'll just compare 30000 vs. 20000. If party A won one seat already while party B won no seats so far then it'll be 30000 / 3 vs. 20000. When I feed the algorithm with the result from the Norwegian 2005 election (where all votes have only one preference and consider all other parties equally bad), then as expected, the result will be as if only using normal Sainte-Laguë. This was the result: A: 56 seats SV: 15 seats RV: 2 seats SP: 11 seats KRF: 12 seats V: 10 seats H: 24 seats FRP: 37 seats KYST: 1 seat PP: 1 seat Now the idea was that if some voters expressed a second preference, that should cause the second preference to win more seats, but not at the expense of the first priority, only at the expense of the other parties. So I made every vote for FRP have H as second preference, while leaving all other votes have no second preference. This gave me _almost_ the result I expected: A: 46 seats SV: 12 seats RV: 2 seats SP: 9 seats KRF: 9 seats V: 8 seats H: 40 seats FRP: 41 seats KYST: 1 seat PP: 1 seat As expected, H won seats from the other parties, but to my surprise, FRP also won more seats, even though no votes ranked FRP higher than in the previous run, and it was the exact same amount of votes. I haven't dug deep down into the code yet to figure out why it benefited FRP to add H as second preference. For those especially interested, the code (still using the D language) is located here: https://github.com/canidae/voting/blob/master/slrp.d (Rough code, minimalistic RP, likely buggy, etc.) Any thoughts? And is it something like this you're talking about, Kristofer, or did I misunderstand you? -- Regards, Vidar Wahlberg ---- Election-Methods mailing list - see http://electorama.com/em for list info