election-methods@mailman.electorama.com

Technical discussion of election methods

View all threads

Decloned Copeland Borda Hybrid

AD
Andy Dienes
Tue, Apr 12, 2022 3:28 PM

Hi Kristofer,

You'll get quota proportionality anyway, as long as you reweight

everybody who contributes to getting a candidate elected, in such a way
that their total weight afterwards is equal to the surplus.

As long as voters vote along party-lists, this is true, and most such
"quota spending" methods degenerate to Hamilton. However for an arbitrary
approval profile only Proportional Justified Representation (PJR) is
guaranteed. PJR is quite weak and there are often many committees
satisfying it for a given ballot set, and some of these committees are
substantially less fair / quality than others. I have found theoretically
and empirically that the way the support is spent can matter a lot in terms
of outcome quality.

I agree that the modification of AS might reduce free-riding hopefully!
Although I find it somewhat hard to analyze strategic incentives generally
when not isolated to single examples.

which maximally delays the decision of just what ballot weights to

attenuate.

Looks quite interesting, and related to the Maximin Support method
[1609.05370] which I already have implemented, so I can compare when I get
some more time in a few weeks. I would be worried that this is not always
resolute, in that if many voters truncate their ballots not every candidate
can achieve a quota. Maybe it can be rephrased to be more immediately
similar to Maximin Support, this could be done just by changing the
objective to

maximize (over support distributions): minimum_{1 <= j <= n+1}: sum
over all voters v: support[v][j]

On Tue, Apr 12, 2022 at 4:30 AM Kristofer Munsterhjelm km_elmet@t-online.de
wrote:

On 07.04.2022 01:56, Andy Dienes wrote:

Hi all,

I have recently come up with a small change to the way surplus handling
is performed on Allocated Score (AS). It is inspired by the way MES
(which you can read about
here

<

)
operates on ranked ballots, which is also related to the Expanding
Approvals rule by Aziz.

Basically, the way it works in the reweighting step of AS is:
Set a threshold d such that the total ballot weight of voters who scored
the candidate >= d is at least one quota (using Hare for now, but other
choices are fine). Then, find the minimal amount of voting power that
can be subtracted equally from each ballot such that the total amount
taken is exactly one quota. Note that some ballots may have less than
this amount remaining, so they will be fully exhausted.

It is very similar to the original surplus handling, but rather than
exhausting fully all ballots with score > d and then fractionally
ballots with score = d, it chooses to subtract an equal amount of power
from all ballots above the threshold.

When all scores are 0,1 (i.e. approval ballots) it does not satisfy EJR
(in the same way that AS doesn't), but it does satisfy PJR.

I have already done some simulations and found favorable results, so
what I am mostly looking for is if there are any sneaky ways this can go
very wrong? Of course, every voting method has pathological examples so
it's never good to put too much stock in specific bad scenarios, but
I've already looked at this proposed modification from many other
perspectives so pathological examples are exactly what I'm after here :)

I don't think there should be a problem as long as you make sure to
never elect more than one candidate in one go. E.g. if both A and B are
above the quota, apply the tiebreaker of your choice (say it picks A),
then elect A, deweight the voters, and then check if there's a quota
for B. Otherwise a majority might get too many candidates elected.

Your change might also reduce free-riding. Let's say my honest vote is
A: 5, B: 4. I know some other voters are also voting A:5, so it's
tempting for me to vote A: 4 instead so that my voting weight is only
exhausted fractionally. With the original reweighting (as you describe
it), I may get exhausted fully with A: 5 but only partially with A: 4.
But with your change, I would get exhausted equally.

In general, as long as you reasonably fairly reweight the votes, then
just how you distribute the surpluses shouldn't matter much. You'll get
quota proportionality anyway, as long as you reweight everybody who
contributes to getting a candidate elected, in such a way that their
total weight afterwards is equal to the surplus.

For instance, I constructed a more strategy resistant variant of EAR,
https://electowiki.org/wiki/Maximum_Constrained_Approval_Bucklin, which
maximally delays the decision of just what ballot weights to attenuate.
So although it's very hard to reason about just whose votes will count
less, it still passes Droop proportionality, because it does the
reweighting as soon as a candidate is backed by a quota.

-km

Hi Kristofer, > You'll get quota proportionality anyway, as long as you reweight everybody who contributes to getting a candidate elected, in such a way that their total weight afterwards is equal to the surplus. As long as voters vote along party-lists, this is true, and most such "quota spending" methods degenerate to Hamilton. However for an arbitrary approval profile only Proportional Justified Representation (PJR) is guaranteed. PJR is quite weak and there are often many committees satisfying it for a given ballot set, and some of these committees are substantially less fair / quality than others. I have found theoretically and empirically that the way the support is spent can matter a lot in terms of outcome quality. I agree that the modification of AS might reduce free-riding hopefully! Although I find it somewhat hard to analyze strategic incentives generally when not isolated to single examples. > which maximally delays the decision of just what ballot weights to attenuate. Looks quite interesting, and related to the Maximin Support method [1609.05370] which I already have implemented, so I can compare when I get some more time in a few weeks. I would be worried that this is not always resolute, in that if many voters truncate their ballots not every candidate can achieve a quota. Maybe it can be rephrased to be more immediately similar to Maximin Support, this could be done just by changing the objective to maximize (over support distributions): minimum_{1 <= j <= n+1}: sum over all voters v: support[v][j] On Tue, Apr 12, 2022 at 4:30 AM Kristofer Munsterhjelm <km_elmet@t-online.de> wrote: > On 07.04.2022 01:56, Andy Dienes wrote: > > Hi all, > > > > I have recently come up with a small change to the way surplus handling > > is performed on Allocated Score (AS). It is inspired by the way MES > > (which you can read about > > here > https://proceedings.neurips.cc/paper/2021/hash/69f8ea31de0c00502b2ae571fbab1f95-Abstract.html > > < > https://proceedings.neurips.cc/paper/2021/hash/69f8ea31de0c00502b2ae571fbab1f95-Abstract.html > >) > > operates on ranked ballots, which is also related to the Expanding > > Approvals rule by Aziz. > > > > Basically, the way it works in the reweighting step of AS is: > > Set a threshold d such that the total ballot weight of voters who scored > > the candidate >= d is at least one quota (using Hare for now, but other > > choices are fine). Then, find the minimal amount of voting power that > > can be subtracted equally from each ballot such that the total amount > > taken is exactly one quota. Note that some ballots may have less than > > this amount remaining, so they will be fully exhausted. > > > > It is very similar to the original surplus handling, but rather than > > exhausting fully all ballots with score > d and then fractionally > > ballots with score = d, it chooses to subtract an equal amount of power > > from all ballots above the threshold. > > > > When all scores are 0,1 (i.e. approval ballots) it does not satisfy EJR > > (in the same way that AS doesn't), but it does satisfy PJR. > > > > I have already done some simulations and found favorable results, so > > what I am mostly looking for is if there are any sneaky ways this can go > > very wrong? Of course, every voting method has pathological examples so > > it's never good to put too much stock in specific bad scenarios, but > > I've already looked at this proposed modification from many other > > perspectives so pathological examples are exactly what I'm after here :) > > I don't think there should be a problem as long as you make sure to > never elect more than one candidate in one go. E.g. if both A and B are > above the quota, apply the tiebreaker of your choice (say it picks A), > then elect A, deweight the voters, and *then* check if there's a quota > for B. Otherwise a majority might get too many candidates elected. > > Your change might also reduce free-riding. Let's say my honest vote is > A: 5, B: 4. I know some other voters are also voting A:5, so it's > tempting for me to vote A: 4 instead so that my voting weight is only > exhausted fractionally. With the original reweighting (as you describe > it), I may get exhausted fully with A: 5 but only partially with A: 4. > But with your change, I would get exhausted equally. > > In general, as long as you reasonably fairly reweight the votes, then > just how you distribute the surpluses shouldn't matter much. You'll get > quota proportionality anyway, as long as you reweight everybody who > contributes to getting a candidate elected, in such a way that their > total weight afterwards is equal to the surplus. > > For instance, I constructed a more strategy resistant variant of EAR, > https://electowiki.org/wiki/Maximum_Constrained_Approval_Bucklin, which > maximally delays the decision of just what ballot weights to attenuate. > So although it's very hard to reason about just whose votes will count > less, it still passes Droop proportionality, because it does the > reweighting as soon as a candidate is backed by a quota. > > -km >
KM
Kristofer Munsterhjelm
Sat, Apr 16, 2022 11:04 AM

On 12.04.2022 17:28, Andy Dienes wrote:

Hi Kristofer,

You'll get quota proportionality anyway, as long as you reweight
everybody who contributes to getting a candidate elected, in such a way
that their total weight afterwards is equal to the surplus.

As long as voters vote along party-lists, this is true, and most such
"quota spending" methods degenerate to Hamilton. However for an
arbitrary approval profile only Proportional Justified Representation
(PJR) is guaranteed. PJR is quite weak and there are often many
committees satisfying it for a given ballot set, and some of these
committees are substantially less fair / quality than others. I have
found theoretically and empirically that the way the support is spent
can matter a lot in terms of outcome quality.

Yes, I should've qualified what I said by that if either there are few
seats or few ranks/grade levels, then the proportionality criterion is
very weak. In the single-winner case, the Droop proportionality
criterion is mutual majority and Hare proportionality is merely unanimity.

I'm not familiar with the justified representation criteria, but I
imagine the looseness of PJR is for a similar reason.

Do there exist Approval proportionality criteria that imply that the
method's party list behavior must be equivalent to that of a divisor method?

I agree that the modification of AS might reduce free-riding hopefully!
Although I find it somewhat hard to analyze strategic incentives
generally when not isolated to single examples.

which maximally delays the decision of just what ballot weights to
attenuate.

Looks quite interesting, and related to the Maximin Support method
[1609.05370] which I already have implemented, so I can compare when I
get some more time in a few weeks.

Without having investigated it in detail, I'd say that it makes sense
for a maximin method to resist vote management. Schulze used something
similar for Schulze STV.

I would be worried that this is not always resolute, in that if many
voters truncate their ballots not every candidate can achieve a
quota. Maybe it can be rephrased to be more immediately similar to
Maximin Support, this could be done just by> changing the objective
to

maximize (over support distributions): minimum_{1 <= j <= n+1}: sum over all voters v: support[v][j]

I see your point. While every otherwise unranked candidate is considered
after all ranked candidates have been considered, this in effect
produces a very large tie.

For instance, consider this election that really exercises that part of
the method:

1: A
2: B
...
29: Z

two to elect. The Droop quota is 435/2 = 217.5.

With r=1, nobody can exceed the quota. With r=2, the method effectively
sees:

1: A>B=C=D=...=Z
2: B>A=C=D=...=Z
...
29: Z>A=B=C=...=Y

Now there's a tie because support[v][1] >= 0 for all candidates since
they're all ranked at or higher than second rank, so every candidate has
the same maximum. The method doesn't explain what to do at that point,
so you're right.

What's happening is comparable to an ordinary BTV or Bucklin case where
nobody has a quota (or majority) until suddenly everybody has a quota
(or majority).

Unfortunately, the maximin criterion won't work because the second index
to the support matrix is the jth candidate to be elected, i.e. it's
related to rank but isn't the same thing. When no candidate has been
elected (like the example above), j=1 is all we have, so the maximin
criterion is the same as the current one.

Ordinary Bucklin methods tend to solve it by looking at prior ranks.
That makes sense here because we would want Y and Z to be elected like
in SNTV. However, there is a problem. Suppose we break the tie by
whoever attained the highest support in the last round. Then it's still
possible to contrive an example where everybody has the same support in
the last round (although doing so is very difficult).

The pragmatic approach may simply be to record the maxima for the last
round and then break any further ties at random. An alternative would be
to use a QLTD approach, but it could become quite hard to understand.
Something like this (rough sketching):

minimize: lambda

...

Criterion 2:
for i = 1... n+1:
support[v][i] >= 0  if voter v ranks c_i at or higher than rank r
support[v][i] <= (v's initial weight * lambda) if v ranks c_i at or
lower than rank q

In the case of a tie, run this program with q=r, for all tied candidates
and elect the one with the lowest lambda. If there's still a tie, take
those tied candidates and run again with q=r-1 and so on.

There's no really good solution.

-km

On 12.04.2022 17:28, Andy Dienes wrote: > Hi Kristofer, > >> You'll get quota proportionality anyway, as long as you reweight >> everybody who contributes to getting a candidate elected, in such a way >> that their total weight afterwards is equal to the surplus. > > As long as voters vote along party-lists, this is true, and most such > "quota spending" methods degenerate to Hamilton. However for an > arbitrary approval profile only Proportional Justified Representation > (PJR) is guaranteed. PJR is quite weak and there are often many > committees satisfying it for a given ballot set, and some of these > committees are substantially less fair / quality than others. I have > found theoretically and empirically that the way the support is spent > can matter a lot in terms of outcome quality. Yes, I should've qualified what I said by that if either there are few seats or few ranks/grade levels, then the proportionality criterion is very weak. In the single-winner case, the Droop proportionality criterion is mutual majority and Hare proportionality is merely unanimity. I'm not familiar with the justified representation criteria, but I imagine the looseness of PJR is for a similar reason. Do there exist Approval proportionality criteria that imply that the method's party list behavior must be equivalent to that of a divisor method? > I agree that the modification of AS might reduce free-riding hopefully! > Although I find it somewhat hard to analyze strategic incentives > generally when not isolated to single examples. > >> which maximally delays the decision of just what ballot weights to >> attenuate. > > Looks quite interesting, and related to the Maximin Support method > [1609.05370] which I already have implemented, so I can compare when I > get some more time in a few weeks. Without having investigated it in detail, I'd say that it makes sense for a maximin method to resist vote management. Schulze used something similar for Schulze STV. > I would be worried that this is not always resolute, in that if many > voters truncate their ballots not every candidate can achieve a > quota. Maybe it can be rephrased to be more immediately similar to > Maximin Support, this could be done just by> changing the objective > to > > maximize (over support distributions): minimum_{1 <= j <= n+1}: sum over all voters v: support[v][j] I see your point. While every otherwise unranked candidate is considered after all ranked candidates have been considered, this in effect produces a very large tie. For instance, consider this election that really exercises that part of the method: 1: A 2: B ... 29: Z two to elect. The Droop quota is 435/2 = 217.5. With r=1, nobody can exceed the quota. With r=2, the method effectively sees: 1: A>B=C=D=...=Z 2: B>A=C=D=...=Z ... 29: Z>A=B=C=...=Y Now there's a tie because support[v][1] >= 0 for all candidates since they're all ranked at or higher than second rank, so every candidate has the same maximum. The method doesn't explain what to do at that point, so you're right. What's happening is comparable to an ordinary BTV or Bucklin case where nobody has a quota (or majority) until suddenly everybody has a quota (or majority). Unfortunately, the maximin criterion won't work because the second index to the support matrix is the jth candidate to be elected, i.e. it's related to rank but isn't the same thing. When no candidate has been elected (like the example above), j=1 is all we have, so the maximin criterion is the same as the current one. Ordinary Bucklin methods tend to solve it by looking at prior ranks. That makes sense here because we would want Y and Z to be elected like in SNTV. However, there is a problem. Suppose we break the tie by whoever attained the highest support in the last round. Then it's still possible to contrive an example where everybody has the same support in the last round (although doing so is very difficult). The pragmatic approach may simply be to record the maxima for the last round and then break any further ties at random. An alternative would be to use a QLTD approach, but it could become quite hard to understand. Something like this (rough sketching): minimize: lambda ... Criterion 2: for i = 1... n+1: support[v][i] >= 0 if voter v ranks c_i at or higher than rank r support[v][i] <= (v's initial weight * lambda) if v ranks c_i at or lower than rank q In the case of a tie, run this program with q=r, for all tied candidates and elect the one with the lowest lambda. If there's still a tie, take those tied candidates and run again with q=r-1 and so on. There's no really good solution. -km