|
|Store|
|
|
|
|
|
|
|
CTK Exchange
Manoj Nair (Guest)
guest
|
Aug-02-01, 09:59 PM (EST) |
|
"Exchanging information between n persons"
|
Hi: Came accross an interesting problem. Dont know if this is the right folder. Apologise if it isnt. There are N people each of whom knows a unique secret. Each person can make a call to exchange secret(s) that they know. How many minimum calls are required? eg: 5 Guys - 6 calls 12,12,3,4,5 12,12,34,34,5 125,12,34,34,125 12345,12,12345,34,125 12345,12,12345,12345,12345 12345,12345,12345,12345,12345 7 Guys - 10 calls 12,12,34,34,56,56,7 - 3 Calls 127,12,34,34,56,56,127 - 1 Call 12347,12,12347,34,56,56,127 - 1 Call 1234567,12,12347,34,1234567,56,127 - 1 Call 1234567,12,1234567,34,1234567,1234567,127 - 1 Call 3 more calls. What is the general solution/proof for finding the number of calls for any given 'N'. An interesting offshoot of this is the fact that how does each node know which one to call to get the complete information? Looks to me like along with the signal information (ie secret), a control information also needs to be passed. This 'constraint' seems to increase the number of calls. How can this problem be formulated and solved? Manoj
|
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
Liliya (Guest)
guest
|
Aug-04-01, 12:29 PM (EST) |
|
2. "RE: Exchanging information between n persons"
In response to message #1
|
Hello. I never solved any problems this kind, but I think I can help you.I was thinking about it, and this is what I came up with: If everybody would call the same one person, which is n-1 calls, he would know all the secrets. And then he could call everybody, which is n-1 calls too, and tell them all that he knows.This gives us 2n-2 calls. I don't know if this is the minimum number of calls, but I did what I could. I hope you'll find the right answer. Good Luck! -Liliya |
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
|
alexb
Charter Member
672 posts |
Aug-04-01, 12:49 PM (EST) |
|
3. "RE: Exchanging information between n persons"
In response to message #2
|
> I don't know if this is the minimum > number of calls, Judging by the given examples it's not. > but I did what I could. You got a good upper bound. I good problem is seldom solved in a single step. Furthermore, your first solution may suggest improvements. For example, assume the number of people is 2n. Then your solution gives an estimate of 2(2n - 1) = 4n - 2. Now, split the fellows into two groups of n people each and mark one fellow in each group. Proceed as follows:
- Let the marked fellows call (n - 1) people in their respective groups. This takes 2(n - 1) calls.
- Let one of the marked fellows call the other: one more call.
- Repeat 1 with 2(n - 1) calls.
This leads to the total of 2·2(n - 1) + 1 = 4n - 3, which is less than your estimate. If there are 4n people, we'll split them into 2 groups of 2n people each. In each group we need 4n - 3 with one call in-between between the two groups. This gives you 2(4n - 3) + 1 = 8n - 5, which is better than 8n - 3 of the previous estimate.
|
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
|
Liliya (Guest)
guest
|
Aug-04-01, 02:17 PM (EST) |
|
4. "RE: Exchanging information between n persons"
In response to message #3
|
>This leads to the total of >2ž2(n - 1) + 1 = 4n - 3, >which is less than your estimate. I don't agree with you. In your case you need one more extra call. And the more groups you divide you'll need more extra calls. 2n-2 is less than 4n-3 or 8n-5. Am I right?? -Liliya |
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
|
alexb
Charter Member
672 posts |
Aug-04-01, 02:46 PM (EST) |
|
5. "RE: Exchanging information between n persons"
In response to message #4
|
>>This leads to the total of > >>2·2(n - 1) + 1 = 4n - 3, > >>which is less than your estimate. > >I don't agree with you. >In your case you need one >more extra call. What for? >And the >more groups you divide you'll >need more extra calls. To see how it works, try small numbers like 4, 8, etc. For 4 you have two groups: 2 and 2. The first fellow in each group makes a call to the other fellow. In the notations of the original poster: 1, 2, 3, 4 12, 12, 34, 34 Then the first fellows talk to each other: 1234, 12, 1234, 34 Then it takes 2 more intragroup calls: 1234, 1234, 1234, 1234 In all, 5 calls for n = 4. Your estimate would give 2(4 - 1) = 6 calls, right? >2n-2 is less than 4n-3 or >8n-5. > >Am I right?? Yes, of course, but this is irrelevant here. n is different from expression to expression. In words your formula says "Twice the number minus 1." If the number is n, then the result is 2(n - 1). If the number is 2n, the result is 2(2n - 1), and so on.In the previous post, I considered two cases of the number being 2n and 4n. |
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
|
|
|
Manoj Nair (Guest)
guest
|
Aug-08-01, 10:02 PM (EST) |
|
7. "RE: Exchanging information between n persons"
In response to message #6
|
Thanks Alex and Liliya for your attempts. Empirically it'seems to be 2n-4 from the examples listed in the original post. However I am not satisfied until the problem can be formulated and solved. Cant seem to find a proof by induction. My gut feel tells me that it could have something to do with the range of the given number ie: <=4, <=16, <=64 <=256 and a div()/mod() in the resultant formula. But then I may be totally wrong. For eg: if <=4 then seems to be 2*n-3 For 4<n<=16 seems to be 2n-4 So can we extend this? |
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
|
alexb
Charter Member
672 posts |
Aug-08-01, 10:43 PM (EST) |
|
8. "RE: Exchanging information between n persons"
In response to message #7
|
LAST EDITED ON Aug-08-01 AT 10:52 PM (EST) >My >gut feel tells me that >it could have something to >do with the range of >the given number ie Right ><=4, ><=16, <=64 <=256 and a >div()/mod() in the resultant formula. >But then I may be >totally wrong. You are, but not totally. The relevant ranges are 4, 8, 16, 32, ... >For eg: if <=4 then seems >to be 2*n-3 > >For 4<n<=16 seems to be 2n-4 For 8, it's 11. How does it fit with your formula? You can prove by induction that for N = 2n, n > 1, that 3N/2 - 1 is a sufficient number of calls. Whether it's minimal I do not know. Whether you can interpolate between the powers of 2, I do not know either.
|
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
|
Manoj Nair (Guest)
guest
|
Aug-14-01, 08:11 AM (EST) |
|
9. "RE: Exchanging information between n persons"
In response to message #8
|
>>For eg: if <=4 then seems >>to be 2*n-3 >> >>For 4<n<=16 seems to be 2n-4 >For 8, it's 11. How does it fit with your formula? Hi Alex I simply cannot figure out how to arrive at 11 calls for 8 people. The best I can do is 12 calls. Neither can I figure out how you got the formula 3N/2-1 for N=2^n. To me the formula seems to be n*2^(n-1). Anyway, here are a couple of elegant 'proofs' that I got from the sci.math groups. Each prove that 2N-4 is sufficient, but not minimal. Math Induction: Step 1 Prove that the solution is valid for some n>=4 Step 2 For N=N+1, have the 'new' person call any one person (1 call) Step 3 For the N persons excluding the 'new' person, share the secret as before. All N people now know the 'new' persons secret. (2N-4 calls) per formula Step 4 One from this N calls up the 'new' person (1 call) Step 5 Total for N+1 = 1+2N-4+1 = 2N-2 = 2(N+1) -4. Hence valid for N=> valid for N+1 Or intuitive one ... Number the people from 1...n. Have person 1 call all people greater than 4. (N-4) calls. Now 1..4 share the secret in 4 calls (4 calls) Now the person 1 calls all people greater than 4 again. (N-4 calls) Total = N-4+4+N-4 = 2N-4. Still no solution that it is indeed least number of calls. And no formulation in sight for my added twist. Manoj.
|
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
|
Liliya (Guest)
guest
|
Aug-17-01, 09:18 AM (EST) |
|
11. "RE: Exchanging information between n persons"
In response to message #9
|
Math Induction: Step 1 Prove that the solution is valid for some n>=4 Step 2 For N=N+1, have the 'new' person call any one person (1 call) Step 3 For the N persons excluding the 'new' person, share the secret as before. All N people now know the 'new' persons secret. (2N-4 calls) per formula Step 4 One from this N calls up the 'new' person (1 call) Step 5 Total for N+1 = 1+2N-4+1 = 2N-2 = 2(N+1) -4. Hence valid for N=> valid for N+1In the third step, how did you come up with 2n-4? Or intuitive one ... Number the people from 1...n. Have person 1 call all people greater than 4. (N-4) calls. Now 1..4 share the secret in 4 calls (4 calls) Now the person 1 calls all people greater than 4 again. (N-4 calls) Total = N-4+4+N-4 = 2N-4. How can 4 people share their secrets in 4 calls? One more question. I simply don't understand how you came up with this: 2n-4 is for 4<n<=16 I would appreciate if someone would answer my questions. -Liliya |
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
|
Omar
Charter Member
4 posts |
Aug-19-01, 11:47 PM (EST) |
|
12. "RE: Exchanging information between n persons"
In response to message #11
|
His first proof uses mathematical induction. I started to compose a reply in which I explained mathematical induction, but I can't help thinking someone, perhaps AlexB on this very website, has explained it better than I can in a hurried reply. Math induction is so useful that you should have it explained carefully. At first glance, especially if it is not explained well, it looks like circular reasoning. Anyway, the induction hypothesis in the first proof was that 2n-4 was an upper bound for the number of calls needed to fully share information among n people. Because it was the induction hypothesis, he could use it to show that 2(n+1)-4 is an upper bound for the case of n+1 people. Although he alluded to the crucial first step of his induction proof, he did not go into the details. The first step (which also answers your second question) is to prove that 2k-4 is an upper bound for some number of people, in this case, 4. Using Manoj Nair's notation: 12, 12, 3, 4 12, 12, 34, 34 1234, 12, 1234, 34 1234, 1234, 1234, 1234 Four people, four phone calls. |
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
|
|
|
R. Bumby (Guest)
guest
|
Aug-22-01, 03:47 PM (EST) |
|
14. "RE: Exchanging information between n persons"
In response to message #8
|
Your method for trying to build big networks from small ones seems very complicated, which may have led to the bad count of 11 calls for 8 people that I saw in sci.math. It is better to lock in the easy steps: it is always possible to add one person and two calls to an existing network (the newcomer calls someone to start the process and is called back when the person he calls knows everything); 1 call suffices for 2 people (now you know that 2n-3 calls always work for n people); 4 calls work for 4 people (arrange in a square; make two horizontal calls; then two vertical calls). The hard part is to show that there are no more efficient schedules of calls. This is done by starting with a sequence of calls that pools the information and using it to split the population into two subsets (with sizes determined by the sequence of calls). My paper appears as "A problem with telephones" in SIAM J. Alg. Disc. Meth. vol. 2, no. 1, March 1981, 13--18. My solution was obtained much earlier, but not published then because several others were published first and I didn't think I had anything to add. Then I learned that my approach was able to answer a related open question, which gave a new reason for publication.From time to time, one sees new variations on this problem, and extensive lists of references have been published. Unfortunately, I don't have any of them handy right now. |
|
Alert | IP |
Printer-friendly page | Edit |
Reply |
Reply With Quote | Top |
|
|
|
You may be curious to visit the old CTK Exchange archive.
|Front page|
|Contents|
Copyright © 1996-2018 Alexander Bogomolny
[an error occurred while processing this directive]
|
Advertise
|