First, I'm going to apologize for a lack of proper terminology on this post. It's been well over a decade since my days in the classroom, so I've regressed back to a simple math layman here. (As a result, please add any missing/correct any inaccurate tags as needed)
The problem in a nutshell is to come up with a "perfect" rotating-partner/round-robin schedule that will allow for every person to partner with every other participant in the tournament once and play against every other participant in the tournament twice. The current bounds of the problem are that the number of players in the tournament (n) must be divisible by 4, and the total number of rounds played will be equal to n-1.
Take for example 4 players: the perfect schedule could be represented as follows:
$$\begin{array}{|c|c|c|c|c|c|} \hline & T^1 (P^1) & T^1 (P^2) & vs & T^2 (P^1) & T^2 (P^2)\\ \hline Round\ 1 & A & B & & C & D\\ \hline Round\ 2 & A & C & & B & D\\ \hline Round\ 3 & A & D & & C & B\\ \hline \end{array}$$
Note: $T^1(P^1)$ indicates Team 1 (Player 1)
This solution shows that all players partner with every other player once and play against them twice.
Upon using the brute-force method of identifying the next step, I've also been able to identify what the perfect schedule looks like for 8 players, as follows:
$$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|} \hline & T^1 (P^1) & T^1 (P^2) & v & T^2 (P^1) & T^2 (P^2) & & T^3 (P^1) & T^3 (P^2) & v & T^4 (P^1) & T^4 (P^2)\\ \hline Rnd\ 1 & A & B & & C & D & & E & F & & G & H\\ \hline Rnd\ 2 & A & C & & E & G & & B & D & & F & H\\ \hline Rnd\ 3 & A & D & & H & E & & B & C & & G & F\\ \hline Rnd\ 4 & A & E & & B & F & & C & G & & D & H\\ \hline Rnd\ 5 & A & F & & D & G & & C & H & & B & E\\ \hline Rnd\ 6 & A & G & & B & H & & C & E & & D & F\\ \hline Rnd\ 7 & A & H & & C & F & & D & E & & B & G\\ \hline \end{array}$$
I'm quite confident there is a "perfect" solution for every iteration of this problem (e.g. 12, 16, 20 participants and higher), but as you continue to increase the number of players it becomes significantly less efficient to use the brute force method to identify what these schedules look like.
Has anyone tackled this problem before and come up with an elegant solution as opposed to using the brute force method? If not, does anyone have any ideas on potential solutions or some methods I can look into to help identify a more efficient solution to solving this problem?
$\endgroup$ 21 Answer
$\begingroup$There's a generator for this type of tournament here. The site also has a message board where you can ask questions. The site also links to this page where additional info on the underlying algorithms are given.
$\endgroup$