Eleição do líder em um círculo anônimo de processos
Suponha que você tenha uma rede em anel de processos que não possuem IDs e que se comunicam através da passagem de mensagens. Inicialmente, todo processo está no mesmo estado. Você deseja projetar um algoritmo distribuído de forma que, eventualmente, exatamente processo entre no estado eleito e todos os outros processos entrem no estado não eleito . Esse é o chamado problema de eleição de líderes, que é uma das tarefas fundamentais de quebra de simetria em um sistema distribuído e tem muitas aplicações.1
Há um argumento simples (por exemplo, [1]) de que não há algoritmo determinístico de eleição de líder para um anel anônimo.
Modelo: Assumimos que o cálculo avança em rodadas síncronas em que, em cada rodada, todo processo realiza alguma computação local, envia mensagens para seus vizinhos no ringue e recebe mensagens de seus vizinhos.
Por uma questão de uma contradição, vamos supor que existe tal um líder determinista algoritmo de eleição . É suficiente mostrar que, no início de qualquer rodada , todos os processos estão no mesmo estado, pois isso implica que não pode haver exatamente processo no estado eleito . Como os processos não têm IDs e a rede é simétrica, todo processo está no mesmo estado inicial, o que fornece a base de indução.Ar≥01
Para a etapa de indução, considere alguns e suponha que todo processo esteja no mesmo estado no início do . Portanto, como o algoritmo é determinístico, todo processo executa exatamente a mesma computação e envia exatamente as mesmas mensagens durante a rodada . Por sua vez, isso implica que todo processo recebe exatamente as mesmas mensagens durante , no início da rodada , está no mesmo estado. Assim, nenhum algoritmo pode existir.r≥0rArrr+1A
Se é um algoritmo aleatório, por outro lado, e os processos sabem o tamanho do anel , existe uma maneira fácil de quebrar a simetria, gerando um ID aleatório do intervalo , o que resultará em IDs únicos. para todos os processos com alta probabilidade. Um algoritmo simples e ingênuo prossegue, permitindo que cada processo envie seu ID ao longo do anel e instrua os processos a encaminhar apenas mensagens contendo o maior ID visto até agora. Isso garante que apenas o processo que gerou o maior ID receberá sua própria mensagem depois de percorrer todo o anel e se eleger como líder.An[1,n4]
[1] Dana Angluin: propriedades locais e globais em redes de processadores (Resumo estendido). STOC 1980: 82-93.
http://doi.acm.org/10.1145/800141.804655