博弈论SG函数学习笔记

一.公平组合游戏ICG.

公平组合游戏:指的是一类只有两个玩家的游戏,并且满足:
1.两个玩家交替行动.
2.在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关.
3.不能行动的玩家判负.

经典的公平组合游戏有NIM博弈和有向图游戏.


二.NIM博弈.

NIM博弈:给定 n n n堆物品,第 i i i堆物品有 A i A_i Ai个.两名玩家轮流行动,每次可以任选一堆取走任意多个物品(可以取光但不能不取),取走最后一堆者胜.若两名玩家均采取最优策略,问是否先手必胜.

NIM博弈的胜负判定:先手必胜当且仅当 A 1   x o r   A 2   x o r   . . .   x o r   A n = ̸ 0 A_1\,xor\,A_2\,xor\,...\,xor\,A_n=\not{}0 A1xorA2xor...xorAn=0.

证明:
所有物品取光先手必败且 A 1   x o r   A 2   x o r   . . .   x o r   A n = 0 A_1\,xor\,A_2\,xor\,...\,xor\,A_n=0 A1xorA2xor...xorAn=0.
对于任意局面,若 A 1   x o r   A 2   x o r   . . .   x o r   A n = x ≠ 0 A_1\,xor\,A_2\,xor\,...\,xor\,A_n=x\neq 0 A1xorA2xor...xorAn=x=0,设 x x x二进制下最高位的 1 1 1在第 k k k位,则必然有一堆石子 A i A_i Ai的最高为 1 1 1二进制位是第 k k k位.这个时候便可以在第 i i i堆中取走若干石子使得 A 1   x o r   A 2   x o r   . . .   x o r   A n = 0 A_1\,xor\,A_2\,xor\,...\,xor\,A_n=0 A1xorA2xor...xorAn=0.
反过来,若 A 1   x o r   A 2   x o r   . . .   x o r   A n = 0 A_1\,xor\,A_2\,xor\,...\,xor\,A_n=0 A1xorA2xor...xorAn=0,则无论如何取石子,必然会使得之后的异或和不为 0 0 0.
证毕.


三.有向图游戏.

有向图游戏:给定一个有向无环图,图中有唯一一个起点.从起点出发,两名玩家轮流行动,每次行动可以往任意一条出边移动.若某个玩家无法移动,则判负.

任意一个公平组合游戏可以转化为有向图游戏,即把每一个局面都看成一个节点,一个局面可以到达另一个局面就在这两个局面之间连一条有向边.


四.SG函数.

mex函数 m e x ( S ) \mathrm{mex}(S) mex(S)表示取一个最小的自然数,使得这个自然数不在集合 S S S中.即:
m e x ( S ) = min ⁡ x ∈ N + , x ∉ S { x } \mathrm{mex}(S)=\min_{x\in N_+,x\notin S}\{x\} mex(S)=xN+,x/Smin{x}

SG函数:在有向图游戏中,设点 x x x k k k条出边,分别到达 y 1 , y 2 , . . . , y k y_1,y_2,...,y_k y1,y2,...,yk,那么:
S G ( x ) = m e x ( { S G ( y 1 ) , S G ( y 2 ) , . . . , S G ( y k ) } ) SG(x)=\mathrm{mex}(\{SG(y_1),SG(y_2),...,SG(y_k)\}) SG(x)=mex({SG(y1),SG(y2),...,SG(yk)})

特别的,设一个有向图游戏 G G G的起点为 s s s,那么 G G G的SG函数值为 S G ( s ) SG(s) SG(s),即 S G ( G ) = S G ( s ) SG(G)=SG(s) SG(G)=SG(s).

有向图游戏和:给定 n n n个有向图游戏 G 1 , G 2 , . . . , G n G_1,G_2,...,G_n G1,G2,...,Gn,称 G G G为有向图游戏和表示 G G G的移动规则为每次在任意一个 G i G_i Gi上移动一步,判负规则为在任意 G i G_i Gi上都不能移动.

S G ( G ) = S G ( G 1 )   x o r   S G ( G 2 )   x o r   . . .   x o r   S G ( G n ) SG(G)=SG(G_1)\,xor\,SG(G_2)\,xor\,...\,xor\,SG(G_n) SG(G)=SG(G1)xorSG(G2)xor...xorSG(Gn)

定理:游戏的一个点 x x x必胜当且仅当 S G ( x ) > 0 SG(x)>0 SG(x)>0,一个点 x x x必败当且仅当 S G ( x ) = 0 SG(x)=0 SG(x)=0.

证明与NIM博弈的胜负规则判定证明类似,不再赘述.

你可能感兴趣的:(博弈论SG函数学习笔记)