Round Robin Tournament Scheduling

10 Team Golf League With Complicated Scheduling

golfmanager · 3 · 4035

golfmanager

  • Newbie
  • *
    • Posts: 0
on: April 24, 2021, 04:02:59 AM
Hello Everyone,

I'm working on getting a double round robin balanced and am struggling.

Data:

I have 10 teams. Team1, Team2... Team10.
I have 3 courses.  Course A, Course B, Course C.
I have 3 possible start times.  3:00/3:15, 3:30/3:45, 4:00/4:15.

Info:

So the complicated part is that there is a rotating course schedule, so each week there are 2 courses being played.  One course will have 2 start times, and the other will have 3 start times.

Goal:

I'd like to have the schedule as close to balanced as possible.  With what I can work out, each team will play each other twice, each team will play each course 6 times, each team will play at 3:00/3:15 between 3-4 times, 3:30/3:45 between 7-8 times, and 4:00/4:15 between 7-8 times.

Example:

Here is the rotating schedule for the first 3 weeks.  This will repeat in this order for 18 weeks.



If you have any questions or need clarification, I will try to reply within 24 hours.  Thanks in advance!

Also, if you use an algorithm to solve this, I'd love to know what you used!


Ian Wakeling

  • Forum Moderator
  • God Member
  • *****
    • Posts: 1140
Reply #1 on: April 25, 2021, 09:21:37 AM
Given the high level of complexity and limited time, I can only offer a partial solution. To make the problem tractable I have introduced some simplifications. Firstly I am ignoring the start times, as I imagine this is of much less concern than balancing the number of times each team plays each course.  Secondly, I choose to look for a schedule for the first 9 weeks, with the intention that it can be repeated with minimal modification for the second 9 weeks.

So here is a single round-robin schedule for 9 rounds (or weeks) where each team (numbered 1 to 10) plays each
other team exactly once:

            Game1   Game2  Game3   Game4   Game5
Round 1/10 ( 3  7) (6  1) ( 8 10) ( 5  9) (4  2)
Round 2/11 ( 5  2) (1  3) ( 7  9) ( 6 10) (4  8)
Round 3/12 ( 5  4) (3  9) ( 2  8) ( 1 10) (6  7)
Round 4/13 ( 2  9) (4 10) ( 6  3) ( 1  7) (8  5)
Round 5/14 ( 7  8) (9 10) ( 1  2) ( 3  4) (5  6)
Round 6/15 ( 9  1) (7  2) ( 4  6) (10  5) (3  8)
Round 7/16 ( 9  8) (7  5) (10  3) ( 1  4) (2  6)
Round 8/17 ( 9  6) (7  4) ( 3  5) (10  2) (8  1)
Round 9/18 (10  7) (8  6) ( 9  4) ( 2  3) (5  1)

If the schedule above is used in conjuction with the course assignments below, then each team will play on each course exactly 3 times.

Course Assigments Rounds 1-9  (1 = course A, 2 = course B, 3 = course C)
            G1 G2 G3 G4 G5
Round 1/10   1  1  2  2  2
Round 2/11   2  2  3  3  3
Round 3/12   3  3  1  1  1
Round 4/13   1  1  2  2  2
Round 5/14   2  2  3  3  3
Round 6/15   3  3  1  1  1
Round 7/16   1  1  2  2  2
Round 8/17   2  2  3  3  3
Round 9/18   3  3  1  1  1

The same 2 tables could be used for rounds 10 to 18 giving the desired double round-robin, where all teams play 6 times on each course.  However, if table 2 is modified for the second half of the league, such that 1 = course B, 2 = course C and  3 = course A, then the 2 match-ups between any given pair of teams will be scheduled on different courses.

If the start times are still important to you, then note that there is still some flexibility.  For example the schedule places the games (8 v 10) (5 v 9) & (4 v 2) at course 2 in the 1st round, but you are still able to assign these to the 3 start times in any way you like.

I have used an algorithm to find the solution. Briefly, I took a single round-robin and looked for optimal arrangements of the 5 games in each round to match the table of course assignments.

Hope that helps.


golfmanager

  • Newbie
  • *
    • Posts: 0
Reply #2 on: April 25, 2021, 04:38:01 PM
Thank you so much Ian!  With some manual modifications I was able to get everything within my constraints!  If anyone happens to need the same type of result, here is the final schedule.