Round Robin Tournament Scheduling

Round Robin Schedule For Changing Teams

NTLKnight · 10 · 791

NTLKnight

  • Newbie
  • *
    • Posts: 0
on: August 20, 2024, 06:36:57 PM
I host beach volleyball tournaments on a regular basis, most of the tournaments are regular "round robin" style and played in a single day on 2-4 courts, but recently I've been doing a tournament style where partners switch for each game...giving everyone a chance to play with every other player, as a team. In beach volleyball teams are comprised of 2 players, so Game 1 might be Players 1/5 vs Players 3/8 and Game 2 might be Players 5/2 vs Players 7/3, etc.


My challenge is not necessarily figuring out which team should play *against* which team, but rather in balancing *how many times* a certain player plays *against* another *player*.  I tried using the Ian Balanced Round Robin Excel spreadsheet to help randomize teams (and it's an amazing tool, BTW!), but I'm not sure I could figure out how to also factor in the amount of times a player would play *against* other players...so as to have a balanced amount of games where all players (as much as possible) will play against *most* other players, at least once...and not play against the same players a great number of times. I've spent so much time on this, including using AI to help...and while AI *can* create a nice random round robin pairing of partners, it doesn't seem to be able to add the element of balancing the number of times players will play against other players. Further, I've tried several online round robin tools and calculators, but haven't been able to find one that deals with the above-mentioned specifics.

Over the last year or 2 I've started chiseling away at an Excel spreadsheet to help figure this out...and after dozens of iterations, I find myself manually assigning each team...to try as much as possible to control who each player plays against. It's tedious and time consuming...and I'm mainly using Conditional Formatting to show me repeats. But even now I feel like missing the mark of doing this the right way and maybe it's time I ask for help!

Here's a look at my Excel spreadsheet for a Round Robin schedule that has:
  • 8 Players (4 teams)
  • 2 Courts
  • Each Player plays *with* every other player once (requiring 7 games for this to happen)
  • And "trying" to balance the amount of times each player plays *against* the other players.




When it comes to creating bigger tournaments (16 players/8 teams/4 courts), it's easier...because not every player gets to play with every other player (because of a lack of time in a 3-4 hour tourney)...so hand-picking the numbers based on a random drawing makes it easier to not have one player play against another player more than 1 or 2 times...



Any help along these lines would be greatly appreciated!  Ideally a randomizer/generator like the one that Ian built, that allows for a few variables like:

  • Number of Courts
  • Number of Players
  • Team size (normally 2, but sometimes 4)
  • Number of Games
  • *** Then Randomizes players into teams...while at the same time:
  • *** Balances the number of times each player plays against another player (trying to keep it as equal as possible).

Thank you for reading this far...and for any help!

Best Regards,
Nathan
« Last Edit: August 20, 2024, 06:58:04 PM by NTLKnight »


Ian Wakeling

  • Forum Moderator
  • God Member
  • *****
    • Posts: 1140
Reply #1 on: August 21, 2024, 02:59:40 AM
Hi Nathan,

The 8 player scenario is a standard one where it is possible to arrange that everyone plays with each other player once, and against each other player twice.  It is called a Whist schedule in combinatorial math, and you can find an example by following the "visit the pages that inspired the forum" link near the top of the page, and then following Whist tables and dialling up 8 items.  You can use the same tool to get a 15 round schedule for 16 players, however I don't see that there is an easy way to cut it down to 6 rounds, instead I have a program (not Excel) that implements a search algorithm that can find a solution.  I have put this below.

  (15 13 v  4 14)  (10 16 v 11  5)  ( 6  7 v  1 12)  ( 3  9 v  2  8)
  ( 2 12 v  5  4)  ( 9  7 v 11 14)  (10 15 v  1  3)  ( 6  8 v 13 16)
  (14 16 v 12  3)  (13 11 v  2  1)  ( 5  9 v 15  6)  ( 8 10 v  7  4)
  ( 3  7 v 13  5)  ( 2 14 v 10  6)  ( 4  1 v 16  9)  ( 8 12 v 11 15)
  ( 8  5 v 14  1)  (16 15 v  2  7)  ( 9 10 v 12 13)  ( 3  6 v  4 11)
  ( 4  2 v  1  7)  ( 8 13 v  5 12)  (10  3 v  9  6)  (16 11 v 14 15)

I can offer to try other combinations of players, courts and rounds.

Best regards,

Ian
« Last Edit: August 21, 2024, 04:40:58 AM by Ian Wakeling »


NTLKnight

  • Newbie
  • *
    • Posts: 0
Reply #2 on: August 21, 2024, 05:30:02 PM
Wow Ian, thank you so much! I'm pressed for time right now, but I'm going to input the numbers from the Whist schedule for an 8 man (4 team) scenario to see how it works its magic!  I'll follow up more later, but just wanted to say how grateful I am for the response!

Nathan


NTLKnight

  • Newbie
  • *
    • Posts: 0
Reply #3 on: August 21, 2024, 06:43:37 PM
Again I have to say...Wow!  Just populated my (colorful/conditional formatted) spreadsheet using the Whist schedule you recommended...and like a Rubik's Cube...as I entered the last line of numbers, all the colors magically turned to the right color...and every opponent plays against every other opponent twice!



And then for the tourneys where we don't have time to play 7 games, I just copy/pasted the numbers from games 1-6 and 1-5 conversely...and they balanced everything out better than I had been able to do myself manually...

Here's the 6 game format (each player plays *with* every other player once...except for 1, whilst playing *against* every other player 1 or 2 times)...



And finally a 5 game tourney...using the same numbers for games 1-5 that the Whist schedule generated for 7 games...and it sill keeps every player playing *against* every other player equally...even while not playing *with* 2 of the players...



Looking forward to delving into the 16 team options soon...to compare them against what I was able to do manually.

Best,
Nathan


NTLKnight

  • Newbie
  • *
    • Posts: 0
Reply #4 on: August 22, 2024, 05:21:01 AM
You can use the same tool to get a 15 round schedule for 16 players, however I don't see that there is an easy way to cut it down to 6 rounds, instead I have a program (not Excel) that implements a search algorithm that can find a solution.  I have put this below.

  (15 13 v  4 14)  (10 16 v 11  5)  ( 6  7 v  1 12)  ( 3  9 v  2  8)
  ( 2 12 v  5  4)  ( 9  7 v 11 14)  (10 15 v  1  3)  ( 6  8 v 13 16)
  (14 16 v 12  3)  (13 11 v  2  1)  ( 5  9 v 15  6)  ( 8 10 v  7  4)
  ( 3  7 v 13  5)  ( 2 14 v 10  6)  ( 4  1 v 16  9)  ( 8 12 v 11 15)
  ( 8  5 v 14  1)  (16 15 v  2  7)  ( 9 10 v 12 13)  ( 3  6 v  4 11)
  ( 4  2 v  1  7)  ( 8 13 v  5 12)  (10  3 v  9  6)  (16 11 v 14 15)

I can offer to try other combinations of players, courts and rounds.

Best regards,

Ian
Thank you so much, Ian. I entered your numbers into my spreadsheet...and it did much better at evenly pairing players against other players a balanced number of times...even with a 6 round setup.

I think I can create a 4 and 5 round version of this schedule (for days when there is only time for 4 or 5 matches) using the same numbers you gave me above, by just omitting game (round) 6/5 respectively (which worked nicely for the 8 player Whist schedule I created earlier from your site).

But since you offered, could you please help me run one more set of numbers for 7 games?  
  • That would be for 16 players (8 teams of 2).
  • Across 7 games.
  • On 4 courts.

If it's not too much to ask, is there a way your software could also generate a slightly different variation of the above mentioned format:
  • 16 players (8 teams of 2).
  • Across 7 games
  • On 2 courts.
  • 8 players would play each game (4 on each of the 2 courts), while the "other" players would be split into 2 categories: a: Reffing b: Sitting...which would look a bit like this:


If it's too much to ask to include a random and balanced list of refs and sitters for each game, I can probably do that manually, but I thought I'd ask.

Obviously every player will not be able to play *with* or *against* all other players...but just having it as balanced as possible (especially when it comes to how many times players play against each other) would be a great set of numbers to have...as I will use it regularly!  (BTW, I start out these tournaments by having players (whether 8, 16, or more) pick a number out of a hat. The number they pick is the number they "randomly" get assigned which then gets fed into this (Google Sheets) spreadsheet which does the rest of the work organizing teams and games https://www.avllife.com/everyman4himself-39/ )

This (above listed) tournament will have 6 "Pool Play" games followed by a single "Finals" game of the top 8. Sometimes I do 7 "Pool Play" games and no "Finals"...which is why I requested the version of numbers for 7 games.

Thank you again!

Nathan
« Last Edit: August 22, 2024, 05:35:25 AM by NTLKnight »


Ian Wakeling

  • Forum Moderator
  • God Member
  • *****
    • Posts: 1140
Reply #5 on: August 22, 2024, 01:04:29 PM
Let's look at 16 players, 4 courts and 5 (or fewer) rounds first as this has a nice solution. Here the scheduling is easy, since it is possible to arrange groups of 4 people such that no pair of players meet within a group of 4 more than once.  So the problem simplifies to finding the groups of 4, after which you are free to assign the groups of 4 into 2 vs 2 any way that you like. Here is a solution for 5 rounds:

(15 13 v  7  5)  (11  8 v  3 16)  ( 1  6 v 10 14)  ( 9  4 v 12  2)
( 4  7 v 10  3)  (15 14 v  2 16)  ( 5  8 v 12  6)  (11 13 v  9  1)
(10  9 v 16  5)  (11  7 v  2  6)  (13 14 v 12  3)  ( 1  4 v 15  8)
( 2 10 v 13  8)  ( 3  9 v 15  6)  (11  5 v  4 14)  ( 7 12 v  1 16)
( 9 14 v  8  7)  (10 15 v 11 12)  ( 3  5 v  2  1)  (13 16 v  4  6)


With my program I like to print out 3 matrices that count pairs of players in the schedule.  Firstly the partnerships:

               Partner Pair Counts
    1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16

1   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
2   1  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
3   0  0  .  .  .  .  .  .  .  .  .  .  .  .  .  .
4   1  0  0  .  .  .  .  .  .  .  .  .  .  .  .  .
5   0  0  1  0  .  .  .  .  .  .  .  .  .  .  .  .
6   1  1  0  1  0  .  .  .  .  .  .  .  .  .  .  .
7   0  0  0  1  1  0  .  .  .  .  .  .  .  .  .  .
8   0  0  0  0  1  0  1  .  .  .  .  .  .  .  .  .
9   1  0  1  1  0  0  0  0  .  .  .  .  .  .  .  .
10  0  1  1  0  0  0  0  0  1  .  .  .  .  .  .  .
11  0  0  0  0  1  0  1  1  0  0  .  .  .  .  .  .
12  0  1  1  0  0  1  1  0  0  0  1  .  .  .  .  .
13  0  0  0  0  0  0  0  1  0  0  1  0  .  .  .  .
14  0  0  0  1  0  0  0  0  1  1  0  0  1  .  .  .
15  0  0  0  0  0  1  0  1  0  1  0  0  1  1  .  .
16  1  1  1  0  1  0  0  0  0  0  0  0  1  0  0  .


Then the opposition pair frequencies:

              Opposition Pair Counts
    1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16

1   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
2   0  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
3   1  1  .  .  .  .  .  .  .  .  .  .  .  .  .  .
4   0  1  1  .  .  .  .  .  .  .  .  .  .  .  .  .
5   1  1  0  1  .  .  .  .  .  .  .  .  .  .  .  .
6   0  0  1  0  1  .  .  .  .  .  .  .  .  .  .  .
7   1  1  1  0  0  1  .  .  .  .  .  .  .  .  .  .
8   1  1  1  1  0  1  0  .  .  .  .  .  .  .  .  .
9   0  1  0  0  1  1  1  1  .  .  .  .  .  .  .  .
10  1  0  0  1  1  1  1  1  0  .  .  .  .  .  .  .
11  1  1  1  1  0  1  0  0  1  1  .  .  .  .  .  .
12  1  0  0  1  1  0  0  1  1  1  0  .  .  .  .  .
13  1  1  1  1  1  1  1  0  1  1  0  1  .  .  .  .
14  1  1  1  0  1  1  1  1  0  0  1  1  0  .  .  .
15  1  1  1  1  1  0  1  0  1  0  1  1  0  0  .  .
16  0  0  0  1  0  1  1  1  1  1  1  1  0  1  1  .


Finally, the matrix that you are perhaps not considering, the sum of the two matrices above is also important, because if you balance the number of times pairs of players are on court together, then you are balancing the social mixing in the schedule. Here it is possible to have perfect social mixing.

             Times on Court Together
    1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16

1   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
2   1  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
3   1  1  .  .  .  .  .  .  .  .  .  .  .  .  .  .
4   1  1  1  .  .  .  .  .  .  .  .  .  .  .  .  .
5   1  1  1  1  .  .  .  .  .  .  .  .  .  .  .  .
6   1  1  1  1  1  .  .  .  .  .  .  .  .  .  .  .
7   1  1  1  1  1  1  .  .  .  .  .  .  .  .  .  .
8   1  1  1  1  1  1  1  .  .  .  .  .  .  .  .  .
9   1  1  1  1  1  1  1  1  .  .  .  .  .  .  .  .
10  1  1  1  1  1  1  1  1  1  .  .  .  .  .  .  .
11  1  1  1  1  1  1  1  1  1  1  .  .  .  .  .  .
12  1  1  1  1  1  1  1  1  1  1  1  .  .  .  .  .
13  1  1  1  1  1  1  1  1  1  1  1  1  .  .  .  .
14  1  1  1  1  1  1  1  1  1  1  1  1  1  .  .  .
15  1  1  1  1  1  1  1  1  1  1  1  1  1  1  .  .
16  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  .


If you want fewer than 5 rounds, then just delete rounds from the schedule above, and the properties will still be as good as possible.  I will look at 7 rounds in another post - it is much harder.

My software will not do refs and sit-outs, but I may still have some ideas.  I am not understanding the total number of games in the 16 player schedule that you are asking for.  Do you want each player to participate in 6 games? This is how I am interpreting the schedule that you posted above.


Ian Wakeling

  • Forum Moderator
  • God Member
  • *****
    • Posts: 1140
Reply #6 on: August 22, 2024, 01:20:29 PM
Now I will look at 16 players, 4 courts and 7 rounds.  My software is not finding an optimal solution, but it gives me a schedule like this:

( 6 12 v  9 10)  ( 5 13 v 11 15)  ( 1  7 v 14  2)  (16  8 v  4  3)
(10 11 v  4  1)  ( 2  9 v  5 16)  (15 13 v  6  8)  (14  7 v  3 12)
( 5  9 v  8  7)  (12 13 v  2  4)  (10  6 v 14 11)  (15  1 v 16  3)
(12 16 v 13 11)  ( 8  1 v  6  7)  (15  2 v 14  9)  ( 3  5 v  4 10)
( 7 15 v  4 11)  (12  5 v  1  6)  (13  9 v  3 14)  ( 8  2 v 10 16)
(12  2 v  3 15)  (16  4 v  6 14)  ( 7  5 v 10 13)  ( 9  8 v  1 11)
( 2  3 v  6 11)  (12 14 v  8  5)  ( 4 13 v  1  9)  ( 7 10 v 16 15)


Everyone has 7 different partners - so far so good:

              Partner Pair Counts
    1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16

1   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
2   0  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
3   0  1  .  .  .  .  .  .  .  .  .  .  .  .  .  .
4   1  1  1  .  .  .  .  .  .  .  .  .  .  .  .  .
5   0  0  1  0  .  .  .  .  .  .  .  .  .  .  .  .
6   1  0  0  0  0  .  .  .  .  .  .  .  .  .  .  .
7   1  0  0  0  1  1  .  .  .  .  .  .  .  .  .  .
8   1  1  0  0  1  1  1  .  .  .  .  .  .  .  .  .
9   1  1  0  0  1  0  0  1  .  .  .  .  .  .  .  .
10  0  0  0  1  0  1  1  0  1  .  .  .  .  .  .  .
11  1  0  0  1  0  1  0  0  0  1  .  .  .  .  .  .
12  0  1  1  0  1  1  0  0  0  0  0  .  .  .  .  .
13  0  0  0  1  1  0  0  0  1  1  1  1  .  .  .  .
14  0  1  1  0  0  1  1  0  1  0  1  1  0  .  .  .
15  1  1  1  0  0  0  1  0  0  0  1  0  1  0  .  .
16  0  0  1  1  1  0  0  1  0  1  0  1  0  0  1  .


What's been compromised are the opposition pairs - there are two pairs of players who oppose twice, specifically (2,16) & (5,10):

              Opposition Pair Counts
    1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16

1   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
2   1  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
3   1  1  .  .  .  .  .  .  .  .  .  .  .  .  .  .
4   1  0  1  .  .  .  .  .  .  .  .  .  .  .  .  .
5   1  1  0  1  .  .  .  .  .  .  .  .  .  .  .  .
6   1  1  1  1  1  .  .  .  .  .  .  .  .  .  .  .
7   1  1  1  1  1  0  .  .  .  .  .  .  .  .  .  .
8   1  0  1  1  1  1  1  .  .  .  .  .  .  .  .  .
9   1  1  1  1  1  1  1  1  .  .  .  .  .  .  .  .
10  1  1  1  1  2  1  1  1  0  .  .  .  .  .  .  .
11  1  1  1  1  1  1  1  1  1  1  .  .  .  .  .  .
12  1  1  1  1  1  1  1  1  1  1  1  .  .  .  .  .
13  1  1  1  1  1  1  1  1  1  0  1  1  .  .  .  .
14  1  1  1  1  1  1  1  1  1  1  0  1  1  .  .  .
15  0  1  1  1  1  1  1  1  1  1  1  1  1  1  .  .
16  1  2  1  1  0  1  1  1  1  1  1  0  1  1  1  .


But, the social mixing is as good as it can be:

            Times on Court Together
    1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16

1   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
2   1  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
3   1  2  .  .  .  .  .  .  .  .  .  .  .  .  .  .
4   2  1  2  .  .  .  .  .  .  .  .  .  .  .  .  .
5   1  1  1  1  .  .  .  .  .  .  .  .  .  .  .  .
6   2  1  1  1  1  .  .  .  .  .  .  .  .  .  .  .
7   2  1  1  1  2  1  .  .  .  .  .  .  .  .  .  .
8   2  1  1  1  2  2  2  .  .  .  .  .  .  .  .  .
9   2  2  1  1  2  1  1  2  .  .  .  .  .  .  .  .
10  1  1  1  2  2  2  2  1  1  .  .  .  .  .  .  .
11  2  1  1  2  1  2  1  1  1  2  .  .  .  .  .  .
12  1  2  2  1  2  2  1  1  1  1  1  .  .  .  .  .
13  1  1  1  2  2  1  1  1  2  1  2  2  .  .  .  .
14  1  2  2  1  1  2  2  1  2  1  1  2  1  .  .  .
15  1  2  2  1  1  1  2  1  1  1  2  1  2  1  .  .
16  1  2  2  2  1  1  1  2  1  2  1  1  1  1  2  .


I can change the emphasis the program places on the three types of pair balance, so I could attempt to sacrifice the social mixing to get better opposition pair balance.

Hope that helps,

Ian


NTLKnight

  • Newbie
  • *
    • Posts: 0
Reply #7 on: August 27, 2024, 10:24:19 PM
Ian, thank you so much. I didn't want to wait too long to let you know that I used the solution your program provided for a tourney on Saturday. 16 players, 4 courts, 6 games...with a 7th game at the end for the top 8 players (a Finals game).  Here's the link, if you're interested to see how it went: https://www.avllife.com/everyman4himself-39/

I will now look at your solution for 7 games. This would be for events where we don't want to have a "Finals" game, but let everyone play 7 games and then just count up the wins and point differentials. Same for 5 games and 4 games...for days when there isn't as much time.

Best Regards,
Nathan


NTLKnight

  • Newbie
  • *
    • Posts: 0
Reply #8 on: August 27, 2024, 11:14:48 PM
Now I will look at 16 players, 4 courts and 7 rounds.  My software is not finding an optimal solution, but it gives me a schedule like this:

( 6 12 v  9 10)  ( 5 13 v 11 15)  ( 1  7 v 14  2)  (16  8 v  4  3)
(10 11 v  4  1)  ( 2  9 v  5 16)  (15 13 v  6  8)  (14  7 v  3 12)
( 5  9 v  8  7)  (12 13 v  2  4)  (10  6 v 14 11)  (15  1 v 16  3)
(12 16 v 13 11)  ( 8  1 v  6  7)  (15  2 v 14  9)  ( 3  5 v  4 10)
( 7 15 v  4 11)  (12  5 v  1  6)  (13  9 v  3 14)  ( 8  2 v 10 16)
(12  2 v  3 15)  (16  4 v  6 14)  ( 7  5 v 10 13)  ( 9  8 v  1 11)
( 2  3 v  6 11)  (12 14 v  8  5)  ( 4 13 v  1  9)  ( 7 10 v 16 15)
.....

Just entered your first draft of numbers (16 players, 4 courts, 7 games)...and I think this is as good as it gets!  (Not sure why I have to enter your numbers in my own Excel spreadsheet...it takes me a while to do that!--but I just want to see if my colorful spreadsheet confirms the amount of times each player plays against other players!) Like you said, the only players that meet each other twice, are 2/16 & 5/10...which is *absolutely fine*! Every other player faces off one time...which is more than I've ever been able to achieve trying to randomize these numbers!  Here's what it looks like on my "conditionally formatted" spreadsheet...when I enter your numbers:



So for creating a schedule with 4/5 games (rounds)...should I just use the 6 round version you game me last week...and remove the last games (5/6) that I don't want included?

Thanks again,
Nathan


Ian Wakeling

  • Forum Moderator
  • God Member
  • *****
    • Posts: 1140
Reply #9 on: August 28, 2024, 03:42:16 AM
Hi Nathan,  Good to know it worked and thanks for posting the link.

For 4/5 rounds using the schedule in reply #5 above.

Ian