博弈知識點整理

博弈知識點整理

博弈滿足的條件:
玩家只有兩個人,輪流做出決策
遊戲的狀態集有限,保證遊戲在有限步後結束,這樣必然會產生不能操作者,其輸
對任何一種局面,勝負只決定於局面本身,而與輪到哪位選手無關


一、巴什博弈(Bash Game)

  1. 問題模型:
    只有一堆n 個物品,兩個人輪流從這堆物品中取物,規定每次至少取一個,最多取m 個,最後取光者得勝。
  2. 解決思路:
    n=m+1 時,由於一次最多隻能取m 個,所以無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝,所以當一方面對的局勢是n 時,其面臨的是必敗的局勢。所以當n=m+1)r+s ,(r 爲任意自然數,sm )時,如果先取者要拿走s 個物品,如果後取者拿走x(xm) 個,那麼先取者再拿走m+1k 個,結果剩下(m+1)(r1) 個,以後保持這樣的取法,那麼先取者肯定獲勝。總之,要保持給對手留下m+1 的倍數,就能最後獲勝。
  3. 變形:
    條件不變, 改爲最後去光的人輸。
  4. 解決思路:
    結論:當(n1)%(m+1)==0 時後手勝利。

二、尼姆博弈(Nim)

  1. 題目類型:
    有三堆各若干個物品,兩個人輪流從某一堆取任意多的物品,規定每次至少取一個,多者不限,最後取光者得勝。
  2. 解決思路:
    abc 表示某種局勢,顯證000 是第一種奇異局勢,無論誰面對奇異局勢,都必然失敗。第二種奇異局勢是0nn ,只要與對手拿走一樣多的物品,最後都將導致000 。 根據0nn , 我們可一得到a^b^c == 0 爲必敗狀態。

    證明a^b^c != 0爲必勝
    拓展到n個數


三、約數博弈:

  1. 題目類型:
    甲乙兩個人玩一個博弈遊戲。遊戲初始狀態包含1-n, 這n個正整數。
    甲乙兩個人輪流玩這個遊戲。每輪遊戲中,遊戲者任意選擇一個還存在的數,然後刪掉它和它所有的約數。
    誰最後沒有數可刪,誰就輸掉了。
  2. 解決思路:
    先手有必勝策略。這個證明不是構造性的,也就是說沒有給出先手怎麼下才能贏。反證法:假設後手B有必勝策略,而先手A第一次取數1,B取了一個數x是必勝策略,然而A完全可以第一次取x(同時也必取了1)是必勝策略。故B必沒有必勝策略。
  3. 變形:
    考慮一個新的規則“不準寫數字1”。如果加上這個新規則後先寫者有必勝策略,那麼這個策略對於原遊戲同樣適用(因爲1是所有數的約數,本來就不能寫);如果在新規則下後寫者必勝,則原遊戲中的先寫者寫下數字1,然後他就變成了新規則下的後寫者。於是不管怎麼樣,先寫者總是有必勝策略。

四、 斐波那契數列博弈(Fibonacci)

  1. 問題類型:
    有一堆個數爲n的石子,遊戲雙方輪流取石子,滿足:
    • 先手不能在第一次把所有的石子取完;
    • 之後每次可以取的石子數介於1到對手剛取的石子數的2倍之間(包含1和對手剛取的石子數的2倍)。 約定取走最後一個石子的人爲贏家。
  2. 解決思路:
    當n爲Fibonacci數時,先手必敗。即存在先手的必敗態當且僅當石頭個數爲Fibonacci數。
  3. 證明:
    用第二數學歸納法證明:
    • 爲了方便,我們將n 記爲f[i] 。當i=2 時,先手只能取1 顆,顯然必敗,結論成立。
    • 假設當i<=k 時,結論成立。 則當i=k+1 時,f[i]=f[k]+f[k1]
      則我們可以把這一堆石子看成兩堆,簡稱k 堆和k1 堆。
      • (一定可以看成兩堆,因爲假如先手第一次取的石子數大於或等於f[k1] ,則後手可以直接取完f[k] ,因爲f[k]<2f[k1]
    • 對於k1 堆,由假設可知,不論先手怎樣取,後手總能取到最後一顆。下面我們分析一下後手最後取的石子數x的情況:
      • 如果先手第一次取的石子數y>=f[k1]3 ,則這小堆所剩的石子數小於2y ,即後手可以直接取完,此時x=f[k1]y ,則x<=23f[k1]
      • 我們來比較一下23f[k1]12f[k] 的大小。即4f[k1]3f[k] 的大小,對兩值作差後不難得出,後者大。
      • 所以我們得到,x<12f[k] 。即後手取完k1 堆後,先手不能一下取完k 堆,所以遊戲規則沒有改變,則由假設可知,對於k 堆,後手仍能取到最後一顆,所以後手必勝。 即i=k+1 時,結論依然成立。
    • 那麼,當n不是Fibonacci數的時候,情況又是怎樣的呢?
      • 這裏需要藉助“Zeckendorf定理”(齊肯多夫定理):任何正整數可以表示爲若干個不連續的Fibonacci數之和。
      • 分解的時候,要取儘量大的Fibonacci數。

        比如分解85:85在55和89之間,於是可以寫成85=55+30,然後繼續分解30,30在21和34之間,所以可以寫成30=21+9,依此類推,最後分解成85=55+21+8+1。

      • 則我們可以把n 寫成 n=f[a1]+f[a2]++f[ap]a1>a2>>ap
      • 我們令先手先取完f[ap] ,即最小的這一堆。由於各個f 之間不連續,則ap1>ap+1 ,則有f[ap1]>2f[ap] 。即後手只能取f[ap1] 這一堆,且不能一次取完。
      • 此時後手相當於面臨這個子游戲(只有f[ap1] 這一堆石子,且後手先取)的必敗態,即先手一定可以取到這一堆的最後一顆石子。
      • 同理可知,對於以後的每一堆,先手都可以取到這一堆的最後一顆石子,從而獲得遊戲的勝利。

威佐夫博奕


五、公平組合博弈(Impartial Combinatori Games)

  1. 定義:
    (1)兩人蔘與。
    (2)遊戲局面的狀態集合是有限。
    (3)對於同一個局面,兩個遊戲者的可操作集合完全相同
    (4)遊戲者輪流進行遊戲。
    (5)當無法進行操作時遊戲結束,此時不能進行操作的一方算輸。
    (6)無論遊戲如何進行,總可以在有限步數之內結束.
  2. 模型:給定一個有向無環圖和一個起始頂點上的一枚棋子,兩名選手交替的將這枚棋子沿有向邊進行移動,無法移動者判負。事實上,這個遊戲可以認爲是所有公平組合遊戲(Impartial Combinatori Games)的抽象模型。其實,任何一個ICG都可以通過把每個局勢看成一個頂點,對每個局勢和它的子局勢連一條有向邊來抽象成這個“有向圖遊戲”。
    • 一個狀態是必敗狀態當且僅當他的所有後繼狀態都是必勝狀態
    • 一個狀態是必勝狀態當且僅當他至少有一個後繼點是必敗狀態
  3. Sprague-Grudy定理 (SG函數):
    • N={0,1,2,3,...} 爲自然數的集合。Sprague-Grundy 函數給遊戲中的每個狀態分配了一個自然數。結點v的Grundy值等於沒有在v的後繼的Grundy值中出現的最小自然數.
    • 形式上:給定一個有限子集SN ,令mex S(最小排斥值)爲沒有出現在S中的最小自然數。定義mex(minimal excludant)運算,這是施加於一個集合的運算,表示最小的不屬於這個集合的非負整數。例如mex{0,1,2,4}=3mex{2,3,5}=0mex{}=0
    • 對於一個給定的有向無環圖,定義關於圖的每個頂點的Sprague-Garundy函數g如下:g(x)=mex{g(y)|yx}
  4. 性質:
    • (1)所有的終結點所對應的頂點,其SG值爲0 ,因爲它的後繼集合是空集——所有終結點是必敗點(P點)。
    • (2)對於一個g(x)=0 的頂點x ,它的所有後繼y 都滿足g(y)!=0 ——無論如何操作,從必敗點(P點)都只能進入必勝點(N點)//對手走完又只能把N留給我們。
    • (3)對於一個g(x)!=0 的頂點,必定存在一個後繼點y滿足g(y)=0 ——從任何必勝點(N點)操作,至少有一種方法可以進入必敗點(P點)//就是那種我們要走的方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章