博弈論 sg函式

2021-10-02 06:15:59 字數 2283 閱讀 7059

定義

給定乙個有向無環圖和乙個起始頂點上的一枚棋子,兩名選手交替的將這枚棋子沿有向邊進行移動,無法移 動者判負。事實上,這個遊戲可以認為是所有公平組合遊戲的抽象模型。

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

sg(x) =mex()

mex運算:

mex(n)是集合n中沒有出現過的最小自然數。

例如mex() = 0;

mex() = 3;

-有向圖遊戲的和

設g1,g2,…gm 是m個有向圖遊戲。定義有向圖遊戲g,它的行動規測總任選某個有向圖遊戲gi, 並在g上行動一步行動。g被稱為有向圖遊戲g1,g2,…gm 的和。有向圖遊戲的和的sg函式值等於它包含的各個子遊戲sg函式值的異或和,即:

sg(g) = sg(g)xor sg(g2) xor … xor sg(gm)

定理

有向圖遊戲的某個局面必勝,當且僅當該局面對應節點的sg函式值大於0。有向圖遊戲的某個局面必敗,當且僅當該局面對應節點的sg函式值等於0。

**在乙個沒有出邊的節點上,棋子不能移動,它的sg值為0,對應必敗局面。若乙個節點的某個後維節點sg值為0.在mex運算後,該節點的sg值大於0.這等價於,若乙個局面的後維局面中存在必敗局面,則當前局面為必勝局面。若乙個節點的後維節點sg值均不為0,在mex運算後,該節點的sg值為0.這等價於:若乙個局面的後繼局面全部為必勝局面,則當前局面為必敗局面。

對於若干個有向圖遊戲的和,其證明方法與nim博弈類似。

3. [ ]例題

4. [ ] poj2311cutting game

- 問題描述

給定一張n+m的矩形網格紙,兩名玩家輪流行動。在每一次行動中,可以任選一張矩形網格紙,沿著菜一行或者某一列的格線,把它剪成兩部分。首先剪出1+1的玩家獲勝。兩名玩家都採取最優策略行動,求先手是否必勝。1≤n,m≤200

思路

對於一張n*m的矩形網格紙,我們可以列舉如何行動,把這張紙剪成兩部分。這兩部分是兩個「子剪紙遊戲」,二者的sg值執行xor運算,可得到這個行動之後局 面的sg值。

對所有合法行動產生的子局面構成的集合做mex運算,即可得到這張n*m網格紙的sg函式值,從而判斷它是否先手必勝。即:

sg(n,m) = mex(sl(,m)xorsg(n - i,m),其中1≤i#include

博弈論 (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...