Register to reply

Dinner Club Scheduling Challenge

by Greg'sDad
Tags: challenge, club, dinner, scheduling
Share this thread:
Greg'sDad
#1
Feb5-12, 07:49 AM
P: 11
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.
Phys.Org News Partner Mathematics news on Phys.org
'Moral victories' might spare you from losing again
Fair cake cutting gets its own algorithm
Effort to model Facebook yields key to famous math problem (and a prize)
Greg Bernhardt
#2
Feb5-12, 10:36 PM
Admin
Greg Bernhardt's Avatar
P: 9,311
fyi, he is my dad! :)
micromass
#3
Feb6-12, 12:46 AM
Mentor
micromass's Avatar
P: 18,036
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

Some design problems are notoriously hard though. Kirkman's problem is an example of a really hard similar problem.

micromass
#4
Feb6-12, 02:14 AM
Mentor
micromass's Avatar
P: 18,036
Dinner Club Scheduling Challenge

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.
Greg'sDad
#5
Feb6-12, 11:04 AM
P: 11
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!
Greg'sDad
#6
Feb6-12, 11:16 AM
P: 11
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).
micromass
#7
Feb6-12, 11:25 AM
Mentor
micromass's Avatar
P: 18,036
Quote Quote by Greg'sDad View Post
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.
Greg'sDad
#8
Feb6-12, 11:33 AM
P: 11
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.
micromass
#9
Feb6-12, 12:45 PM
Mentor
micromass's Avatar
P: 18,036
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 eachother:

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 eachother.

I'll look for a more optimal solution.
Greg'sDad
#10
Feb6-12, 01:57 PM
P: 11
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)
micromass
#11
Feb6-12, 02:16 PM
Mentor
micromass's Avatar
P: 18,036
Oh sorry, I meant to change that in a 10, I think...

There is no way you can make a solution where nobody meets eachother 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!!
MrAnchovy
#12
Feb7-12, 09:40 AM
P: 440
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)
MrAnchovy
#13
Feb7-12, 10:22 AM
P: 440
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...
MrAnchovy
#14
Feb7-12, 11:10 AM
P: 440
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.
micromass
#15
Feb7-12, 11:31 AM
Mentor
micromass's Avatar
P: 18,036
Quote Quote by MrAnchovy View Post
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??
MrAnchovy
#16
Feb7-12, 12:52 PM
P: 440
... 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.
Greg'sDad
#17
Feb7-12, 03:17 PM
P: 11
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.
micromass
#18
Feb7-12, 03:24 PM
Mentor
micromass's Avatar
P: 18,036
Quote Quote by Greg'sDad View Post
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...


Register to reply

Related Discussions
Scheduling help Academic Guidance 2
Scheduling Dilemma Academic Guidance 5
Scheduling Help Academic Guidance 7
Breakfast which consists of bread,butter,milk General Discussion 13