Amnesiac flooding

In distributed computing amnesic flooding is a stateless distributed flooding algorithm that can be implemented as a broadcast protocol in synchronous distributed networks without the need to store messages or flags between communication rounds. The algorithm is simple:

''When a node receives a message, it forwards it to all of its neighbours it did not receive the message from. To initiate a broadcast on a network, a node simply sends the message to all of its neighbours.''

The algorithm has been shown to terminate when the message begins at any subset of the network nodes or any sequence thereof.

For $$I \subseteq V$$ a subset of the nodes of a graph $$G$$, then $$t(I)$$ the time until an amnesiac flood terminates when started from $$I$$ is known to obey the following bounds: $$t(I)=e(I)$$ if $$G$$ is $$   I$$-bipartite and $$e(I)<t(I) \leq e(I)+d(G)+1$$ if it is not, where $$e(I)$$ is the eccentricity of $$I$$ and $$d(G)$$ is the diameter. A graph is $$I$$-bipartite, if the quotient graph of $$G$$ with $$I$$ contracted to a single node is bipartite. This termination time is optimal for $$I$$-bipartite graphs and is asymptotically optimal for single node initialisation on non-bipartite graphs.

This termination is robust with respect to the loss of edges and nodes, however it fails with delays on edges or the addition of new edges.

Variants of Amnesiac Flooding
Since its introduction, several variants of and related problems to amnesiac flooding have been studied. For example, a modified variant requiring the initial set to retain their knowledge of this membership and the message for a single round, but always requiring $$e(I)+1$$ rounds has been proposed.

A dynamic version of amnesiac flooding has been introduced considering the case where there are multiple different messages in the system and where each node can only send one message per round. This has been shown to terminate in the partial send case ($$v$$ sends an arbitrary message to its neighbours that didn't send it any message last round) and the ranked-full send case ($$v$$ sends the highest ranked message $$m$$ to all of its neighbours that did not send it $$m$$ last round). However, the unranked-full send ($$v$$ sends an arbitrary message $$m$$ to all of its neighbours that did not send it $$m$$ last round) does not necessarily terminate without additional stored information (such as the diameter of the graph ).