Round Robin Tournament Scheduling

Can't create posts in other boards

Guest · 2 · 6733


  • Guest
on: February 05, 2018, 06:59:29 AM

I've just stumbled upon this website and it seems that it's still kinda active!

And I'd really like to ask a question in "programming" but I can't since for some reasons I don't have permissions to it.

Could a mod or admin help, please?


I'll just post my question here as well just in case:

I have a tournament with <T> teams and <F> fields.
Each team needs to play vs each other exactly once.

A round consists of <F> matches since one mach can be played on one field.

Now I need an algorithm which generates the tournament table, where and when every team plays vs each other and so on.

Obvioulsy I know when <F> is smaller then <T> Teams / 2 some teams need to be on break each round.

I've tried to do two different things:

1. Basic round robin
I'll generate a basic round robin tournament, cut off the right most matches/fields which aren't available and append them at the bottom of the tournament.

Now this creates a rather uneven and long tournament (e.g. if you have 6 teams -> 3 fields for RR. But only 2 fields available, cut off the 1 field on the right and append it at the bottom). In that example however is the second field at the bottom not used at all and therefore relatively inefficient.

2. Random
I'll generate a list of all matches possible.
Pick one from that list, and create a round with still possible matches.
Continue till everything is filld.
If a round can't be filled completely, then shuffle the list and retry.
If that fails then restart the complete algorithm.

Which would work in some cases but end up running way too long since random is luck based.

Now my question:
Is there an algorithm for that?
Have input variables: <T> Teams, <F> Fields
And generate a tournament table with most efficient rounds and least breaks.

« Last Edit: February 05, 2018, 07:03:24 AM by lyze237 »

Ian Wakeling

  • Forum Moderator
  • God Member
  • *****
    • Posts: 1141
Reply #1 on: February 06, 2018, 12:54:03 PM
I have asked the site admin to investigate the issue about posting in other boards.

To answer your question, method 1 will work well if T/2 is exactly divisible by the number of fields available.  In general though, I have used a slightly more sophisticated random version that will cope with as many as 50 teams.  Start by randomly assigning all the matches to a minimum round schedule (one round may have empty fields).  Then work out the matrix that gives the frequency of each team in each round.  Consider  many different swaps of two matches in two different rounds, and choose one that eliminates the most inconsistencies (teams that are scheduled to play more than once in a round).  Keep going until no inconsistencies remain.