一.公平组合游戏ICG.
公平组合游戏:指的是一类只有两个玩家的游戏,并且满足:
1.两个玩家交替行动.
2.在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关.
3.不能行动的玩家判负.
经典的公平组合游戏有NIM博弈和有向图游戏.
二.NIM博弈.
NIM博弈:给定nnn堆物品,第iii堆物品有AiA_iAi个.两名玩家轮流行动,每次可以任选一堆取走任意多个物品(可以取光但不能不取),取走最后一堆者胜.若两名玩家均采取最优策略,问是否先手必胜.
NIM博弈的胜负判定:先手必胜当且仅当A1 xor A2 xor ... xor An≠0A_1\,xor\,A_2\,xor\,...\,xor\,A_n=\not{}0A1xorA2xor...xorAn=0.
证明:
所有物品取光先手必败且A1 xor A2 xor ... xor An=0A_1\,xor\,A_2\,xor\,...\,xor\,A_n=0A1xorA2xor...xorAn=0.
对于任意局面,若A1 xor A2 xor ... xor An=x≠0A_1\,xor\,A_2\,xor\,...\,xor\,A_n=x\neq 0A1xorA2xor...xorAn=x=0,设xxx二进制下最高位的111在第kkk位,则必然有一堆石子AiA_iAi的最高为111二进制位是第kkk位.这个时候便可以在第iii堆中取走若干石子使得A1 xor A2 xor ... xor An=0A_1\,xor\,A_2\,xor\,...\,xor\,A_n=0A1xorA2xor...xorAn=0.
反过来,若A1 xor A2 xor ... xor An=0A_1\,xor\,A_2\,xor\,...\,xor\,A_n=0A1xorA2xor...xorAn=0,则无论如何取石子,必然会使得之后的异或和不为000.
证毕.
三.有向图游戏.
有向图游戏:给定一个有向无环图,图中有唯一一个起点.从起点出发,两名玩家轮流行动,每次行动可以往任意一条出边移动.若某个玩家无法移动,则判负.
任意一个公平组合游戏可以转化为有向图游戏,即把每一个局面都看成一个节点,一个局面可以到达另一个局面就在这两个局面之间连一条有向边.
四.SG函数.
mex函数:mex(S)\mathrm{mex}(S)mex(S)表示取一个最小的自然数,使得这个自然数不在集合SSS中.即:
mex(S)=minx∈N+,x∉S{x}
\mathrm{mex}(S)=\min_{x\in N_+,x\notin S}\{x\}
mex(S)=x∈N+,x∈/Smin{x}
SG函数:在有向图游戏中,设点xxx有kkk条出边,分别到达y1,y2,...,yky_1,y_2,...,y_ky1,y2,...,yk,那么:
SG(x)=mex({SG(y1),SG(y2),...,SG(yk)})
SG(x)=\mathrm{mex}(\{SG(y_1),SG(y_2),...,SG(y_k)\})
SG(x)=mex({SG(y1),SG(y2),...,SG(yk)})
特别的,设一个有向图游戏GGG的起点为sss,那么GGG的SG函数值为SG(s)SG(s)SG(s),即SG(G)=SG(s)SG(G)=SG(s)SG(G)=SG(s).
有向图游戏和:给定nnn个有向图游戏G1,G2,...,GnG_1,G_2,...,G_nG1,G2,...,Gn,称GGG为有向图游戏和表示GGG的移动规则为每次在任意一个GiG_iGi上移动一步,判负规则为在任意GiG_iGi上都不能移动.
SG(G)=SG(G1) xor SG(G2) xor ... xor SG(Gn)SG(G)=SG(G_1)\,xor\,SG(G_2)\,xor\,...\,xor\,SG(G_n)SG(G)=SG(G1)xorSG(G2)xor...xorSG(Gn)
定理:游戏的一个点xxx必胜当且仅当SG(x)>0SG(x)>0SG(x)>0,一个点xxx必败当且仅当SG(x)=0SG(x)=0SG(x)=0.
证明与NIM博弈的胜负规则判定证明类似,不再赘述.