I haven't seen anything online that covers this specific case:
I run a camp which has about 8 teams of kids, and every day there are 2 sports activities. Teams play each other in different sports throughout the summer.
I need to manually create a schedule with the following constraints:
- 2 Teams should not play each other often (kind of like round robin, but the following constraints don't work with round robin)
- A team shouldn't play the same sport often
- There are multiple courts of the same sport
- Not every day is every court available
- There can be any number of games, so the algorithm would just continue producing the next best solution
- Preferably, the teams would be paired based on their history of wins/loses
- I should be able to manually force a certain team to play another team in a specific sport (or multiple pairings), and the algorithm would work around that.
The function would take in the following parameters and generate 1 game at a time:
- History of games
- Available courts
- Forced pairings for this game
My question is: What computer science concepts would I need to implement such a scheduler? All other questions similar to this are for leagues with 1 sport only, not with multiple sports like this one.