前言
本人其實博弈論也學得不咋的,不少蜻蜓點水,並沒有深入地研究,而且知識可以說是大部分抄的書上,但是也特作此文以便自己復習和方便各位神犇。
異或
概念
符號:\(\wedge,xor\)
運算法則:對應二進制位下相異為1,相同為0.
異或和:一堆數的異或起來的值,如\(\{x_1,x_2,..,x_n\}\)的異或和為\(x_1\wedge x_2\wedge ...\wedge x_n=\wedge_{i=1}^n x_i\)。
異或和圖的性質
- 你可以憑空到達任意一個位置
- 環等同於異或空間
- 鏈可以由環更改路徑
性質
- 交換律 \(a\wedge b=b\wedge a\)
- 結合律 \(a\wedge b\wedge c=a\wedge (b\wedge c)\)
- \(a=b\Longleftrightarrow a\wedge c=b\wedge c\)
1.推論: 不同的數異或同一個數得到結果不同 - 不進位的加法
- 異或可以與加法減法對應
線性基
性質:
- 線性基由原序列的一些數構成
- 異或和為0即線性基無法加入該數(應用:異或和為0的判斷)
- 異或空間為2的線性基個數的次方,多次異或沒有意義
- 有n個 不同的 數,設線性基個數k,每個數重復\(2^{n-k}\)次。
證明:
對於k個基,剩下的n-k個數每個數與基所產生的數進行異或,必然值各不相同,所以必然每個值重復一次,於是總的來說重復\(2^{n-k}\)次。
Nim博弈
基礎概念
局面
游戲過程中面臨的狀態。
先手
游戲中第一個行動者。
后手
游戲中第二個行動者。
必敗
在某一局面無論采取什么行動,都會輸掉游戲,則稱該局面必敗。
必勝
在某一局面能采取某種行動,使對手面臨必敗局面,則稱該局面必勝。
Nim博弈
有n堆棋子,第i堆棋子有\(a_i\)顆棋子,對戰雙方輪流從任意一堆棋子取出任意顆棋子,不能取棋子或不取棋子者失敗,問先手是否必勝。
- 注:Nim博弈不存在平局,雙方都將采取最優策略,只有先手必勝和必敗兩種情況。
Nim定理
Nim博弈中,先手必勝當且僅當\(a_1\wedge a_2\wedge...\wedge a_n=\wedge_{i=1}^na_i\neq 0\)。
證明:
博弈論中經常使用數學歸納法證明結論。
考慮邊界,沒有任何棋子,顯然異或和為0。
對於異或和不為0的局面,設\(x=\wedge_{i=1}^na_i\),對於它的最高位考慮,設其為第k位,顯然存在一個數\(a_i\)滿足其第k位上有1,而令\(a_i\wedge=x\),顯然接下來的局面異或和為0,而必然\(a_i\)也變小了,因為它損失了較高的一位上的1,於是因為異或可以和減法對應,我們可以減與異或對應,因此,任何一個異或和不為0的局面都可以將其變為0的局面。
對於異或和為0的局面,顯然無論如何選取,必然下一個局面異或和不為0,因為減可以相當與異或一個數,0異或一個數就是該數。
總上所訴,當先手在局面異或和不為0的情況下,不妨把異或和不為0的局面記做Q,異或和為0記做q,於是不難得知,接下來的局面發展先手可以做到是\(QqQqQq...q\),所以后手必然面臨必敗局面。
同理,當先手異或和為0,接下來的局勢發展,后手可以做到\(qQqQ...Q\),此時先手必然面臨必敗局面。
於是得證。
公平組合游戲(ICG)
ICG定義
若一個游戲滿足
- 由兩名玩家交替行動。
- 在游戲進程的任意時刻,可以執行的合法行動與輪到哪名玩家無關。
- 不能行動的玩家判負。
則稱該游戲為公平組合游戲。
解決辦法
有向圖游戲
定義
給定一個有向無環圖(DAG)(具有可遞推性),圖中有唯一一個起點,在起點上放有一枚棋子,兩名玩家交替地把這枚棋子沿有向邊移動,每次可以移動一步,無法移動者判負,該游戲被稱為有向圖游戲
性質
任何一個公平組合游戲,都可以被看作有向圖游戲。
Mex運算
定義
設S為非負整數集合,定義Mex(S)為求出不屬於集合S的最小非負整數的運算,即
性質
- 暴力求時間復雜度\(O(n)\)
- 如果\(Mex(S)=x\),則集合中必然有\(1-x-1\)的數。
SG函數
定義
在有向圖游戲中,對於每個節點x,設從x出發有k條有向邊,分別到達節點\(y_1,y_2,...,y_k\),定義\(SG(x)\)為x的后繼節點的SG函數值構成的集合進行Mex運算后的結果,即
特別地,整個有向圖游戲G的SG函數值被定義為有向圖游戲起點S的SG函數值,即\(SG(G)=SG(S)\)。
另外對於失敗局面的SG函數值定義為0.
有向圖游戲的和
設\(G_1,G=2,...,G_m\)是m個有向圖游戲,定義有向圖游戲G,它的行動規則是任選某個有向圖\(G_i\),並在\(G_i\)上行動一步,則G被稱為有向圖游戲的和。
有向圖游戲和的SG函數值被定義為各個子游戲的SG函數值的異或和,即
SG定理
定理1
- 有向圖游戲的某個局面必勝,當且僅當該局面對應的節點的SG函數值大於0.
- 有向圖游戲的某個局面必敗,當且僅當該局面對應的節點的SG函數值等於0.
證明:
對於邊界考慮,顯然末局面即失敗的局面,SG函數值為0。
而對於SG函數值不為0的局面,顯然它的后繼節點存在SG函數值為0的局面,於是對於任意一個SG函數值不為0的局面,都可以到達一個SG函數值為0的局面。
而對於SG函數值為0的局面,顯然它的后繼節點不可能存在SG函數值為0的局面。於是對於任意一個SG函數值為0的局面,只能到達SG函數值不為0的局面。
總上有,當該局面SG函數值不為0,記不為0局面為\(Q\),為0局面\(Q\),接下來的局面先手一定可以這樣發展\(QqQqQq...q\),使后手面臨必敗局面。
當該局面的SG函數值為0,后手必然可以使局面按\(qQqQ...q\)發展,而先手必然面臨必敗局面。
所以得證。
定理2
多個有向圖游戲組成的游戲\(\{G_i,n\}\)必勝,當且僅當有向圖游戲的和的SG函數值不為0.
證明:
對於末局面,顯然有向圖游戲的和SG函數值為0。
對於有向圖游戲和SG函數值不為0的局面,記\(x=\wedge_{i=1}^nSG(G_i)\),記最高位為第k位,必然有一個\(SG(G_i)\)滿足其第k位不為0,而因為Mex操作的性質和異或與減法的對應,令\(SG(G_i)\wedge=x\),我們必然可以將其變為小於\(SG(G_i)\),且接下來的局面有向圖游戲的異或和為0.
對於有向圖游戲和SG函數值為0的局面,不論怎樣操作,必然下一個局面不為0.
於是,對於有向圖游戲和SG函數值不為0的局面,記不為0\(Q\),為0\(q\),先手必然可以按照\(QqQq...q\)發展,使后手必敗,同理,為0的局面,后手也可以按照\(qQ...Q\)發展,於是先手必敗。
故得證。
理解
Nim游戲
其實Nim游戲就是特殊的公平組合游戲(ICG),自然也可以利用公平組合游戲證明,它是多個有向圖游戲組成的游戲,末狀態一定每個子游戲是全部面臨必敗局面。
證明:
在Nim游戲中,對於一個子圖而言,即有多少枚棋子,不妨有i枚棋子記做\(i\),於是它的SG函數值記做\(SG(i)\)
對於初始狀態,即必敗局面,必然\(SG(0)=0\),設\(SG(0)=0,SG(1)=1,...,SG(i-1)=i-1\),設\(SG(i)\)它所算出用的集合為\(\{SG(0),SG(1),...,SG(i-1)\}\),即\(\{0,1,2,...,i-1\}\),不難得知結果為i,於是根據數學歸納法\(SG(i)=i\)。
根據ICG定理2,公平組合游戲的和為\(\wedge_{i=1}^n SG(a_i)=\wedge_{i=1}^n a_i)\),故得證。
套路小結
異或
定位:博弈論中結論常聯系的地方
思考方向:
- 最高位
博弈論證明
- 數學歸納法
- 反證法
問題轉化辦法
- 階梯博弈,捆綁法
習題
新新Nim游戲
有k組棋子,每組棋子有若干堆棋子,給出\(a[i][j]\),表示第i組棋子第j堆棋子的棋子個數,兩名玩家輪流行動,每次操作可以可以選擇一組中的一堆棋子拿走任意多顆棋子,不能行動的玩家失敗,詢問先手是否必勝,\(\sum_{i=1}^k|a[i]|\leq 10^8\)。
勇士
給出一個\(n\times m\)的網格圖,有些位置存在障礙物,顯然坐標已經給出,有一個棋子放在位置\((1,1)\),兩名玩家輪流操作,每次可以選擇棋子向下移動或者向右移動,不能移動的玩家判負,詢問先手是否必勝,\(n\times m\leq 10^8\)。
尾聲
筆者本來以為自己能很輕松學會博弈論,結果到現在還是沒有真正學會,可能會因此面臨\(AFO\),但是所留下來的學習資源,希望能讓讀者走的更遠。