Elezione del leader in un anello dei processi anonimo
Supponiamo di avere una rete circolare di processi che non hanno ID e che comunicano tramite il passaggio di messaggi. Inizialmente, ogni processo è nello stesso stato. Volete progettare un algoritmo distribuito in modo tale che alla fine esattamente processo entri nello stato eletto e tutti gli altri processi entrino nello stato non eletto . Questo è il cosiddetto problema elettorale leader che è uno dei compiti fondamentali di rottura della simmetria in un sistema distribuito e ha molte applicazioni.1
C'è un semplice argomento (ad esempio [1]) secondo cui non esiste un algoritmo deterministico di elezione dei leader per un anello anonimo.
Modello: Partiamo dal presupposto che il calcolo avanzi in round sincroni in cui, in ogni round, ogni processo esegue un calcolo locale, invia messaggi ai suoi vicini sul ring e riceve messaggi dai suoi vicini.
Per il bene di una contraddizione, supponiamo che ci sia come un leader deterministico algoritmo di elezione . È sufficiente mostrare che, all'inizio di qualsiasi round , tutti i processi sono nello stesso stato, poiché ciò implica che non può esserci esattamente processo nello stato eletto . Poiché i processi non hanno ID e la rete è simmetrica, ogni processo si trova nello stesso stato iniziale, che fornisce la base di induzione.r ≥ 0 1Ar≥01
Per la fase di induzione, considera alcuni round e supponi che ogni processo sia nello stesso stato all'inizio del round . Pertanto, poiché l'algoritmo è deterministico, ogni processo esegue esattamente lo stesso calcolo e invia esattamente gli stessi messaggi durante il round . Questo a sua volta implica che ogni processo riceve esattamente gli stessi messaggi durante e, all'inizio del round , è nello stesso stato. Pertanto, tale algoritmo può esistere.r A r r r + 1 Ar≥0rArrr+1A
Se è invece un algoritmo randomizzato e i processi conoscono la dimensione dell'anello , esiste un modo semplice per interrompere la simmetria, generando un id casuale dall'intervallo , che risulterà in ID univoci per tutti i processi con alta probabilità. Un algoritmo semplice e ingenuo procede lasciando che ogni processo invii il proprio ID lungo l'anello e istruisca i processi a inoltrare solo i messaggi contenenti l'id più grande visto finora. Ciò garantisce che solo il processo che ha generato l'ID più grande riceverà il proprio messaggio una volta che avrà attraversato l'intero anello ed scelto se stesso come leader.n [ 1 , n 4 ]An[1,n4]
[1] Dana Angluin: proprietà locali e globali nelle reti di processori (estratto esteso). STOC 1980: 82-93.
http://doi.acm.org/10.1145/800141.804655