如果两个将军问题无法解决,我们人类如何在事物上达成共识?
我的意思是,我们每天进行交流,并且与计算机科学处理的任何交流问题都具有相同的局限性。为什么不影响我们?
如果两个将军问题无法解决,我们人类如何在事物上达成共识?
我的意思是,我们每天进行交流,并且与计算机科学处理的任何交流问题都具有相同的局限性。为什么不影响我们?
Answers:
我不同意其他答案,即通信渠道需要以不同的方式建模。恶意软件无关紧要,任何非零概率的简单丢失消息就足以造成两个将军问题。例如,电子邮件和IM丢弃邮件的机会较低,但并非为零。电话会受到干扰,因此,对于两位将军问题,您需要以某种方式确认对方是否无限制地听到了您的发言。但是我经常使用这些渠道与他人达成协议。
不能解决的“两个将军”问题无法解决的,是得到保证的常识。在现实生活中,我们不需要正式的常识即可继续进行。因此,在大多数实际情况下的目标需要与两位将军问题中的目标有所不同。
我们同意“足够可能”达成协议。除非我确定您会发起攻击,否则我可能不愿意攻击,但是如果通信失败的可能性不比您失败的可能性高,我愿意走到咖啡店与您见面由于交通而到达。与将军不同,我会抓住机会与您见面。
如果您第一次遇到某人时曾用不同的方式向您解释过三遍,或者曾经有人要求您确认您已经两次确认过的某件事,那是因为您达到了“在他们到达自己的目标之前就足够了”。
以您所选择的心理学,哲学或进化生物学为正确的领域,在其中寻找下一个问题的答案,为什么我们实际上并不需要全面的常识保证:-)
它还涉及到计算中的实际问题。例如,当我们使用单个错误纠正代码来“验证”消息中的符号是否正确到达时,我们所做的就是接受暂时两次错误的可能性都可以忽略不计。然后,在协议的后面,我们可能会有一个CRC,以进一步降低未检测到错误的可能性。这些都不能解决两位将军的问题,但是对于我,我的银行和商人来说,足以“同意”发生了信用卡交易,而我们不同意的可能性很小。
两个将军问题的中心(双关语意)是两者之间的恶意敌人。尽管这为不可靠的渠道建模,但它以我们通常不会遇到的方式对其进行建模。在问题中,消息可能会通过敌人的手中,没有时间限制,验证,加密或其他我没有想到的东西。
在实践中进行交流时,首先,我们不会以这种方式使我们使用的渠道不可靠。可以肯定,频道可能很吵,但这与恶意不同。在位级有噪声的信道可以随机产生的信息不仅可以满足我们正在使用的任何纠错码的有效消息的可能性,而且在接收者看来很有意义,这也是有效的。我们还可以使用公共密钥加密之类的东西来加密和/或签名消息,这使得再次伪造真实消息变得更加困难。第三,我们沟通中的很大一部分是时间敏感的-我们实际上是在与人交谈,因此没有延迟,在这种情况下,我们将必须确保与之交谈的人就是我们要交谈的人至。
在大多数情况下,我们仅假设消息中没有重要的错误源,因此我们可以避免。我们可以想象一个场景,其中确实有一个恶意的中间人破坏了渠道,但是我们遇到了两件事;公钥加密仍然有效,但更重要的是,准确破坏通信中足够重要的部分所需的精力和力量远远超出了可行的范围。如果不是这样,那么军事信号情报将远比其有效得多(不是说它不是无效的,而是更好)。
请注意,尽管我主要接触计算机/机器介导的通信,但是对于人际通信也可以使用相同的论点-噪声源通常无法伪造整条消息,但我们有针对那些引入随机,低水平的噪声的校正系统噪声,而且在几乎每种情况下,对于拥有足够资源和积极性的恶意攻击者来说,付出努力都是不值得的。
“两个将军”问题(或称为“协同攻击”问题)的“不可解决性”仅限于其上下文,即在具有不可靠,不可信的通信渠道的完全异步的分布式系统中。在我们的日常生活中,人们可以“容忍”这种恶劣情况。
在关于知识的推理中 ; 6.1节,作者评论说
协同攻击意味着常识的事实取决于我们对协同攻击必须同时进行的要求。在实践中,同时性可能太强了。保证将军们在短时间内互相攻击的协议可能是令人满意的。
他进一步评论说
然而,如果沟通不可靠,那么即使是这种较弱的协调形式也无法实现。
在我们的日常生活中,人们可以容忍(并且正在容忍)短暂的延迟和不可靠的渠道(如@Luke Mathieson所述)。(如果您更深入地询问“如何”和“为什么”,则可能超出了计算机科学的范围。)
因为我们不需要担保保证的东西会时,我们有足够的发生的经验,告诉我们什么是可能发生的。例如,假设一个朋友想和我见面。他向我发送了时间和地点的电子邮件,然后我回复“听起来很棒,然后见。” 我不需要任何其他信息即可继续在指定的时间和地点与他会面。只是因为我不能保证他得到我的回应还不足以影响我按照我的假设行事。我的经验告诉我,电子邮件相当可靠,如果由于某种原因他没有收到我的回复,他会再次给我发送电子邮件。我的经验告诉我,不必担心我的答复被默默丢弃的情况,而且他的所有后续消息也都会默默丢弃。事件的组合很少经常发生,不会显着干扰我结识他人的能力。
如果那些极端情况(或其他问题)确实开始越来越频繁地发生,那将改变我的经验,然后我会考虑改变自己的策略。例如,我可能打电话给该人,而不是给他们发送电子邮件。或者我可能使用日历网站。或其他选择。
应用于人际交流时,我发现两人制问题的技术问题本身并没有很大的问题,但是可以放大其他问题。如果我通过电子邮件向某人发送工作请求,但在合理的时间内没有收到他们的答复,我该怎么办?在发送后续消息之前,我应该推迟多长时间?如果我确实发送了跟进消息,他们会认为这是一个友好的提醒,还是会感到烦躁?我应该如何措辞后续消息,以免太冒昧(因为如果网络实际上丢弃了之前的消息,那么这是他们从我这里收到的第一个消息)?
这些问题的性质全都取决于所涉及的人员和环境。没有保证的答案。但是同样,我们不需要成功的保证。我们需要的是内省,同理心和从经验中学习的能力。我们可以发现并制定自己的独特策略-可能与其他策略大相径庭-可以使我们随着时间的推移成为更好的交流者。
能否以十进制表示法给我pi的确切值?当我们知道确切值无法解决时,我们会四舍五入并近似。