Imagine que dois exércitos, localizados em pontos distintos, necessitem coordenar um ataque a uma cidade fortificada que os separa. Para realizar o ataque com sucesso, o general do exército Azul envia um mensageiro para o exército vermelho, que obtém a mensagem com o horário do ataque. Após, o general do exército vermelho envia um mensageiro para o exército azul, confirmando ou não o horário do ataque.
No entanto, os mensageiros podem ser capturados pela cidade fortificada, fazendo com que a mensagem não chegue nos exércitos. Dessa forma, é configurado o problema dos dois exércitos, um problema insolúvel que pode ser visto com mais detalhes na página do Wikipédia .
Esse projeto foi desenvolvido utilizando a linguagem de programação Python (versão 3.9.2) com o objetivo de exemplificar o problema, porém, de uma maneira solúvel.
Foram configurados tempos pré-determinados a fim de definir se um mensageiro foi capturado ou não em sua travessia, sendo que a captura foi definida por meio de probabilidades.
Ademais, há um limite pré-determinado de mensageiros, sendo 5 do exército vermelho e 10 do exército azul.
Nesse projeto, o algoritmo finaliza em duas situações:
- Todos os mensageiros de um dos exércitos são capturados, configurando uma derrota
- Os exércitos conseguem combinar um horário e conseguem executar o ataque, configurando uma vitória