Round Robin Tournament Scheduling

Recent Posts

1
Requests / Re: 16 team beer olympics
« Last post by Ian Wakeling on June 20, 2021, 04:24:53 AM »
There is good news as a schedule for this scenario exists, and it can be made to work with the additional constraint that all 7 games are played exactly once in each round.  Let group A be the teams numbered 1 to 8, and group B the teams 9 to 16, then the schedule below should work.  Columns correspond to rounds and are labelled R1 to R8.

          R1      R2      R3      R4      R5      R6      R7      R8
Game A: ( 9 10) ( 5  6) ( 1  2) (11 12) ( 7  8) ( 3  4) (13 14) (15 16)
Game B: (11 14) ( 2  7) ( 3  6) ( 1  8) ( 4  5) ( 9 16) (10 15) (12 13)
Game C: ( 1  5) ( 3  8) ( 9 13) (10 14) (12 15) ( 2  6) (11 16) ( 4  7)
Game D: (13 15) ( 9 11) ( 5  7) ( 2  4) (14 16) (10 12) ( 1  3) ( 6  8)
Game E: (12 16) (10 13) ( 4  8) ( 3  7) ( 1  6) (11 15) ( 2  5) ( 9 14)
Game F: ( 2  8) (12 14) (10 16) ( 9 15) (11 13) ( 1  7) ( 4  6) ( 3  5)
Game G: ( 6  7) ( 1  4) (14 15) (13 16) ( 2  3) ( 5  8) ( 9 12) (10 11)

   Bye: [ 3  4] [15 16] [11 12] [ 5  6] [ 9 10] [13 14] [ 7  8] [ 1  2]

Note that in each round one pair of teams (both from the same group) have a bye.
2
Requests / 16 team beer olympics
« Last post by Aduse on June 19, 2021, 12:53:57 PM »
I have a 16 team 2 groups (A,B) which has 8 teams per group. We have 7 games for both groups to play being ( Game A,B,C,D,E,F,G ). I need each team to play each game and each team once! In both groups, and does not matter if teams have to play the same game in the same round.
3
Programming / Re: Algorithm for round robin foursomes
« Last post by Ian Wakeling on June 01, 2021, 08:48:01 AM »
With 16 players and more than 5 rounds you can reuse the 1st 5 rounds, but randomly reassign the player names to the player numbers, so it's unlikely that you end up with the same 4 people sitting at a table.  Or even better you could use part of the schedule here (see my reply #1) that guarantees that the same 3 people never sit together.

For lower numbers of players, in general when there are fewer tables than players at a single table, then it is not possible to play 2 rounds without having some pairs of players oppose each other twice.  In these instances the best solution will depend on the number of rounds, however the problem will be small enough that a computer search by LP, GA, etc should work well.

Byes add another layer of complexity - to balance the byes you need a specific number of rounds.  In the case of 13 players, the 13 round whist tournament (ignoring the 2-v-2 aspect) is best.

The n=10, m=13 schedule came from this paper by Kageyama. Which also answers your other question about RBIBDs being the right thing to look for.
4
Programming / Re: Algorithm for round robin foursomes
« Last post by Kaz on May 31, 2021, 07:25:33 PM »
Thanks for the links. I did find an n=4, m=5 solutions there (i.e., 16 players, 5 rounds). Does that mean any further rounds should just be a random permutation of those 5? 

Also, it starts at 16 players, what if we have less than that? So my question would be how many days can 12 players play in foursomes, ensuring everyone gets in a group with everyone else at least once and without repeating groups. And what if there's 13 with one person getting a bye each week? 

How did you find the solution for n=10 and m=13? I'm interested in learning to solve these. I've done complex mat before but not combinatorics. Do I just need to look into the "Resolvable Balanced Incomplete Block Design" or is there some other fundamental that helps for more types of problems?

Initially I was thinking a linear programming problem could be formulated but it does appear to be more complicated that that. Brute force might be possible on a large cluster but I also understand the curse of dimensionality. Maybe a parallel dynamic programming approach could work? There have been new methods that have been efficiently parallelized on cpu/gpu clusters to solve problems previously thought unsolvable

I'm not really interested in n>8 or m>10, so I would still think an algorithm could work without dimensions becoming too problematic. 

Possibly a genetic algorithm could work if you penalize pairing with the same person more than once. 
5
Programming / Re: Algorithm for round robin foursomes
« Last post by Ian Wakeling on May 26, 2021, 04:25:59 AM »
The problem is harder than you imagine, as there is no easy to program formula that you can use.  Algorithms are possible, for example you could just start by assigning people to tables at random and then swap people between tables, within a round, to improve the balance, and keep making more swaps to get further improvements.  My advice would be to take a different approach and build a library of schedules.  This page by Ed Pegg should get you started - in particular take heed of his warning in the last 2 sentences of the article!  Ed's point is that some perfect solutions exist, but you are very unlikely to find them with a general algorithm. Take for example n=10 and m=13, there is a solution here made with combinatorial math, which you are unlikely to find with days/weeks of computer search.  As there are no repeated pairs in this schedule, you are free to throw away as many rounds as you want, so it solves the problem for n=10 m<=13.  For m>13 you can use some rounds taken from a second copy.  Hope that helps.
6
Programming / Algorithm for round robin foursomes
« Last post by Kaz on May 25, 2021, 09:28:24 PM »
Hello, I'm trying to solve a problem with foursomes that don't care about pairs within. It's an ever-person-for-themselves card game. I'd like to write a program that takes 2 inputs:  n multiples of 4, and m rounds.
The Whist tables are nice but I wonder if the problem is even easier if the pairs within don't matter. I just want to Minimize the amount of repeat groupings, or maximize the number of unique groups, making sure that everyone plays with everyone else at least once but not too many times.
I'd prefer to do this in python, but if Excel can do it I'd be interested in that option as well.
Thank you.
7
Requests / Re: 20 player golf league with variations
« Last post by Ian Wakeling on May 25, 2021, 03:46:00 AM »
I think the schedule below will work, all the partners are different and each player opposes all the others at least once, and at most twice.  Hopefully you will be able to rearrange the order of the rounds so that the byes coincide with players who are not available in a particular week.

      Time 1        Time 2          Time 3          Time 4            Byes
  (14 13 v  4 19) ( 1  9 v 18 12) ( 3  5 v  8 16) ( 7  2 v  6 17)  [10 11 20 15]
  (15 14 v  5 20) ( 2 10 v 19 13) ( 4  1 v  9 17) ( 8  3 v  7 18)  [ 6 12 16 11]
  (11 15 v  1 16) ( 3  6 v 20 14) ( 5  2 v 10 18) ( 9  4 v  8 19)  [ 7 13 17 12]
  (12 11 v  2 17) ( 4  7 v 16 15) ( 1  3 v  6 19) (10  5 v  9 20)  [ 8 14 18 13]
  (13 12 v  3 18) ( 5  8 v 17 11) ( 2  4 v  7 20) ( 6  1 v 10 16)  [ 9 15 19 14]

  ( 7 17 v 15  9) (18  2 v  4 14) (20 13 v 16 11) ( 1 12 v 10  8)  [19  5  3  6]
  ( 8 18 v 11 10) (19  3 v  5 15) (16 14 v 17 12) ( 2 13 v  6  9)  [20  1  4  7]
  ( 9 19 v 12  6) (20  4 v  1 11) (17 15 v 18 13) ( 3 14 v  7 10)  [16  2  5  8]
  (10 20 v 13  7) (16  5 v  2 12) (18 11 v 19 14) ( 4 15 v  8  6)  [17  3  1  9]
  ( 6 16 v 14  8) (17  1 v  3 13) (19 12 v 20 15) ( 5 11 v  9  7)  [18  4  2 10]

  (14 11 v 10  9) (16  7 v 19 18) ( 5 12 v 13  4) ( 8 20 v  1  2)  [15  3  6 17]
  (15 12 v  6 10) (17  8 v 20 19) ( 1 13 v 14  5) ( 9 16 v  2  3)  [11  4  7 18]
  (11 13 v  7  6) (18  9 v 16 20) ( 2 14 v 15  1) (10 17 v  3  4)  [12  5  8 19]
  (12 14 v  8  7) (19 10 v 17 16) ( 3 15 v 11  2) ( 6 18 v  4  5)  [13  1  9 20]
  (13 15 v  9  8) (20  6 v 18 17) ( 4 11 v 12  3) ( 7 19 v  5  1)  [14  2 10 16]
8
Requests / 20 player golf league with variations
« Last post by grkboy100 on May 24, 2021, 10:06:55 AM »
9
Requests / 500 cards round robin
« Last post by roxieant on May 24, 2021, 03:50:10 AM »
We play 500 cards where we rotate partners and tables after each round online. Each table has 4 players, 2 vs 2. The amount of players changes every week, it could be 6 people or 20, we just never know. We play 8 rounds. If we don't have even tables, bots fill in the empty seats. Being that it always changes since I never know how many people are going to play, I would like a template or something that I can use where I can just add the players names and it assigns them to seats and then rotates them. The biggest problem is to make it fair, when we have to use bots to fill in, I don't want one person to have a bot 3 rounds and someone else to never have a bot. Each player should never play with another player more than once unless they have already played with everyone else. I have been working on this for over a month and can't come up with anything that works. Any suggestions would be very much appreciated.
10
Requests / Re: 10 Team Golf League With Complicated Scheduling
« Last post by golfmanager 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.