Non sono d'accordo con altre risposte sul fatto che il canale di comunicazione debba essere modellato in modo diverso. La malizia è irrilevante, semplici messaggi persi con qualsiasi probabilità diversa da zero sono sufficienti per creare il problema dei due generali. e-mail e messaggistica istantanea, ad esempio, hanno una probabilità bassa ma non zero di eliminare i messaggi. Le telefonate possono subire interferenze, così come con il problema dei due generali è necessario in qualche modo confermare se l'altra persona ha sentito all'infinito ciò che hai detto. Eppure uso spesso questi canali per prendere accordi con altre persone.
Ciò che il problema insolubile dei "due generali" non riesce a risolvere è quello di ottenere una conoscenza comune garantita . Nella vita reale non abbiamo bisogno di conoscenze formali comuni per procedere. Pertanto l'obiettivo nella maggior parte delle situazioni pratiche deve essere descritto diversamente dall'obiettivo nel problema dei due generali.
Ci accontentiamo che l'accordo sia "sufficientemente probabile". Potrei non essere disposto ad attaccare a meno che non sia sicuro che attaccherai, ma sono disposto a camminare al bar per incontrarti, a condizione che la probabilità di un errore di comunicazione non sia notevolmente superiore alla probabilità che tu non riesca arrivare a causa del traffico. A differenza dei generali, colgo l'occasione per incontrarmi.
Se hai mai avuto qualcuno che ti ha spiegato qualcosa tre volte in modi diversi quando l'hai ricevuto per la prima volta, o se qualcuno ti ha mai chiesto di confermare qualcosa che hai già confermato due volte, allora è perché hai raggiunto la soglia di " sufficientemente probabile "prima che raggiungessero la loro.
Scegli la tua scelta di psicologia, filosofia o biologia evolutiva come il regno corretto in cui cercare una risposta alla domanda successiva, perché non abbiamo davvero bisogno di una piena garanzia di conoscenza comune :-)
Si riferisce anche a problemi pratici nell'informatica. Ad esempio, quando utilizziamo un codice di correzione di un singolo errore per "convalidare" che un simbolo in un messaggio è arrivato correttamente, tutto ciò che stiamo facendo è accettare che la probabilità di un doppio errore sia per il momento trascurabile. Quindi più avanti nel protocollo potremmo avere un CRC, per ridurre ulteriormente la probabilità di errore non rilevato. Niente di tutto ciò risolve il problema dei due generali, ma è sufficiente per me, la mia banca e un commerciante "concordare" che si è verificata una transazione con carta di credito, con una piccola probabilità che non siamo d'accordo.