I’m struggling with an algorithm to divide a group of contestants into smaller groups to make up rounds. Take for example a group of 20 people, which I want to divide into 3 groups (7,7,6). For each round in a contest, the groups are different, so that everybody has to combat everybody else in a rather fair distribution.
The problem is that with a (naive) random selection one person has to combat the same person more then another one. I.e. Two elements end up often in the same group.
I would like to make this more fair so that for a given number of contestants, group size (not all groups are the same size) and number of rounds, the algorithm finds a fair set of groups per round so that on average every contestant has the same odds of meeting the same contestant during the rounds.
Is there any literature on this topic I can consult? Or any known algorithms?
You’re getting into a topic that has been explored in combinatorics, but actually producing those designs is surprisingly tricky. See http://en.wikipedia.org/wiki/Block_design for a sample of the sorts of things you’ll want to learn more about. If you need help, I suggest asking on https://math.stackexchange.com/ because you’ll be more likely to find someone who remembers this stuff. (I haven’t had to look at this stuff in this millenium, or else I’d say something more useful about it.)