如果我知道你是善意的,你也知道我是善意的,我也知道你也知道我是善意的,你也知道我也知道你是善意的,這不就完美了么,為什麼還會有第四層,第五層。。。

我身邊看過三體的朋友給我解釋的時候好像也不正面回答,都是照搬書上的,而且還嘲笑我笨。我一直都在想,他們真的能推到第四層第五層或者更多層嗎?還是這本來就是一件皇帝的新裝,其實他們也只能推到第三層,然後為了顯示自己智商高而說自己也能推到很多層?


就是所謂公共知識的概念啊……用公式來表示, [公式] 表示我是善意的, [公式] 表示你是善意的,這裡的前提在於,善意只說明如果對方不危害自己,那麼自己也不會動手,不代表自己不會為了排除對方潛在的風險而先動手。比如說,如果自己是善意的,但是不確定對方會不會動手,那麼就可能先下手為強。

然後我們規定:

[公式] 表示我知道 [公式][公式] 表示你知道 [公式]

這個式子顯然是可以無限層迭代下去的,第一層是「我知道你是善意的」,第二層「我知道你知道我是善意的」,第三層「我知道你知道我知道你是善意的」,第四層「我知道你知道我知道你知道我是善意的」

如果兩個人面對面,在確保通信無故障的情況下交換了雙方的善意,握了一下手,那麼這個時候一瞬間所有的A和B就都成立了(因為能確信通信是可靠的),這個就叫做公共知識。

如果兩個人必須通過不可靠的信道來通信呢?

設想現在我和你通過星際信道通信,但是有可能消息會丟失,於是:

我發送「我是善意的」給你(A0)

你收到我的消息,回復說已收到,而且你也是善意的(B0,B1)

我收到消息(A1,A2)

但是如果我不再做出表示,那麼你就會想:我的回信到底對方收到了沒有呢?如果沒有收到,那麼在對方看來,就是對自己發送的消息默不作聲,那麼可能不是善意的,可能會為了排除風險主動攻擊。既然這樣,那麼你也有可能需要做出防範甚至先發制人的策略(即便對方是善意的,也可能因為以為自己不善意而先發制人)

那麼為了消除這種誤解,我需要繼續回復:已確認A1、A2

你收到消息(B2,B3)。但如果你不繼續回復了,我就會想:對方有沒有收到我的消息呢?如果沒有收到,可能就會以為我沒有收到B0、B1,於是可能防止我因為誤解的攻擊,而先發制人。那麼,我也有必要防範這個因為誤解的攻擊,甚至我也需要先發制人

於是你也繼續回復:已確認B2、B3

我收到消息(A3、A4)。但如果我不回復,你就會想,對方會不會沒有收到B2、B3,為了防止我基於誤解發起的攻擊,而進行先發制人呢?那麼我仍然需要考慮先發制人

注意這個時候,雙方的善意都已經被確認了,雙方也都知道對方了解了自己的善意,但更高階的知識仍然沒有確認,也就無法停下猜疑,反覆回復再多次數也無法完成這個無限階的證明。你可以發現,雙方每次發送消息之後,都會擔心對方沒有收到消息而發起先發制人的攻擊,於是自己也籌備先發制人的攻擊,這就導致猜疑永遠無法消除。

更直接地來說,對方的善意無法排除對方產生誤解而發起先發制人的攻擊的可能性,而誤會可以是無限階的,每一階的知識只能消除下面一級的誤會,但同時也產生了更高級別的誤會,所以猜疑是消除不了的。

但是,其實這只是純粹數學上的結論。工程上來說,TCP是這樣解決問題的:

我:我是善意的(1)

你:收到,我也是善意的,我的朋友,我相信我們的通信雖然有可能丟失,但不會永遠丟失,我會不斷重發這個消息,直到收到你的回復為止,也請你不斷發送回復直到我收到為止;如果你不再收到重複的消息,說明我已經收到了你的回復,我將不再回復你的回復,以防止產生猜疑。(2)

我:收到了你的回復,我將不斷發送這個回復,直到不再收到你的消息為止(3)

雙方都收到了最後一封消息,然後陷入沉默。幾天過去了,從概率上來說,我可以以極高的概率確認你的確因為收到了回復(3)而停止重複發送消息(2),而你也可以肯定自己停止發送消息這件事已經被我確認了,於是兩個文明實現了相互信任。雖然從數學上來說,仍然不是絕對確定雙方達成了共識,但達成共識的概率可以任意高,這就夠了。


猜疑鏈——從國共合作談起

排版效果參見:猜疑鏈——從國共合作談起

累計碼字2.5小時,共1947字,建議閱讀4分鐘

轉載無需註明出處,就說是你寫的

請相信我

我所說的每句一話

都是錯的

1猜疑鏈決定了國共能否成功合作?

背景設定:

1.抗日末期,國共雙方摩擦不斷,都想讓對方和日軍死磕,坐收漁利。

2.沒有電話,通信只能靠聯絡員。

3.聯絡員在穿梭國共營地路上,有可能被日軍截殺。

國民黨、共產黨、日軍的營地呈三角形,三方戰鬥力分別為:50、50、99。若不合作抗日,30天後國共兩方便會被日軍分別擊敗,共產黨決定在第29天凌晨,和國民黨一起向日軍發起突襲,第一天派出聯絡員 張三 向國民黨報信,國民黨收信後,同意該計劃。於是回信,讓張三把回信帶回去。

問:國共有可能在第29天合作發起突襲嗎? 如果有,張三至少需要送信幾次?

A說:B啊,我們明天一起進攻C吧。

B說:好的同意。於是AB就能確保一起攻打C了嗎,並不是。因為B心裡開始犯嘀咕:A有沒有收到我的「好的同意」的電報?如果沒收到我的電報那麼A就不會出擊,於是明天就成了B獨自去進攻了。於是B補發一個電報:你收到我的同意電報了嗎?A回復:收到了。這下B似乎放心了,但輪到A犯嘀咕了:B有沒有收到我的「收到了」這個電報,如果沒收到,那麼B就可能以為我沒收到,於是B就不出擊了,那麼明天就成了A單獨出擊了。於是電報內容將變成如下的悲劇

A:你收到剛才那封我發的說收到了的電報嗎了?

B:收到了B:你收到我剛才發的那封我說收到了的電報了嗎?A:收到了,這封電報收到後給個回復。B:收到了,這封電報收到後給個回復。A:收到了,這封電報收到後給個回復。B:收到了,這封電報收到後給個回復。。。。。。。。。。。。。。。。。。。。。。。。。。

第N次溝通未回復會導致第N-1次失效,第N-1次溝通失效進而導致N-2次失效,最終導致第一次溝通失效。

這便是猜疑鏈——半雙工通信難題。半雙工通信指的是一次只能有一個人說話,就像對講機,手機這種能同時說話吵架的叫全雙工通信。猜疑鏈會導致國共合作永遠無法達成。

在小說《三體》中,葉文潔的寥寥數語就向羅輯描述出了猜疑鏈的基本原理:

「如果你認為我是善意的,這並不是你感到安全的理由,因為善意文明並不能預先把別的文明也想成善意的,所以,你現在還不知道我是怎麼認為你的,你不知道我認為你是善意還是惡意;進一步,即使你知道我把你也想像成善意的,我也知道你把我想像成善意的,但是我不知道你是怎麼想我怎麼想你怎麼想我的。這才是第三層,這個邏輯可以一直向前延伸,沒完沒了。」

2即時通訊也有不奏效的時候

《三體》將猜疑鏈描繪得更加黑暗。地球被三體人佔領後,三支太空飛船結伴流浪太空,物資、能源會在可預料的將來耗盡,若不做點什麼,三艘飛船會同歸於盡,人類可能從此滅絕。

在物資匱乏條件下,飛船之間即便可以即時通訊(全雙工通信),但A艦隊還是發起了突襲,毀滅了另外兩艘,將物資搜刮乾淨後,孤零零踏上尋找新家園的旅途。

A艦隊: 我敢保證我是有善意,不主動攻擊。但怎麼保證對方也善意呢?萬一對方主動下黑手呢,這麼一想那我是不是該做點什麼?

想到這一層,就從原來善意,變成特別理直氣壯的主動防禦,而進攻是最好的防禦。再進一層:自己能想明白這個道理,對方也能想到。對方也會主動自衛(進攻)。我是不是更應該主動自衛 ?

想到這一層, 主動防禦就變成我必須幹掉對方了,猜疑升級。

猜疑鏈再進一步升級成:對方也能想到第二層。於是:我主動進攻的動作慢一點都不行,必須立刻進攻才能存活。

物資匱乏+零和博弈條件下,即時通訊也沒辦法阻斷猜疑,這種主觀惡意不斷在兩邊反射且升級的過程叫絕境猜疑鏈。如果條件不變,絕境猜疑鏈只有一個辦法終止:其他人全死。

匱乏、飢餓、生存,零和會成為是道德的荒漠。零和博弈是生死局,再多的交流也毫無意義。深陷其中,道德、人性、慈悲、善意都會成為枷鎖,唯有主動丟棄的大逆不道之勇者,才能贏得存活下去的資格。

在黑暗森林中生存,你得拋棄人性,這就是零和博弈下的殘酷。所以不要輕易讓自己陷入零和博弈的境地。

博弈論」的數學理論,引入了零和博弈、非零和博弈、正和博弈、負和博弈、常和博弈和變和博弈等概念。

不存在碾壓式優勢的條件下的零和遊戲,人的選擇並不多。好在生活中並非全都是零和遊戲,即便是零和博弈,有時也存在單獨一方的碾壓優勢,這就給合作奠定了基礎,善意便能萌發。

如何在合作中最大化自身利益,參見:表弟喲,哥哥我讀了《合作的進化有感》,你要小心了

3現實生活中為何沒有猜疑鏈

嚴格的來說,猜疑鏈這種不可建立信任與溝通的推導,是建立在嚴格的邏輯上的,與交流的介質無關,理論上,不管是文字,書面、語言,任何交流載體,都不可彌補這個缺陷。

但是,現實生活中,並沒有這種困難,兩個國可以建立聯合攻擊,人與人之間發送郵件也不需要反覆確認,當面的交流絕不會反覆糾結與對方是否聽到了。那麼,這是為什麼呢?猜疑鏈的基礎是絕對理性,絕對因果。幸好,人們沒有絕對理性,而是按概率來實際的判斷與生活。簡單的說,這是因為這個世界是概率的,人也是按概率來判斷和生活的。進行第一輪確認的時候,會認為對方會出兵的概率是90%,到第二輪、第三輪的時候,這個概率會持續上升,直到最後,即使沒有回復,這個概率已經足夠大,他們不再需要回復了。——劉遠舉

2019.4.3 有網友評論,回復後認為有必要添加第二次補充:

首先,《三體》有人誇有人貶,反正我自己看得很爽,讀了2遍,也樂意讀第3遍,我很佩服劉慈欣。但是黑暗森林理論不一定正確或錯誤,一個社會學家對黑暗森林法則的反駁 作者:丁旭陽 寫的很好。

https://lt.cjdby.net/thread-1734315-1-1.html

個人傾向認為更文明的外星人會把地球保護起來進行研究。畢竟宇宙中啥都有,地球上的元素並不特殊,沒必要跨越整個宇宙來掠奪地球上的普通爛大街資源,而地球上的文明恰恰是最稀缺的。

其次,猜疑鏈的適用邊界是 嚴格的零和博弈條件。如果不是零和博弈,猜疑鏈很難成立。

按三體小說中的設定,在零和博弈背景下,即便是量子通信,全雙工通信條件下,性命攸關時,也很難單純靠全雙工通信令對方信服自己是善意的。

也就是說,零和博弈條件下,即便全雙工通信也會出現猜疑鏈。譬如《三體》中倖存的5艘人類戰艦,流浪宇宙,物資不夠,符合零和博弈條件,即便當時他們之間通信很方便,依然產生了猜疑鏈。

總結:猜疑鏈是由博弈環境決定的,與通信技術條件有關係,但與通信技術關係並不是特別大。

與君共勉。

祝近安。

今日得到:

1.數學是大腦的體操

2.博弈分為:零和博弈、非零和博弈、正和博弈、負和博弈、常和博弈和變和博弈等

參考資料:

《三體》中的猜疑鏈成立嗎?

《三體》中的猜疑鏈成立嗎?_文化_騰訊網?

cul.qq.com圖標

歡迎關注公眾號:飯量的夜宵


http://weixin.qq.com/r/7T81LbXEa_gUrfFO92r- (二維碼自動識別)


有網友評論:可以用三次握手解決半雙工通信難題。

所謂三次握手,可以簡單理解為:

「長江長江,我是黃河,聽到請回答。」第一次握手。

長江聽到黃河的呼叫後要回答「黃河黃河,我是長江,我聽到了你,請回答。」這叫做第二次握手。黃河聽到長江的呼叫後還要回答「長江長江,我是黃河,我聽到了你,現在請你收報」,這是第三次握手。

三次握手成功後,才能在電台里傳送工作報文。

我谷歌后,發現了這麼一段:

「三次握手」是電台點對點通信的一般規則,但即使三次握手成功後,以後的通信就能保證正常嗎?當然不能,握手成功後的設備故障、干擾、話務員的傷亡等,無數種可能性會導致通信失敗。三次握手成功只說明了之前的通信條件和環境,而不能決定和預測之後的通信條件和環境。根據經驗,兩個電台之間的通信失敗,最大的可能性是兩個電台本身的故障,三次握手的成功排除了這種可能。以後的情況很難預測的,通信協議只能做到儘可能的可靠,而不能做到理論上的完全可靠。——科學松鼠會 " 第三次握手--革命鬥爭中的通信故事

當涉及到的利益足夠大,僅靠三次握手,是不能讓通信雙方安心的。

最後,谷歌真的很好用。所謂,大事、要事、外事不決問谷歌,內事、小事、趣事不決找百度。

也有要事,大事,外事,怎麼辦? 參考大師在流浪,小丑開講堂 文章末尾


有個比較好理解的例子

我們來玩剪刀石頭布,假設我們都想贏對方

開局我告訴你,我出石頭

假如你信任我這句話,那你應該出布,沒有問題


但是我們都想贏,那麼猜疑鏈就開始了

你想,如果我騙你出了布,而我出剪刀贏你,那你應該出石頭贏我

結論:你要出石頭


你又想,基於上一條,如果我猜到了你出石頭,那我會出布贏你,你要出剪刀贏我

結論:你要出剪刀


你還想,基於上一條,如果我猜到你出剪刀,那我會出石頭贏你,你要出布贏我

結論:你要出布

……

子子孫孫無窮匱也


再次更新。最近得到挺多贊,很開心。有部分朋友很關心我找到的「城堡主合作」的例子,對這個的討論很多。恕我精力、時間有限,你們提的挺多想法我難以一一驗證。我想說的是,上次更新在分割線內的那部分,自信無懈可擊,歡迎大家看看,並不長。

我也曾經對這個概念感到十分疑惑,甚至懷疑。直到我看到了如下解釋:

甲乙兩個城堡主,打算兩個聯合起來去攻打打另外一個城堡,可是,如果他們單獨去的話,一定會輸,所以,他們一定要保證第二天對方也會帶兵到場。於是,甲給乙寫了一封信,顯然,甲會去的前提是,乙答應了他,也就是說,甲必須得到乙的回復,才會帶兵去攻打。對於乙來說,他明白這個情況,所以,他會給甲一個回復,派人送過去。但是,乙怎麼判斷甲得到了他發出的回復呢?甲沒有得到乙的回復就不會出兵,所以,乙必須確認甲得到了他的回復,顯然,乙需要甲再次發一封信給他,表示收到回復,第二天會去。乙只有收到這個甲的回復,第二天才敢去。同樣的,甲再次發出了這個回復,但他同樣也得確認乙收到了這個回復,所以,乙還得再次發送一個回復。於是,情況就這麼反覆的循環下去。

原文很精彩

《三體》中的猜疑鏈成立嗎?_文化_騰訊網?

cul.qq.com圖標

所以,本答案的關鍵部分在這裡

用上面的例子代入宇宙中兩個世界(甲、乙)之間的猜疑鏈:

  1. 甲對乙說,我是善意的。大家都應該明白的一點是,這裡的「善意」並不能保證甲不攻擊乙,比如知道乙是惡意的,甚至只是懷疑乙是惡意的,甲就需要先下手為強。所以這時候甲開始擔心了:乙是好是壞?
  2. 好,接著呢?乙要麼悄咪咪地幹掉甲,要麼說我也是善意的呀。在乙說自己也是善意的情況下,乙需要確保甲確實收到這個信息了。即乙在送出這封信後也開始擔心起來:如果甲沒有收到信息,甲就有理由懷疑乙是惡意的,甲就會幹掉乙。
  3. 甲知道乙的擔心,所以給乙回信。這封信還必須送到,否則乙就一直擔心下去,直到忍不住直接幹掉對方。所以甲送出這封信之後又開始擔心起來:乙收到信了沒有呀?
  4. 乙收到剛剛的回信後,知道甲的擔心,所以又需要給甲回信。回信後,乙還是需要確保甲確實收到信了(不然甲也會一直擔心下去直到忍不住先下手為強)。乙又開始擔心起來,甲收到我這封回信了沒有?
  5. 重複3
  6. 重複4
  7. 重複3
  8. 重複4
  9. ……

從第2步開始,甲和乙每發出一封信,是因為知道對方在等自己的回信。發完信之後,都需要確保對方收到信息了,這下子變成自己(焦慮地)等回信了。就這樣陷入了死循環。


我認為,我開始時對這個概念感到疑惑的原因是:《三體》的原文表述略有問題。把這個實際的溝通過程描述出來,那就可以理解了。我覺得猜疑鏈出現的根本原因是:一個文明在關係到存亡的事情上需要做到100%的可靠。


改一下吧,不是猜疑鏈的問題,是另一個基礎沒有搞透。

生存是文明的第一需求。

這句話的意思是,只要有那麼一絲絲的可能,那就不能相信對方是善意的。

於是,你無法絕對相信「對方是善意的」這個結論。


不是幾層的問題,是你第一層就出了問題。

你不能以對方的善意為基礎往上構建推論。

因為他有可能騙你。因為生存是第一要素。

他可以表明他是善意的,你也接受到了,但是你不能就這麼斷定他是善意的。你也不能在這個基礎上進行任何下一步行為。只因為對方有可能在騙你,這個有可能的背後的代價是你死。你不能冒這個風險。


推薦閱讀:
相关文章