The beep is a ubiquitous symbol of modern life. It is used by computers, mobile phones and even a spacecraft. In fact, the first ever human-made object to orbit Earth, Sputnik, was beeped to alert people that it was approaching the planet and would soon transmit its first signal. But in the 1940s it was still impractical for most products to produce any amplified electronic sound, and generating even the simplest tone required vacuum tubes and a siren.
This changed with the post-war discovery of piezoelectric ceramics, which could be laminated onto a disk of sheet metal and could vibrate to produce an audible signal with very little power consumption. By the 1950s, scientists were able to produce an electronic tone that was so simple and inexpensive that it was practical for product designers to include in their devices. The result was the humble beep, which quickly became a commonplace feature of most electronic products, and is arguably one of the most important innovations of the 20th century.
While most of us are familiar with the design beep, most have not considered how it came to be so prevalent. In this article, we explore the development of the beep from its inception to the present day, and investigate what has caused it to become so ubiquitous. We also look at some of the problems that have arisen as a result of its use and propose solutions to these.
A number of algorithms exist for beeping, but there are a few features that are common to all of them. These include multi-slot phases: dividing the main loop into a number of slots with different roles (contention among neighbours, collision detection, termination detection); exclusive beeps: requiring that only one node beep in a neighbourhood; adaptive probability: allowing the probability to vary over time in order to favour exclusive beeping; internal (resp. peripheral) collision detection: detecting collisions while beeping; and emulation of collision detection (required for ensuring that only exclusive beeps occur).
All of these features are described in detail, and we prove that all of the above can be realised with O(log2n) bit rounds, where the number of messages is proportional to the graph size. This is lower than the bit complexity of a colouring algorithm in the message passing model with constant-size messages, and significantly better than the O(logn) lower bound for MIS algorithms without the benefit of symmetry breaking.
We further show that the 2-hop case can be handled by extending the 1-hop MIS algorithm to include a confirmation slot. This allows the node to inform its neighbours that it is coloured in the independent set, and this enables it to be eliminated from the independent set with certainty, reducing the time complexity to O(log2n). The same results are obtained for the 3-hop case as well, although in this case we do not find an optimal lower bound.