I was standing all alone against the world outside
忘記在哪里看到,很適合用這句歌詞來描述John Nash
參考資料:
1.<組合游戲略述 ——淺談SG游戲的若干拓展及變形> 賈志豪
2.上面那篇論文里的參考文獻...
公平組合游戲
定義
游戲有兩個人參與,二者輪流做出決策。且這兩個人的決策都對自己最有利。
當有一人無法做出決策時游戲結束,無法做出決策的人輸。無論二者如何做出決策,游戲可以在有限步內結束。
游戲中的同一個狀態不可能多次抵達。且游戲不會有平局出現。
任意一個游戲者在某一確定狀態可以作出的決策集合只與當前的狀態有關,而與游戲者無關。
有向無環圖
游戲可以轉化成有向無環圖,一個狀態是一個點,一個決策是一條邊.
終止狀態出度為0.
必勝態與必敗態
如果用1代表必勝態,0代表必敗態
當前狀態必勝:后繼狀態存在0
當前狀態必敗:后繼狀態沒有0
Nim游戲
桌子上有$N$堆石子$a_i$,游戲者輪流取石子。
每次只能從一堆中取出任意數目的石子,但不能不取。
取走最后一個石子者勝。
先手必敗:$a_1 \oplus a_2 \oplus ... \oplus a_n=0$
數學歸納法證明:
$1.\ $最終狀態異或和為0。
$2.\ $對於任意一個必勝態(異或和不為0),存在一個必敗后繼狀態(異或和為0)。
設$A_1 \oplus A_2 \oplus ... \oplus A_n=S$,一定存在$A_i$在$S$的最高位為1,只要改變$A_i$使這一位為0,后面的位相應改變使總體異或和為0就行了
$3.\ $對於任意一個必敗態(異或和為0),不存在一個必敗后繼狀態(異或和為0)。
SG函數
Sprague-Grundy
$SG(u)=mex\{SG(v):v是u的后繼狀態\}$
$mex(minimal\ excludant)$是定義在整數集合上的操作。它的自變量是任意整數集合,函數值是不屬於該集合的最小自然數。
必敗態的$SG$為0
數學歸納法證明:
$1.\ $最終狀態$SG=0$。
$2.\ $對於任意一個必勝態$SG \neq 0$,存在一個后繼態$SG=0$
$3.\ $對於任意一個必敗態$SG=0$,不存在一個后繼態$SG=0$
和Nim游戲類似,$SG$的變化類比成取石子
SG定理
游戲的和:
考慮任意多個同時進行的SG-組合游戲,這些SG-組合游戲的和是這樣一個SG-組合游戲,在它進行的過程中,游戲者可以任意挑選其中的一個單一游戲進行決策,最終,沒有辦法進行決策的人輸。
若局面X由若干個子游戲$X_1,X_2...X_n$構成,則$SG(x)=SG(X_1)\oplus SG(X_2) \oplus ...\oplus SG(X_n)$
數學歸納法證明:
$1.\ $最終局面成立
$2.\ $ $\forall X$,所有后繼局面可以取到$SG(X_1)\oplus SG(X_2) \oplus ...\oplus SG(X_n)-1$,取不到$SG(X_1)\oplus SG(X_2) \oplus ...\oplus SG(X_n)$
同樣看做Nim游戲
設$S \rightarrow S_1$
$S \oplus (S \oplus S_1) =S_1$
設$(S \oplus S_1)$最高位為$k$,存在$A$使得$k$位為1
那么$A \oplus (S \oplus S_1) < A$,所以讓$A$變成$A \oplus (S \oplus S_1)$就行了呀
SG與Nim游戲轉化:
每一個簡單SG-組合游戲都可以完全等效成一堆數目為K的石子,其中K 為該簡單游戲的SG 函數值。這樣的等效是充要的。
在我們每次只能進行一步操作的情況下,對於任何的游戲的和,我們若將其中的任一單一SG-組合游戲換成數目為它的SG 值的一堆石子,
該單一SG-組合游戲的規則變成取石子游戲的規則(可以任意取,甚至取完),則游戲的和的勝負情況不變。
Anti-SG
Anti-SG游戲規定,決策集合為空的游戲者贏。
Anti-SG其他規則與SG游戲相同。
SJ定理
規定所有單一游戲$SG=0$時游戲結束
先手必勝:
$1.\ SG \neq 0,\ 某個單一游戲SG >1$
$2.\ SG = 0,\ 沒有單一游戲 SG > 1$
數學歸納法證明
$1.\ $所有的終止局面為先手必勝局。
$2.\ $游戲中的任何一個先手必敗局一定只能夠轉移到先手必勝局
$3.\ $游戲中的任何一個先手必勝局一定能夠轉移到至少一個先手必敗局
想一想道理很簡單,不寫了
怎么記住呢?想想Nim游戲,全是1,必須偶數個$SG=0$才行
Multi-SG
Multi-SG游戲規定,在符合拓撲原則的前提下,一個單一游戲的后繼可以為多個單一游戲
Multi-SG其他規則與SG游戲相同。
仍然可以使用SG函數,后繼為多個單一游戲的,這個后繼的SG值為多個單一游戲SG的異或和
對於Anti-Nim,同樣有個規律:
$\mod 4=3$ 時$sg(x)=x+1$,$\mod 4=0$ 時$sg(x)=x-1$,其他不變
Every-SG
Every-SG 游戲規定,對於還沒有結束的單一游戲,游戲者必須對該游戲進行一步決策
Every-SG 游戲的其他規則與普通SG 游戲相同
貪心:先手必勝的盡量長,先手必敗的盡量短
對於SG值為0的點, 我們需要知道最快幾步能將游戲帶入終止狀態
對於SG值不為0的點,我們需要知道最慢幾步游戲會被帶入終止狀態
我們用step函數來表示這個值。
$step(u) =$
\begin{cases}
0, & \text{$u為終止狀態$}\\
max\{step(v)\}+1, & \text{ $sg(u)\neq 0\land v為u的后繼\land sg(v)=0$ }\\
min\{step(v)\}+1, & \text{$sg(u)=0\land v為u的后繼$}
\end{cases}
定理:對於Every-SG游戲先手必勝當且僅當單一游戲中最大的$step$為奇數。
證明
$1.\ $對於所有的單一游戲,
先手必勝狀態的$step$值為奇數,先手必敗狀態的$step$值為偶數
$2.\ $設最大的$step$為$step_{max}$,
那么勝手可以保證該單一游戲最少會在$step_{max}$步結束,所有他必敗游戲最多在$step_{max}$步結束。
因為必勝的游戲敗者每次最多使他的$step-1$,必敗的游戲也是每次都可以$step-1$,所以可以保證
翻硬幣游戲:
N 枚硬幣排成一排,有的正面朝上,有的反面朝上。我們從左開始對硬幣按1 到N 編號。
游戲者根據某些約束翻硬幣(如:每次只能翻一或兩枚,或者每次只能翻連續的幾枚),但他所翻動的硬幣中,最右邊的必須是從正面翻到反面。
誰不能翻誰輸。
每一個硬幣可以看成獨立的子游戲,所以:
局面的SG 值為局面中每個正面朝上的棋子單一存在時的SG值的異或和。
一個經典的問題是每次翻動向左連續的幾枚,有一個規律:
$SG(x)=lowbit(x)$
階梯Nim
N個階梯,限制每次從上一個階梯移到下一個階梯
階梯Nim只考慮奇數位置進行Nim游戲,因為偶數位置是對稱的,我們有平衡的操作
樹上刪邊游戲
給出一個N個點的有根樹。
游戲者輪流從樹中刪去邊,刪去一條邊后,不與根節點相連的部分將被移走。
無邊可刪者輸。
葉子節點的SG值為0,中間節點的SG值為它的所有孩子的SG值加1后的異或和。
數學歸納法證明
$1.\ $一個和兩個節點顯然成立
$2.\ $ $k$個節點根為$B$的子樹$G'$成立,證明$G$成立
先證明根有一個孩子成立
看論文吧太多了
根有多個孩子:孩子和連向父親的邊組成的圖可以等效成Nim中一堆石子
擴展:一些節點多出去一個環?好像是Multi-SG唉!
奇環的后繼狀態:兩條奇偶性相同的鏈,異或和一定沒有1
所以奇環的$SG=1$,可以等效成一條長為1的鏈
偶環的后繼狀態:兩條奇偶性不同的鏈,異或和一定沒有0
所有偶環$SG=0$,等效成一個點(也就是不考慮啦)
無向圖的刪邊游戲
一個無相聯通圖,有一個點作為圖的根。
游戲者輪流從圖中刪去邊,刪去一條邊后,不與根節點相連的部分將被移走。
無邊可刪者輸。
定理:
我們可以對無向圖做如下改動:
將圖中的任意一個偶環縮成一個新點,任意一個奇環縮成一個新點加一個新邊;
所有連到原先環上的邊全部改為與新點相連。
這樣的改動不會影響圖的SG值。