<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
For the Vote::Count library I use the following method to find the
Smith Set. It is simpler than any of the methods currently on
<a class="moz-txt-link-freetext" href="https://electowiki.org/wiki/Smith_set#Algorithms">https://electowiki.org/wiki/Smith_set#Algorithms</a> as it only requires
a complete matrix and does not require using another method to find
a member of the Smith Set.<br>
<br>
Step 0 (Optional). Reduce the set by removing Condorcet Losers.<br>
<br>
Step 1. Each Choice proposes that they and every other choice which
defeats or ties them is the Smith Set.<br>
<br>
Step 2. Find the smallest proposal and use it as the Active
Proposal.<br>
<br>
Step 2A. If there is a tie for smallest combine the members to
create the Active Proposal.<br>
<br>
Step 3. Check the proposal of each member of the Active Proposal and
add any new members.<br>
<p>Step 4. Repeat step 3 until no new members are added to the
Active Proposal.</p>
This method will work because:<br>
<p>Choices outside the Smith Set will always have a minimum number
of losses at least equal to the size of the Smith Set.</p>
<p>Choices within the Smith Set will always have a number of losses
less than the size of the Smith Set because they will not be
paired to themselves and there must always be at least one other
member which does not defeat them.</p>
<p>Therefore the choice or choices with the fewest defeats will
always be members of the Smith Set, and any further choice that
defeats (or ties) them must also be in the Smith Set.</p>
<div class="moz-signature">-- <br>
<div style="color:FireBrick; font-family: serif;">
<p>Minds gets scrambled like eggs<br>
Get bruised and erased <br>
When you live in a brainstorm
</p>
<p>— Alice Cooper: Hard Hearted Alice</p>
</div>
</div>
</body>
</html>