Se duas pessoas são perdidas em um labirinto, existe um algoritmo que elas podem usar para se encontrarem sem terem acordado previamente qual algoritmo usarão?
Eu acho que existem algumas características que esse algoritmo terá:
- Cada pessoa deve ser capaz de derivá-la usando uma lógica que não faça suposições sobre o que a outra pessoa está decidindo, mas, como cada pessoa sabe que a outra está na mesma posição, pode fazer deduções sobre o que a outra deve estar decidindo.
- Um algoritmo idêntico deve ser derivado por ambas as pessoas, pois há simetria total em suas situações (nenhuma delas tem conhecimento sobre a posição inicial da outra e o labirinto é de tamanho fixo e totalmente mapeado por ambas). Observe que não é necessário que o algoritmo seja determinístico: ele pode ser randomizado.
Respostas:
Isso é chamado de problema de encontro .
Como o artigo: Mobile Agent Rendezvous: Uma pesquisa mencionada, esse problema é original proposto por Alpern: The Rendezvous Search Problem :
No documento de pesquisa acima,
Ele abrange "Encontro assimétrico" (na seção 4) e "Encontro simétrico" (na seção 5).
Para o encontro simétrico, o artigo de Alpern mostra:
fonte
Na verdade, qualquer esquema pré-arranjado consistente servirá.
Por exemplo:
Ou ainda mais simples
Esse esquema garantirá que as pessoas se encontrem eventualmente (mas pode levar algum tempo)
Por quê? Porque o esquema é consistente para ambos e não leva a um beco sem saída. Então, como o labirinto é finito e está conectado, depois de um tempo finito, eles se encontrarão.
Se o esquema não for consistente, não há garantia de que eles atendam, pois podem resultar em loops fechados.
Se eles tiverem a mesma velocidade, dependendo da arquitetura do labirinto, por exemplo, um labirinto cíclico, é possível que eles sempre estejam em pontos anti-diamétricos do labirinto e, portanto, nunca se encontrem, mesmo que o esquema seja consistente.
Fica claro pelo exposto acima que o esquema precisa ser pré-arranjado, mas qualquer esquema pré-arranjado consistente será necessário.
Caso contrário, pode-se confiar na análise probabilística e inferir que, com uma grande probabilidade, eles se encontrarão, mas essa probabilidade não é uma (ou seja, em todos os casos).
Pode-se também considerar o inverso do problema do encontro , o problema da prevenção, onde o objetivo é que os agentes sempre se evitem .
A solução para o problema da prevenção é que os agentes se reflitam exatamente. Significando que o que um agente faz o outro deve refletir isso. Como o problema de esquiva também tem uma solução , fica claro que estratégias para o problema de encontro que podem levar ao comportamento de reflexão dos agentes não podem garantir solução.
Pode-se dizer que a estratégia para o problema da prevenção é a paralelização (ou seja, ponto divergente máximo) enquanto a estratégia para o problema do encontro é a ortogonalidade (ou seja, ponto menos convergente)
A análise acima pode ser transformada em um algoritmo aleatório que não assume funções pré-organizadas para os agentes, como o seguinte:
Em média, isso levará as pessoas a se encontrarem, mas não é garantido em todos os casos.
Se assumirmos que os agentes podem deixar rastros , por exemplo, rótulos de sua direção (atual) e velocidade. Em seguida, o outro agente pode usar esses rastreamentos como informações para ajustar sua própria direção e velocidade (veja abaixo).
Esse tipo de problema é um exemplo de otimização global usando apenas informações locais . Ou, em outras palavras, uma maneira de mapear restrições globais para restrições locais . Esse problema mais geral (que inclui o problema de encontro) é abordado neste post do math.se (e suas referências) "Métodos para converter restrições globais em restrições locais"
fonte