Nie zgadzam się z innymi odpowiedziami, że kanał komunikacji musi być inaczej modelowany. Złośliwość jest nieistotna, proste utracone wiadomości o niezerowym prawdopodobieństwie są wystarczające, aby stworzyć problem dwóch generałów. Na przykład wiadomości e-mail i wiadomości błyskawiczne mają małą, ale nie zerową szansę na upuszczenie wiadomości. Rozmowy telefoniczne mogą być zakłócane, tak jak w przypadku problemu dwóch generałów musisz w jakiś sposób potwierdzić, czy druga osoba usłyszała to, co powiedziałeś, bez końca. A jednak często używam tych kanałów do zawierania umów z innymi ludźmi.
Tym, czego nierozwiązalny problem „dwóch generałów” nie rozwiązuje, jest zagwarantowanie powszechnej wiedzy. W prawdziwym życiu nie potrzebujemy formalnej wspólnej wiedzy, aby kontynuować. Dlatego cel w większości praktycznych sytuacji musi być opisany inaczej niż cel w problemie dwóch generałów.
Zgadzamy się na to, że porozumienie jest „wystarczająco prawdopodobne”. Być może nie będę skłonny zaatakować, chyba że jestem pewien , że zaatakujesz, ale jestem gotów pójść do kawiarni, aby się z tobą spotkać, pod warunkiem, że prawdopodobieństwo awarii komunikacji nie jest rażąco wyższe niż prawdopodobieństwo, że nie uda ci się przybyć z powodu ruchu. W przeciwieństwie do generałów, zaryzykuję spotkanie ze mną.
Jeśli kiedykolwiek ktoś powiedział ci coś trzy razy na różne sposoby, kiedy dostałeś to po raz pierwszy, lub ktoś poprosił Cię o potwierdzenie czegoś, co już potwierdziłeś dwa razy, to dlatego, że osiągnąłeś próg „ wystarczająco prawdopodobne ”, zanim dotarli do swoich.
Wybierz psychologię, filozofię lub biologię ewolucyjną jako właściwą dziedzinę, w której szukasz odpowiedzi na następne pytanie, dlaczego tak naprawdę nie potrzebujemy pełnej gwarancji powszechnej wiedzy :-)
Odnosi się także do praktycznych problemów w informatyce. Na przykład, gdy używamy kodu korygującego pojedynczy błąd, aby „potwierdzić”, że symbol w wiadomości dotarł poprawnie, wszystko, co robimy, to akceptacja faktu, że prawdopodobieństwo podwójnego błędu jest na razie nieistotne. Następnie w protokole możemy mieć CRC, aby dodatkowo zmniejszyć prawdopodobieństwo niewykrycia błędu. Nic z tego nie rozwiązuje problemu dwóch generałów, ale dla mnie, mojego banku i akceptanta wystarczy „zgodzić się”, że doszło do transakcji kartą kredytową, z małym prawdopodobieństwem, że się nie zgadzamy.