joachim-reichel.de
This program creates playing schedules for tournaments with varying mixed teams and fixtures determined at random. Contrary to most other types of tournament, in this particular type of tournament considered here the teams are not fixed, but change from match to match (sometimes called "round-robin", "Bändchen-" or "Schleifchenturnier").
Below is an example for a tournament with 10 rounds on 3 courts (i.e., 3 matches per round), 10 male and 10 female players, depicted by the letters A-J and the numbers 1-10, respectively.
court 1 court 2 court 3 round 1 E3 : I9 D6 : C5 G1 : H4 round 2 J2 : D3 H9 : I8 F10 : B7 round 3 F4 : C2 G5 : A10 J1 : E6 round 4 B4 : H6 I7 : A1 G3 : D8 round 5 J4 : I10 C3 : E7 A5 : B9 round 6 E5 : H2 G10 : C6 F8 : D1 round 7 A9 : F1 G8 : J7 D2 : B6 round 8 J9 : H7 C10 : A3 B5 : I4 round 9 C7 : I2 H5 : F3 A6 : E8 round 10 G4 : F9 D10 : E1 J8 : B2
All participants have the same number of matches. There is no repetition of teams or opponents. Players A, 4, and 7 have three subsequent matches; all other players have at most two subsequent matches. Everyone has at most two subsequent breaks.
Given are the number of male players, the number of female players, the number of available courts (i.e., the number of matches that can take place at the same time), and the desired number of rounds.
The algorithm creates a playing schedule considering the following objectives, in decreasing order of importance:
The importance of these objectives can be controlled via configurable weights. Note that, depending on the problem instance, it is not always possible to satisfy all requirements/objectives at the same time.