-
-
Notifications
You must be signed in to change notification settings - Fork 855
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WSDC Pairing as a Minimum Cost Perfect Matching #2513
Comments
I guess this would require a separate draw generator class for WSDC? |
@teymour-aldridge I haven't completely planned this out yet, but I'm hoping that it won't be needed. We already have a Blossom algorithm-based draw generator for random and power-paired rounds, and should only need to adapt/add the constraint calculations that we don't currently have, such as the hard side constraint or draw strength by rank. |
I think the plan for this can be split into a few discrete tasks:
Side balance would still need some thought, and for how to not create edges for Inf weights. |
Andrew Chen
October 2024
Introduction
The Procedures for Power-Pairing at the World Schools Debating Championships provides a number of considerations for pairing teams at WSDC. The considerations are:
The considerations often conflict, and the document does not prescribe a procedure for resolving such conflicts. Nonetheless, there has been consensus at recent WSDCs on how to do so:
Software/Tabbycat does not support this, in large part due to unusual situations that can arise with small probability (e.g. after 7 rounds, the one team on 7 having debated all teams on 6, requiring a pullup from the 5 bracket). Consequently, this has been carried out manually, requiring some effort and technical competence/understanding.
Software being able to generate WSDC-complaint draws is desirable, for convenience and to avoid human error. I present an algorithm for doing so as a minimum cost perfect matching problem.
The minimum cost perfect matching problem is, given a graph$G=(V,E)$ in which each edge has a weight, to find the perfect matching (a collection of edges such that each vertex is incident to exactly one edge) that minimises the total cost of the edges in the matching. We make generating a draw a minimum cost perfect matching problem as follows:
The minimum cost perfect matching problem is solved with ‘efficient’ algorithms, e.g. Blossom algorithm (which runs in polynomial time). Interestingly, Tabbycat already offers minimum cost perfect matching via Blossom algorithm to solve conflicts within brackets for APDA.
Edge Costs
In the following,
History (Hard)
Power Pairing
Pullups
Pull up from teams who have had been pulled up the fewest times so far:
Weakest draw strength by opponent rank:
Fold
Side Balance
Calculate cost for both possible allocations ($Prop_A, Opp_B$ and $Opp_A, Prop_B$ ), take the smaller of the two, which becomes the side allocation.
Overall side balance (hard)
Overall side balance (soft)
Impromptu side balance (hard)
Impromptu side balance (soft)
Prepared side balance (hard)
Prepared side balance (soft)
Random Number
The cost of edge AB is the sum of all costs (in blue) above, each multiplied by their multiplier.
The text was updated successfully, but these errors were encountered: