博弈論 SG函式筆記

2021-09-03 05:33:53 字數 1817 閱讀 2506

例一:給定n堆物品,第 i 堆物品有 ai 個。兩名玩家輪流行動,每次可以任選一堆,取走任意多個物品,可把一堆取光,但不能不取。取走最後一件物品者獲勝。兩人都採用最優策略,問先手能否獲勝。

1.1 局面:遊戲過程中面臨的狀態稱為局面。

1.2 先手與後手:整局遊戲第乙個行動的稱為先手,第二個行動稱為後手

1.3 最優策略:若在某一局面下存在某種行動,使得行動後對手面臨必敗局面,則優先採取該行動。同時,這樣的局面稱為必勝

2.1 結論:nim博弈不存在平局,只有先手必勝先手必敗兩種情況。

2.2 定理:nim博弈先手必勝,當且僅當a1 xor a2 xor a3 xor ... xor an != 0。

2.3 證明:待補充

3.1 定義:若乙個遊戲滿足:

由兩名玩家交替行動。

在遊戲程序的任意時刻,可以執行的合法行動與輪到哪名玩家無關。

不能行動的玩家判負。

3.2 解法:公平組合遊戲(icg)可以用建構函式的方法來求解局面。難點在於如何對每種icg都構造乙個合適的函式,有沒有乙個普適的函式?sg函式解決了這個問題。

4.1 定義:給定乙個有向無環圖,圖中有乙個唯一的起點,在起點上放有一枚棋子。兩名玩家交替地把這枚棋子沿有向邊進行移動,每次可以移動一步,無法移動者判負。該遊戲被稱為有向圖遊戲

4.2 推廣:任何乙個公平組合遊戲都可以轉化為有向圖遊戲。具體方法是,把每個局面看成圖中的乙個節點,並且從每個局面沿著合法行動能夠到達的下乙個局面連有向邊。

5.1 定義:設 s 表示乙個非負整數合計。定義mex(s) 為求出不屬於集合 s 的最小非負整數的運算,即

mex( s )  = min

6.1 定義:在有向圖遊戲中,對於每個節點x,設從x出發共有k條有向邊,分別到達節點y1,y2 , ... yk ,定義sg(x) 為 x 的後繼節點y1,y2,...yk的sg函式值構成的集合再執行mex運算的結果,即:

sg(x) = mex( )

特別的,整個有向圖遊戲 g 的 sg 函式值被定義為有向圖遊戲起點 s 的 sg 函式值,即sg(g) = sg(s)。

6.2 有向圖遊戲的和:設g1 , g2 , ... , gm是 m 個有向圖遊戲。定義有向圖遊戲 g ,它的行動規則是人選某個有向圖遊戲 gi,並在 gi 上行動一步。g 被稱為有向圖遊戲 g1 , g2 , ... ,gm 的和。

有向圖遊戲的和的sg函式值等於它包含的各個子遊戲sg函式值的異或和,即:sg( g ) = sg(g1) xor sg(g2) xor ... xor sg(gm)。

6.3 定理:

6.4 證明:我的能力寫不出來,參考別人的吧

博弈論 (SG函式)

首先定義mex minimal excludant 運算,這是施加於乙個集合的運算,表示最小的不屬於這個集合的非負整數。例如mex 3 mex 0 mex 0。對於乙個給定的有向無環圖,定義關於圖的每個頂點的sprague grundy函式g如下 g x mex,這裡的g x 即sg x 例如 取石...

博弈論SG函式

有n堆石子,每次可以從第1堆石子裡取1顆 2顆或3顆,可以從第2堆石子裡取奇數顆,可以從第3堆及以後石子裡取任意顆 這時看上去問題複雜了很多,但相信你如果掌握了本節的內容,類似的千變萬化的問題都是不成問題的。現在我們來研究乙個看上去似乎更為一般的遊戲 給定乙個有向無環圖和乙個起始頂點上的一枚棋子,兩...

博弈論 SG函式

學習博弈論不得不提一哈sg函式 關於sg函式的一些概念就不多說了 說下我自己的理解sg函式記錄為0的是p狀態 不為0記錄的是n狀態 相當於有個週期再迴圈 p n狀態輪番出現 sg模板 include include include define maxn 1000 using namespace s...