Se il problema dei due generali è irrisolvibile, come possiamo noi esseri umani concordare sulle cose?


25

Se il problema dei due generali è irrisolvibile, come possiamo noi esseri umani concordare sulle cose?

Voglio dire, comunichiamo ogni giorno e abbiamo gli stessi limiti di qualsiasi problema di comunicazione gestito dall'informatica. Perché non ci riguarda?


18
Chi ti ha detto che gli umani non sono mai d'accordo su qualcosa di diverso dai loro disaccordi?
babou,

7
L '"irrisolvibilità" del problema dei "due generali" è limitata al suo contesto, cioè in un sistema distribuito totalmente asincrono con canali di comunicazione inaffidabili e non affidabili. Nella nostra vita quotidiana, le persone possono "tollerarle". A proposito, ho appena risposto a un'altra domanda che è strettamente correlata alla tua.
hengxin,

4
@babou Sfortunatamente, le persone (con gli stessi priori) non riescono nemmeno ad essere in disaccordo .
hengxin,

3
Bene, è irrisolvibile in generale . Ci sono ancora molti casi in cui puoi ignorare i problemi e cavartela - la maggior parte della comunicazione umana si basa su questo. La ragione principale per cui si tratta di un problema significativo nell'informatica è praticamente una ragione di scala - in qualsiasi sistema che deve già essere distribuito, probabilmente stai riscontrando questi problemi una volta ogni tanto, forse anche quotidianamente o più. Questo è un grosso problema se si fa molto affidamento sulla correttezza, senza meccanismi di auto-correzione. Un analogo umano più vicino sono sussurri / telefono cinesi: un sistema distribuito senza correzione degli errori.
Luaan,

2
@AlecTeal Non so da dove provenga la certezza di sapere come appare una buona domanda di Informatica , ma in ogni caso: per favore sii gentile. Abusare degli altri non sarà tollerato qui. (rimuovendo le parti non così belle del tuo commento)
Raphael

Risposte:


29

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.


3
La malizia è significativa in senso pratico perché limita il grado di certezza che può essere raggiunto. Se si presume che l'interferenza sia il risultato di fattori casuali di probabilità piuttosto che di malevolenza, allora per qualsiasi probabilità p > 0, si potrebbe progettare un protocollo in modo tale che la probabilità di un "consenso" errato sia inferiore a p e che la probabilità di un consenso positivo sia maggiore di 1-p. Contro un avversario che è malevolo e onnisciente, tuttavia, tali algoritmi potrebbero non essere in grado di ottenere molto.
supercat

3
@supercat: OK. Ma il mio punto è solo che il problema dei due generali che riguarda l'interrogante rimane un problema quando la malizia è esclusa: l'impossibilità è una conseguenza dell'errore, non della malizia. Direi che idealmente il problema dovrebbe essere inquadrato in modo tale che i messaggi mancanti non debbano necessariamente essere la conseguenza dell'azione nemica, sappiamo solo che alcuni messaggi vanno fuori strada. Tuttavia, il problema dei generali bizantini introduce esplicitamente giocatori avversari.
Steve Jessop,

Quindi i due generali dovrebbero prima concordare di prendere un caffè insieme. Quindi possono pianificare la battaglia faccia a faccia, il che dà loro un canale affidabile!
David Richerby,

1
@DavidRicherby: in effetti, funziona molto bene nei teatri di guerra che sono ben arredati con le caffetterie. Gli scienziati informatici incontrano molto raramente qualsiasi altro terreno, quindi i veri generali sono praticamente da soli per quanto riguarda la teoria CS. E i generali esistenzialisti non hanno un canale affidabile nemmeno faccia a faccia, quindi non attaccano mai nessuno perché non possono essere sicuri che i loro alleati esistano, per non parlare del nemico.
Steve Jessop,

Dalla sua informatica e puoi indovinare la capacità del canale questa risposta potrebbe essere migliore se si collegasse e discutesse il teorema di Shannon: en.wikipedia.org/wiki/Noisy-channel_coding_theorem
daniel

18

Centrale (gioco di parole) per il problema dei due generali è un nemico maligno nel mezzo. Sebbene questo modelli un canale inaffidabile, lo modella in un modo che normalmente non incontriamo. Nel problema, i messaggi possono passare attraverso le mani nemiche e non ci sono vincoli di tempo, verifica, crittografia o qualsiasi altra cosa a cui non ho pensato.

Quando comunichiamo in pratica, in primo luogo non ci si aspetta che i canali che utilizziamo siano inaffidabili in questo modo. I canali possono essere rumorosi, certo, ma è diverso dall'essere maliziosi. La probabilità che un canale rumoroso a livello di bit possa produrre casualmente non solo un messaggio valido che soddisfa qualsiasi errore che correggiamo il codice che stiamo usando, ma è anche valido in quanto ha senso per il ricevitore è molto basso. Possiamo anche usare cose come la crittografia a chiave pubblica per crittografare e / o firmare i messaggi, rendendo ancora più difficile falsificare un messaggio reale. In terzo luogo, una parte significativa della nostra comunicazione è sensibile al tempo: in realtà parliamo con le persone, quindi non ci sono ritardi nella risposta, nel qual caso dovremo essere soddisfatti che la persona con cui stiamo parlando è la persona con cui dovremmo parlare a.

Nella maggior parte dei casi, supponiamo solo che non ci sia una significativa fonte di errore nei messaggi e ce la caviamo. Possiamo immaginare uno scenario in cui esiste davvero un malvagio man-in-the-middle che corrompe il canale, ma ci imbattiamo in un paio di cose; la crittografia a chiave pubblica è ancora efficace, ma soprattutto lo sforzo e il potere necessari per corrompere accuratamente una parte abbastanza significativa della comunicazione è ben oltre ciò che è fattibile. Altrimenti, l'intelligence dei segnali militari sarebbe molto più efficace di quello che è (non che non sia efficace, sarebbe solo meglio).

Nota che sebbene abbia toccato principalmente la comunicazione mediata da computer / macchina, gli stessi argomenti possono essere fatti per la comunicazione interpersonale - le fonti di rumore in genere non possono falsificare un intero messaggio, abbiamo sistemi di correzione per quelli che introducono casuale, di basso livello rumore, e lo sforzo non ne vale la pena in quasi tutti i casi perché ci sia un malintenzionato malintenzionato con risorse sufficienti e motivato.


7
AFAIK, il problema dei due generali non richiede un canale di comunicazione dannoso, ma solo uno inaffidabile. Il problema non riguarda i messaggi danneggiati o modificati; solo se non vengono ricevuti: en.wikipedia.org/wiki/…
Ajedi32

1
@ Ajedi32, dovrei chiarire cosa intendo: la configurazione metaforica ha un nemico maligno, i messaggeri non si limitano a vagare, ma ciò a cui questo equivarrebbe immediatamente è la perdita di interi messaggi senza modello di probabilità. Dato che non inviamo messaggi come entità atomiche, la "perdita di un messaggio" può essere interpretata come perdita di bit, perdita di pacchetti, ecc. L'altra metà è che i canali di comunicazione hanno proprietà analizzabili: possono avere rumore casuale, ma è in grado di modellare, di cui possiamo provarci in modo dimostrabile, quindi l'unica altra fonte di perdita di informazioni è ...
Luke Mathieson,

... reale comportamento dannoso, che possiamo anche rendere evidente. In breve, il problema dei due generali offre una situazione ipotetica che non è realistica nelle sue ipotesi. Sì potrebbe perdere informazioni da qualche parte, ma non c'è (nelle situazioni sensibili di tutti i giorni) un errore illimitato.
Luke Mathieson,

16

L '"irrisolvibilità" del problema "Due generali" (o chiamato problema "Attacco coordinato") è limitata al suo contesto, cioè in un sistema distribuito totalmente asincrono con canali di comunicazione inaffidabili e non affidabili. Nella nostra vita quotidiana, le persone possono "tollerare" situazioni così brutte.

Nel libro Ragionamento sulla conoscenza ; Sezione 6.1 , gli autori commentano che

Il fatto che un attacco coordinato implichi una conoscenza comune dipende dal nostro requisito secondo cui l'attacco coordinato deve essere simultaneo . In pratica , la simultaneità potrebbe essere un requisito troppo forte. Un protocollo che garantisce che i generali attaccano a breve distanza l'uno dall'altro può essere abbastanza soddisfacente.

Lo commenta ulteriormente

Tuttavia, anche forme di coordinamento così deboli sono irraggiungibili se la comunicazione non è affidabile .

Nella nostra vita quotidiana, le persone possono tollerare (e tollerano) brevi ritardi e canali inaffidabili (come elaborato da @Luke Mathieson). (Se vai più in profondità e chiedi "come" e "perché", probabilmente è fuori dall'ambito dell'informatica.)


2
Se si guarda alla comunicazione moderna, specialmente in guerra, si presta molta attenzione a scegliere strategie che non dipendono da tali problemi. Quando dipendono da tali problemi, è quasi sempre in atto un piano di emergenza per affrontarlo. Nel programma di informatica, mettiamo tutte le nostre uova nello stesso paniere e dichiariamo che "ogni potenziale fallimento, per quanto improbabile, sia troppo"
Cort Ammon - Reinstalla Monica l'

3

Perché non abbiamo bisogno garantito certezza che qualcosa sarà accadere quando abbiamo sufficiente esperienza che ci dice che cosa è probabile che accada. Ad esempio, supponiamo che un amico voglia incontrarmi. Mi manda via e-mail l'ora e il luogo, e io rispondo con "Sembra fantastico, ci vediamo allora". Non ho bisogno di ulteriori informazioni per procedere con l'incontro nel luogo e all'ora specificati. Solo perché non potevo garantirloche ha ottenuto la mia risposta non è abbastanza per farmi influenzare dalle mie assunzioni. La mia esperienza mi dice che l'e-mail è abbastanza affidabile e che se per qualche motivo non ha ricevuto la mia risposta, mi invierà nuovamente un'email. La mia esperienza mi dice di non preoccuparmi del caso in cui la mia risposta viene scartata silenziosamente e anche tutti i messaggi di follow-up da lui scartati silenziosamente. Quella combinazione di eventi non accade abbastanza spesso da interferire in modo significativo con la mia capacità di incontrare persone.

Se quei casi angolari (o altri problemi) iniziassero a verificarsi più spesso, ciò cambierebbe la mia esperienza e quindi prenderei in considerazione la possibilità di cambiare la mia strategia. Ad esempio, potrei chiamare la persona invece di inviarla via email. O potrei usare un sito Web di calendario. O qualche altra opzione.

Applicato alla comunicazione interpersonale, trovo che i problemi tecnici del problema dei due generali non siano estremamente problematici da soli, ma possano amplificare altri problemi. Se invio a qualcuno una richiesta di lavoro e non ricevo una risposta da parte sua in un ragionevole lasso di tempo, cosa devo fare? Quanto tempo dovrei aspettare prima di inviare un messaggio di follow-up? Se invio un messaggio di follow-up, lo vedranno come un promemoria amichevole o si sentiranno irritati? Come dovrei pronunciare il messaggio di follow-up in modo da non apparire troppo presuntuoso (perché se la rete ha effettivamente abbandonato il messaggio precedente, questo è il primo che stanno ascoltando da me)?

La natura di queste domande dipende tutto dalle persone e dal contesto coinvolto. Non ci sono risposte garantite. Ma ancora una volta, non abbiamo bisogno di garanzie per avere successo. Tutto ciò di cui abbiamo bisogno sono cose come l'introspezione, l'empatia e la capacità di imparare dall'esperienza. Siamo in grado di scoprire e sviluppare le nostre strategie uniche - che possono ben differire dalle altre - che ci consentono di diventare comunicatori migliori nel tempo.


-1

Puoi darmi il valore esatto di pi in notazione decimale? Noi umani completiamo e approssimiamo quando sappiamo che il valore esatto è irrisolvibile.


2
Benvenuto! Stiamo cercando risposte che contengano alcuni dettagli e spiegazioni, piuttosto che solo brevi commenti. L'idea nel tuo commento è già stata discussa in dettaglio nelle risposte esistenti alla domanda, quindi non credo che tu stia aggiungendo nulla, qui.
David Richerby,

Il mio commento è succinto e al punto. La domanda parafrasata era: in che modo gli umani concordano su qualcosa se sappiamo che un problema è irrisolvibile? La mia risposta è dalla matematica (in particolare il pi in decimale) che arrotondiamo e approssimiamo.
RajuK,

Il tuo commento è proprio questo: un commento. Quando hai abbastanza reputazione, sarai in grado di pubblicare commenti. Fino ad allora, puoi solo pubblicare risposte e le risposte dovrebbero essere più dettagliate di così, come ho già spiegato.
David Richerby,

La domanda in quanto tale non è una questione scientifica, ma una domanda sul comportamento umano. Quindi la mia risposta è stata al punto. Perché la domanda non è stata etichettata come domanda non informatica e respinta?
RajuK,

Se ritieni che la domanda sia fuori tema, dovresti contrassegnarla e non rispondere. Si noti inoltre che i siti Stack Exchange (anche i commenti su di essi) non sono intesi come forum di discussione.
David Richerby,

-1

La prova dice solo che è impossibile progettare un protocollo che risolva in modo affidabile il problema (cioè perfettamente in ogni caso).

Non dice che è impossibile progettare un protocollo che risolva principalmente il problema. Gli umani, essendo di natura bayesiana, sono abbastanza bravi a progettare protocolli che risolvano un determinato problema con un certo grado di qualità e / o un certo grado di successo che è soddisfacente in termini di guadagni e perdite a lungo termine.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.