強盜分金演算法及博弈分析

2021-04-01 23:59:44 字數 3901 閱讀 7440

一般的規則是,如果邏輯推理沒有漏洞,那麼結論就必定站得住腳,即使它與你的直覺矛盾。2023年9

月,加利福尼亞州帕洛阿爾托的stephen m. omohundro寄給我一道難題,它恰好就屬於這一類。這難題已

經流傳了至少十年,但是omohundro對它作了改動,使它的邏輯問題變得分外複雜了。

先來看看此難題原先的形狀。10名海盜搶得了窖藏的100塊金子,並打算瓜分這些戰利品。這是一些講

民主的海盜(當然是他們自己特有的民主),他們的習慣是按下面的方式進行分配:最厲害的一名海盜提

出分配方案,然後所有的海盜(包括提出方案者本人)就此方案進行表決。如果50%或更多的海盜贊同此方

案,此方案就獲得通過並據此分配戰利品。否則提出方案的海盜將被扔到海浬,然後下提名最厲害的海盜

又重複上述過程。

所有的海盜都樂於看到他們的一位同夥被扔進海浬,不過,如果讓他們選擇的話,他們還是寧可得一

筆現金。他們當然也不願意自己被扔到海浬。所有的海盜都是有理性的,而且知道其他的海盜也是有理性

的。此外,沒有兩名海盜是同等厲害的——這些海盜按照完全由上到下的等級排好了座次,並且每個人都

清楚自己和其他所有人的等級。這些金塊不能再分,也不允許幾名海盜共有金塊,因為任何海盜都不相信

他的同夥會遵守關於共享金塊的安排。這是一夥每人都只為自己打算的海盜。

最凶的一名海盜應當提出什麼樣的分配方案才能使他獲得最多的金子呢?

為方便起見,我們按照這些海盜的怯懦程度來給他們編號。最怯懦的海盜為1號海盜,次怯懦的海盜為

2號海盜,如此類推。這樣最厲害的海盜就應當得到最大的編號,而方案的提出就將倒過來從上至下地進

行。分析所有這類策略遊戲的奧妙就在於應當從結尾出發倒推回去。遊戲結束時,你容易知道何種決策有

利而何種決策不利。確定了這一點後,你就可以把它用到倒數第2次決策上,如此類推。如果從遊戲的開頭

出發進行分析,那是走不了多遠的。其原因在於,所有的戰略決策都是要確定:「如果我這樣做,那麼下

乙個人會怎樣做?」因此在你以下海盜所做的決定對你來說是重要的,而在你之前的海盜所做的決定並不

重要,因為你反正對這些決定也無能為力了。

記住了這一點,就可以知道我們的出發點應當是遊戲進行到只剩兩名海盜——即1號和2號——的時候。

這時最厲害的海盜是2號,而他的最佳分配方案是一目了然的:100塊金子全歸他一人所有,1號海盜什麼也

得不到。由於他自己肯定為這個方案投贊成票,這樣就佔了總數的50%,因此方案獲得通過。

現在加上3號海盜。1號海盜知道,如果3號的方案被否決,那麼最後將只剩2個海盜,而1號將肯定一無

所獲——此外,3號也明白1號了解這一形勢。因此,只要3號的分配方案給1號一點甜頭使他不至於空手而

歸,那麼不論3號提出什麼樣的分配方案,1號都將投贊成票。因此3號需要分出盡可能少的一點金子來賄賂

1號海盜,這樣就有了下面的分配方案:3號海盜分得99塊金子,2號海盜一無所獲,1號海盜得1塊金子。

4號海盜的策略也差不多。他需要有50%的支援票,因此同3號一樣也需再找一人做同黨。他可以給同黨

的最低賄賂是1塊金子,而他可以用這塊金子來收買2號海盜。因為如果4號被否決而3號得以通過,則2號將

一文不名。因此,4號的分配方案應是:99塊金子歸自己,3號一塊也得不到,2號得1塊金子,1號也是一塊

也得不到。

5號海盜的策略稍有不同。他需要收買另兩名海盜,因此至少得用2塊金子來賄賂,才能使自己的方案

得到採納。他的分配方案應該是:98塊金子歸自己,1塊金子給3號,1塊金子給1號。

這一分析過程可以照著上述思路繼續進行下去。每個分配方案都是唯一確定的,它可以使提出該方案

的海盜獲得盡可能多的金子,同時又保證該方案肯定能通過。照這一模式進行下去,10號海盜提出的方案

將是96塊金子歸他所有,其他編號為偶數的海盜各得1塊金子,而編號為奇數的海盜則什麼也得不到。這就

解決了10名海盜的分配難題。

omohundro的貢獻是他把這一問題擴大到有500名海盜的情形,即500名海盜瓜分100塊金子。顯然,類

似的規律依然成立——至少是在一定範圍內成立。事實上,前面所述的規律直到第200號海盜都成立。 200

號海盜的方案將是:從1到199號的所有奇數號的海盜都將一無所獲,而從2到198號的所有偶數號海盜將各

得1塊金子,剩下的1塊金子歸200號海盜自己所有。

乍看起來,這一論證方法到200號之後將不再適用了,因為201號拿不出更多的金子來收買其他海盜。

但是即使分不到金子,201號至少還希望自己不會被扔進海浬,因此他可以這樣分配:給1到199號的所有奇

數號海盜每人1塊金子,自己一塊也不要。

202號海盜同樣別無選擇,只能一塊金子都不要了——他必須把這100塊金子全部用來收買100名海盜,

而且這100名海盜還必須是那些按照201號方案將一無所獲的人。由於這樣的海盜有101名,因此202號的方

案將不再是唯一的——賄賂方案有101種。

203號海盜必須獲得102張贊成票,但他顯然沒有足夠的金子去收買101名同夥。因此,無論提出什麼樣

的分配方案,他都注定會被扔到海浬去餵魚。不過,儘管203號命中註定死路一條,但並不是說他在遊戲進

程中不起任何作用。相反,204號現在知道,203號為了能保住性命,就必須避免由他自己來提出分配方案

這麼一種局面,所以無論204號海盜提出什麼樣的方案,203號都一定會投贊成票。這樣204號海盜總算僥倖

揀到一條命:他可以得到他自己的1票、203號的1票、以及另外100名收買的海盜的贊成票,剛好達到保命

所需的50%。獲得金子的海盜,必屬於根據202號方案肯定將一無所獲的那101名海盜之列。

205號海盜的命運又如何呢?他可沒有這樣走運了。他不能指望203號和204號支援他的方案,因為如果

他們投票反對205號方案,就可以幸災樂禍地看到205號被扔到海浬去餵魚,而他們自己的性命卻仍然能夠

保全。這樣,無論205號海盜提出什麼方案都必死無疑。206號海盜也是如此——他肯定可以得到205號的支

持,但這不足以救他一命。類似地,207號海盜需要104張贊成票——除了他收買的100張贊成票以及他自己

的1張贊成票之外,他還需3張贊成票才能免於一死。他可以獲得205號和206號的支援,但還差一張票卻是

無論如何也弄不到了,因此207號海盜的命運也是下海餵魚。

208號又時來運轉了。他需要104張贊成票,而205、206、207號都會支援他,加上他自己一票及收買的

100票,他得以過關保命。獲得他賄賂的必屬於那些根據204號方案肯定將一無所獲的人(候選人包括2到

200號中所有偶數號的海盜、以及201、203、204號)。

現在可以看出一條新的、此後將一直有效的規律:那些方案能過關的海盜(他們的分配方案全都是把

金子用來收買100名同夥而自己一點都得不到)相隔的距離越來越遠,而在他們之間的海盜則無論提什麼樣

的方案都會被扔進海浬——因此為了保命,他們必會投票支援比他們厲害的海盜提出的任何分配方案。得

以避免葬身魚腹的海盜包括201、202、204、208、216、232、264、328、456號,即其號碼等於200加2的某

一方冪的海盜。

現在我們來看看哪些海盜是獲得賄賂的幸運兒。分配賄賂的方法是不唯一的,其中一種方法是讓201號

海盜把賄賂分給1到199號的所有奇數編號的海盜,讓202號分給2到200號的所有偶數編號的海盜,然後是讓

204號賄賂奇數編號的海盜,208號賄賂偶數編號的海盜,如此類推,也就是輪流賄賂奇數編號和偶數編號

的海盜。

結論是:當500名海盜運用最優策略來瓜分金子時,頭44名海盜必死無疑,而456號海盜則給從1到199

號中所有奇數編號的海盜每人分1塊金子,問題就解決了。由於這些海盜所實行的那種民主制度,他們的事

情就搞成了最厲害的一批海盜多半都是下海餵魚,不過有時他們也會覺得自己很幸運——雖然分不到搶來

的金子,但總可以免於一死。只有最怯懦的200名海盜有可能分得乙份髒物,而他們之中又只有一半的人能

真正得到一塊金子,的確是怯懦者繼承財富。

PKU1067演算法及幾種博弈

一 巴什博奕 bash game 只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每次至少取乙個,最多取m個。最後取光者得勝。顯然,如果n m 1,那麼由於一次最多只能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現了如何取勝的法則 如果n m 1 r s...

三個博弈論演算法分析

主要討論三個比較常見的博弈遊戲 bash game,nim game和wythoff game,較為領人驚嘆的是,他們最後都是通過數論或者自然數性質完美解決 bash game 同餘理論 nim game 異或理論 wythoff game 分割 1 bash game 一堆n個物品,兩人輪流取,每...

三個博弈論演算法分析

主要討論三個比較常見的博弈遊戲 bash game,nim game和wythoff game,較為領人驚嘆的是,他們最後都是通過數論或者自然數性質完美解決 bash game 同餘理論 nim game 異或理論 wythoff game 分割 1 bash game 一堆n個物品,兩人輪流取,每...