Kristofer Munsterhjelm | 4 Apr 20:01 2014

A question about Random Pair

Say we run Random Pair n times for a given election. Furthermore, say 
that the set of candidates that win most often is called GP_n (greatest 
probability in n tries), and say that GP is equal to GP_n as n 
approaches infinity.

What deterministic election method would always elect GP?

Presumably, when some candidate X is the CW, GP consists of X alone. But 
does GP consist of the Smith set when in a cycle? I doubt it, but I'm 
not sure. This is equivalent to a question of whether Random Pair passes 
a (probabilistic) version of Smith.
Election-Methods mailing list - see for list info

Forest Simmons | 2 Apr 01:36 2014

The Stable Approval Potential Criterion (SAPC)

In a given election it may happen that there exists at least one candidate X such that the number of ballots on which X is ranked top (or equal top) is at least as great as the number of ballots on which  any other fixed candidate Y is ranked strictly above X.  We say that any such candidate X has Stable Approval Potential.

If a method always elects a candidate with Stable Approval Potential whenever at least one such candidate exists, then we say the method satisfies the Stable Approval Potential Criterion (SAPC).

Note that any candidate ranked top (or equal top) on a majority of the ballots satisfies the SAPC, and if there is a Majority Candidate (ranked unique top on more than half of the ballots) then no other candidate has Stable approval Potential.  Therefore the satisfaction of the SAPC entails satisfaction of the Majority Criterion.

Note also that standard Approval satisfies the SAPC.  In fact if X is the Approval Winner in an election using approval ballots, and Y is some other candidate, then the number of ballots on which Y is ranked above X is no greater than Y's approval, which is no greater than X's approval.

Chris Benham and Kevin Venzke  deserve the credit for the ideas behind this criterion.

Now I would like to suggest three methods that not only satisfy the SAPC criterion, but have a built-in Bucklin like fall-back process that continues until the modified ballot set has at least one SAP candidate.

 Note that Bucklin itself is an attempt to "fall back" until a kind of "equal top majority approval winner" is found. But Bucklin may fail in this because even when the fall-back collapse can no longer continue without total collapse to one level, there may not be any candidate with fifty percent approval.

But as we saw above, when there are only two levels left (if not sooner), at least the approval winner will be an SAP candidate.

All three methods proceed by collapsing the top two levels until there is at least one SAP candidate.  It helps to use cardinal ratings (i.e. score or range style ballots) to guide the collapse. At each stage the equal top counts and pairwise opposition counts are adjusted to reflect the fall-back collapsed state.

Method 1.  Elect the SAP candidate who is rated top on the greatest number of fall-back ballots.

Method 2.  Elect the SAP candidate whose max pairwise opposition is least according to the fall-back ballots.

Method 3.  Elect the SAP candidate X with the greatest difference between the number of collapsed ballots rating X top and X's max pairwise opposition on the fall-back ballots.

Method one is basically a proposal of Chris Benham cast in different language.

Method two is a natural way to bring  MMPO (Min Max Pairwise Opposition) into compliance with the Plurality Criterion.

Method three is (imho) the method that chooses the candidate with the greatest margin of approval stability potential, i.e. the candidate most likely to be re-approved in case of a re-vote.

I will give an example supporting this assertion in another post.

For now let me just affirm that all three of these methods satisfy the FBC (the Favorite Betrayal Criterion), as well as the Majority Criterion, Monotonicity, and the same kind of marginal clone independence satisfied by Approval and other versions of Range. 

Also there is an adequate Chicken Dilemma defense; if the threatening candidate B has k supporters, and the threatened candidate A has m>k supporters, then the A supporters should announce (and stick to it) that they are going to rank B on k ballots (and only ask in return that the B supporters rank A on k ballots, as well).  In other words it is a kind of tit for tat strategy. "We'll rank your guy on as many ballots as you could possibly rank our guy.  If you don't, then you are responsible for the election of our common foe. "

What do you think?


Election-Methods mailing list - see for list info
⸘Ŭalabio‽ | 4 Mar 09:56 2014

Bee-Democracy in Popular Culture


	SciShow, an Internet-Science-Show, mentions Bee-Democracy, but fails to mention Score-Voting:




	“⸘Ŭalabio‽” <Walabio <at> MacOSX.Com>


An IntactWiki:

	“You are entitled to your own opinion, but you are not entitled to your own facts.”
	Senator Daniel Patrick Moynihan
Election-Methods mailing list - see for list info
robert bristow-johnson | 28 Feb 18:22 2014

a leftover from Burlington 2009 IRV... this might be good for a chuckle.



• Was Kiss aware that in March 2009, he had won re-election in a close, 
three-way runoff?

“I don’t recall,” Kiss said, adding that he was confident that as a 
Progressive, he eventually had garnered enough Democratic votes to win.


i'm sure he recalls quite vividly and this one is a stupid one to claim 
ignorance about.

this year (2013/2014) i had been involved with the reapportionment or 
redistricting battle, that again being a liberal town, did not pit 
conservatives over liberals, but now pits the north end of the city 
against the south. really dumb.

anyway, i drew the "compromize plan" map which is on the ballot and will 
be decided this coming Tuesday on Town Meeting Day.



r b-j                  rbj <at>

"Imagination is more important than knowledge."

Election-Methods mailing list - see for list info

Michael Ossipoff | 25 Feb 23:10 2014

What voting-system topics are relevant now?

Related to voting-systems, the following things (in the order listed) are what's relevant at this time:
1. Everyone must demand, and get, verifiable vote-counting in our Plurality elections. Without that, any other reforms are entirely irrelevant.
2. Other than that, the relevant voting-system subject now is Plurality strategy. ...the matter of how progressive voters can elect a progressive government to office, using Plurality (because that's what we have).
Of course neither of things can really happen. It's been truly said that the real voting-power belongs to him who counts the votes.
Even if everyone demanded verifiable vote-counting, there would be no reason or motive for such demands to be granted.
And those currently in power wouldn't be motivated to allow themselves to be voted out. If they lost an election, there's no reason to expect them to cede power. But, for that matter, of course it's obvious that there's no reason why they'd let themselves lose an election. As I said above, the real voting-power belongs to him who counts the votes.
But, if you want to pretend that impovement is possible, then the least-naive (but naive nevertheless) pretense would be to pretend that we can get verifiable vote-counting, if we all insist on it. So that would be where to start the pretense--I mean the "effort".
But, just for pretend, you understand, there's another interesting voting-system topic. A number of political parties, nearly all of them progresssive parties, offer, in their platforms, a voting system better than Plurality. They offer IRV. While Benham and Woodall (which I've defined before at EM) are probably better than IRV, because they meet the Condorcet Criterion (CC), IRV has the important advantage of meeting the Mutual Majority Criterion (MMC) and CD (CD is defined at electowiki, but, briefly, it means that a voting system doesn't have the chicken-dilemma).
But IRV meets Later-No-Harm (LNHa), and Later-No-Help (LNHe) which counts for something, though CC is probably more important.
Anyway, if one of those progressive parties were elected to office, then conditions would be different in 2 obvious ways:
1. All of those parties guarantee a much more honest, open, agenda-free, and participatory media system. No longer would there be media disinformation regarding winnabilities, the "viability" of parties and candidates, etc.
2. The electorate would obviously, having elected that progressive governmnent have demonstrated that they are no longer susceptible to concerted media disinformation anyway--having just ignored it when electing a progressive government to office.
That different set of conditions, I refer to as "the Green scenario". FBC would no longer be needed.
So, in addition to demanding and getting verifiable vote-counting, and the Plurality strategy for electing a progressive government, it's also of interest what voting system(s) would be good for the Green scenario.
(I call it "the Green scenario, because curently the Greens are the biggest progresive party. Actually, that might not mean much. The Greens might seem a bit elitist to some, and might still be (mis-) regarded as a 1-issue environmental party. Maybe the Justice Party's emphasis on justice, justice for everyone, will resonate better iwith the population. The Pirate Party's platform is brief, but what there is of it is progressive.
What would be the progressives' best strategy, to elect a progressive government?:
1. All progressives vote for the candidates of their favorite progressive party
(The progressive parties include the nonsocialist progressive parties(GPUS, Justice, Pirate); democratic socialist parties (G/GPUSA, SPUSA); and the many communist parties)
2. When the total (divided) progressive vote adds up to a majority, then all progressives vote, in the next election, for the nominees of whilchever progressive party has just gotten the most votes.
What voting system would be best in the Green scenario?
FBC would no longer be needed. That allows us to achieve a good combination of properties:
MMC + CD. Or, better yet, MMC + CD + CC.
IRV meets MMC and CD. Benham and Woodall (defined in previous posts of mine here) meet MMC, CD, and CC.
Michael Ossipoff
Election-Methods mailing list - see for list info
Jameson Quinn | 24 Feb 18:46 2014

Realistic strategy questions

I have been working on my program for measuring the Voter Satisfaction Efficiency (formerly known as BR) of various systems. It's just about ready to do a big run, but before I do that, I'd like to get as many of the activists here to say what they think are reasonable settings for generating scenarios. In particular, I have to decide proportions for various kinds of strategic voters.

Here's a few possible kinds of voters:
  1. Honest: Will always map their utility onto a vote as honestly (linearly) as possible, after normalization over the range of candidates available.
  2. Media-based Honest: As above, but when normalizing, they will ignore all candidates who are worse than both polled frontrunners.
  3. Fully strategic: Will always strategize by maximizing the ballot distance between the two (honestly) polled frontrunners.
  4. Weakly strategic: Will strategize, but only as much as "necessary". That is, assuming no other voters strategize, they will shift their vote, focusing on the margin between the polled winner and runner-up. In a Condorcet system, such a voter would always be honest. In a median system, they would exaggerate to ensure they graded the winner and runner up on opposite sides of both of their polled total grades, but not necessarily to an extreme; so if their honest vote was A,B,C,D,F and the polled grades were D,C+,C-,D,D, then they'd vote A,B,D,D,F.
  5. Lazily strategic: Fully strategic if and only if their weakly strategic vote would not be identical to their honest vote.
  6. Threshold strategic: Fully strategic if and only if their utility (satisfaction) difference between the polled frontrunners is greater than some threshold (in absolute value)
  7. One-sided strategic: Will strategize if and only if they prefer the polled runner-up to the polled winner.
  8. 20/20 hindsight: Fully strategic if and only if one of the last N election results was changed by strategy. (When simulating, you'd just use some constant probability for each election system, and find an equilibrium point for that probability). 
  9. Sheep: strategic iff more than X% of the non-sheep voters are.
  10. Cliquish: Certain probability of being each of the above kinds, except with a certain extra probability of being the same as other voters who share similar utilities.
Obviously, it would be easy to extend the above list by combining the various aspects there.

Personally, I find ALL of the above strategic types to be essentially plausible. I know that the full decision rule for some (such as weakly and lazily) are more complex than the explicit thought processes of 99.99% of voters, but in practice I think it would be easy to end up acting like that through implicit and/or subconscious heuristics. Thus, in particular, I find it extremely IMplausible that the electorate would consist only of types 1 and 3, as previous BR simulations generally assumed.

The question, then, is: how many of each kind of voter should I put in? Of course, I'll run several scenarios, but there's no way I can fully explore the 8-simplex of possible combinations of the above 9 voter types. So I have to choose where to focus my attention.

And furthermore, I think it's valuable to say which percentages you find plausible before you learn how your favorite voting system does under those percentages. In my debugging so far, I've gotten a glimpse of the impact of types 1, 3, 4, 5, and 7 above; but I have not looked at the rest at all. So here's a scenario I find reasonable, and which I really don't know how it will turn out for my currently-favorite systems:

Each voter has a "honesty type" which are 50% honest and 50% media-based; a "strategy type" which are 75% full and 25% weak; and a "decision type" which are 30% hindsight (N=1-3), 30% threshold (X=0.5-2 SD), 20% lazy, 10% one-sided, 5% always-honest, and 5% always-strategic. They use their "decision type" to decide whether to vote according to their "honest type" or their "strategic type". Cliquishness is around 70% (note that even at that high level, there are good chances of a scenario where the cliquishness does not lead to one-sidedness).

What do others think is a reasonable scenario? I'd particularly like to hear from Clay. Clay, I know we're likely to disagree over the meaning of my VSE numbers once I have them ready; and, only human, we'll probably both tend to rationalize to make our points. I think that it will help ameliorate that disagreement if we undercut those future rationalizations by each precommitting to take our own chosen set of numbers seriously, even if those are two separate sets of numbers.

Election-Methods mailing list - see for list info
Kristofer Munsterhjelm | 23 Feb 12:17 2014

Condorcet clustering methods: correction and quotas

First, a correction to my minmax clustering method.

In the data part, we have:

param ballot_condmat :=
                  #C L R
         [1,*,*]:  1 2 3 :=      # 11: L>C>R
                 1 0 0 11
                 2 12 0 11
                 3 0 0 0
         [2,*,*]:  1 2 3 :=      # 10: R C L
                 1 0 10 0
                 2 0 0 0
                 3 10 10 0
         [3,*,*]:  1 2 3 :=      #  2: C > L > R
                 1 0 2 2
                 2 0 0 2
                 3 0 0 0;

This should obviously be

param ballot_condmat :=
                  #C L R
         [1,*,*]:  1 2 3 :=      # 11: L>C>R
                 1 0 0 11
                 2 11 0 11
                 3 0 0 0
         [2,*,*]:  1 2 3 :=      # 10: R C L
                 1 0 10 0
                 2 0 0 0
                 3 10 10 0
         [3,*,*]:  1 2 3 :=      #  2: C > L > R
                 1 0 2 2
                 2 0 0 2
                 3 0 0 0;

i.e. the 12 in the second row for C is altered into a 11, since that 
ballot is only cast by 11 voters. With this fix, the clustering method 
with ordinary (summed) scores gives C a seat for council sizes of 1, 3, 
5, 7, 8, 9, or 10 seats (of possible sizes <= 10 seats).

The minmax score option only gives C a seat for sizes 1, 9, and 10, 
which favors the center less than even Plurality-based Webster.


I didn't quite realize it at first, but the method (and thus Monroe's 
original method) has an implied quota.

In his paper, Monroe says that each winner (of which there are m, for m 
seats) is associated with a constituency of n/m voters, for n voters in 
total (p. 928, American Political Science Review, Vol. 89, No. 4). This 
means that every constituency (what I've been calling a cluster) is of 
the same size.

This constraint is expressed, in the minmax code, as:

s.t. same_size{c in CLUSTERS}:
         sum {k in BALLOTS} (ballot_fraction[k, c] * ballot_wt[k]) =

(The River code is analogous, except that ballot_fraction's indices are 
reversed, i.e. what's in the minmax program stored as ballot_fraction[x, 
y], is in the River program stored as ballot_fraction[y, x]. Oops!)

What this says is that the number of voters in a cluster (ballot 
fractions for that cluster times ballot weight of the ballot in 
question) must sum to the same number, which is totweight / numclusters 
or n/m.

But this implies a Hare quota. Say that, in the minmax program, a given 
candidate exceeds a Hare quota of first preferences. Then a cluster 
containing voters ranking this candidate first will get maximum score. 
Since each voter will vote the candidate above everybody else, the 
weakest victory for this candidate will equal the cluster size, which is 
the maximum possible score a cluster can attain.

But if that is a Hare quota constraint, then it's relatively easy to 
alter it into a Droop quota constraint. By the same notation (and array 
order) as above:

s.t. quota_constraint{c in CLUSTERS}:
         sum {k in BALLOTS} (ballot_fraction[k, c] * ballot_wt[k]) >=
                 (totweight + 1e-6)/(numclusters+1);

The 1e-6 is there because a Droop quota constraint is strictly that "any 
party supported by more than k Droop quotas should have at least k 
seats", so if it's supported by exactly k Droop quotas, it doesn't 
necessarily get a seat. But that is vanishingly rare and you may remove 
the fudge factor if it seems ugly.

What happens now is that each cluster is constrained to be at least a 
Droop quota in size, but can be larger if that increases the score.

But how does this change the outcome? Well, in the LCR example with 
minmax, we get that, for council sizes <= 10:

- with ordinary (summed) scores, C gets a seat when the total number of 
seats are 1, 3, 4, 5, 6, 7, 8, 9, and 10.
- with minimax scores, C gets a seat when the total number of seats are 
1, 3, 5, 7, 8, 9, and 10.

So with a Droop quota, the method is less proportional and more 
majoritarian than with a Hare quota. This seems in line with how 
Plurality-based party list methods with smaller quotas favor large 
parties. If those methods have a greater "large party bias" with smaller 
quotas, the Condorcet-clustering method has a greater "centrist bias" 
with smaller quotas.

More generally, it seems that smaller quotas render the method more like 
how it acts in the single-winner case. Plurality and IRV-based ones have 
a large party bias because those parties have many votes and so would be 
elected more often in plain Plurality (or IRV). Similarly, if I'm right, 
Condorcet-based ones have a centrist-majority bias because centrists are 
more likely to be elected in single-winner Condorcet.


And now that I know there's a quota in these methods, what's next? 
"Floating quota" Webster/Sainte-Laguë? That would be hard to implement 
within the limits of mixed-integer programming.

The most surprising thing here is that minimax scoring seems to behave 
"properly" with a Droop quota whereas summed scores behave better with a 
Hare quota. How do the quota rules influence the outcome with summed 
scores vs with minimax scores? It might be interesting to explore in 
greater detail. Perhaps there is something to the distinction mentioned 
about Hare and Droop on Wikipedia: a Hare quota *represents* a group, 
whereas a Droop quota *is elected by* a group. But a more formal or 
rigorous investigation would probably need extreme cases, where minimax 
and sum differ as greatly as possible.
Election-Methods mailing list - see for list info

⸘Ŭalabio‽ | 22 Feb 03:13 2014

I advocated a better single-winner voting system (Approval Voting).


	¿How fare you?

	On FIMFiction.Net, on a form devoted to grim dark stories, PegaSisters and Bronies planned to
plurality-vote for best story.  I sold them on Approval Voting.  I just explained  about vote-splitting and
how how approval voting is immune to clones.  I explained that for best results, multiple rounds is a good
idea.  I explained that when it it down to 2 stories, it is time for a Top—2-RunOff.  Those interested in the
details can read for themselves:

	Unlike the mendacious democans and repulicrats of FairVote, we have the truth on our side.




	“⸘Ŭalabio‽” <Walabio <at> MacOSX.Com>


An IntactWiki:

	“You are entitled to your own opinion, but you are not entitled to your own facts.”
	Senator Daniel Patrick Moynihan
Election-Methods mailing list - see for list info
Toby Pereira | 20 Feb 00:28 2014

PR approval voting

I just came across this again and I've copied it into an e-mail. Ross, would you be able to explain the range variant in a less notation-heavy way? The approval method seems quite clear, however.
From Ross Hyman:
A range voting generalization is the following:
The score that the ith ballot assigns to the ath candidate is s_i,a.  v_i,a is the vote assigned to candidate a from the ith ballot.  The optimal v_i,a is determined iteratively.
For each candidate set
1) choose an initial v_i,a. such that sum_a v_i,a =1, where the sum is over candidates in the candidate set.

2) The total score for a candidate in the set is determined from s_a =
sum_i v_i,a s_i,a.  The lowest score is a lower bound for the candidate set score.

3) Form the adjusted vote w_i,a =  v_i,a/s_a. 

4) The adjusted vote for each ballot is w_i = sum_a w_i,a.

5) The new v_i,a = w_i,a / w_i.  Proceed to step 2.

The candidate set with the highest score wins the election.

--- On Sat, 10/1/11, Toby Pereira <tdp201b at> wrote:

From: Toby Pereira <tdp201b at>
Subject: Re: [EM] PR approval voting
To: "Ross Hyman" <rahyman at>, "election-methods at" <election-methods at>
Date: Saturday, October 1, 2011, 11:25 AM

Presumably this could also be used for range voting with a fairly simple modification. It would just set a limit on the fraction of someone's vote that could be used for each candidate. If you scored a candidate 3 out of 10, then no more than 0.3 of your vote could go to that candidate, regardless of whether the rest remained unused.

From: Ross Hyman <rahyman at>
To: election-methods at
Sent: Saturday, 1 October 2011, 5:07
Subject: [EM] PR approval voting

The following PR approval voting procedure is an approval limit of Schulze STV

A score for each candidate set is determined in the following way:    The vote of each ballot is distributed amongst the ballot's approved candidates in the candidate set.  The score for each candidate set is the largest possible vote for the candidate in the set with the smallest vote.  The candidate set with the highest score wins the election.

example: 2 seats
approval voting profile
10 a
  6 a b
  2 b
  5 a b c
  4 c
The possible candidate sets are: {a b}, {a c}, and {b c}.

score for {a b} determined from
10 a
 11 a b
  2 b
score for {a b} = 11.5

score for {a c} determined from
16 a
  5 a c
  4 c
score for {a c} = 9

score for {b c} determined from
 8 b
 5 b c
 4 c
score for {b c} =

set {a b} wins.

Schulze uses a maximum flow algorithm to distribute the votes optimally on each ballot for each candidate set.  Here is another algorithm.

v_i,a is the vote assigned to candidate a from the ith ballot.  The optimal v_i,a is determined iteratively.

1) Initially, the vote for each ballot is distributed equally between all the candidates in the candidate set that are approved by that ballot. 

2) The total vote for a candidate in the set is determined from v_a = sum_i v_i,a.  The lowest vote is a lower bound for the candidate score.

3) Form the adjusted vote w_i,a =  v_i,a/v_a. 

4) The adjusted vote for each ballot is w_i = sum_a w_i,a.

5) The new v_i,a = w_i,a / w_i.  Proceed to step 2.
Election-Methods mailing list - see for list info
Toby Pereira | 19 Feb 20:45 2014

Proportional score/approval voting system - help needed to nail it down

I attempted to devise a proportional score voting system a few years ago, and while I thought it would work, I since found some problems with it.
The reason why I want to get it to work is that there are some problems I've seen in other proportional approval/score systems that shouldn't be exhibited by this. I haven't proved any results but empirically it seems to work wherever there are two factions of voters.
I'm not really that good on mathematical notation so I'll have to explain in in a more "wordy" way. I'll start with a simple approval voting example (approval being a specific form of score). The letters correspond to approved candidates.
Approval voting, 2 to be elected.
3 voters: A, B
1 voter: C, D
The system works by looking at root mean squared "dissatisfaction".
If A and B are elected, then 3 voters have no dissatisfaction, and 1 voter has a dissatisfaction of 2 (they have 0 out of 2 candidates elected).
The root mean squared dissatisfaction is sqrt ((3*0^2 + 1*2^2)/4) = 1. This is then taken away from the number of seats (to find the "average" number of seats per voter that this result is equivalent to) and then divided by the number of seats to find the "representation score" out of 1 for the result.
So (2-1)/2 = 0.5. So 0.5 is the representation score for A, B (equivalent to 1 seat for each voter).
If the result was A, C then the root mean square dissatisfaction would be sqrt (4*1^2/4) = 1. This is the same as for A, B so it gives a representation score of 0.5. So these potential results are tied. If every voter has voted for the same number of elected candidates (as in the A, C case), then the representation score for that result is just that number of candidates divided by the total number of elected candidates.
If it was C, D we'd have sqrt ((3*2^2 + 1*0^2)/4) = sqrt 3. The representation score is (2-sqrt 3)/2 = 0.134. This is a worse result.
This result basically fits the Sainte-Laguë system rather than D'Hondt. Hopefully it's quite simple so far.
However, the system is nowhere near complete. Take this election scenario:
Approval voting, 3 to be elected.
3 voters: A, B
1 voter: C, D
The same as the last case except that 3 candidates are elected. Let's look at the potential result A, B, E. Candidate E has not received any votes. To calculate the representation score, we have to ignore any candidates not voted for by either faction or it messes up the calculations and would not award the same representation score to A, B, E as it would to A, C, E, which it should do (given that A, B and A, C would score the same).
So we have to look at the dissatisfaction from 2 seats rather than from 3. As before we look at the root mean squared distance from 2 rather than 3. It would be 1 in this case and equivalent to 1 seat. But the representation score is worked out using the total number of available seats. So it would be 1/3 or 0.333.
In general, when we have the simple case of two factions of voters, to calculate the representation score of a potential result, we count the total number of candidates voted for by at least one faction and look at the root mean squared dissatisfaction from that. For example:
Approval voting, elect 6
2 voters: A, B, C, D, E, F
1 voters: A, B, C, G, H, I
When evaluating the result A, B, C, D, E, G we work out the difference from 6. We don't count any of the candidates twice even though they have been voted for by both factions. In this system, A, B, C, D, E, G would beat A, B, C, D, E, F unlike other systems I've encountered.
For a generalisation to score voting, you look at the fraction of the max vote that the voters have given to the elected candidates. For A, B if I scored them 6/10 and 4/10, then it would be as if I had 0.6+0.4 = 1 candidate elected. If someone else scored them 7/10 and 3/10, then it would be as if they had 0.7+0.3 = 1 candidate elected as well. However, the dissatisfaction would be calculated from the higher of each so 0.7+0.4 = 1.1.
The problems start when (as there always will be in real life) there are more than two types of voter. You can't simply pick a point to calculate the dissatisfaction from and use it for several factions. It doesn't give the right results. It seems that you can only do it for two factions at a time.
I don't have a simple system to sort this out. Maybe there is one but I'm just missing it. The previous (failed) system I had involved iteratively "levelling out" the result for voters until they were all at the same level. But I noticed that the result can depend on how you do the levelling out.
To see what I mean by levelling out, take a look at the first example again, but double everything.
Approval voting, 4 to be elected.
3 voters: A, B (faction 1)
1 voter: C, D (faction 2)
3 voters: E, F (faction 3)
1 voter: G, H (faction 4)
Take the result A, B, E, F. Because A, B is proportionally equivalent to the voters in factions 1 and 2 all having one candidate elected (as we saw before), you can equivalently see that result as representationally equivalent to 4 voters having 1 candidate elected. So those 4 voters have been "levelled out". You can do the same for factions 3 and 4. Then every voter has been levelled out to 1 candidate each and the representation score is 1/4 or 0.25. However, it is not always that simple. Doubling the other example I gave:
Approval voting, elect 12
2 voters: A, B, C, D, E, F (faction 1)
1 voters: A, B, C, G, H, I (faction 2)
2 voters: J, K, L, M, N, O (faction 3)
1 voter: J, K, L, P, Q, R (faction 4)
Take the result A, B, C, D, E, G, J, K, L, M, N, P
Factions 1 and 3 have 5 candidates elected, and factions 2 and 4 have 4 candidates elected.
If you level out factions 1 and 2, they have candidates in common and there are 6 that one or both voted for, so the dissatisfaction score is calculated from 6. The same would apply to levelling out factions 3 and 4. Because 1 and 2 combined are equivalent to 3 and 4 combined, this would level out every voter, so we could work out a representation score. However, we could equally level out faction 1 with faction 4 and faction 2 with faction 3. As pairs factions 1 and 4 together are equivalent to factions 2 and 3 together, so we'd end up with all voters levelled to the same level, but it would be a different level from last time! This is because when comparing factions 1 and 4 (and 2 and 3), we would have to work out the dissatisfaction score from 9 candidates (rather than 6) because that is the total of the elected candidates that at least one faction voted for, as they have none in common. Working out representation scores using squared differences from different numbers does not give the same result. I won't show you any numbers here, but it's quite trivial to calculate.
I have a potential system that might give the correct results and always the same result. But anything below here is really just speculation, and I was hoping that someone might spot something glaring that I've missed to make a simple system.
First of all you have to compare and level the result for every pair of factions. If no two voters vote the same way, this could mean every pair of voters, which would mean n*(n-1) pairs for n voters. So at this point you have up to n*(n-1) "results". Each "result" will later be treated as a faction with the number of voters added together from each faction that made the "result".
Then you have to use trial and error to find the actual representation score. First of all, you "guess" what the representation score is, and you use a template two-faction result that you know has that representation score to compare it against.
For example, if there are two candidates to be elected and you are testing for a representation score of 0.5, you can use the template where x voters have 2 candidates elected and x/2 voters have 0 candidates elected (we know from previous examples that this gives a representation score of 0.5).
For any paired "results" below the being-tested-for representation score, they are levelled to being-tested-for representation score using the required number of voters from the template faction that is above the representation score (treated as if they have no candidates in common). For any "results" above the being-tested-for representation score, they are levelled to this representation score using the required number of voters from the template faction that is below this representation score (again treated as if they have no candidates on common). So at the end, all the "results" are now levelled to the same score.
You then look at how many template voters were needed from above and below the representation score to put everything at the right level. If it is the correct proportion (2 to 1 ratio using the example above) then you have found the correct representation score. Otherwise you go up or down as required. Obviously when comparing candidate sets, you only need to know if a set is better than the best set so far, so you can just set the initial "guess" to the best so far. If it's lower, you don't need to work out the exact representation score and can move on.
If it's too much computation to work out the representation score for every potential result, then electing candidates can be done sequentially.
This system might not work as it is, but I think there is potential in there as long as the two-faction method can be applied to any number of different types of voter. So does anyone have any ideas?
Election-Methods mailing list - see for list info
Kristofer Munsterhjelm | 15 Feb 20:20 2014

Integer program for River clustering

And here, to show that it can be done, is a mixed integer linear program 
for clustering using River. River turns out to be easier to implement in 
this way than Tideman is, and River enjoys properties that Tideman 
doesn't, so I get two birds with one stone.

However, it's completely impractical for large councils. My computer and 
GLPK solver manages three or four seats in less than a few minutes, but 
then the time goes up by *a lot*.

It might be possible to use these methods in a semi-sequential manner: 
do three seats at a time (four clusters, where the last cluster just 
contains voters not assigned to any of the other clusters, not 
representing any winners so far). Determine the three winners, then 
remove the voters that have been assigned to any of those clusters. 
Repeat for the next three clusters with the candidates that have already 
been assigned disallowed (unless this is party list), and repeat until 
all the winners have been determined.

However, due to only considering three "active" clusters at a time, such 
a method might not be quite as proportional as desired. The minimax 
integer program might be more desirable, since it can get up to ten or 
fifteen seats before unacceptably slowing down. Minimax not being 
cloneproof may end up being an acceptable cost for being able to do more 
seats at once. I wouldn't know, but it's worth thinking about.

Also, these clustering methods are in the spirit of least remainder 
methods (since they have absolute quota constraints). As I mentioned 
earlier, the "spirit of Sainte-Laguë" would be more to accurately 
represent (more fair than random) something... but I'm not sure what 
that something would be. Accurately represent a random pick from all 
clusters? I don't know.

I've attached two copies. They differ in what examples they use; both 
are taken from Steven Eppley's page about independence of 
Pareto-dominated alternatives, 
Attachment (river.mod): audio/x-mod, 12 KiB
Attachment (river_bpexamp.mod): audio/x-mod, 14 KiB
Election-Methods mailing list - see for list info