There are a large number of similar questions on this site, but most of them seem to have an additional constraint that I do not have.
I am organizing a dinner party for $P$ people sitting at $T$ tables, with an equal number of people sitting at each table. (Feel free to assume that $P$ is a multiple of $T$.) For each of $C$ dinner courses everyone moves to a new table (prescribed by me). What is the least number of dinner courses needed for everyone to sit at a table at least once with everyone else? Unlike the Social Golfer Problem, it is acceptable to have arrangements of tables where a subset of the guests have sat together in a prior course.
I have a simulated annealing system that attempts to solve this via brute force and luck. However, given a party of 40 people split into 4 tables, eating 6 courses total, the best results I've produced so far have every person each missing 4 or 5 other guests.
Due to separate constraints that are outside the scope of this discussion (see below), I'm not actually looking to generate a perfect dinner party, nor to extend $C$ until everyone meets. Instead, I'm trying to find out if the $\{P=40, T=4, C=6\}$ setup is fundamentally incapable of having everyone sit together.
Some related questions I've found:
- Social Golfer Problem - Quintets
- Split a large team into standup groups so that everyone talks to everyone else once a week
- Repeatedly assigning people to subgroups so everyone knows each other
- 25 people seated at five tables of five. How rotate so that everyone meets, but nobody meets twice?
- Everyone meets everyone else.
- Rearrangement of groups such that no two members meet again
- Number of meetings needed for everyone to know everyone
(For the curious, the background is that this actually a sports league of $P$ players, $T$ teams, and $C$ rounds of play. There are constraints on the team composition beyond just the social: balanced player gender, skill, height, experience, and so forth. I have no control over $P$, $T$, or $C$, and I have to use the simulated annealing system to help balance all factors. I'd like to be able to defend—or not—why each person in the social league did not get to play with about 10% of the other players.)