賽局

定義

組合賽局

  1. 兩位玩家遊戲,輪流進行操作
  2. 資訊完全公開,雙方都了解遊戲規則且能完整知道盤面
  3. 雙方的行動是決定性的,只取決於當時的盤面,也就是說,當前的盤面只有唯一的結果
  4. 結果分為先手獲勝、後手獲勝(、平手)的可能

無偏賽局:可進行的操作只和當前狀態有關,與哪個玩家行動無關

無環賽局:即使在一個人可連續操作多次的情況下,賽局仍然會在有限次結束

標準賽局:無法操作者被判輸

匱乏賽局:無法操作者被判贏

其他賽局:例如圈圈叉叉

這堂課講的沒有註明的話都是無偏無環標準賽局

策梅洛定理

在任意的組合賽局中,以下三種情形必有一個發生

  1. 先手有必勝策略
  2. 後手有必勝策略
  3. 平局

組合賽局基本定理

由於是無環賽局,代表假設畫出 game graph,他會是個有向無環圖 

而標準賽局的定義告訴我們最後不會出現平局

因此平局的兩種可能 (賽局定義的、出現循環) 都不可能存在,所以這代表對於一個標準無環賽局,賽局終點都不可能存在平局

亦即不是先手有必勝策略就是後手有必勝策略

以下討論無偏無環標準賽局

組合賽局裡面

N: 先手必勝

P: 後手必勝

N:存在一個可以轉移到的盤面是 P

P:所有可以轉移到的盤面都是N

題目

有一塊 n*m 的巧克力,每次選擇一條格線把巧克力剖成兩半,不能操作的玩家就輸了

桌上有 2022 個容量為 200 毫升的奶瓶,A 跟 B輪流選擇做以下其中一個操作:

1. 選擇一個裝有多餘 100 毫升的奶瓶,並喝掉一半

2. 選擇兩個裝有不超過 100 毫升的奶瓶,把他們倒成一瓶並把空瓶丟掉

一開始所有瓶子都是裝著 30 毫升的奶瓶,求最後誰會獲勝

Sprague-Grundy theorem

Nim

給你 \(n\) 堆石頭,每堆分別有 \(a_i\) 顆,兩個人輪流操作,每次可以選擇一堆石頭拿走 \(\geq 1\) 顆,不能取的輸,問誰有必勝策略

直接講結論:把 \( a_i\) xor 起來 (稱為特徵值),如果是 0 就代表是後手必勝,反之先手必勝

N:存在一個可以轉移到的盤面是 P

P:所有可以轉移到的盤面都是 N

P 只會轉到 N:每次操作會恰好改變一個數,亦即會改變特徵值

N 可以轉到 P:考慮特徵值的最高位

必定存在一個 \(a_i\) 滿足 \(a_i\) 的這個 bit 是 1

將他拿至剩 \(a_i\) \( \oplus\) 特徵值 即可

現在來玩賽局吧

假設有兩個賽局 \(G_1\) 與 \(G_2\)

定義 \( G_1 + G_2 \) 表示:雙方輪流選擇操作,每次的操作是選擇一個賽局 \( \in \{G_1,G_2\} \) ,然後做原本那個賽局的合法操作

為什麼無環操作要這樣定義?

現在在「選一個賽局」之下,就不再是雙方輪流操作了

等價

定義兩個賽局 \( G_1, G_2 \) 等價為

無論 \(H\) 是何賽局,\( G_1 + H \) 與 \( G_2 + H\) 的型別皆相同

記做 \( G_1 = G_2\)

  1. 如果 \(G_1 = G_2\),那個他們型別相同
  2. 如果 \(G\) 屬於 P,那麼 \( H+G = H\)
  3.  \(G_1\) 跟 \(G_2\) 都屬於 P \( \implies \) \(G_1 = G_2\)

性質

1. 跟 2. 都可以直觀理解,只證 3.

對任意賽局 \(H\),\(H+G_1 = H = H+G_2\) 

根據等價關係,\(G_1 = G_2\)

定理:所有特徵值相同的 Nim 等價

 

證明:只需要注意到 \(G+G = 0\)
並且要是 \(G\) 與 \(H\) 特徵值相同那麼 \(G+H=0\)

\(H=H+(G+G)=(H+G)+G=G\)

接下來終於進入到最重要的理論了

Sprague-Grundy Theorem

欲證:每個標準無偏無環賽局都可以對應到一個 Nim 遊戲,意即都有一個特徵值

這個特徵值叫做 SG\((G)\)

決定 SG\((G)\) 的方法是枚舉下一步可能的賽局,將他們的特徵值取 mex

\(G+H\) 的特徵值就是 SG\((G)\) \(\oplus\) SG\((H)\)

mex

最小的不屬於集合中的非負整數

證明:假設 \(G\) 的 SG value 為 x
賽局 \(H\) 為一堆剛好有 x 個石頭的 Nim

只需證 \(G+H=0\) 即可,也就是後手在 \(G+H\) 必勝

考慮對 Game graph 從後往前歸納

假設先手動了 \(G\) 並且把它的特徵值改小,那後手可以把 \(H\) 的特徵值也改小,使 \(G'+H'\) 為 0

假設先手動了 \(G\) 並且把它的特徵值改大,那後手可以把新的 \(G\) 的特徵值改小,依舊使 \(G'+H'\) 為 0

假設先手動了 \(H\) 則會把它的特徵值改小,那後手可以把 \(G\) 的特徵值改小,依舊使 \(G'+H'\) 為 0

我們可以量化每個組合賽局了,好耶

例題

跟 SG value 的一些有趣的點

Grundy's game

給你很多堆東西(分別有 \(a_i\) 個),你能做的操作是選擇一堆,把它分成大小不等且不為 0 的兩堆,不能操作者輸,問你誰贏

\(SG(n) = mex(\{SG(i) \oplus SG(n-i)\mid 1\leq i\leq \frac{n-1}{2}\})\)

不能相鄰的遊戲

兩個人在一個 1*n 的方格表上輪流塗色,規定不能塗已經塗過的格子也不能塗與已經塗過的格子相鄰的格子,問誰獲勝

\(SG(n) = mex(\{SG(0) \oplus SG(n-2)\} \cup \{SG(i) \oplus SG(n-2-i) \mid 1 \leq i \leq n-3\})\)

有些 SG value 會循環

但好像數競不常用(?

更多題單

跟 SG value 不一定有關喔

椒華和幾何大俠在玩遊戲,首先椒華選一個不大於 32719 的正整數,接著幾何大俠與椒華輪流選一個比對方上次選的數還小的正整數,直到有人選到 1,將所有被選過的數加在一起,若此總和為完全平方數,則選到 1 的人獲勝,否則另一人獲勝,試求所有 n 使得椒華一開始選 n 時能有必勝策略

賽局

By alvingogo

賽局

  • 536