跳转到内容

两军问题:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
修飾語句
修飾語句
 
第3行: 第3行:
}}
}}
{{request translation}}
{{request translation}}
[[File:2-generals.svg|右|缩略图|军队位置示意图:军队甲(A1)与乙(A2)派遣信使互相通訊,但信使可能被军队丙(B)俘虏。]]
[[File:2-generals.svg|右|缩略图|军队位置示意图:军队甲(A1)与乙(A2)派遣信使互相通訊,但信使可能被军(B)俘虏。]]
'''两军问题'''({{lang-en|Two Generals' Problem}})是電腦领域的[[思想實驗|假想實驗]],显示以不可靠的通訊渠道交换訊息并达成共识难以实现。问题中,两支军队的将军只能派信使穿越敌方领土互相通訊,以此约定进攻時間。该问题希望求解如何在两名将军派出的任何信使都可能被俘虏的情况下,就進攻时间达成共識。
'''两军问题'''({{lang-en|Two Generals' Problem}})是電腦领域的[[思想實驗|假想實驗]],显示以不可靠的通訊渠道交换訊息并达成共识难以实现。问题中,两支军队的将军只能派信使穿越敌方领土互相通訊,以此约定进攻時間。该问题希望求解如何在两名将军派出的任何信使都可能被俘虏的情况下,就進攻时间达成共識。


第9行: 第9行:


== 定义 ==
== 定义 ==
两支[[陆军|军队]]由不同[[將軍 (軍銜)|将军]]领导,准备进攻一座坚固的城市。军队在城市附近的两个山谷扎营。由于有另一个山谷将两隔开,两名将军交流的唯一方法是信使穿越山谷。然而,这山谷由城市護卫占领,有可能俘虏途径山谷传递訊息的任何信使。
两支[[陆军|军队]]由不同[[將軍 (軍銜)|将军]]领导,准备进攻一座坚固的城市。军队在城市附近的两个山谷扎营。由于有另一个山谷将两山隔开,两名将军只能透過派信使穿越山谷通訊这山谷由城市護卫占领,有可能俘虏途径山谷传递訊息的任何信使。


雖然两名将军已约定要同时进攻,但尚未约定进攻时间。要顺利攻击,两军必须同时进攻。如果同一时间仅一支军队进攻就会战败因此两名将军须约定攻击时间,并确保另一将军知道自己同意了进攻计划。但由于传递[[確認訊息]]的信使与传递原始訊息的信使一样,都可能被俘虏而丢失訊息,即使双方不断确认已收到对方的上一条訊息,也无法确保对方已与自己[[共識機制|达成共识]]。
雖然两军已约定要同时进攻,但尚未约定进攻时间。要顺利攻击,两军必须同时进攻。如果同一时间仅一支军队进攻就会战败因此两名将军须约定攻击时间,并确保對方知道自己同意了进攻计划。但由于传递[[確認訊息]]的信使与传递原始訊息的信使一样,都可能被俘虏而丢失訊息,即使双方不断确认已收到对方的上一条訊息,也无法确保已与对方[[共識機制|达成共识]]。


== 问题演示 ==
== 问题演示 ==
将军甲首先信使向将军乙传递訊息“在8月4日9时进攻”。然而,派遣信使后,将军甲不知道信使是否成功穿过敌方领土。由于担心自己成为唯一的进攻军队,将军甲可能会犹豫按计划进攻。
将军甲首先信使向将军乙传递訊息“在8月4日9时进攻”。然而,派遣信使后,将军甲不知道信使是否成功穿过敌方领土。由于担心自己成为唯一的进攻军队,将军甲可能会犹豫否按计划进攻。


为了消除不确定性,将军乙可以向将军甲发送确认訊息:“我收到了您的訊息,并在8月4日9时进攻”。是,传递确认訊息的使者同样可能会被敌方俘虏。由于担心将军甲没有收到确认訊息的情况下退缩,将军乙会犹豫是否要按计划进攻。
为了消除不确定性,将军乙可以向将军甲发送确认訊息我收到了您的訊息,并在8月4日9时进攻”,但传递确认訊息的使者同样可能会被敌方俘虏。由于担心将军甲没有收到确认訊息退缩,将军乙会犹豫要按计划进攻。


再次发送确认訊息看來可以解决问题——将军甲再让新信使发送确认訊息:“我已收到您确认在8月4日9时进攻”。但是,将军甲的新信使也可能被俘虏。显然,无论确认幾次都无法满足该问题的第二条件,即两名将军都必须确保对方已同意计划,两名将军总会怀疑他们派遣的最后一名使者有否顺利穿过敌方领土。
再次发送确认訊息看來可以解决问题——将军甲再让新信使发送确认訊息:“我已收到您确认在8月4日9时进攻”。但是,将军甲的新信使也可能被俘虏。显然,无论确认幾次都无法满足该问题的条件,即两都必须确保对方已同意计划,两名将军总会怀疑他们最后派遣的使者有否顺利穿过敌方领土。


== 证明 ==
== 证明 ==

2022年8月23日 (二) 12:59的最新版本

军队位置示意图:军队甲(A1)与乙(A2)派遣信使互相通訊,但信使可能被敵军(B)俘虏。

两军问题(英語:Two Generals' Problem)是電腦领域的假想實驗,显示以不可靠的通訊渠道交换訊息并达成共识难以实现。问题中,两支军队的将军只能派信使穿越敌方领土互相通訊,以此约定进攻時間。该问题希望求解如何在两名将军派出的任何信使都可能被俘虏的情况下,就進攻时间达成共識。

两军问题是拜占庭将军问题的特例,常被编入与電腦网络相关的入门课程中。在传输控制协议(TCP)相关的课程中,问题可用作解释TCP协议无法保证通訊双方状态一致,也适用于其他有訊息丢失風險的通訊。作为认识逻辑的重要概念,问题突出了共识英语Common_knowledge_(logic)的重要性。一些学者也将问题称作两军悖论(英語:Two Generals Paradox)或协同进攻问题(英語:Coordinated Attack Problem)。[1][2]两军问题是第一个证實无解的電腦通訊问题。证明的重要意义在于,其显示了对于有通訊出错風險的更广泛问题(如拜占庭将军问题),同样无解。这也为实现所有分布式一致性协议提供了符合现实的预期。

定义

[编辑]

两支军队由不同将军领导,准备进攻一座坚固的城市。军队在城市附近的两个山谷扎营。由于有另一个山谷将两山隔开,两名将军只能透過派信使穿越山谷通訊,但这山谷由城市護卫占领,有可能俘虏途径山谷传递訊息的任何信使。

雖然两军已约定要同时进攻,但尚未约定进攻时间。要顺利攻击,两军必须同时进攻。如果同一时间仅一支军队进攻就会战败,因此两名将军须约定攻击时间,并确保對方知道自己同意了进攻计划。但由于传递確認訊息的信使与传递原始訊息的信使一样,都可能被俘虏而丢失訊息,即使双方不断确认已收到对方的上一条訊息,也无法确保已与对方达成共识

问题演示

[编辑]

将军甲首先派信使向将军乙传递訊息“在8月4日9时进攻”。然而,派遣信使后,将军甲不知道信使是否成功穿过敌方领土。由于担心自己成为唯一的进攻军队,将军甲可能会犹豫要否按计划进攻。

为了消除不确定性,将军乙可以向将军甲发送确认訊息“我收到了您的訊息,并會在8月4日9时进攻”,但传递确认訊息的使者同样可能会被敌方俘虏。由于担心将军甲没有收到确认訊息而退缩,将军乙会犹豫要否按计划进攻。

再次发送确认訊息看來可以解决问题——将军甲再让新信使发送确认訊息:“我已收到您确认在8月4日9时进攻”。但是,将军甲的新信使也可能被俘虏。显然,无论确认幾次都无法满足该问题的条件二,即两方都必须确保对方已同意计划,两名将军总会怀疑他们最后派遣的使者有否顺利穿过敌方领土。

证明

[编辑]

工程中的解决方案

[编辑]

历史

[编辑]

1975年,E. A. Akkoyunlu、K. Ekanadham和R. V. Huber在《网络通訊设计中的一些限制和取舍(Some Constraints and Trade-offs in the Design of Network Communications)》[3]一文首次提到两军问题(但以两组黑帮表示通訊双方),并证明问题无解。

1978年,詹姆斯·尼古拉·格雷[4]在《数据库操作系统筆記(Notes on Data Base Operating Systems)》 [5]一文将问题命名为“两军悖论”(Two Generals Paradox),虽然问题并非初次发表,但文献依然獲广泛引用证明两军问题無解。

参考文献

[编辑]
  1. ^ Gmytrasiewicz, Piotr J.; Edmund H. Durfee. Decision-theoretic recursive modeling and the coordinated attack problem. Proceedings of the First International Conference on Artificial Intelligence Planning Systems (San Francisco: Morgan Kaufmann Publishers). 1992: 88–95 [27 December 2013]. ISBN 9780080499444. doi:10.1016/B978-0-08-049944-4.50016-1. (原始内容存档于2019-12-15). 
  2. ^ The coordinated attack and the jealous amazons页面存档备份,存于互联网档案馆) Alessandro Panconesi. Retrieved 2011-05-17.
  3. ^ Akkoyunlu, E. A.; Ekanadham, K.; Huber, R. V. Some constraints and trade-offs in the design of network communications (PDF). Portal.acm.org. 1975: 67–74 [2010-03-19]. doi:10.1145/800213.806523. (原始内容 (PDF)存档于2020-11-28). 
  4. ^ Jim Gray Summary Home Page. Research.microsoft.com. 2004-05-03 [2010-03-19]. (原始内容存档于2008-11-13). 
  5. ^ Notes on Data Base Operating Systems. Portal.acm.org. [2010-03-19]. (原始内容存档于2007-03-10).