遊戲有兩個人參與,二者輪流做出決策。且這兩個人的決策都對自己最有利。
當有一人無法做出決策時遊戲結束,無法做出決策的人輸。無論二者如何做出決策,遊戲可以在有限步內結束。
遊戲中的同乙個狀態不可能多次抵達。且遊戲不會有平局出現。任意乙個遊戲者在某一確定狀態可以作出的決策集合只與當前的狀態有關,而與遊戲者無關。
滿足上述條件的問題我們稱之為icg遊戲,icg遊戲屬於組合遊戲。最典型的nim遊戲,就是一種icg遊戲。
定義p-position與n-position:
這僅僅是最直觀的定義,更嚴謹的定義為:
無法移動的狀態(即terminal-position)為 \(p\)
可以移動到 \(p\) 的局面為 \(n\)
所有移動都會進入 \(n\) 的局面為 \(p\)
在正式研究sg函式之前,我們先來研究一下dag中的博弈:
給定一張有向無環圖,在起始點有一枚棋子,兩個頂尖聰明的人交替移動這枚棋子,不能移動的人算輸不要小看這個遊戲,事實上,所有icg問題都可以抽象為這種遊戲(即把初始局面看做頂點,把從乙個狀態可以到另乙個狀態之間連邊)
下面我們來正式研究一下sg(sprague-grundy)函式
首先定義 \(mex\) 運算,這是一種集合中的運算,它表示最小的不屬於集合的非負整數
例如:\(mex\=0,mex\=1,max\=4,mex\=0\)
對於給定的 dag(有向無環圖),定義每個點 \(x\) 的sg函式為:
\[sg(x) = mex\
\]然而單單乙個這樣的空洞的函式是解決不了問題的,我們需要分析一下它的性質
所有匯點的sg函式為 \(0\)。這個性質比較顯然,因為匯點的所有後繼狀態都是空集
當 \(sg(x)=0\) 時,該節點為必敗點。由sg函式的性質知該節點的所有後繼節點sg值均不為 \(0\),滿足必敗態的定義。
當 \(sg(x) \ne 0\) 時,該節點是必勝點。由sg函式的定義可知該節點的後繼節點中一定有乙個節點的sg值為 \(0\),滿足必勝態的定義。
神奇!
SG函式學習總結
有點散亂,將就著看吧.首先是博弈論的基礎,即 n 和 p 兩種狀態 n 為必勝狀態,p 為必敗狀態.對於n,p兩種狀態,則有 1.沒有任何合法操作的狀態,p 2.可以移動到p局面的情況為n狀態 3.可以移動到的所有狀態均為n狀態,則當前情況為p狀態.然後就可以引入sg函式了.首先定義mex運算,這是...
SG函式和SG定理
大神鏈 我們先用乙個簡單的例子引入 考慮有這樣乙個遊戲,有3堆火柴,分別有a,b,c根,記為 a,b,c 每次乙個遊戲者可以從任意一堆中拿走至少一根火柴,也可以整堆拿走,但是不能從多堆火柴中拿 無法拿火柴的人輸 這個遊戲就叫做nim遊戲 舉個例子,假設a 1,b 2,c 3,若你先拿,你會怎麼辦呢?...
sg函式和sg定理
下面這篇解釋得很清楚。單個遊戲 sg 0 0 sg值為0的有且只有必敗態 sg x mex sg y x的所有後繼狀態中 第乙個不能達到的sg值,則x可到達sg為0 sg x 1的狀態 組合遊戲 可將sg值看作為石子數,則轉化為nim取石子遊戲,總遊戲的勝負由sg的異或和決定。hdu1848 1 i...