The Hirschberg–Sinclair algorithm is a distributed algorithm designed for leader election problem in a synchronous ring network. It is named after its inventors, Dan Hirschberg and J. B. Sinclair.
The algorithm requires the use of unique IDs (UID) for each process. The algorithm works in phases and sends its UID out in both directions. The message goes out a distance of 2Phase Number hops and then the message heads back to the originating process. While the messages are heading "out" each receiving process will compare the incoming UID to its own. If the UID is greater than its own UID then it will continue the message on. Otherwise if the UID is less than its own UID, it will not pass the information on. At the end of a phase, a process can determine if it will send out messages in the next round by if it received both of its incoming messages. Phases continue until a process receives both of its out messages, from both of its neighbors. At this time the process knows it is the largest UID in the ring and declares itself the leader.
References
edit- Hirschberg, D. S.; Sinclair, J. B. (November 1980), "Decentralized extrema-finding in circular configurations of processors", Communications of the ACM, 23 (11): 627–628, doi:10.1145/359024.359029, S2CID 15299430
- Lynch, Nancy A. (1996), "15.1.2 The HS Algorithm", Distributed Algorithms, Morgan Kaufmann Publishers, Inc., pp. 482–483, ISBN 9780080504704
- Tel, Gerard (2000), Introduction to Distributed Algorithms, Cambridge University Press, pp. 232–233, ISBN 9780521794831
- Garg, Vijay K. (2002), "9.4 Hirschberg–Sinclair Algorithm", Elements of Distributed Computing, John Wiley & Sons, pp. 111–112, ISBN 9780471036005