Je ne suis pas d'accord avec les autres réponses selon lesquelles le canal de communication doit être modélisé différemment. La malveillance n'est pas pertinente, de simples messages perdus avec une probabilité non nulle sont suffisants pour créer le problème des deux généraux. le courrier électronique et la messagerie instantanée, par exemple, ont une chance faible mais non nulle de supprimer des messages. Les appels téléphoniques peuvent subir des interférences, donc comme pour le problème des deux généraux, vous devez en quelque sorte confirmer si l'autre personne a entendu ce que vous avez dit, à l'infini. Et pourtant, j'utilise fréquemment ces canaux pour conclure des accords avec d'autres personnes.
Ce que le problème insoluble des «deux généraux» ne parvient pas à résoudre, c'est d'obtenir une connaissance commune garantie . Dans la vraie vie, nous n'avons pas besoin de connaissances communes formelles pour continuer. Par conséquent, le but dans la plupart des situations pratiques doit être décrit différemment du but dans le problème des deux généraux.
Nous nous contentons d'un accord "suffisamment probable". Je ne serai peut-être pas disposé à attaquer à moins d'être certain que vous allez attaquer, mais je suis prêt à me rendre au café pour vous rencontrer à condition que la probabilité d'une défaillance des communications ne soit pas nettement supérieure à la probabilité que vous échouiez à arriver en raison de la circulation. Contrairement aux généraux, je vais tenter ma chance si vous me rencontrez.
Si quelqu'un vous a déjà expliqué trois fois quelque chose de différentes manières lorsque vous l'avez obtenu la première fois, ou si quelqu'un vous a demandé de confirmer quelque chose que vous avez déjà confirmé deux fois, c'est parce que vous avez atteint votre seuil de " suffisamment probable "avant d'atteindre le leur.
Faites votre choix de psychologie, philosophie ou biologie évolutive comme domaine correct dans lequel chercher une réponse à la question suivante, pourquoi nous n'avons pas vraiment besoin d'une garantie complète de connaissance commune :-)
Elle renvoie également à des problèmes pratiques en informatique. Par exemple, lorsque nous utilisons un code de correction d'erreur unique pour "valider" qu'un symbole dans un message est arrivé correctement, tout ce que nous faisons est d'accepter que la probabilité d'une double erreur est pour le moment négligeable. Plus tard dans le protocole, nous pourrions avoir un CRC, pour réduire davantage la probabilité d'erreur non détectée. Rien de tout cela ne résout le problème des deux généraux, mais il me suffit, à moi, à ma banque et à un commerçant de "convenir" qu'une transaction par carte de crédit a eu lieu, avec une faible probabilité que nous ne soyons pas d'accord.