Dinner Club Scheduling Challenge

  • Context: Undergrad 
  • Thread starter Thread starter Greg'sDad
  • Start date Start date
  • Tags Tags
    Challenge Scheduling
Click For Summary

Discussion Overview

The discussion revolves around scheduling a dinner club for a subdivision, focusing on how to arrange couples so that each hosts once while minimizing repeated pairings at dinners. The scope includes combinatorial design and discrete mathematics, with participants exploring various scheduling models and solutions.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant notes the challenge relates to a discrete math problem known as designs, referencing Kirkman's problem as a similar hard problem.
  • A proposed near-optimal solution is presented, utilizing a mathematical approach involving 2-dimensional \mathbb{F}_4-space and specific software tools.
  • Another participant expresses admiration for the proposed solution but identifies a potential flaw regarding how couples are assigned to hosts during dinners.
  • Several participants suggest alternative arrangements and solutions, with some acknowledging that achieving an optimal solution where no couple meets more than once is impossible.
  • Discussions include attempts to refine the proposed solutions, with participants sharing their own configurations and noting overlaps in couple pairings.
  • One participant mentions the heuristic method for generating designs, emphasizing the importance of tracking previous pairings to avoid collisions.
  • Another participant expresses a desire to understand the solution process better for future applications, particularly if the number of couples changes.

Areas of Agreement / Disagreement

Participants express a mix of agreement and disagreement regarding the proposed solutions. While some solutions are praised, others are critiqued for not fully addressing the constraints of the problem. The discussion remains unresolved as participants continue to explore different configurations and their implications.

Contextual Notes

Participants acknowledge limitations in their proposed solutions, such as the inability to ensure that no couple meets more than once and the challenges posed by additional constraints like simultaneous dinner sessions.

Greg'sDad
Messages
11
Reaction score
0
It's been 40 years since engineering school, so I could use some help.
We have a subdivision dinner club. Each year, a leader sets up the schedule.
Knowns:
Number of couples, usually around 16
Number of dinners attended each season, 4
Number of couples per home, usually 4 including the host couple
Each couple hosts once per season

Challenge:
How to schedule couples so that each couple hosts once, and there's an absolute minimum number of times couples attend with the same couples. We don't want couples attending with the same people each time.
 
Mathematics news on Phys.org
Hmm, that's a problem in discrete math called designs. I'll think about it tomorrow if nobody else posts. I'm not good in discrete math, though :frown:

Some design problems are notoriously hard though. Kirkman's problem is an example of a really hard similar problem.
 
OK, I did it now anyway. Here is a near-optimal solution. (the hosts are bolded)

1 5 9 13
2 5 12 15
3 5 10 16
4 6 9 15
4 5 11 14
3 6 12 16
2 7 9 16
1 8 10 15
3 8 9 14
4 7 10 13
2 8 11 13
1 7 12 14
4 8 12 13
2 6 10 14
3 7 11 15
1 6 11 16

For people curious on how I obtained this. I noticed that [itex]16=4^2[/itex]. So I started looking to lines in 2-dimension [itex]\mathbb{F}_4[/itex]-space. Using GAP ( http://www.gap-system.org/gap.html ) and the DESIGN-package ( http://designtheory.org/software/gap_design/ ) I found an optimal solution.

However, the solution implied each couple having to go to 5 dinners. This was easily solved by eliminating 4 dinners, and I still had an optimal solution. However, each couple has to host once. This I couldn't satisfy, so I changed 2 numbers in the design. This no longer makes it optimal, but it's very close.
 
It certainly seems you've solved the problem! Just brilliant... I tried a simple 2 dimensional matrix and quickly saw that fail. I'm impressed (not that I'm surprised to be). I'll need to dive into your approach to see if I can duplicate it myself as the number of caveats and/or as conditions change... ie, number of couples.

Thank you so much!
 
I spent more time reviewing the solution and see a problem. Maybe it has to do with how to use the result. If I look at the first four rows as being the first dinner session, couple #5 attends with three hosts. They should be assigned to only one row(host).
 
Greg'sDad said:
I spent more time reviewing the solution and see a problem. Maybe it has to do with how to use the result. If I look at the first four rows as being the first dinner session, couple #5 attends with three hosts. They should be assigned to only one row(host).

Oh, so you want the dinner parties to happen at the same time?? Yes, I can see how you want that, and I certainly didn't think of that constraint.

This makes the problem a little more difficult. I'll have to think about the solution.
 
It was careless for me not to mention that... Apologies. By the way, the next planning session won't happen until next summer, so don't feel rushed... Thanks again.
 
What about this:

(1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 16)

(1 5 9 13) (2 6 10 14) (3 7 11 15) (4 8 12 16)

(1 6 11 16) (2 7 12 13) (3 8 9 14) (4 5 10 15)

(1 7 12 14) (2 8 9 15) (3 5 11 13) (4 6 10 16)

This solution is not optimal (as an optimal solution can not exist). So here are the couples who have to sit twice with each other:

3 11
4 10
4 16
5 13
6 10
6 16
7 12
8 9

Be sure that 4 6 10 and 16 like each other.

I'll look for a more optimal solution.
 
  • #10
It's really an interesting problem. I'd make a small change to start with:

(1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 16)

(1 5 9 13) (2 6 10 14) (3 7 11 15) (4 8 12 16)

(1 6 11 16) (2 7 12 13) (3 8 9 14) (4 5 10 15)

(1 7 12 14) (2 8 9 15) (3 5 11 13) (4 6 10 16)
 
  • #11
Oh sorry, I meant to change that in a 10, I think...

There is no way you can make a solution where nobody meets each other more than once (this would be the optimal solution). But now you have some people meeting one couple twice and some people meeting two couples twice. A nice mathematical problem is whether you can make a solution where every couple only meets one other couple twice. I think such a thing is impossible, but I'm not sure why.

In any case, it's an immensely interesting problem, thanks for asking! :-p
 
  • #12
My first try:

( 1 2 3 4) ( 5 6 7 8) ( 9 10 11 12) (13 14 15 16)
( 1 5 9 13) ( 2 6 10 14) ( 3 7 11 15) ( 4 8 12 16)
( 1 6 11 16) ( 2 7 12 13) ( 3 8 9 14) ( 4 5 10 15)
( 1 7 9 14) ( 2 8 10 15) ( 3 5 11 16) ( 4 6 12 13)

The following 7 couples meet each other twice, with 10, 11 and 12 featuring twice
(2 10) (3 11) (4 12) (9 14) (10 15) (11 16) (12 13)
 
  • #13
Don't think I can improve on this at the moment:

( 1 2 3 4) ( 5 6 7 8) ( 14 10 11 12) (13 9 15 16)
( 1 5 10 13) ( 2 6 9 14) ( 3 7 11 15) ( 4 8 12 16)
( 1 6 11 16) ( 2 7 12 13) ( 3 8 9 10) ( 4 5 14 15)
( 1 7 9 14) ( 2 8 10 15) ( 3 5 12 16) ( 4 6 11 13)

The following 4 couples meet each other twice:
(6 11) (8 10) (9 14) (12 16)

Edit: it could obviously be improved by normalising (swap 9 and 14 everywhere): I'll leave that for others...
 
  • #14
I knew there was an optimal solution in there somewhere:

(1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 16)
(1 5 9 13) (2 6 10 14) (3 7 11 15) (4 8 12 16)
(1 6 11 16) (2 5 12 15) (3 8 9 14) (4 7 10 13)
(1 7 12 14) (2 8 11 13) (3 5 10 16) (4 6 9 15)

No couple meets twice.
 
  • #15
MrAnchovy said:
I knew there was an optimal solution in there somewhere:

(1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 16)
(1 5 9 13) (2 6 10 14) (3 7 11 15) (4 8 12 16)
(1 6 11 16) (2 5 12 15) (3 8 9 14) (4 7 10 13)
(1 7 12 14) (2 8 11 13) (3 5 10 16) (4 6 9 15)

No couple meets twice.

Wonderful! I really thought it was impossible.

How did you obtain it? Just trial and error??
 
  • #16
... and note that
(1 8 10 15) (2 7 9 16) (3 6 12 13) (4 5 11 14)
completes the design so that each member is paired with each other member exactly once.

Not exactly trial and error, there is an heuristic for building these designs which I came across a while ago. Sometimes the heuristic requires backtracking, but in this case it doesn't. I believe that this heuristic will always find an optimal design if one exists (providing the backtracking algorithm is thorough).

Basically a row of the design is generated by selecting the lowest number that does not create a collision: you just have to be careful to keep track of pairs that have already been generated (my first solution I didn't take enough care and got some doubles). If you get to the stage where there is no such pair, you need to backtrack using some strategy.
 
  • #17
Absolutely amazing! We need the following small change so #13 doesn't host twice:
(1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 (16 hosts)) (I don't see how to format)
(1 5 9 13) (2 6 10 14) (3 7 11 15) (4 8 12 16)
(1 6 11 16) (2 5 12 15) (3 8 9 14) (4 7 10 13)
(1 7 12 14) (2 8 11 13) (3 5 10 16) (4 6 9 15)

I see the pattern on the first two rows, but the 3rd and 4th look like you just kept track of previous assignments and somehow "figured it out". My challenge in the future will be figuring this out myself when/if there are more couples in the club in future seasons. I thank you though for your efforts! Well done and very helpful.
 
  • #18
Greg'sDad said:
Absolutely amazing! We need the following small change so #13 doesn't host twice:
(1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 (16 hosts)) (I don't see how to format)
(1 5 9 13) (2 6 10 14) (3 7 11 15) (4 8 12 16)
(1 6 11 16) (2 5 12 15) (3 8 9 14) (4 7 10 13)
(1 7 12 14) (2 8 11 13) (3 5 10 16) (4 6 9 15)

I see the pattern on the first two rows, but the 3rd and 4th look like you just kept track of previous assignments and somehow "figured it out". My challenge in the future will be figuring this out myself when/if there are more couples in the club in future seasons. I thank you though for your efforts! Well done and very helpful.

Perhaps I could write you a computer program that automatically calculates such things. I'll think some more about it to see if this is actually possible/efficient...
 
  • #19
(1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 16)
(1 5 9 13) (2 6 10 14) (3 7 11 15) (4 8 12 16)
(1 6 11 16) (2 5 12 15) (3 8 9 14) (4 7 10 13)
(1 7 12 14) (2 8 11 13) (3 5 10 16) (4 6 9 15)

Minor change to make sure couple #13 hosts only once...

Amazing work. My challenge will come now when numbers of couples change in future seasons. Thanks.

p.s. I'm very skilled with Excel if that helps...
 
Last edited:
  • #20
Oops, sorry about the 2x13 - unlucky number syndrome :biggrin:

This heuristic should be fairly easy to program apart from the backtracking algorithm (which wasn't needed here and probably won't be unless the groups get bigger so there are more pairs each time).

Since I used Excel to keep track, I'll upload the file here: note that this doesn't generate trial solutions or count pairs or anything like that, it just provides a template (and some check sums) to aid the manual process.
 

Attachments

  • #21
MrAnchovy said:
... and note that
(1 8 10 15) (2 7 9 16) (3 6 12 13) (4 5 11 14)
completes the design so that each member is paired with each other member exactly once.

Not exactly trial and error, there is an heuristic for building these designs which I came across a while ago. Sometimes the heuristic requires backtracking, but in this case it doesn't. I believe that this heuristic will always find an optimal design if one exists (providing the backtracking algorithm is thorough).

Basically a row of the design is generated by selecting the lowest number that does not create a collision: you just have to be careful to keep track of pairs that have already been generated (my first solution I didn't take enough care and got some doubles). If you get to the stage where there is no such pair, you need to backtrack using some strategy.

LOL, I just realized that this is the exact same thing as I already posted in post 4! I was just too stupid to notice that they could be arranged as a partition!

I mean: the design you found by trial-and-error is exactly the lines of a 2-dimensional vector space over [itex]\mathbb{F}_4[/itex]!

Man, I can be stupid sometimes... :biggrin:
 
  • #22
micromass said:
I mean: the design you found by trial-and-error is exactly the lines of a 2-dimensional vector space over [itex]\mathbb{F}_4[/itex]!

Yes, if I had thought about it the fact that there were 4 groups of 4 made the solution trivial so I didn't need to embark on the heuristic search for it. The solutions of these systems in general are surprisingly unpredictable - see for example Kirkman's Schoolgirl Problem.
 
  • #23
OK. I confess you're way ahead of me! Now you say this is actually easy? I'm in awe.
 
  • #24
Like most maths that is interesting to a mathematician it is a bit of a niche - I have only skimmed it personally. Related problems include Latin Squares and of course Sudoku!
 
  • #25
Greg'sDad said:
OK. I confess you're way ahead of me! Now you say this is actually easy? I'm in awe.

No, we say that we've been very lucky! You have 16 people and want to divide them 4 times in 4 groups. This is much easier then having 15 people and dividing them 7 times in groups of 3 for example (which is essentially http://en.wikipedia.org/wiki/Kirkman's_schoolgirl_problem ).
 
  • #26
I de-constructed your model spreadsheet to the point where it really gets interesting. Am I correct that now brute-force trial and error steps are needed to complete the matrix? I've never seen the Excel index command, and that's extremely powerful in this exercise.
 

Attachments

  • #27
Your markup in that table is incomplete, see the attached. You can then proceed without trial and error (with the parameters for this problem) as follows:

  1. 6 is the first vacant column in the 1 row so enter 6 as the second element of the first group and mark a 1 in (row 1, col 6)
  2. 7 is the next vacant column in the 1 row but we also need to check this against 6 and can see that it has already been paired, so move to 8 (already paired with 6), 9 (paired with 1), 10 (paired with 6), and 11 - that has no entry in either the 1 or 6 rows so that is the third element; mark 1s in (row 1, col 11) and (row 6, col 11)
  3. Next we consider 12 (paired with 11), 13 (1), 14 (6) 15 (11) and 16 (that's OK).
  4. Proceed in the same manner until complete

It's all quite straightforward until you run out of choices, then you either have to continue with a sub-optimal solution or backtrack in the hope of finding an optimal one - there is no guarantee that one exists in general, but much work has been done on many similar systems, for instance complete optimal solutions exist for a Steiner Quadruple System with n elements if and only if n mod 6 = 2 or 4 so it would be interesting to see if your system has an optimal design when n = 12.

Note that the choice of backtracking algorithm will impact compution speed significantly: I suspect that changing choices at the beginning of the decision tree would yield an optimum solution much more quickly than a simple 'undo last decision' strategy.
 

Attachments

  • #28
A little more googling shows that your problem is known as the http://www.cs.brown.edu/~sello/golf.html and has been investigated for a number of parameters. Surprisingly it appears to be the case that the solution for the original problem is unique (barring symmetry).

Note that the generalised problem ignores the 'single host' constraint of the original problem: I would guess that this is either trivial to satisfy or (if there are more meals than hosts) impossible.
 
Last edited:

Similar threads

  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 66 ·
3
Replies
66
Views
8K
  • · Replies 125 ·
5
Replies
125
Views
20K
  • · Replies 32 ·
2
Replies
32
Views
3K
  • · Replies 6 ·
Replies
6
Views
3K
Replies
35
Views
3K
  • · Replies 100 ·
4
Replies
100
Views
13K
  • · Replies 9 ·
Replies
9
Views
3K
Replies
8
Views
3K