The Gossiping Girls Problem

There are n girls. All have one gossip to tell, which is not known to others. They are very desperate to tell their gossips and hear what others have. They communicate via a two way channel (eg. Telephone), thus when two girls are on the phone they exchange all the gossips they already know. What is the minimum telephone calls needed so that every one of them knows all the gossips?

A trivial solution is

This solution requires 2n-3 calls. The question for you is - Can it be done with fewer calls?

Use Cadence SMV to model the problem and find a better solution if it exists. It is enough that you try for at most n=5. For n>5 model checking will be slow.

FAQs

1. If you use arrays (vectors) in your model, then you can read about vectors and vector operators from the language reference page in the vw-help menu

For example: ANDing the entire vector: pre[i] is given as

&[pre[i] : i= 0..N] 
which means: pre[0] & pre[1] & ... & pre[N]
Similarly for two dimensional array, it is:
&[&[pre[i][j]: i = 0..N] : j = 0..N]

Last modified March 10, 2005 by Biniam <biniam AT cs.kun.nl> office A6004