I'm building a system that will create a tournament based on a list of contenders.
Contenders have properties that might make them not able to be placed in brackets with eachother, such as gender, weight, skill level, etc.
In some cases this gets pretty complex:
- contender may go up one weight class, but never down
- Genders may be mixed under a certain age.
What would be a good way to get these people into optimal brackets (for instance, sizes of 4, 8, 16)? Is there a known algorithm for this without trying all permutations?