Swarm School: Distributed Averaging We’ve augmented and generalized the interrobot/swarm communications system
What’s a Distributed Algorithm? Algorithm: n: a procedure for solving a mathematical problem. Distributed: adj. to divide among several or many. Software that runs on multiple computers and interacts to form a group result
Instructions: 10 1. Enter your starting number into your calculator. 2. Pick another person and average your two numbers. (Add theirs to yours and divide by two) Don’t round off, keep all the digits. Both people should end up with the same number. 3. Repeat 12 times. Try to visit different people. 30 a. (30+10)/2 = 20 (10+30)/2 = 20 b. 20 20 20 90
The Standard Answers C Atmel AT91FR4081 ARM7TDMI core @ 40.5mhz 1 MB and 3 MB 8 Ni-Cd AA 4 hours and 1 hour ThreadX Real-Time Kernel and Custom OS 12 engineer-years about 45 minutes
The answer is 65
Partial Proof
Reference
Simulation
Who Would Compute an Average Using this Crazy Technique? Honeybees! Workers share food all the time, computing a global average. This lets an individual worker know when the hive is hungry by measuring when she is hungry.
Why Doesn’t This Work on My Robots?