<div dir="ltr"><div dir="ltr">Hi Kristofer,<div><br></div><div>Thanks again for the example election scenarios. I created a repository for ranked ballot test scenarios on GitHub and added your examples.</div><div><a href="https://github.com/pivot-libre/ranked-ballot-scenarios/">https://github.com/pivot-libre/ranked-ballot-scenarios/</a><br></div><div><br></div><div>I've been thinking about this project a bit more broadly. In many disciplines it is difficult for engineers to create practical beneficial solutions from science's discoveries. Engineers' implementations can be incorrect or lag behind the latest science. I'm hoping this ranked ballot scenarios repository will make it easy for software engineers to faithfully implement the best and latest election science. Viewed another way, I'm hoping the repository will make it easy for the work of election scientists to be adopted more widely, correctly, and quickly.</div><div><br></div><div>Does the structure I proposed support that goal? How could it be improved?</div><div><br></div><div>All the best,</div><div>Carl</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 20, 2018 at 5:41 PM Carl Schroedl <<a href="mailto:carlschroedl@gmail.com">carlschroedl@gmail.com</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"><div dir="ltr"><div dir="auto"><div dir="ltr"><div dir="ltr">Hi Kristofer!<div><br></div><div>Sorry for the delayed reply. I agree that formal verification would be more rigorous. I don't know how to do formal verification either, but I would be open to collaborating with someone who had experience doing it.</div><div><br></div><div>I'm glad you are excited about the idea of a collection of implementation-independent tests! A few different Pivot Libre projects have been using one format for ranked ballots and ranked results. I posted a draft specification of the format here:</div><div><a href="https://pivot-libre.github.io/bff/" rel="noreferrer" target="_blank">https://pivot-libre.github.io/bff/</a><br></div><div><br></div><div>Folks who are handy with git and GitHub are welcome to discuss and propose changes to the source file here: </div><div><a href="https://github.com/pivot-libre/pivot-libre.github.io/blob/master/bff.md" rel="noreferrer" target="_blank">https://github.com/pivot-libre/pivot-libre.github.io/blob/master/bff.md</a><br></div><div>I'm also open to discussing it over email; either on the list or privately.<br></div><div><br></div><div>Some of the many open questions:</div><div> * Should the spec say something about how head-to-head matchup matrices are encoded? If it's relevant to include, I'm hoping something standard like a JSON array or map could be used so that we don't have to write a parser, but I'm open to other ideas.</div><div><br></div><div> * Should the ballots and the expected result (and possibly the head-to-head matchup matrix) for a single test election all be in one file together? All in separate files?</div><div><br></div><div> * What lessons can be learned from previous attempts to standardize in this space? Most notably Election Markup Language <a href="https://en.wikipedia.org/wiki/Election_Markup_Language" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/Election_Markup_Language</a> .</div><div><br></div><div>One of our group members had a somewhat similar idea to you about generating random ballots. His work-in-progress tool generates random graphs with a Condorcet winner and then calculates the BFF ballots needed to generate such a graph.<br></div><div><div><a href="https://github.com/pivot-libre/ballot-gen" rel="noreferrer" target="_blank">https://github.com/pivot-libre/ballot-gen</a></div></div><div>He's not on this mailing list yet, so let me know if you want to be introduced.</div><div><br></div><div>Thanks for pointing me to Steve's examples, for pointing me to your program, and for drafting a few test ballots of your own! I admire the drive to create a useful test scenario with a minimal number of ballots. I'll be slower to reply to emails over the holidays, but I look forward to further discussion and collaboration!</div><div><br></div><div>Wishing you all the best,</div><div><br></div><div>Carl</div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Dec 19, 2018 at 4:07 PM Kristofer Munsterhjelm <<a href="mailto:km_elmet@t-online.de" rel="noreferrer" target="_blank">km_elmet@t-online.de</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">On 12/12/2018 21.20, Kristofer Munsterhjelm wrote:<br>
<br>
> I'd like to make a test set, but I've recently found myself rather short<br>
> on spare time, so I don't think I could contribute much, at least not at<br>
> the moment.<br>
<br>
Here's a test entry that I made while constructing a Smith,Minmax<br>
mono-add-top failure example with as few voters as possible:<br>
<br>
Election 1:<br>
<br>
8: B>D>A>C<br>
9: C>A>B>D<br>
3: C>D>A>B<br>
5: D>A>B>C<br>
<br>
The Smith set is {A, B, D}. C is the Plurality winner and also the<br>
Minmax winner. Schulze elects A.<br>
<br>
Election 2:<br>
<br>
8: B>D>A>C<br>
9: C>A>B>D<br>
3: C>D>A>B<br>
5: D>A>B>C<br>
1: A>B>C>D<br>
1: A>C>D>B<br>
<br>
The Smith set consists of all four candidates, and the outcomes should<br>
be the same.<br>
<br>
This is a Smith,Minmax failure example because C is automatically<br>
disqualified in the first election since C is not in the Smith set; but<br>
adding some A-first ballots gets C into the Smith set, after which it wins.<br>
<br>
Incidentally, I haven't been able to find a four-candidate Smith,Minmax<br>
failure example that also fails MAM. That might be a good challenge to<br>
either show impossible or to devise.<br>
<br>
Finally, there are example elections where every positional system<br>
except Plurality fails Majority. Could those be good test cases?<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_-4994492116154459450gmail-m_-4994260799778167992gmail-m_-3614492076979492480m_3946349464505181606gmail_signature"><br>Carl Schroedl | <a href="mailto:carlschroedl@gmail.com" rel="noreferrer" target="_blank">carlschroedl@gmail.com</a> | <a href="http://carlschroedl.com/blog" rel="noreferrer" target="_blank">http://carlschroedl.com/blog</a><br></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><br>Carl Schroedl | <a href="mailto:carlschroedl@gmail.com" target="_blank">carlschroedl@gmail.com</a> | <a href="http://carlschroedl.com/blog" target="_blank">http://carlschroedl.com/blog</a><br></div>