1

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.

Ram R
  • 11
  • 2
  • It's not clear what the question is. A round robin tournament is one where everyone plays everyone else -- what sense does it make for team 1 not to want to play team 7? Can you clarify exactly what sort of tournament you want and what the constraints are? – Paul Hankin Apr 08 '16 at 09:18
  • I am trying to construct a program which will create round robin matchups between the teams - however not all of the teams play each other (for 8 teams, there may be 3 or 4 rounds). I would like the flexibility to swap the matchups as I see fit (during the tournament) without ruining the underlying algorithm. – Ram R Apr 08 '16 at 15:45
  • The algorithm for this is well known and described here: https://en.wikipedia.org/wiki/Round-robin_tournament#Scheduling_algorithm However be aware that there are many self-made implementations around on the internet that aren't correct. – Scrontch Mar 07 '18 at 16:15

0 Answers0