經典博弈論

基本性質

一、必勝點與必敗點

  • \(P\)點:必敗點, 在雙方都無比聰明的情況下,當前先手的人必敗的情況。
  • \(N\)點:必勝點,在雙方操作都正確的情況下,先手必勝的位置。

幾個性質

  • 所有終止位置都是必敗點。(可當做公理,即所有公式的推理都在這個性質成立的基礎上進行)。
  • 從任意一個必勝點\(P\)出發,至少有一種方式到達一個必敗點\(N\)
  • 從一個必敗點\(N\)出發,只能到達一個必勝點\(P\)

二、無偏博弈

無偏博弈是一類任意局勢對於遊戲雙方都是平等回合制雙人遊戲。這裏平等的意思是所有可行的走法僅僅依賴於當前的局勢,而與現在正要行動的是哪一方無關。換句話說,兩個遊戲者除了先後手之外毫無區別。此外還需要滿足以下性質:

  • 完全信息,任意一個玩家都能夠知曉整個遊戲狀態。
  • 無隨機行動,所有的行動都會轉移到一個唯一確定的狀態。
  • 在有限步內遊戲會終止, 此時有位移的必勝者。

三、常見模型

  • 巴什博弈(Bash Game)
  • 尼姆遊戲(Nim Game)
  • 威佐夫博弈(Wythoff Game)
  • Anti-SG遊戲
  • Multi-SG遊戲
  • Every-SG遊戲
  • 翻硬幣遊戲

巴什博弈

基本問題

有一堆石子,總個數是 n,兩名玩家輪流在石子堆中拿石子,每次至少取 1 個,至多取 m 個。取走最後一個石子的玩家爲勝者。判定先手和後手誰勝。

解決方法

\((m+1) \mid n\) 時,先手必敗,否則先手必勝。
證明
假設 \((m + 1) \mid n\) ,先手面對這樣一種情況拿了 x 個,後手就會拿 m+1-n 個,這樣無論怎麼拿,最後只會剩下 m+1 個,在這種情況下,無論先手拿 1~m 中的哪一個,都會剩下 m+1-x 個,且 \(1 \leq m + 1 - x \leq m\) ,因此後手可以將剩下的石頭取光而必勝。

當上邊假設不成立的情況時, 先手可以先取走 \(n \ \operatorname{mod} \ (m+1)\) 個 ,這樣問題就轉化成了後手面對 \((m+1) \mid n\) 個石子的情況了, 也就是這種情況的後手轉化成了上一種情況的先手。因此在這種情況下先手必勝。

題目 & 代碼

HDU 1846 Brave Game

尼姆遊戲

基本問題

有 n 堆石子 \(x_1, x_2,x_3,\dots,x_n\),兩人輪流取,每次可以從任意一堆石子中取走任意多個石子(不能不取),問先後手誰勝。

解決方法

對於 Nim 遊戲,前輩們發現了一條重要的性質;
當 n 堆石子的數量異或和等於 0 時,先手必勝,否則先手必敗。

證明
\(\oplus\)表示異或
Nim 遊戲的必敗態很顯然,就是當前 n 堆石子的數量都爲 0 的時候。
我們們用 \(a_i\) 來表示第i堆石子的數量,那麼當前的局面就是:
\(0 \oplus 0 \oplus 0 \oplus 0 \oplus 0 \oplus 0 = 0\)

  • 對於先手來說,如果當前的局面爲 \(a_1 \oplus a_2 \oplus a_3 \oplus \dots \oplus a_n = k\)

那麼一定存在某個\(a_i\), 它的的二進制表示在最高位 k 上一定爲1。
我們將\(a_i \oplus k\) 就變成了:

\[a_1 \oplus a_2 \oplus a_3 \oplus \dots \oplus a_n \oplus k = 0 \]

此時先手必勝。

  • 對於先手來說,如果當前的局面爲\(a_1 \oplus a_2 \oplus a_3 \oplus \dots \oplus a_n = 0\)

我們並不可以將一個 \(a_i\) 異或上一個數之後使得 \(a_1 \oplus a_2 \oplus a_3 \oplus \dots \oplus a_n = 0\)

此時先手必敗。

拓展形式

  • 每次取石子的時候有一個上界 m 。

這是一個 Bash Game + Nim Game,只需要將所有的石子數對 m+1 取膜然後再異或就可以了。

  • 每次允許從 k 堆石子中取 (\(Nim_k\))。

我們一般考慮的情況爲 \(Nim_1\) (也就是上邊一般的 Nim 遊戲), 我們的解法是考慮2進制下的異或和是否爲 0, 而異或是不進位的加法。
同理對於 \(Nim_k\) 的情況, 我們考慮 k+1 進制下的每一位不進位加法的結果,如果每一位都爲 0 的話就爲 P 局面, 否則就是 N 局面。

題目 & 代碼

洛谷P2197 Nim遊戲

威佐夫博弈

基本問題

有兩堆石子,兩個頂尖聰明的人在玩遊戲,每次每個人可以從任意一堆石子中取任意多的石子或者從兩堆石子中取同樣多的石子,不能取得人輸,分析誰會獲得勝利。

解決方法

打表找規律
威佐夫博弈不同於 Nim 遊戲與巴什博弈,他的特別之處在於不能將兩堆石子分開處理。
前輩們在對該博弈遊戲進行大量的探索之後,最終找到了一些非常有趣的性質。

定義先手必輸的局勢爲奇異局勢,經過打表找規律之後發現前幾個奇異局勢是這樣的:
\((0. 0) \ (1. 2) \ (3, 5) \ (4, 7) \ (6, 10) \dots\)

我們設 \((x, y)\) 爲第 k 個奇異局勢。

性質:

  1. x爲前 \(1 \dots k\) 個奇異局勢中未出現的最小正整數,y=x+k 。
    打表找規律即可證明
  2. 任何一個自然數都包含在在一個且僅有一個奇異局勢中。

證明
證明上述性質只需要證明兩點:
1.任意自然數都出現過。 2.任意自然數僅出現過一次。
對於1.
反證法,假設一個數 v 沒有出現過。
\(\because\) 一個數 v 並沒有出現過。
\(\therefore\) v 可以組成一個新的奇異局勢。
假設不成立。
對於2.
反證法,假設一個數 v 出現過兩次。
\(\because\) 奇異局勢 \((x, y)\) 中的 x 爲之前未出現過的最小正整數。
\(\therefore\) v 不能爲 x。
\(\therefore\) v 只能爲奇異局勢中的 y。
\(\because\) 任意一個奇異局勢中的差值不相同。
因此 v 不可能出現兩次。

  1. 任何操作都能將奇異局勢變爲非奇異局勢。

若取走一堆中的石子,堆石子的差值就會改變,必將成爲非奇異局勢。
若兩堆石子中都取一個,因爲同一差值只會對應一種奇異局勢,因此必將成爲非奇異局勢。

  1. 可以用適當的方法將非奇異局勢轉化爲奇異局勢。

可以通過改變兩堆的差值來將非奇異局勢轉化爲奇異局勢,或者說知道差值之後改變兩堆大小也可以轉化爲奇異局勢。

結論

人們通過對上述性質的探索, 同時結合Betty定理,給出了威佐夫博弈的重要結論。

假設兩堆石子爲 \((x, y) \ (x < y)\)

當且僅當 $(y - x) \times \frac{\sqrt 5 + 1} {3} = x $ 時先手必敗。

其中 $\frac{\sqrt 5 + 1} {3} $ 爲 \(1.618\dots\) (黃金分割數)。

證明的話你要先會證明 Betty定理

然後纔是 威佐夫博弈結論

題目 & 代碼

取石子游戲

小結

主要參考, yyb的博弈論總結 & attack 大爺的blog

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章