tag:blogger.com,1999:blog-8217294657304563413.comments2019-09-14T03:15:47.307-07:00OpaVote BlogJeffhttp://www.blogger.com/profile/11828614939910702199noreply@blogger.comBlogger81125tag:blogger.com,1999:blog-8217294657304563413.post-90198391836444251712019-09-01T05:26:36.516-07:002019-09-01T05:26:36.516-07:00Yes, that would work too.Yes, that would work too.Jeffhttps://www.blogger.com/profile/11828614939910702199noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-59515101493667462202019-09-01T02:17:55.295-07:002019-09-01T02:17:55.295-07:00An additional way to treat equal rankings would be...An additional way to treat equal rankings would be to randomly assign them an unambigous preference order.Martin Wilkehttps://www.blogger.com/profile/00631561664443507247noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-13370155437323486992019-08-23T14:07:31.551-07:002019-08-23T14:07:31.551-07:00Eureka!
So I decided to try the traditional elimi...Eureka!<br /><br />So I decided to try the traditional elimination algorithm, but instead of elimination the fewest first choices each round, eliminating the candidate with the lowest Borda Count (adjusting the max borda value for elected and dropped candidates, and using the re-weighted ballots). I've added the results to my spreadsheet, column E. ( https://docs.google.com/spreadsheets/d/18AN5xli49l39Fh5bRQerLPF0iT5AJpEjY6dvUzk-TUI/edit?usp=sharing ) It is very close to FEO, and completes in polynominal time (something like O(N^2), I think.)!<br /><br />So there's the solution to the issue of computing time when there are a lot of candidates.happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-51644300284753036562019-08-23T12:18:53.633-07:002019-08-23T12:18:53.633-07:00Here's an idea:
1) for each candidate, find o...Here's an idea: <br />1) for each candidate, find out what other candidates would have to be eliminated for that candidate to make quota, with the fewest overall rank demotions. this could be about O(N^2) per candidate, so O(N^3) total for this step.<br />2) find the candidate(s) with the lowest number of such rank demotions to make quota. O(N)<br />3) if there is only one such candidate, that's the winner. if there is a tie, take the one with the most votes in their respective scenarios.<br /><br />If I'm thinkiing that through right it would be O(N^3) time, which is much better than O(N!), and would have similiar results to FEO. Someone would have to code it and test on the 43 scenarios i collected.happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-11078854018001561262019-08-23T06:23:07.447-07:002019-08-23T06:23:07.447-07:00I'm curious what you mean by "my local co...I'm curious what you mean by "my local community". Elections for a municipality? The ballots can be entered into a computer by hand and then computer tallied. This would be more accurate and reliable than a hand tally. If people are concerned about transparency, one could provide the source code and the data (anonymized, of course), so that any one can reproduce the tally. I'm sure there are ways to have a faster elimination ordering that comes close to the accuracy of the FEO. I'm not sure your suggestion is the best approach, though. I'll have to give it some thought.<br /><br />One could use the traditional STV elimination (eliminate lowest total until someone meets quota), and then look at each dropped candidate and see if they would have won if they weren't dropped but all the others that were dropped were still dropped. e.g. if lowercase means dropped, when someone meets quota at A B C d e f, try A B C D e f, A B C d E f, and A B C d e F. then if D, E, or F win, that's the real winner. So it's basic STV elimination, with an added rollback test on each dropped candidate.happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-86870595712156454612019-08-22T12:39:24.076-07:002019-08-22T12:39:24.076-07:00Mr. Baas, I've been very impressed with this r...Mr. Baas, I've been very impressed with this revision of the STV counting process and I'm hoping to get the shortcut version known and implemented in my local community. I don't see the full elimination ordering being sufficiently practical, unfortunately, especially if ballots are counted by hand. But I wonder if one could get any closer to the FEO result by eliminating the candidate who appears, at all rankings, on the fewest ballots, instead of the one with the fewest votes. semperavtistvssvmhttps://www.blogger.com/profile/05177019537536865744noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-77977267700754942372019-08-12T20:05:06.136-07:002019-08-12T20:05:06.136-07:00thanks! very helpfulthanks! very helpfulSeanhttps://www.blogger.com/profile/18041290992065998206noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-29412705758702052522019-07-21T06:23:53.902-07:002019-07-21T06:23:53.902-07:00In the system I invented, which uses four averages...In the system I invented, which uses four averages or representative counts, the first average is of the Hare quota and the Droop quota, which I worked-out to be a Harmonic Mean quota (because these quotas are harmonic series): HMQ = votes/(seats + 1/2). <br />The FAB STV system does not eliminate candidates, permanently or temporarily, before the full schedule of the count is complete.<br />FAB STV extends the Meek STV use of keep values. But discards its quota reduction (also employed here). The FAB STV way is that all preferences are counted (maximum use of preference information) including abstentions, which makes quota reduction irrelevant. DemocracySciencehttps://www.blogger.com/profile/07658657506368612732noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-84417006235580935112019-03-23T11:19:59.765-07:002019-03-23T11:19:59.765-07:00You can find all Scottish Council elections for 20...You can find all Scottish Council elections for 2012 and 2017 done with both official WIG counting and with Meek STV, and switch between the two systems, at www.macs.hw.ac.uk/~denis/stv/index.html<br />I haven't indicated there which outcomes would have been different under Meek STV, I think around 1%. DenisUnknownhttps://www.blogger.com/profile/16766036513739455396noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-14070894102308805622018-12-23T20:43:24.664-08:002018-12-23T20:43:24.664-08:00That's a tough one, but I think the Borda coun...That's a tough one, but I think the Borda count is your best option.Jeff O'Neillhttps://www.blogger.com/profile/11828614939910702199noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-1959746490562198002018-12-23T20:36:08.087-08:002018-12-23T20:36:08.087-08:00How appropriate is this to VERY small elections, l...How appropriate is this to VERY small elections, like for example a board of 7 electing their officers?Jefferey Harthttps://www.blogger.com/profile/13968435356287053377noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-67474374846691244852018-12-19T13:07:43.337-08:002018-12-19T13:07:43.337-08:00The "full elimination ordering" has some...The "full elimination ordering" has something like 5 levels of tie-breaking. I ran a bunch of simulations to optimize the tie-breaking order. (Though really the first tie-breaking criteria is exponentially more important than the others.) The best first criteria I found was "fewest rank demotions". But yeah, failing an efficient way to do that, or some other deterministic criteria, random tie breaking would be the next best. Random tie breaking can be implemented without adding a checkbox, simply by randomly sorting the candidates _before_ tallying and determining winners. i.e. randomly assigning each candidate to "A,B,C,...", instead of a deterministic method such as alphabetical.happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-16752696251858639212018-12-18T20:03:25.470-08:002018-12-18T20:03:25.470-08:00Speaking of ties, I tried a sample election and no...Speaking of ties, I tried a sample election and noticed that your algorithm eliminates tied candidates in the order they are listed, leaving the last of the tied candidates to be winners. I suppose that there is not much that can be done with ties, but it would seem that it would be better to eliminate randomly than to eliminate in ballot order (although your method does provide better information as to what is happening). Maybe a checkbox that says "eliminate ties randomly" would be helpful. Jeff Stakehttps://www.blogger.com/profile/08560473952197625800noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-52438192711469452362018-12-18T11:20:43.027-08:002018-12-18T11:20:43.027-08:00This comment has been removed by the author.Jeff Stakehttps://www.blogger.com/profile/08560473952197625800noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-65691700814836549282018-12-14T13:23:29.998-08:002018-12-14T13:23:29.998-08:00No. The +1 is unimportant. All it means is that ...No. The +1 is unimportant. All it means is that ties don't result in two winners, but must be broken somehow. It's the same as how in majority systems you need 50% plus one vote. So for instance if in the U.S. Senate, a vote is split exactly 50-50, the bill doesn't pass. But since the Hare quota uses up every vote exactly, you can't apply a [quota]+1 rule, since for the last seat you will have exactly [quota] ballots left. TLDR; the extra +1 on the quota really doesn't matter. We're talking on the order of 100,000 votes vs. 100,001 votes.happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-60314708621345183442018-12-14T12:49:55.680-08:002018-12-14T12:49:55.680-08:00Rereading parts of your post, I noticed that you u...Rereading parts of your post, I noticed that you used votes/(seats+1) for the Droop quota. I thought that (votes/(seats+1))+1 was generally used for Droop. Does that reduce the Droop problems that you describe?Jeff Stakehttps://www.blogger.com/profile/08560473952197625800noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-58746306342603686392018-12-05T10:06:03.803-08:002018-12-05T10:06:03.803-08:00I thought so, but just wanted to make sure. Many t...I thought so, but just wanted to make sure. Many thanks!Jeff Stakehttps://www.blogger.com/profile/08560473952197625800noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-27844579179997718932018-12-04T13:16:06.330-08:002018-12-04T13:16:06.330-08:00Yes, it "eliminate[s] this problem by adding ...Yes, it "eliminate[s] this problem by adding back eliminated candidates each round". This is true for the "shortcut" (not full elimination ordering) version, too. The drawback of the "shortcut" version is that in some situations (like what you show above), it doesn't pick the number one best choice. The full elimination ordering does a comprehensive search, the shortcut version does not - which is precisely why it's so much faster. But yeah, in either case, temporarily dropped candidates are re-introduced each round. That's the big flaw in other STV systems that I realized needed fixing. The other changes were just icing on the cake.happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-29289109397277970902018-12-04T10:10:51.742-08:002018-12-04T10:10:51.742-08:00To Kevin:
Thanks again.
I have another question. W...To Kevin:<br />Thanks again.<br />I have another question. With other STV systems, there is a potential problem if there are too many candidates and not enough voters. A person who many would like second best might be eliminated (this is described elsewhere on this website). Does your Baas system, especially the shortcut version you created, reduce or eliminate this problem by adding back eliminated candidates each round?Jeff Stakehttps://www.blogger.com/profile/08560473952197625800noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-65343890423145149482018-11-03T13:54:32.642-07:002018-11-03T13:54:32.642-07:00I did check your new algorithm and it did compute ...I did check your new algorithm and it did compute way faster. So, thanks for doing that. You have provided a good start; I hope someone can finish it!<br /><br />Below is one example which shows that using the Hare quota can matter. With it, there is no change in result from a tactical change by one voter. Without it, the voter needs to be aware that voting her preference might lead to her least favorite candidate winning (under a full elimination system). <br /><br />one seat; 21 voters<br />10 orderings are A,B,C<br />2 orderings are B,C,A<br />3 orderings are B,A,C<br />6 orderings are C,B,A<br />hare quota, not full elimination=A<br />not hare quota, not full elimination=A<br />hare quota, full elimination=B<br />not hare quota, full elimination=A<br /><br />change one ordering from CBA to BCA<br />hare quota, not full elimination=A<br />not hare quota, not full elimination=A<br />hare quota, full elimination=B<br />not hare quota, full elimination=B<br />Jeff Stakehttps://www.blogger.com/profile/08560473952197625800noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-89149447339529519562018-11-02T23:42:39.794-07:002018-11-02T23:42:39.794-07:00You're welcome. To be clear I'm pretty su...You're welcome. To be clear I'm pretty sure you have to do the "full elimination ordering" to completely prevent the issue that you described: voting a candidate higher can result in them not getting elected. The chance is reduced by adding dropped candidates back in, but it is not zero.<br /><br />IMO the greatest issue with my proposed method is that the time to compute winners is O(N!), but I think that<br />* even if you don't use full elimination ordering, the result is still better. Using only the other two changes still is an objectively better process than using none of the changes.<br />* using lemmas such as I described, it's possible to construct an algorithm that has all three rules, while still being computationally practical, even for elections with 50+ candidates.<br />It remains for that algorithm to be written. But I feel I've provided a good start.happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-37874625807844304152018-11-02T16:54:53.532-07:002018-11-02T16:54:53.532-07:00Thanks! When I have a minute I'll check it out...Thanks! When I have a minute I'll check it out. In my case, 4 seats should be enough (although maybe we will have 50 candidates at some point). Thanks again!Jeff Stakehttps://www.blogger.com/profile/08560473952197625800noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-12640365740671834042018-11-02T15:43:37.620-07:002018-11-02T15:43:37.620-07:00These are my notes from a few years ago on lemmas ...These are my notes from a few years ago on lemmas you could use to compute tge order of dropping candidates "as needed":<br /><br />where a,b represents total rank demotions caused by dropping candidates a and b<br /><br />(a,b) >= (a)<br />(a)+(b) >= (a,b)<br />3*({a}+{b}+{c}) >= {a,b,c} >= 1/3*({a}+{b}+{c})<br /><br />Also it has recently occurred to me that if one can prove that the candidate who would win a borda count is always a winner, no matter how many seats are chosen, then there exists an algorithm that finds all winners in o(n) time. (where n is number of candidates) but is suspect one can't prove that.<br />happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-21784276436577504422018-11-02T14:33:08.569-07:002018-11-02T14:33:08.569-07:00I've update the counter at http://autoredistri...I've update the counter at http://autoredistrict.org/ranked_choice_counter.zip <br />* I added a "find winners" button. It won't calculate until you press that. So now you can enter all the orderings without having to have it recalculate all the time.<br />* When you uncheck "full elinination ordering", it won't pre-compute all possible orderings.<br /><br />40 should now be manageable, if you first un-check "full elimination ordering".<br /><br />You can see the drawback of that by comparing column "I" on the spreadsheet with column "E". ( https://docs.google.com/spreadsheets/d/18AN5xli49l39Fh5bRQerLPF0iT5AJpEjY6dvUzk-TUI/edit#gid=0 )<br />And you can see the remaining advantages over standard STV by comparing "I" with "L".<br />* It still produces a more proportional result than standard STV.<br />* And protects against tactical voting better than standard STV.<br /><br />But yeah, having to pre-compute 40! orderings... that's a no-go. To make 40 practical, using full ordering, I'd have to change it so the orderings are computed as-needed. This would be much closer to 40 operations than 40! operations.happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.comtag:blogger.com,1999:blog-8217294657304563413.post-22590483340921326752018-11-02T13:43:44.072-07:002018-11-02T13:43:44.072-07:00Well this motivates me to update it to handle big ...Well this motivates me to update it to handle big elections better. I'll shoot for 40 in an hour on a typical desktop. I think i can benefit from there being much fewer seats than candidates. how many seats?happyjack27https://www.blogger.com/profile/06322415607461417789noreply@blogger.com