I am in the process of building some software to generate fixtures for a chess league, which has a little twist which complicates matters. I would like to introduce a constraint whereby two consecutive teams from the same club are not allowed to play on the same night. e.g. Loughborough 1 is not allowed to play on the same night as Loughborough 2. This help teams share players, and therefore play more games.
The league has five divisions, with 8, 7, 8, 7, 7 teams respectively. The first half of the league is played over 10 weeks. This means that teams do not have to play each week.
A solution would be to brute force all the fixture combinations, for all the divisions. The problem with this approach is that there are way too many combinations!
I am wondering if there are any mathematical techniques that I could use to help me with this problem. I am not wanting to find a unique solution (a combination of fixtures, without violating the constraints). I would be happy with an algorithm which produced 10 violations of constraints in the season.
Any help or pointers would be greatly appreciated. Can anyone suggest any areas for me to research?