I need to invent an algorithm to optimize a specific tournament schedule.
There are 10 teams playing duels against each other in a full round-robin tournament (45 duels total). I need to schedule exactly 15 days of tournament, 3 duels per day.
So, on each day we need to call 3, 4, 5 or 6 teams to the venue. E.g. if we have scheduled duels A-B, A-C, B-C
, we need to call only teams A, B and C. If we've scheduled duels A-B, C-D, D-E
, we need to call teams A, B, C, D, E for that day.
Tournament organizers strongly prefer not to call a team to the venue to play only one duel that day. Let's say that cost of a schedule is the sum of number of teams called to the venue each day. I need to minimize that cost. Obviously, a lower bound is 45, because we cannot call less than three teams to have tree duels. But I think that 45 is not achievable.
A bruteforce approach of iterating over all possible schedules doesn't seem feasible. I'm looking for some other approach.