<DIV><BR><BR>----- Original Message -----<BR>From: Jameson Quinn <JAMESON.QUINN@GMAIL.COM><BR>> 2011/7/7 Andy Jennings <ELECTIONS@JENNINGSSTORY.COM><BR>> <BR>> > On Wed, Jul 6, 2011 at 6:06 PM, <FSIMMONS@PCC.EDU>wrote:<BR>> ><BR>> >><BR>> >> Of course, with too many factions, the optimal strategy <BR>> computation would<BR>> >> be intractable.<BR>> >><BR>> ><BR>> > With twenty candidates, there are about a million different possible<BR>> > subsets to consider. Seems like it could be tractable.<BR>> ><BR>> > I'm not exactly following how the tree is organized. If there <BR>> are N<BR>> > candidates and every voter ranks all candidates, then the <BR>> biggest N-1 size<BR>> > faction will be the one that omits the candidate who is ranked <BR>> last by the<BR>> > most voters, right? Can't you apply that recursively to build <BR>> the tree?<BR>> ><BR>> <BR>> But wouldn't you prefer to find the biggest faction of a size <BR>> around N/2? I<BR>> must admit, I'm also confused. It's easy with toy examples, but <BR>> I can't<BR>> understand what Forest means for a broad set of candidates.<BR>> <BR></DIV>
<DIV>Once we define precisely what we mean by "coalition," the coalition tree practically builds itself, and the traversal order is found in O(n) steps.</DIV>
<DIV> </DIV>
<DIV>Let's say a faction is a (multi)set of identical ballots, so the atoms of coalitions are weighted factions, where the weight of a faction is the number of ballots in the faction. [These atoms with their weights will be the leaves of the weighted coalition tree.]</DIV>
<DIV> </DIV>
<DIV>Suppose that two or more factions share some initial segment of candidates in any order. Then all of the factions that rank no candidate outside that set above any candidate in that set form a coalition.</DIV>
<DIV> </DIV>
<DIV>In other words, the coalition C(S) based on a subset S of candidates is the set of all factions that do not rank any candidate outside of S ahead of any candidate inside S. The weight of the W(S) of C(S) is the sum of the weights of the factions in C(S).</DIV>
<DIV> </DIV>
<DIV>The set of all candidate coalitions is partially ordered by containment. If C(S) contains C(S'), then C(S') is a subcoalition of C(S).</DIV>
<DIV> </DIV>
<DIV>The Hasse diagram for a partially ordered set is a tree. In our case the coalitions are the nodes of the tree, and the weights of the coalitions make it into a weighted tree. The universal coalition consisting of all of the candidates is the root node. Its weight is the total number of ballots. The leaves of the tree are the atoms of the coalitionss, i.e. the factions themselves.</DIV>
<DIV> </DIV>
<DIV>To find the sequence of play for the ideal version of SODA, starting at the root node recursively order the leaves of the daughter nodes and concatenate them together in descending order of weight of the daughter nodes.</DIV>
<DIV> </DIV>
<DIV>There's probably a name for this order of traversal of a weighted tree.</DIV>
<DIV> </DIV>
<DIV>Does anybody know it? If so, you can look for an efficient cook book algorithm for computing the order of the leaves.</DIV>
<DIV> </DIV>
<DIV>Does that help?</DIV>