Se o problema dos dois generais é insolúvel, como podemos concordar com os seres humanos?

25

Se o problema dos dois generais é insolúvel, como podemos concordar com os seres humanos?

Quero dizer, nos comunicamos todos os dias e temos as mesmas limitações que qualquer problema de comunicação tratado pela ciência da computação. Por que isso não nos afeta?

user1508072
fonte
18
Quem disse que os seres humanos concordam em algo que não seja o desacordo deles?
babou
7
A "insolubilidade" do problema dos "dois generais" é restrita ao seu contexto, isto é, em um sistema distribuído totalmente assíncrono com canais de comunicação não confiáveis ​​e não confiáveis. Em nossa vida cotidiana, as pessoas podem "tolerá-las". A propósito, acabei de responder a outra pergunta que está intimamente relacionada à sua.
precisa saber é o seguinte
4
@babou Infelizmente, as pessoas (com os mesmos antecedentes) nem conseguem concordar em discordar .
Hengxin
3
Bem, é insolúvel em geral . Ainda existem muitos casos em que você pode ignorar os problemas e se safar - a maior parte da comunicação humana depende disso. A principal razão pela qual é um problema significativo na ciência da computação é praticamente uma razão de escala - em qualquer sistema que já tenha sido distribuído, você provavelmente terá esses problemas de vez em quando, possivelmente até diariamente ou mais. Esse é um grande problema se você confiar muito na correção, sem mecanismos de autocorreção. Um análogo humano mais próximo são os sussurros / telefone chineses - um sistema distribuído sem correção de erros.
Luaan 8/06/15
2
@AlecTeal Não sei de onde vem a certeza certa de como é uma boa pergunta sobre Ciência da Computação , mas, em qualquer caso: seja gentil. Abusar de outras pessoas não será tolerado aqui. (retirar os não tão agradáveis partes do seu comentário)
Raphael

Respostas:

29

Discordo de outras respostas de que o canal de comunicação precisa ser modelado de maneira diferente. A malícia é irrelevante, mensagens perdidas simples com probabilidade diferente de zero são suficientes para criar o problema dos dois generais. email e mensagens instantâneas, por exemplo, têm uma chance baixa, mas não zero, de descartar mensagens. As chamadas telefônicas podem sofrer interferência; assim, com o problema dos dois generais, você precisa confirmar de alguma forma se a outra pessoa ouviu o que você disse, ad infinitum. E, no entanto, freqüentemente uso esses canais para fazer acordos com outras pessoas.

O que o insolúvel problema dos "dois generais" não consegue resolver é obter o conhecimento comum garantido . Na vida real, não exigimos conhecimento comum formal para prosseguir. Portanto, o objetivo na maioria das situações práticas precisa ser descrito diferentemente do objetivo no problema dos dois generais.

Concluímos que o acordo é "suficientemente provável". Talvez eu não esteja disposto a atacar, a menos que tenha certeza de que você o atacará, mas estou disposto a ir até a cafeteria para conhecê-lo, desde que a probabilidade de uma falha de comunicação não seja muito maior do que a probabilidade de você não chegar devido ao tráfego. Ao contrário dos generais, vou me arriscar em você me encontrar.

Se você já teve alguém explicando algo três vezes para você de maneiras diferentes quando o obteve pela primeira vez, ou alguém pediu para confirmar algo que você já confirmou duas vezes, é porque você atingiu seu limite de " suficientemente provável "antes de chegarem ao deles.

Escolha a psicologia, a filosofia ou a biologia evolutiva como o domínio correto para procurar uma resposta para a próxima pergunta, por que realmente não precisamos de uma garantia completa de conhecimento comum :-)

Também se refere a problemas práticos em computação. Por exemplo, quando usamos um código de correção de erro único para "validar" que um símbolo em uma mensagem chegou corretamente, tudo o que estamos fazendo é aceitar que a probabilidade de um erro duplo é insignificante por enquanto. Posteriormente, no protocolo, poderemos ter um CRC, para reduzir ainda mais a probabilidade de erro não detectado. Nada disso resolve o problema dos dois generais, mas é suficiente para mim, meu banco e um comerciante "concordar" que uma transação com cartão de crédito ocorreu, com uma pequena probabilidade de discordarmos.

Steve Jessop
fonte
3
A malícia é significativa no sentido prático, porque limita o grau de certeza que pode ser alcançado. Se alguém assume que a interferência é resultado de fatores aleatórios de chance e não de malevolência, então, para qualquer probabilidade p > 0, pode-se projetar um protocolo de modo que a probabilidade de "consenso" errado seja menor que pe a probabilidade de consenso bem-sucedido será maior que 1-p. Contra um adversário que é malévolo e onisciente, no entanto, esses algoritmos podem não conseguir realizar muito.
Supercat
3
@ supercat: OK. Mas o que quero dizer é que o problema dos dois generais, que diz respeito ao questionador, permanece um problema quando a malícia é excluída: a impossibilidade é uma conseqüência do erro, não da malícia. Eu diria que, idealmente, o problema deve ser enquadrado de tal forma que as mensagens perdidas não precisem ser conseqüências da ação inimiga, apenas sabemos que algumas mensagens se perdem. O problema dos generais bizantinos introduz explicitamente jogadores adversários.
9605 Steve JobsMay
Portanto, os dois generais devem primeiro concordar em tomar café juntos. Eles podem planejar a batalha pessoalmente, o que lhes dá um canal confiável!
David Richerby
11
@ DavidRicherby: de fato, isso funciona muito bem em teatros de guerra bem equipados com cafeterias. Os cientistas da computação raramente encontram qualquer outro terreno, de modo que os verdadeiros generais são praticamente independentes no que diz respeito à teoria da CS. E os generais existencialistas não têm um canal confiável nem mesmo cara a cara, então nunca atacam ninguém porque não podem ter certeza de que seus aliados existem, muito menos o inimigo.
9788 Steve Jobs
Desde a sua ciência da computação e você pode adivinhar a capacidade do canal esta resposta poderia ser melhor se ele ligada e discutido o teorema de Shannon: en.wikipedia.org/wiki/Noisy-channel_coding_theorem
daniel
18

Central (trocadilho) para o problema dos dois generais é um inimigo malicioso no meio. Embora modele um canal não confiável, modela-o de uma maneira que normalmente não encontramos. No problema, as mensagens podem passar pelas mãos do inimigo e não há restrições de tempo, verificação, criptografia ou qualquer outra coisa que eu não tenha pensado.

Quando nos comunicamos na prática, em primeiro lugar, espera-se que os canais que usamos não sejam confiáveis ​​dessa maneira. Os canais podem ser barulhentos, com certeza, mas isso é diferente de ser malicioso. A probabilidade de que um canal barulhento no nível de bits possa produzir aleatoriamente não apenas uma mensagem válida que satisfaça o código de correção de erros que estamos usando, mas também é válida porque faz sentido para o receptor é muito baixa. Também podemos usar coisas como criptografia de chave pública para criptografar e / ou assinar mensagens, dificultando novamente a falsificação de uma mensagem real. Em terceiro lugar, uma parte significativa da nossa comunicação é sensível ao tempo - na verdade, conversamos com as pessoas, para que não haja demora na resposta; nesse caso, teremos que estar satisfeitos com o fato de que a pessoa com quem estamos conversando é a pessoa com quem estamos conversando. para.

Na maioria dos casos, apenas assumimos que não há fonte significativa de erro nas mensagens, e nos safamos disso. Podemos imaginar um cenário em que realmente haja um homem mal-intencionado corrompendo o canal, mas encontramos algumas coisas; a criptografia de chave pública ainda é eficaz, mas mais importante ainda, o esforço e o poder necessários para corromper com precisão uma parte significativa da comunicação estão muito além do que é possível. Se não fosse, a inteligência de sinais militares seria muito mais eficaz do que é (não que não seja eficaz, seria apenas melhor).

Observe que, embora eu tenha abordado principalmente a comunicação mediada por computador / máquina, os mesmos argumentos podem ser apresentados para a comunicação interpessoal - as fontes de ruído geralmente não podem falsificar uma mensagem inteira, temos sistemas de correção para aqueles que introduzem níveis aleatórios e de baixo nível. barulho e o esforço simplesmente não vale a pena em quase todos os casos, para que haja um invasor mal-intencionado e com recursos suficientes e motivado.

Luke Mathieson
fonte
7
AFAIK, o problema dos dois generais não requer um canal de comunicação malicioso, apenas um canal não confiável. A preocupação não é com mensagens sendo corrompidas ou modificadas; somente com eles não sendo recebidos: en.wikipedia.org/wiki/…
Ajedi32
11
@ Ajedi32, devo esclarecer o que quero dizer - a configuração metafórica tem um inimigo malicioso, os mensageiros não estão apenas se afastando, mas o que isso equivale mais imediatamente é a perda de mensagens inteiras sem modelo de probabilidade. Como não enviamos mensagens como entidades atômicas, a "perda de uma mensagem" pode ser interpretada como perda de bits, perda de pacotes etc. A outra metade é que os canais de comunicação têm propriedades analisáveis ​​- eles podem ter ruídos aleatórios, mas é de forma modelo de poder, o que podemos comprovadamente lidar com, então a única outra fonte de perda de informação é ...
Lucas Mathieson
... comportamento malicioso real, que também podemos tornar perceptível. Em suma, o problema dos dois generais fornece uma situação hipotética que não é realista em suas suposições. Sim poderia perder informações em algum lugar, mas não há (em situações cotidianas sensíveis) erro ilimitado.
Luke Mathieson
16

A "insolubilidade" do problema "Dois generais" (ou chamado de "Ataque coordenado") é restrita ao seu contexto, isto é, em um sistema distribuído totalmente assíncrono com canais de comunicação não confiáveis ​​e não confiáveis. Em nossa vida cotidiana, as pessoas podem "tolerar" situações tão ruins.

No livro Raciocínio sobre Conhecimento ; Seção 6.1 , os autores comentam que

O fato de um ataque coordenado implica conhecimento comum depende de nossa exigência de que o ataque coordenado seja simultâneo . Na prática , a simultaneidade pode ser um requisito muito forte. Um protocolo que garanta que os generais atacem em um curto espaço de tempo pode ser bastante satisfatório.

Ele comenta ainda que

No entanto, mesmo essas formas mais fracas de coordenação são inatingíveis se a comunicação não for confiável .

Em nossa vida cotidiana, as pessoas podem tolerar (e estão tolerando) pequenos atrasos e canais não confiáveis ​​(conforme elaborado por @Luke Mathieson). (Se você se aprofundar e perguntar "como" e "por que", provavelmente está fora do escopo da ciência da computação.)

hengxin
fonte
2
Se você olhar para a comunicação moderna, especialmente na guerra, é preciso muito cuidado para escolher estratégias que não dependem de tais problemas. Quando eles dependem desses problemas, quase sempre existe algum plano de contingência para lidar com isso. No programa de ciência da computação, colocamos todos os nossos ovos em uma cesta e declaramos "qualquer falha potencial, por mais improvável que seja, é demais"
Cort Ammon - Restabelece Monica
3

Porque nós não precisamos garantida garantia de que algo vai acontecer quando temos suficiente experiência que nos diz o que é provável que aconteça. Por exemplo, digamos que um amigo queira se encontrar comigo. Ele me manda um e-mail com a hora e o local, e eu respondo com "Parece ótimo, até mais". Não preciso de mais informações para encontrá-lo no local e horário especificados. Só porque eu não poderia garantirque ele recebeu minha resposta não é suficiente para me impedir de agir de acordo com minhas suposições. Minha experiência me diz que o e-mail é bastante confiável e que, por algum motivo, ele não recebeu minha resposta, ele me enviará um e-mail novamente. Minha experiência me diz para não me preocupar com o fato de minha resposta ser descartada silenciosamente e todas as mensagens de acompanhamento dele também serem descartadas silenciosamente. Essa combinação de eventos simplesmente não acontece com frequência suficiente para interferir significativamente na minha capacidade de conhecer pessoas.

Se esses casos de canto (ou outros problemas) começassem a acontecer com mais frequência, isso mudaria minha experiência e consideraria mudar minha estratégia. Por exemplo, eu poderia ligar para a pessoa em vez de enviá-la por e-mail. Ou eu posso usar um site de calendário. Ou alguma outra opção.

Conforme aplicado à comunicação interpessoal, acho que os problemas técnicos do problema dos dois generais não são extremamente problemáticos por si mesmos, mas podem ampliar outros problemas. Se eu enviar por e-mail uma solicitação de trabalho e não receber uma resposta em um período de tempo razoável, o que devo fazer? Quanto tempo devo adiar antes de enviar uma mensagem de acompanhamento? Se eu enviar uma mensagem de acompanhamento, eles a verão como um lembrete amigável ou vão se sentir irritados? Como devo redigir a mensagem de acompanhamento para não parecer muito presunçosa (porque, se a rede realmente descartou a mensagem anterior, essa é a primeira vez que ela recebe notícias minhas)?

A natureza dessas questões depende das pessoas e do contexto envolvido. Não há respostas garantidas. Mas, novamente, não precisamos de garantias para ter sucesso. Tudo o que precisamos são coisas como introspecção, empatia e capacidade de aprender com a experiência. Podemos descobrir e desenvolver nossas próprias estratégias únicas - que podem diferir das outras - que nos permitem nos tornar melhores comunicadores ao longo do tempo.

kartik_subbarao
fonte
-1

Você pode me dar o valor exato de pi na notação decimal? Nós, seres humanos, arredondamos e aproximamos quando sabemos que o valor exato é insolúvel.

RajuK
fonte
2
Bem vinda! Estamos procurando respostas que contenham alguns detalhes e explicações, em vez de apenas breves comentários. A idéia do seu comentário já foi discutida em alguns detalhes nas respostas existentes para a pergunta, então não acho que você esteja adicionando nada aqui.
David Richerby
Meu comentário é sucinto e direto ao ponto. A questão parafraseada foi: como os humanos concordam com algo se sabemos que um problema é insolúvel? Minha resposta é de matemática (especificamente pi em decimal) que arredondamos e aproximamos.
RajuK
Seu comentário é apenas isso: um comentário. Quando você tiver reputação suficiente, poderá postar comentários. Até lá, você só pode postar respostas e espera-se que as respostas sejam mais detalhadas que isso, como eu já expliquei.
precisa saber é o seguinte
A questão, como tal, não é uma questão científica, mas uma questão sobre o comportamento humano. Portanto, minha resposta foi direta. Por que a pergunta não foi marcada como não científica e foi rejeitada?
RajuK
Se você acredita que a pergunta está fora do tópico, você deve sinalizá-la e não respondê-la. Observe também que os sites do Stack Exchange (até mesmo comentários sobre eles) não se destinam a ser painéis de discussão.
David Richerby
-1

A prova apenas diz que é impossível projetar um protocolo que resolva o problema de maneira confiável (ou seja, perfeitamente em todos os casos).

Não diz que é impossível projetar um protocolo que resolva principalmente o problema. Os seres humanos, sendo de natureza bayesiana, são muito bons em projetar protocolos que resolvem um determinado problema com algum grau de qualidade e / ou algum grau de sucesso satisfatório em termos de ganhos e perdas a longo prazo.

Homem de lugar nenhum
fonte