<div dir="ltr">After a bit of thought, I modified ssmpr.py to use a different sort of scaled reweighting.<div><br></div><div>first, let's define some terms:</div><div><br></div><div>S[r] = ballots giving the seat winner a score rating of r</div><div><br></div><div>v = the rating at which S[v] + S[v+1] + ... S[MAX] is greater than the quota</div><div><br></div><div>TS[v,mm] = S[v] * (mm - MAX + v) + ... + S[MAX] * mm        (a total of MAX-v terms)</div><div><br></div><div>Then, if   MAX * quota is greater than TS[v,mm=MAX], we increment mm until we find a new max rating for which </div><div><br></div><div>mm * quota < TS[v,mm]</div><div><br></div><div>Then the reweighting factors for ratings r >=v are</div><div><br></div><div>Factor[r] = 1 - (r + mm - MAX) * Quota / TS[v,mm]<br><br>This treats the scores a bit more like Borda ranking, automatically rescaling the ballot in order to get proportional reweighting.</div><div><br></div><div>I don't have any mathematical justification for one reweighting method over another, other than the sense that it "feels right" to reweight in some proportion to the rating when you are using a rating ballot, and if you fully deweight <i>all</i> ballots over the threshold rating, you create an incentive for Hylland free riding.</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 5, 2020 at 6:42 PM Rob Lanphier <<a href="mailto:robla@robla.net">robla@robla.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Ted,<br>
<br>
This looks really interesting.  I haven't (yet) followed the details<br>
of all of this, but I *may* dig into this at some point.<br>
<br>
BTW, you have a typo in the URL to the Github repo you cited (with<br>
ssmpr.py in it)  The correct URL:<br>
<a href="https://github.com/dodecatheon/approval-sorted-margins/" rel="noreferrer" target="_blank">https://github.com/dodecatheon/approval-sorted-margins/</a><br>
<br>
At *some* point, I would love to build a language-agnostic test suite<br>
for election methods. I'm pretty comfortable with Python, but I also<br>
have dreams of reviving Electowidget in Lua and hosting it on<br>
<a href="http://electowiki.org" rel="noreferrer" target="_blank">electowiki.org</a> (and I have many ideas I could keep writing about here<br>
but I'll try not to threadjack).<br>
<br>
Ted, I think there's an email that you sent a year or so ago that I<br>
*meant* to respond to.  My backlog of emails and wiki edits and forum<br>
postings that I want to make is pretty long.  I hope you get traction<br>
with ^that approval-sorted-margins project.  Like I said: interesting.<br>
<br>
Rob<br>
</blockquote></div>