如果两个将军问题无法解决,我们人类如何在事物上达成共识?


25

如果两个将军问题无法解决,我们人类如何在事物上达成共识?

我的意思是,我们每天进行交流,并且与计算机科学处理的任何交流问题都具有相同的局限性。为什么不影响我们?


18
谁告诉你人类除了分歧之外还同意其他任何事情?
babou 2015年

7
“两个将军”问题的“不可解决性”仅限于其上下文,即在具有不可靠,不可信的通信渠道的完全异步的分布式系统中。在我们的日常生活中,人们可以“容忍”他们。顺便一句,我刚刚回答了另一个与您的问题密切相关的问题
hengxin

4
@babou不幸的是,人们(具有相同的优先顺序)甚至不同意
hengxin

3
好吧,这通常是无法解决。在很多情况下,您可以忽略问题并摆脱困境-大多数人际交流都依赖于此。它是计算机科学中一个重要问题的主要原因,在很大程度上是规模上的原因-在已经必须分发的任何系统中,您可能偶尔,甚至每天甚至更多次遇到这些问题。如果您严重依赖正确性而没有自我纠正机制,那么这将是一个大问题。更接近人类的是中国的耳语/电话-一种没有纠错的分布式系统。
罗安2015年

2
@AlecTeal我不知道确切的计算机科学问题看起来是如何确定的,但是无论如何:请保持友好。这里不会容忍虐待他人。(删除您评论中不太好的部分)
拉斐尔

Answers:


29

我不同意其他答案,即通信渠道需要以不同的方式建模。恶意软件无关紧要,任何非零概率的简单丢失消息就足以造成两个将军问题。例如,电子邮件和IM丢弃邮件的机会较低,但并非为零。电话会受到干扰,因此,对于两位将军问题,您需要以某种方式确认对方是否无限制地听到了您的发言。但是我经常使用这些渠道与他人达成协议。

不能解决的“两个将军”问题无法解决的,是得到保证的常识。在现实生活中,我们不需要正式的常识即可继续进行。因此,在大多数实际情况下的目标需要与两位将军问题中的目标有所不同。

我们同意“足够可能”达成协议。除非我确定您会发起攻击,否则我可能不愿意攻击,但是如果通信失败的可能性不比您失败的可能性高,我愿意走到咖啡店与您见面由于交通而到达。与将军不同,我会抓住机会与您见面。

如果您第一次遇到某人时曾用不同的方式向您解释过三遍,或者曾经有人要求您确认您已经两次确认过的某件事,那是因为您达到了“在他们到达自己的目标之前就足够了”。

以您所选择的心理学,哲学或进化生物学为正确的领域,在其中寻找下一个问题的答案,为什么我们实际上并不需要全面的常识保证:-)

它还涉及到计算中的实际问题。例如,当我们使用单个错误纠正代码来“验证”消息中的符号是否正确到达时,我们所做的就是接受暂时两次错误的可能性都可以忽略不计。然后,在协议的后面,我们可能会有一个CRC,以进一步降低未检测到错误的可能性。这些都不能解决两位将军的问题,但是对于我,我的银行和商人来说,足以“同意”发生了信用卡交易,而我们不同意的可能性很小。


3
在实际意义上,恶意软件很重要,因为它限制了可以实现的确定性程度。如果假设干扰是随机机会因素而不是恶意的结果,那么对于p > 0的任何概率,可以设计一种协议,以使错误的“共识” 概率小于p且成功达成共识的概率为大于1-p。但是,对于一个恶毒无所不知的对手,这种算法可能无法完成很多工作。
超级猫

3
@supercat:好的。但是我的意思是,当排除恶意后,涉及发问者的两个将军问题仍然是一个问题:不可能是错误的结果,而不是恶意。我想说的是,理想情况下应该对问题进行界定,以使丢失的消息不必是敌方行动的结果,我们只是知道有些消息会误入歧途。不过,拜占庭将军问题明确引入了反对派玩家。
史蒂夫·杰索普

因此,两位将军应该首先同意一起喝咖啡。然后他们可以面对面地计划战斗,这为他们提供了可靠的渠道!
David Richerby

1
@DavidRicherby:的确,这在咖啡厅配备齐全的战区中非常有效。计算机科学家很少遇到其他任何地形,因此就CS理论而言,真正的将军几乎完全靠自己。存在主义的将军们甚至没有面对面的可靠渠道,因此他们从不攻击任何人,因为他们不确定自己的盟友是否存在,更不用说敌人了。
史蒂夫·杰索普

由于它是计算机科学,因此您可以猜测信道容量,如果它链接到并讨论了香农定理,那么这个答案可能会更好:en.wikipedia.org/wiki/Noisy-channel_coding_theorem
daniel

18

两个将军问题的中心(双关语意)是两者之间的恶意敌人。尽管这为不可靠的渠道建模,但它以我们通常不会遇到的方式对其进行建模。在问题中,消息可能会通过敌人的手中,没有时间限制,验证,加密或其他我没有想到的东西。

在实践中进行交流时,首先,我们不会以这种方式使我们使用的渠道不可靠。可以肯定,频道可能很吵,但这与恶意不同。在位级有噪声的信道可以随机产生的信息不仅可以满足我们正在使用的任何纠错码的有效消息的可能性,而且在接收者看来很有意义,这也是有效的。我们还可以使用公共密钥加密之类的东西来加密和/或签名消息,这使得再次伪造真实消息变得更加困难。第三,我们沟通中的很大一部分是时间敏感的-我们实际上是在与人交谈,因此没有延迟,在这种情况下,我们将必须确保与之交谈的人就是我们要交谈的人至。

在大多数情况下,我们仅假设消息中没有重要的错误源,因此我们可以避免。我们可以想象一个场景,其中确实有一个恶意的中间人破坏了渠道,但是我们遇到了两件事;公钥加密仍然有效,但更重要的是,准确破坏通信中足够重要的部分所需的精力和力量远远超出了可行的范围。如果不是这样,那么军事信号情报将远比其有效得多(不是说它不是无效的,而是更好)。

请注意,尽管我主要接触计算机/机器介导的通信,但是对于人际通信也可以使用相同的论点-噪声源通常无法伪造整条消息,但我们有针对那些引入随机,低水平的噪声的校正系统噪声,而且在几乎每种情况下,对于拥有足够资源和积极性的恶意攻击者来说,付出努力都是不值得的。


7
AFAIK,两位将军问题不需要恶意的通信渠道,而只是一个不可靠的渠道。关心的不是消息被破坏或修改。只有与他们没有收到:en.wikipedia.org/wiki/...
Ajedi32

1
@ Ajedi32,我应该更清楚地说明我的意思-隐喻性的设置有一个恶意敌人,使者不仅在徘徊,而且最直接的意思就是丢失了没有概率模型的整个消息。假设我们不以原子实体的形式发送消息,那么“消息丢失”可以解释为比特丢失,数据包丢失等。另一半是通信通道具有可分析的属性-它们可能具有随机噪声,但它是以一种可模型化的方式,我们可以证明可以应付,因此,信息丢失的唯一其他来源是……
Luke Mathieson

...实际的恶意行为,我们也可以注意到。简而言之,两位将军问题给出了一个假设性的假设,这种假设是不现实的。是的,可能会在某处丢失信息,但是(在日常明智的情况下)没有无限的错误。
卢克·马蒂森

16

“两个将军”问题(或称为“协同攻击”问题)的“不可解决性”仅限于其上下文,即在具有不可靠,不可信的通信渠道的完全异步的分布式系统中。在我们的日常生活中,人们可以“容忍”这种恶劣情况。

关于知识的推理中 ; 6.1节,作者评论说

协同攻击意味着常识的事实取决于我们对协同攻击必须同时进行的要求在实践中,同时性可能太强了。保证将军们在短时间内互相攻击的协议可能是令人满意的。

他进一步评论说

然而,如果沟通不可靠,那么即使是这种较弱的协调形式也无法实现。

在我们的日常生活中,人们可以容忍(并且正在容忍)短暂的延迟和不可靠的渠道(如@Luke Mathieson所述)。(如果您更深入地询问“如何”和“为什么”,则可能超出了计算机科学的范围。)


2
如果您查看现代通信技术,尤其是在战争中,则会非常谨慎地选择不依赖于此类问题的策略。当他们确实依靠此类问题时,几乎总是有一些应急计划来应对。在计算机科学程序中,我们将所有鸡蛋都放在一个篮子里,并声明“任何潜在的故障,无论多么不可能,都太多了”
Cort Ammon-恢复Monica

3

因为我们不需要担保保证的东西时,我们有足够的发生的经验,告诉我们什么是可能发生的。例如,假设一个朋友想和我见面。他向我发送了时间和地点的电子邮件,然后我回复“听起来很棒,然后见。” 我不需要任何其他信息即可继续在指定的时间和地点与他会面。只是因为我不能保证他得到我的回应还不足以影响我按照我的假设行事。我的经验告诉我,电子邮件相当可靠,如果由于某种原因他没有收到我的回复,他会再次给我发送电子邮件。我的经验告诉我,不必担心我的答复被默默丢弃的情况,而且他的所有后续消息也都会默默丢弃。事件的组合很少经常发生,不会显着干扰我结识他人的能力。

如果那些极端情况(或其他问题)确实开始越来越频繁地发生,那将改变我的经验,然后我会考虑改变自己的策略。例如,我可能打电话给该人,而不是给他们发送电子邮件。或者我可能使用日历网站。或其他选择。

应用于人际交流时,我发现两人制问题的技术问题本身并没有很大的问题,但是可以放大其他问题。如果我通过电子邮件向某人发送工作请求,但在合理的时间内没有收到他们的答复,我该怎么办?在发送后续消息之前,我应该推迟多长时间?如果我确实发送了跟进消息,他们会认为这是一个友好的提醒,还是会感到烦躁?我应该如何措辞后续消息,以免太冒昧(因为如果网络实际上丢弃了之前的消息,那么这是他们从我这里收到的第一个消息)?

这些问题的性质全都取决于所涉及的人员和环境。没有保证的答案。但是同样,我们不需要成功的保证。我们需要的是内省,同理心和从经验中学习的能力。我们可以发现并制定自己的独特策略-可能与其他策略大相径庭-可以使我们随着时间的推移成为更好的交流者。


-1

能否以十进制表示法给我pi的确切值?当我们知道确切值无法解决时,我们会四舍五入并近似。


2
欢迎!我们正在寻找包含一些细节和解释的答案,而不仅仅是简短的评论。您评论中的想法已经在问题的现有答案中进行了详细讨论,因此,我认为您根本不需要在此处添加任何内容。
David Richerby

我的评论简洁明了。解释的问题是,如果我们知道问题是无法解决的,人们将如何达成共识?我的答案来自我们四舍五入并近似的数学(特别是十进制的pi)。
RajuK 2015年

您的评论就是这样。当您有足够的声誉时,您就可以发表评论。在那之前,您只能发布答案,而且答案已经比我更详细了。
大卫·里奇比

这样的问题不是计算机科学的问题,而是关于人类行为的问题。因此,我的答案很明确。为什么该问题没有被标记为非计算机科学问题而被拒绝?
RajuK 2015年

如果您认为该问题是题外话,则应标记它,而不要回答。另请注意,Stack Exchange网站(甚至是有关它们的评论)也不打算用作讨论区。
David Richerby

-1

证明只说不可能设计出能够可靠地解决问题的协议(即在每种情况下都完美)。

并不是说不可能设计出能够解决大多数问题的协议。本质上是贝叶斯的人类非常擅长设计能够以某种程度的质量和/或某种程度的成功来解决给定问题的方案,这些方案从长远来看在收益和损失方面都是令人满意的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.