Questions tagged [sports-league-scheduling-problem]

The Sports League Scheduling Problem is a combinatorial search problem that involves scheduling unique pairs of one resource ("teams") within a certain number of rounds while uniquely using or visiting another resource ("fields" or time "periods"), usually according to one or more additional constraints. The Howell movement and Mitchell movement schedules of Duplicate Bridge tournaments are one example.

The Sports League Scheduling Problem is a function problem with complex and variable constraints usually addressed with combinatorial search algorithms.

A long-standing practical example of this is the constraints of developing schedules for Duplicate Bridge tournaments including the Howell and Mitchell scheduling movements of Duplicate Bridge tournaments which address different variants of this problem. It is in fact a type Combinatorial Search problem that has had some work on mathematics and computer science papers over the years(see: 1, 2, and 3)

Although there are many variants, the base problem is to arrange ("schedule") some group of things ("teams") in pairs (a "game", "match" or "event") within a rectangular array of a scheduling time (a "round") and a unique resource (a "period", "field", or in Bridge "boards"). This has to be done within the following common minimum constraints:

  1. Teams cannot play themselves.
  2. Teams cannot play more than once in the same round.
  3. Fields cannot be used/(played on) more than once in the same round.

Typically, the following two minimum constraints are also common (though some obscure variant problems may change these):

  1. Teams cannot play on the same field more than once.
  2. Teams cannot play the same team more than once.

After these almost universal rules, there are a multitude of additional possible constraints which produce all of the many variants of this problem. Typical additional constraints may include:

  1. Byes may be allowed, disallowed or every team may be required to have a specified number of byes.
  2. Every field may be required to be used every round, or required to be unused in a specified order.
  3. The number of teams, rounds and fields may each be specified and/or have a fixed relationship to each other such as the number of teams is twice the number of rounds, etc.
36 questions
14
votes
2 answers

Generating natural schedule for a sports league

I'm looking for an algorithm to generate a schedule for a set of teams. For example, imagine a sports season in which each team plays each other, one time as home team and the other as a visitor team on another teams field. To generate a set of all…
12
votes
4 answers

Swiss tournament - pairing algorithm

I am working on a Swiss Tournament system in Python and I'm trying to figure out an optimal pairing algorithm. My biggest problem is that every algorithm I came with produced error in few sequences, where the last pair to be picked have already…
11
votes
5 answers

How to automatically generate a sports league schedule

I'll start of by saying that I understand that this topic is complicated and that there probably isn't an easy answer. If it were easy then everybody would be doing it. That being said... I've been asked to build an application to manage a sports…
thaBadDawg
  • 5,160
  • 6
  • 35
  • 44
9
votes
3 answers

Generating all unique pair permutations

I need to generate all possible pairings, but with the constraint that a particular pairing only occurs once in the results. So for example: import itertools for perm in itertools.permutations(range(9)): print zip(perm[::2],…
5
votes
1 answer

Randomise round-robin league schedule given certain constraints

I'm trying to write a script to randomise a round-robin schedule for a tournament. The constraints are: 8 Teams Teams face each other twice, once at home and once away 14 weeks, one game for each team per week My code works fine in theory, but…
3
votes
2 answers

Algorithm: Selecting pairs of teams from a set of games

I'm trying to create a scheduler for a sports league and I'd like to schedule the teams in groups so every team gets one game per group. I think the thing I'm trying to do is an existing problem in computer science, but I don't know what it's called…
3
votes
1 answer

Creating a Round- Robin tournament, alternative solution?

teams = ["Atletico","Barcelona","Real Madrid", "Sevilla", "Atletic Bilbao ", "Granada", "Mallorca","Valencia"] We have a group of teams where we want to create a tourname. Could be any tournament, any number of teams (not odd). I want want to…
ToErotimatiko
  • 179
  • 2
  • 3
  • 14
3
votes
1 answer

Equally distribute opponents in "Switch Doubles Round Robin Tournament"

What approach would be best for trying to distribute the opponents equally in a Switch Doubles Round Robin Tournament, i.e. where you switch partners each round. For example in a 8 player tournament you would play 7 rounds and play against each…
3
votes
1 answer

Breaking Season Schedule into Weeks Without Repeating Teams Playing

I am working through generating a league schedule and I'm stuck on the part where, for any given week, a team should only play once. So far I have made sure that the correct number of games are played, and that each team plays their conference…
Muirik
  • 6,049
  • 7
  • 58
  • 116
3
votes
1 answer

Sorting pairs of teams with non-repeating | Round-robin tournament

I'm generating schedule for the tournament. Each team should play exactly 8 games. Number of teams 2 < n < 36 For sorting teams into pairs I'm using Round Robin algorithm to get a table, example of 6 teams : Then I convert it into the set of pairs:…
3
votes
1 answer

Round Robin Algorithm Implementation Java

My issue is fairly simple, I think, but I feel that I need some different perspectives, because I cannot seem to translate this algorithm into code. I need to make a sports team schedule, where n teams (in this case, 10 teams) play in a round robin…
3
votes
3 answers

Match schedule algorithm, each team play specific number of matches

I have a specific number of teams. I want every team to play exactly 4 matches with 4 different opponents at 4 specified times. The complication arises from that no team can play 2 different matches at the same time. For example if team 1 is playing…
Abdalla
  • 2,071
  • 2
  • 16
  • 27
2
votes
2 answers

Generate a table that meet conditions (tournament team assignation)

I would like for an activity to generate a table that meet certain conditions as know as: There are 16 groups There are 8 activities There are 8 rounds, during a round a team can only do one activity Every group need to do every activity Each…
2
votes
1 answer

3-way / 4-way round-robin tournament scheduling algorithm

I would like to create/implement a tournament scheduling algorithm which is able to deal with more than 2 participants per game. The problem seems to be well known for 2 participants. See here for example: Round Robin Algorithm Implementation…
2
votes
1 answer

Scheduling a 16-team 1v1 competition with 6 different game types

I've been given the task of creating the schedule for a company's team competition. Initially I thought this would be pretty trivial, but I'm having some trouble coming up with a valid solution. Here are the facts that need to be met: There are 16…
1
2 3