Imagine thousands of fireflies flashing together in the middle of the night. How does this happen? Renato E. Mirollo and
Strogatz addressed the problem in "Synchronization of pulse-coupled
biological oscillators." Their model relies
on a monotonically increasing and concave down function which represents
the increasing sensitivity of the fireflies to a flash by any other firefly
(coupled all-to-all) during the course of one period.
When the fireflies are listening too closely to each other, they
synchronize but flash aperiodically. When the fireflies don't spend enough
time listening to each other, they flash periodically, but don't synchronize.
Small domains may synchronize, but on the edges of those domains a dynamic
equilibrium is established between machines that are "recruited" to a domain
and those that leave the domain. The optimal sensitivity function balances
both tendencies, allowing the machines to stay synchronized with a minimum
Extending the model originally proposed by Strogatz, the GUNK demo
employs an offset step function to represent sensitivity versus time. Also,
the GUNK "fireflies" are coupled some-to-some, not all-to-all. When a GUNK
"firefly" hears the flash of its neighbor, it flashes immediately and reduces
its own period. When no flash is heard during the course of a period, the
"firefly" increases its own period, ultimately eliminating harmonics.
(stuff) Most messages are dropped,
cause interference or collisions due to inappropriate timing.)
Point the laser at a light sensor on one of the gunk machines.
Some of the sensors may have a pink piece of paper attached to them.)
The machine you hit sent out a wave that helps the other machines
determine their distance in hops. Notice that some change their number after
a little while. Messages that must pass through more hops don't necessarily
take longer to reach their destinations.
Hit another light sensor. You can propagate two waves at once.
They all timed out at the same time (global timing) and returned to
flashing. Notice that, thanks to global timing, messages don't "live"
After they time out, they'll start flashing with their internal frequency.
If they still remain synchronous, then they have frequency-locked as well as
Look at the current state of research for more
information on the firefly problem.