Leader Election in an Anonymous Ring of Processes
Suppose that you have a ring network of processes that do not have ids and that communicate by message passing. Initially, every process is in the same state.
You want to design a distributed algorithm such that eventually exactly 1 process enters the elected state and all other processes enter the non-elected state. This is the so called leader election problem which is one of the fundamental symmetry breaking tasks in a distributed system and has many applications.
There's a simple argument (e.g. [1]) that there is no deterministic leader election algorithm for an anonymous ring.
Model: We assume that the computation advances in synchronous rounds where, in each round, every process performs some local computation, sends messages to its neighbors in the ring, and receives messages from its neighbors.
For the sake of a contradiction, let's assume that there is such a deterministic leader election algorithm A.
It is sufficient to show that, at the start of any round r≥0, all processes are in the same state, since this implies that there cannot be exactly 1 process in the elected state.
Since processes do not have ids and the network is symmetric, every process is in the same initial state, which provides the induction base.
For the induction step, consider some round r≥0 and assume that every process is in the same state at the start of round r. Therefore, since algorithm A is deterministic, every process performs exactly the same computation and sends exactly the same messages during round r. This in turn implies that every process receives exactly the same messages during r and, by the start of round r+1, is in the same state. Thus, no such algorithm A can exist.
If A is a randomized algorithm on the other hand and processes know the size of the ring n, there's an easy way to break symmetry, by generating a random id from the range [1,n4], which will result in unique ids for all processes with high probability. A simple and naive algorithm proceeds by letting every process send its id along the ring and instruct processes to forward only messages containing the largest id seen so far. This guarantees that only the process who generated the largest id will receive its own message once it has traversed the entire ring and elect itself as the leader.
[1] Dana Angluin: Local and Global Properties in Networks of Processors (Extended Abstract). STOC 1980: 82-93.
http://doi.acm.org/10.1145/800141.804655