I am currently trying to develop an algorithm for determining round robin matchups for a tournament. The current adaptation I am considering at the moment is as follows:
Given n teams, (in this example, n = 8) the pairings are determined is followed.
Round 1:
1 2 3 4
8 7 6 5
The following round is given by selecting 1 as the pivot point and then rotating the rest of the teams about 1 as follows:
1 8 2 3
7 6 5 4
and continuing so on.
However, in this case, there are undesirable matchups (i.e. team 1 does not want to play team 7 and team 5 does not want to play team 6). One approach is to simply scrap a round with an undersireable matchup and move on to the next rotation. I am wondering if there are any other approaches as to how to fix this problem and if it would be possible to dynamically edit the matchups (swap teams around) during the tournament without messing up the rest of the algorithm.
Thanks.