Generais bizantinos
O problema generais bizantino e uma abstração do problema de chegar a um acordo em um sistema onde os componentes podem falhar de maneira arbitraria. Em tal caso, o componente pode comportar de forma arbitraria e pode enviar mensagens diferentes para diferentes componentes. A abstração do problema lida com a ideia de generais do Exercito bizantino comunicar uns com os outros. Os generais devem chegar a um consenso entre si se para atacar ou recuar com base nas mensagens trocadas. O problema e complicado pelo fato de alguns generais podem ser traidores que podem enviar mensagens contraditórias para os outros generais. A solução para o problema deve permitir que todos os generais leais ao acordar um plano comum de ação. Além disso, se o comandante geral e fiel, então todos os generais devem obedecer à ordem que ele envia.
Algoritmo de mensagem oral:
Este algoritmofunciona apenasquando o número de'N'generaisépelo menosum3M, onde "M" éo número de nósdefeituosos(traidores). O algoritmo funcionaem rodadasondeem cadarodadamensagenssão trocadasentreos generais.NoRound 1, o comandante envia um comando paraN-1outros generais.Na próxima rodada, cada receptorcomunicao valor que elerecebe docomandante paraosoutros N-2 generais e assim por diante. Eventualmente, quandotodas as voltassão completadascadageralFiellevaa maioriadas mensagens queeletem recebidoe que usacomo o valor.
O general 1 recebeu 5 mensagens de atacar e 1 mensagem de recuar.
São elas:
0
A A A A A A
6 1 A
R A
5 2
A
A 3
4
O general 2 recebe 6 mensagens de atacar e 0 mensagem de recuar. São elas:
0
A A A A A A
6 1