博弈論小記

forgotmyhandle發表於2024-04-20

以下我們都考慮這樣一種遊戲:

  1. 兩個人,輪流進行;

  2. 遊戲總是在有限步內結束;

  3. 同一個狀態不可能多次抵達,且沒有平局;

  4. 每個時刻的合法決策集合僅與當前局面有關,而與遊戲者無關;

  5. 不能操作者輸。

我們定義:

必敗態:無論如何先手必敗的狀態(局面)。

必勝態:先手存在必勝策略的狀態(局面)。

後繼狀態:從當前狀態走一步能夠到達的所有局面。

SG 函式

mex 函式:集合中最小的沒有出現的自然數。

將每個局面對映到一個自然數。終態(必敗態)的 SG 函式值為 \(0\),其他每個局面的 SG 函式值為其所有後繼局面的 mex 值。

一個局面必勝當且僅當其 SG 函式不為 \(0\)。對應地,一個局面必敗當且僅當其 SG 函式等於 \(0\)

如果一個遊戲由一堆遊戲組成,每次選擇一個遊戲走一步,這樣的遊戲稱為組合遊戲。組合遊戲中一個局面的 SG 函式值等於其所有子游戲的 SG 函式值的異或和。

同樣地,此時一個局面必勝當且僅當其 SG 函式不為 \(0\),一個局面必敗當且僅當其 SG 函式等於 \(0\)

Nim 遊戲

\(n\) 堆石子,每堆 \(a_i\) 個,每次可以在任一堆中取出任意多個石子,取到最後無法取的人輸。

分析這個遊戲,實際上是一個組合遊戲。每個子游戲就是一堆石子,每次取出任意多個,不能取的輸。我們來分析這個遊戲的 SG 函式。終態是剩 \(0\) 個石子,此時先手必敗,SG 函式為 \(0\)。對於一個石子的狀態,其後繼只有終態,而終態 SG 函式為 \(0\),所以只有一個石子的狀態的後繼狀態的 SG 函式構成的集合為 \(\{ 0 \}\),所以其 SG 函式為 \(1\)。對於兩個石子的狀態,其後繼狀態為剩 \(0\) 個和剩 \(1\) 個石子,這兩個狀態的 SG 函式分別為 \(0, 1\),所以其 SG 函式為 \(2\)。觀察發現一個狀態的 SG 函式值即為其中石子個數。

所以對於這 \(n\) 個子遊戲,其 SG 函式值分別為 \(a_i\),所以當前局面的 SG 函式值就是所有 \(a_i\) 的異或和。所以當且僅當所有 \(a_i\) 的異或和為 \(0\) 時先手必勝,否則先手必敗。這個就是 Nim 遊戲的經典結論。

若當前局面異或和不為 \(0\),可以證明一定可以透過某種方法來取出一些石子使得操作後所有數異或和為 \(0\)。若當前局面異或和為 \(0\),則也可以證明無論如何取,取之後的所有數異或和不為 \(0\)

階梯博弈

\(n\) 級臺階,從左往右依次變高,每級臺階上有 \(a_i\) 個石子,每次可以把一級臺階上的石子往比它低一層的臺階上扔(如果這級臺階還不是最低的臺階),每次可以扔任意多個。不能操作者輸。

結論:等價於從左往右奇數位上的 Nim 遊戲。

操作方法:假設我們必勝。如果對面動了偶數位的石子,則把對面移到奇數位的石子再往下移到偶數位。如果對面動了奇數位的石子,我們按照 Nim 遊戲的走法從某個奇數位的階梯上取若干個石子往下扔。這樣能夠保證我們是必勝的。

為什麼是奇數位?因為如果是偶數位的話,當對面把奇數位的石子移到最低的階梯上時,我們就無法再把這些石子往下扔了。

例題:P3480P8382

二分圖博弈

一張二分圖,一個棋子。棋子一開始在一個點上,每次一個人來選擇一條邊,把棋子沿這條邊移到另一個點。走過的點不能再走,不能走的輸。

結論:先手必勝當且僅當棋子一開始在最大匹配的必須點上。先手必敗當且僅當棋子一開始不在最大匹配的必須點上。

相關文章