algorithmcombinatoricssports-league-scheduling-problem

Algorithm to calculate pairs from a class of n students for w weeks


I am searching for an algorithm to calculate pairs from a class of n (a list of student names) for w weeks, so that a student never coöperates with the same student in two different weeks. Assume that n is even.

Example:

class: students 1,2,3,4

weeks: 3

I figured that w has to be smaller than or equal to n - 1 because every student can maximally coöperate with n - 1 others. But I don't know if there are always n - 1 solutions. If there are, I would like to see the algoritm that generates these n - 1 solutions in a none-brute force way.

Is there a name for this problem and a common algorithm I should look at?


Solution

  • Sounds like it is equivalent to a round robin tournament.