博弈論總結(已更新二分圖博弈)

[TOC]html

博弈論


  • 如下主要內容來自於對集訓隊論文《組合遊戲略述——淺談SG遊戲的若干拓展及變形》的整理與從其餘地方收集補充的一些經典模型
  • 博弈論還在學習過程當中,可能還會補充一些東西 ---update in 2019.1.31---已更新二分圖博弈

##組合遊戲基礎定義 ###遊戲的定義:算法

  • 遊戲有2名參與者,兩人輪流操做
  • 遊戲過程當中的任意時刻有肯定的狀態
  • 參與者操做時將遊戲從當前狀態轉移到另外一狀態,且規則規定了在任意狀態時,能夠到達的狀態集合
  • 在有限步數以內結束(沒有平局)
  • 參與者擁有徹底的信息

###遊戲的表示: 定義:對於一個遊戲,若是當前狀態$P$,玩家$L$能夠轉移到的狀態爲$P_L$,玩家$R$能夠轉移到的狀態爲$P_R$,那麼記$P = {P_L | P_R}$ 例子:假設當前狀態爲$P$,玩家$L$能夠轉移到的狀態爲$A, B, C$,玩家$R$能夠轉移到的狀態爲$D$。 那麼$P = {A, B, C | D}$函數

###遊戲的和: 若是一個遊戲$G$,能夠被分解成若干個不相交的子游戲$G_1, G_2, G_3...G_n$,且知足在$G$中的操做等價與在子游戲中選一個進行操做,那麼咱們稱$G$是這若干個子游戲的和,即$G = \sum_{i = 1}^{n}G_i$學習

##組合遊戲模型 ###SG遊戲中的SG函數與相關定理 ####SG遊戲定義: 這樣一類組合遊戲:沒法操做者輸 ####SG函數定義: SG函數是對遊戲圖中每個節點的評估函數。知足以下等式: $$SG(v) = mex{SG(u) | 圖中有一條從v到u的邊}$$ 其中$mex(x_1, x_2...x_t)$是定義在非負整數集合上的操做,自變量是任一非負整數集合。獲得的結果是不屬於該集合的最小天然數。即: $$mex{S} = min(k | k \notin A \land k \in N)$$spa

####性質:.net

1,對於任意局面,若是它的SG值爲0,那麼它的任意後繼SG值不爲0 2,對於任意局面,若是它的SG值不爲0,那麼必定有一個後繼狀態的SG值爲0 在SG遊戲中,SG值爲0時先手必敗。 3,在每次只能進行一步操做的狀況下,對於任何遊戲的和,若是將其中任一單一SG-組合遊戲換成數目爲它SG值的一堆石子,則該單一SG-組合遊戲的規則變爲取石子游戲的規則(能夠任意取),則遊戲的和的勝負不變。 #####變式: 若只考慮遊戲的和,咱們能夠將其中任一遊戲換成SG值相等的其餘遊戲,遊戲的和的SG值不變。htm

所以,在考慮遊戲的和時,咱們不關心每一個單一遊戲具體是什麼,咱們惟一要關心的就是這個單一遊戲的SG值。因而可知,咱們能夠把任意遊戲的和轉換爲Nim遊戲,這樣計算起來就很方便了。 ###Anti-SG遊戲和SJ定理 ####Anti-SG遊戲定義: 走完最後一步者輸,即決策集合爲空者贏(由於沒法操做)blog

$\Delta$求解Anti-SG遊戲時,依然可使用SG函數求解。 ####anti-nim遊戲 定義:遊戲

  • 有$n$堆石子,參與者輪流取石子。
  • 每次能夠從一堆中取出任意數目的石子,不能不取
  • 取走最後一個石子者敗

結論: 先手必勝當且僅當ip

  • 全部堆的石子數都爲$1$且遊戲的SG值爲$0$
  • 有些堆的石子數大於$1$且遊戲的SG值不爲$0$

證實: 兩種狀況:

  • 有$n$個堆,每一個堆只有一個石子。顯然,先手必勝當且僅當$n$爲偶數
  • 其餘狀況:
  • 當SG不爲$0$時   若還有至少兩堆石子的數目大於$1$,則先手將SG值變爲$0$便可;若只有一堆石子數大於$1$ 則先手總能夠將狀態變爲有奇數個$1$(經過取完or取到只剩一個).因此先手必勝。
  • 當SG爲$0$時   若至少有兩堆石子的數目大於$1$,則先手決策完以後,一定至少有一堆石子大於$1$,且SG值不爲$0$,因此先手必敗。

但上述證實只對anti-nim遊戲成立,由於在證實SG性質時,用到了這樣一個性質:SG值爲0的局面不必定爲終止局面。

####SJ定理 嘗試將上述方法推廣。 先看一個錯命題

先手必勝當且僅當: 1,全部單一遊戲的SG值小於$2$且遊戲的SG值爲$0$ 2,存在單一遊戲的SG值大於$1$且遊戲的SG值不爲$0$ image_1d1aond85ven1tsga7coc42fq9.png-18kB
在上圖中,這個命題就不成立

定義:

對於任意一個Anti-SG遊戲,若是咱們規定當局面中全部的單一遊戲的SG值爲0時,遊戲結束,則先手必勝當且僅當: 1,遊戲的SG函數不爲0且遊戲中某個單一遊戲的SG函數大於1 2,遊戲的SG函數爲0且遊戲中沒有單一遊戲的SG函數大於1

證實: 須要證實以下3種狀況: 1,全部終止局面爲先手必勝.(終止局面指決策集合爲空的局面,即沒法決策) 2,遊戲中任何一個先手必敗局必定只能轉移到先手必勝局。 3,遊戲中的任何一個先手必勝局必定能轉移到至少一個先手必敗局。

**狀況一:**局面的SG函數爲0且遊戲中某個單一遊戲的SG函數大於1. $\because$當前局面的SG函數爲0,又$\because$SG函數性質(1) $\therefore$它所能轉移到的任何一個局面的SG值不爲0 $\because$當前局面的SG值爲0且遊戲中某個單一遊戲的SG函數大於1. $\therefore$當前局面中一定至少有2個單一遊戲的SG函數大於1 又$\because$每次之多隻能更改一個單一遊戲的SG值 $\therefore$它能轉移到的任何一個局面都至少有一個單一遊戲的SG值大於1 由上述得:狀況一所能轉移到的任何一個局面都爲先手必勝局

**狀況二:**局面的SG函數不爲0且遊戲中沒有單一遊戲的SG函數大於1 能夠發現,當前局面必定有奇數個遊戲的SG值爲1,其他遊戲的SG值爲0. 1,將某個單一遊戲的SG值更改成大於1的數。 $\because$轉移前沒有單一遊戲的SG值大於1,而轉移將某個單一遊戲的SG值更改成大於1的數 $\therefore$轉移後的局面必定有且只有一個單一遊戲的SG值大於1 $\therefore$後繼局面的SG值必定不爲0 所以,後繼局面必定爲先手必勝局 2,將某個單一遊戲的SG值更改成0或1. $\because$轉移是將某個SG值爲0的單一遊戲改爲SG值爲1的單一遊戲,或將某個SG值爲1的單一遊戲改爲SG值爲0的單一遊戲。 $\therefore$轉移後的局面必定有偶數個SG值爲1的單一局面,且不含有SG值大於1的局面(什麼意思???) $\therefore$後繼局面必定爲先手必勝

**狀況三:**局面的SG函數不爲0且遊戲中某個單一遊戲的SG函數大於1. 1,局面中只有1個單一遊戲的SG值大於1。 選擇更改SG最大的單一遊戲,能夠將其更改成0或1來保證轉移後的局面有且只有奇數個SG值爲1的單一遊戲。(同anti-nim遊戲) 2,局面中至少有2個單一遊戲的SG值大於1。 根據SG函數性質2,總存在一種決策能夠將後繼局面的SG值變爲0. $\because$局面中至少有2個單一遊戲的SG值大於1 又$\because$每次最多隻能改變一個單一遊戲的SG值。 $\therefore$後繼局面中至少有一個遊戲的SG值大於1 所以,後繼局面爲先手必敗

**狀況四:**局面的SG函數爲0且遊戲中沒有單一遊戲的SG函數大於1. 當局面中全部單一遊戲的SG值爲0時,遊戲結束,先手必敗。(???) 不然,局面有且僅有偶數個SG值爲1的單一遊戲,其他遊戲的SG值爲0. 咱們只須要將其中的某一個SG值爲1的單一遊戲的SG值變爲0,遊戲中便可出現奇數個SG值爲1的單一遊戲,到達先手必敗態

$\Delta$SJ定理中的:"規定當局面中全部單一遊戲的SG值爲0時,遊戲結束"能夠被替換爲"當局面中全部單一遊戲的SG值爲0時,存在一個單一遊戲知足SG值可以經過一次操做變爲1"

###Multi-SG遊戲 ####定義: 1,在符合拓撲原則的前提下,一個單一遊戲的後繼能夠爲多個單一遊戲 2,其餘規則與SG遊戲相同 ####求解: 能夠經過將SG函數適當變形來解決。只須要證實:咱們依然能夠用SG函數來定義局面。 由於局面在遊戲樹中知足拓撲關係(無環),因此咱們能夠根據拓撲關係用數學概括法來證實。

###Every-SG遊戲 ####定義: 1,對於任意單一遊戲,若是還未結束,那麼就必須操做 2,其餘規則同SG遊戲 ####求解: 對於咱們必勝的單一遊戲,一定是玩的時間越長越優,對於必輸的單一遊戲,確定是玩的時間越短越優。 那麼據此有以下解法: 經過遊戲圖計算某個狀態的SG函數(只需得知是否爲0便可),對於SG爲0的點,須要知道最快幾步能夠結束遊戲,對於SG不爲0的點,須要知道最慢幾步遊戲會結束,用$step$函數來表示這個值 $$step(v) \begin{cases} 0 \quad v爲終止狀態\ max(step(u)) + 1 \quad SG(v) > 0 \land u爲v的後繼狀態\ min(step(u)) + 1 \quad SG(v) = 0 \land u爲v的後繼狀態\ \end{cases}$$

定理:對於Every-SG遊戲,先手必勝當且僅當單一遊戲中最大的step爲奇數。

證實:略…… ##常見博弈模型 ###Nim遊戲 問題:$n$堆石子,每次從某一堆中拿若干個,沒法操做者輸。 **結論:**全部石子數異或和爲$0$則後手勝,不然前手勝。 證實: 基於一個發現:若是有且只有$2$堆相同數量的石子,那麼後手必勝。 這個發現能夠進行推廣,若是一個狀態能夠被一分爲二到$2$個相同狀態,那麼後手必勝。 能夠看作把$n$堆石子分爲$2$組,每一組徹底相同,那麼A無論對其中的某一組作了什麼操做,B均可以對另一組作徹底相同的對稱性可知,B必定會贏。知足這樣的一個條件的狀態異或和爲0; 用概括法來嘗試證實:(不嚴謹) 若是任意一個狀態必輸,實質上都是因爲一個集合S內的若干個狀態必輸(能夠經過SG函數的推導轉化過來),那麼稱集合S爲基礎必輸態集合。 根據遊戲的定義,nim遊戲的基礎必輸態集合大小爲1,裏面只有一個元素,$S = {0}$. 而$0$的異或和爲$0$。 所以只須要證實對於任意一個異或和不爲$0$的狀態,均可以經過某種方式變爲異或和爲$0$的狀態。對於任意一個異或和爲$0$的狀態,沒法經過任意轉移變爲異或和爲$0$的狀態。

對於異或和不爲$0$的狀態。設它們的異或和最高位爲$k$,則必定有一個數的最高位也爲$k$。

所以咱們能夠考慮對這個數進行操做。若是異或和的某一位爲$0$,則咱們不對這個數的這一位作任何改變;反之,咱們對這一位取反。那麼由異或和的特效能夠得知,全部爲$0$的位不變,依然爲$0$.而全部爲$1$的位狀態改變,再也不爲$1$,所以這個後繼狀態的異或和就爲$0$了。而由於第$k$位變爲了$0$,且其餘狀態取反的位都小於$k$,所以這個數必定會減少,所以咱們必定能夠取出必定數量的石子達到目的。

對於異或和爲$0$的狀態,由於只能改變某一堆石子且必須作出改動,因此無論改哪一堆石子,都必然會使得至少一位的狀態改變,從$0$變爲$1$.

###NimK遊戲 問題:$n$堆石子輪流取,每次能夠任選$m$堆取任意個,沒法操做者輸,求是否先手必勝。 **結論:**在二進制意義上,若是每一位的$1$的個數都是$m + 1$的倍數,那麼先手必輸。Nim遊戲能夠看作$m = 1$的NimK遊戲。由於異或就至關於把每一位$1$的個數加起來對$2$取模.

###巴什博弈 **問題:**一堆n個物品,2人輪流從這堆物品中取物,每次取$1$~$m$個,沒法操做者輸。 結論(解法): 若$n = (m + 1)r + s$其中$r$爲任意天然數,$s \le m$,即$n % (m + 1) != 0$,則先手必勝。 **證實:**根據題意,若是剩下的石子小於等於$m$個,那麼此時先手必勝。所以若是剩下的石子是m + 1個,那麼先手取後,一定剩下小於等於$m$個石子,所以$m + 1$是先手必敗態。 因此若是$n % (m + 1) != 0$,那麼先手只須要每次保持下一次的石子數是$m + 1$的倍數便可,這顯然是可作到的。

###威佐夫博弈 **問題:**有兩堆若干個物品,兩我的輪流從某一堆或同時從$2$堆中取一樣多的物品,規定每次能夠取任意個,但必須取。沒法操做者輸。 **奇異局勢:**稱先手必敗局爲奇異局勢,那麼前$n$個奇異局勢爲: $$(0, 0), (1, 2), (3, 5), (4, 7), (6, 10), (8, 13)……$$ 令$k$表示奇異局勢的編號,則$(a[k], b[k])$表示第$k$個奇異局勢,其中$(0, 0)$爲第$0$個奇異局勢。 能夠發現:$a[k]$是未在前面出現過的最小天然數,而$b[k] = a[k] + k$. **性質:**任何天然數都包含在一個,且僅有一個天然數裏。 證實:$\because a[k]$是未在前面出現過的最小天然數,因此有 $$a[k] > a[k - 1]$$ $$b[k] = a[k] + k > a[k - 1] + k > a[k - 1] + k - 1 = b[k - 1] > a[k - 1]$$ 因此$b,a$都不會重複,顯然會包含全部的天然數。 **結論:**奇異局勢知足以下等式: $$a[k] = \frac{b[k] - a[k]}{1.618} = \frac{b[k] - a[k]}{\frac{\sqrt{5} + 1}{2}}$$

###斐波那契博弈 **問題:**有一堆n個石子,2人輪流取,先取者能夠取走任意多個,但不能全取完,之後每人取的石子數不能超過上我的的2倍,沒法操做者輸。 **結論:**先手必敗當且僅當石子數爲斐波那契數

###翻硬幣遊戲 **問題:**通常的翻硬幣遊戲規則以下:

  • $n$枚硬幣排成一排,有的正面朝上,有的反面朝上,從左到右依次編號。
  • 遊戲者根據某些約束翻硬幣(如:每次只能翻1或2枚,或者每次只能翻動連續的幾枚),但他所翻動的硬幣中,最右邊的那個必須是從正面翻到反面
  • 沒法操做者輸 **結論:**局面的SG值爲局面中每一個正面朝上的棋子單一存在時的SG值的異或和。 image_1d1cvbn5km571j5gsjhimu1vmvp.png-102.4kB $\Delta$在某種意義上,它的決策與Nim遊戲徹底等價。

###無向圖刪邊遊戲

####樹的刪邊遊戲 **問題:**有以下規則:

  • 給出一個有$n$個節點的有根樹。
  • 遊戲者輪流從樹中刪去邊,刪去一條邊後,不與根節點相連的部分將被移走。
  • 沒法操做者輸 **結論:**葉子節點的SG值爲0,中間節點的SG值爲它全部子節點的SG值加1後的異或和。

####無向圖刪邊遊戲

  • 一個無向聯通圖,有一個點做爲圖的根
  • 遊戲者輪流從圖中刪去邊,刪去一條邊後,不與根相連的部分將被移走。
  • 沒法操做者輸

####Fusion Principle定理

對無向圖作以下改動:將圖中任意一個偶環縮成一個新點,任意一個奇環縮成一個新點加一個新邊;全部連到原先環上的邊所有與新點相連,這樣的改動不會影響圖的SG值。

所以能夠將任意無向圖改爲樹形結構。

###二分圖博弈 **問題:**基於如下幾點: 1,共2人蔘與。 2,博弈狀態(對應節點)可分爲兩類,任意合法轉移都是在兩類狀態之間轉移,而不能在任意一類狀態內部轉移。 3,不能夠轉移到已訪問狀態 4,沒法轉移者輸 解法: 觀察題目的特殊性,咱們發現,將每一個狀態看作一個點,那麼這些點和合法轉移會構成一個二分圖。 將S集合視做輪到先手決策的點,T集合則表明輪到後手決策的點。 咱們先跑一遍二分圖匹配,對於任意一點x,有2種狀況: 1,不屬於最大匹配(非匹配點)   走一步後必然會走到一個匹配點,不然若是遇到一個非匹配點就會造成一條增廣路,那麼就不符合最大匹配的前提。而走到一個匹配點後,對方能夠不斷沿着匹配邊走,最後必然會停留在S集合,也就是先手必輸。由於若是停留在T集合,依然至關於找到了一條增廣路,不符合前提。 2,屬於最大匹配   根據1中的描述可知,這個點先手必勝。 其餘:

若是一個點$x$,在某種狀況下不屬於最大匹配,那麼無論它怎麼走,走到的目標節點必定會在某種狀況下屬於最大匹配,所以若是從點$x$開始會致使先手必敗。反之,若是一個點$x$在任意狀況下都屬於最大匹配(即爲最大匹配的必須點),則先手必勝。

如何檢驗? 1,最暴力的方法:把$x$從原圖中刪去,再跑最大匹配,若是跑出的最大匹配大小不變,則說明是非必須點。 2,稍微巧妙一點的方法:考慮一個$x$是必須點,至關於沒有點能夠取代$x$,所以咱們從$x$開始遍歷,看是否能夠找到一個同側的未匹配點,若是能夠找到,則說明$x$爲非必須點。 即咱們在用匹配點來尋找是否有點能夠替換掉它。所以咱們能夠在$n + m$的時間內判斷出一個點是否爲必須點。

將這個作法進行推廣,咱們能夠獲得一個判斷二分圖中有沒有$x$是非必須點的方法: 從每一個未匹配點$x$開始遍歷,將通過的同側點打上標記,最後檢驗是否有匹配點被打上標記,有則圖中至少有一個非必須點,所以若是後手能夠選擇開始的位置,那麼先手必敗。

##不平等博弈 ###Surreal Number ####如下內容主要參考自: 如今看不懂……之後再看…… 睡前說:超現實數 實數、超實數和博弈遊戲:數學的結構之美 淺談算法——博弈論 博弈論的總結 簡單博弈論 博弈論總結 《淺談如何解決不平等博弈問題》 Wiki百科 ####定義: #####SN的定義: 爲了簡便起見,下文中將Surreal Number簡寫爲SN. 定義SN爲一個由左集合與右集合組成,表示爲${L | R}$的一個東西。且知足以下性質: 左集合和右集合中的元素也是SN,且左集合中的元素嚴格小於右集合中的元素

#####符號的定義:

  • $\le$:對於$x = { X_L | X_R }$和$y = {Y_L | Y_R}$,咱們稱$x \le y$當且僅當不存在$x_L \in X_L$使得$y \le x_L$,以及不存在$y_R \in Y_R$使得$y_R \le x$
  • $<$:$x < y$表示$x \le y \land \urcorner (y \le x)$
  • $=$:$x = y$表示$x \le y \land y \le x$
  • $+$:設有$x = { X_L | X_R}$和$y = {Y_L | Y_R}$.那麼$$x + y = { X_L | X_R} + {Y_L | Y_R} = {X_L + y, x + Y_L | X_R + y, x + Y_R}$$ 其中對於集合$X$與SN$y$的運算:$X + y = {x + y : x \in X}$ 邊界狀況:$\varnothing + n = \varnothing$

####SN的構造方法: 首先有${\varnothing | \varnothing} = { | } = 0$,所以咱們能夠用0來構造其餘SN,能夠獲得${0 | }, {| 0}, {0 | 0}$. $\because 0 \le 0 \quad \therefore {0 | 0}$不合法 $\because {|0} < 0 < {0|} \quad \therefore{|0} = -1, {0|} = 1$ 利用0, 1, -1能夠構造出7個合法的SN: $\because {1 | } > 1, {| 1} < -1 \quad \therefore {1 | } = 2, {| 1} = -2$ $\because 0 < {0 | 1} < 1$且${0 | 1} + {0 | 1} = 1 \quad \therefore {0 | 1} = \frac{1}{2}$ 同理${-1 | 0} = - \frac{1}{2}$ $\Delta$如此類推,能夠構造出全部形如$\frac{j}{2^k}$的有理數,定義達利函數爲: $$\delta(x) \begin{cases} {1},\quad x = 0 \ {\delta(x - 1)|}, \quad x > 0 \land x \in z\ {|\delta(x + 1)}, \quad x < 0 \land x \in z\ {\delta(\frac{j - 1}{2^k}) | \delta(\frac{j + 1}{2^k})}, \quad x = \frac{j}{2^k} \land j, k \in z \land k > 0 \end{cases}$$

定理:對於一個SN $x = {L | R}$,若$L$中有最大元素$L_{max}$,那麼${L_{max} | R} = x$ ;相似的,若集合$R$中有最小元素$R_{min}$,那麼${L | R_{min}} = x$ 例如:${2, 3 | 4, 5} = {3 | 4, 5} = {2, 3 | 4} = {3 | 4}$

####SN在遊戲中的應用 對於一個遊戲$G$,有以下結論:

  • 若是$G > 0$,那麼不論先手仍是後手,$L$都會獲勝
  • 若是$G < 0$,那麼不論先手仍是後手,$R$都會獲勝
  • 若是$G = 0$,那麼誰後手誰獲勝

定理:若是$G = (SN)x, H = (SN)y \Longrightarrow G + H = (SN) x + y$

相關文章
相關標籤/搜索