A longtime friend of the family emailed me the other day with a problem. She is organizing an event intended to help a group of people network with one another. The people are divided into groups of equal size, and each group sits at their own table together. Members of each group get some time to meet one another, and then they move on to a different table with a new group of people. In addition, one of the six people at each table is a facilitator who does not rotate. The question is: is there a way to assign people to tables for each rotation such that they meet as many new people as possible? In my friend's case, there are six tables with six seats each, and there are 36 attendees (including the six facilitators).

At first I was thinking about the problem as a way of assigning seats to people at each table. For instance, you could do the simple case of 3 tables and 9 people by just listing who would be at each table for each round.

It seems easier, though, to assign tables to people for each round. It's a little more practical this way as well, since you would ideally want to hand each attendee a sheet that lists the tables they will go to for each rotation.

So here's my algorithm: create the first six groups. This means you will have 5 people that start at table 1, 5 at table 2, etc. The facilitators can be left out of the solution since they are fixed. With each rotation, each person at table 1 (call them 1.1, 1.2, 1.3, etc.) will move to the next table not already planned for another person at his/her table. So person 1.1 would go to table 2, person 1.2 to table 3, person 1.3 to table 4, person 1.4 to table 5, person 1.5 to table 6. Do this for each initial group.

You get something that looks like this:

Person 1.1: 123456

Person 1.2: 134562

Person 1.3: 145623

Person 1.4: 156234

Person 1.5: 162345

Do that for each table and I think that gives you all your table assignments.

I'm having a little trouble proving this, though. There are 720 (6!) ways to assign the six tables, but we have to constrain it by the fact that only five people can be at a table at a time. This isn't the only solution, but I'm interested in how the proof of this would be formulated. As it is, it's fairly straightforward to code this up for an arbitrary number of tables and people, provided the people are evenly divisible to tables. Suggestions are welcome, especially from those with a better memory of combinatorics than me.

Please help on this real life problem. I am "the friend" in trouble. MY last event had many people repeating at tables. The next event is set for April 30, so I really need to find the answer--if there is one. Sharon

Posted by: Sharon | November 01, 2009 at 08:42 AM