扩展
读完本篇 blog 后,您还可以继续阅读:
公平组合游戏 ICG
一个游戏满足以下条件时被叫做公平组合IGC游戏
- 两名玩家交替行动。
- 游戏进程的任意时刻,可以执行的操作和操作者本人无关。
- 不能行动的玩家判负,不存在平局。
本蒟蒻的理解:公平组合游戏都可以转化为博弈论问题来解决。例如经典的 “NIM游戏”,“有向图游戏” 都是公平组合游戏。类型的问题也可以转化成前两种模型解决。
NIM游戏
定理:
- NIM游戏先手必赢,当且仅当 (A_1 mathrm{xor} A_2 mathrm{xor} ... mathrm{xor} A_n ≠ 0)。
证明:
最后所有石子都取完是必败态,此时 (mathrm{xor}) 和为 (0)。
由此可以推得必败态的上一个状态 (mathrm{xor}) 和不为 (0)。
对于一个任意 (mathrm{xor}) 不为 (0) 的状态,令 (x=sum{mathrm{xor}} A_i),假设 (x) 的最高位为 (k),那么一定存在 (A_j) 的第 (k) 也为 (1),在 (A_i) 中取走 (A_i-A_i mathrm{xor} x) 颗石子(即剩下 (A_i mathrm{xor} x) 颗石子),则操作后的状态异或和为 (0)。
对于任意一个 (mathrm{xor}) 和为 (0) 的状态,无论怎么选取,下一个的状态的异或和必定不为 (0)。
重复以上操作,根据数学归纳法,初始状态 (mathrm{xor}) 和不为 (0),先手必胜。
证毕。
有向图游戏
给定一张有向无环图,初始在起点 (s) 处放一枚棋子。每一回合玩家可以向出边移动一步,不能移动者失败。问是否有先手必赢策略?
想要解决这个问题,我们首先要引入 (mathrm{mex}) 运算和 (SG) 函数。
(mathrm{mex}) 运算
(mathrm{mex}) 运算是求一个集合里面没有的最小非负整数,用数学语言表达即((N) 是自然数集):
(SG) 函数
(特指有向图游戏)在有向图游戏中,对于每个结点 (x),其 (SG) 函数为:
((y_i,1 le i le k) 是 (x) 的 (k) 条出边的第 (i) 条出边所指向的点)
可以发现,(SG) 函数是递归定义的。(SG) 函数的终点即为不可移动的点,因为没有出边,所以不可移动的点的 (SG) 函数等于 (0)。
特别的,一个有向图游戏 (G) 的 (SG) 函数是该有向图的起点 (s) 的 (SG) 函数,即 (SG(G) = SG(s))。
回到有向图游戏,对于这个游戏,有一个定理。
定理:
- 有向图游戏先手必赢,当且仅当 (SG(G) eq 0)。
对于该定理的证明,可以结合 (SG) 函数意义和数学归纳法进行证明。过程比较简单,留给读者自行证明。
多个有向图游戏
(并不知道有什么专业名称) 类似于NIM游戏与有向图游戏的相结合。
定义多个有向图游戏 (G_1,G_2,...,G_n),每一回合玩家可以在任意一个有向图游戏 ((G_i,1 le i le n)) 上移动一步,不可移动者失败。问先手是否有必赢策略?
定理
- 多个有向图游戏先手必赢,当且仅当 (SG(G_1) mathrm{xor} SG(G_2) mathrm{xor} ... mathrm{xor} SG(G_n) eq 0)。
关于该定理的证明,读者可以在自主完成上一定理的证明后,结合NIM游戏定理的证明,感性理解一下。(因为我也不会呀qwq)
题目
更多博弈论基础入门好题:
变形
每次取 ([1,x]) 的 NIM 游戏
题目大意: (n) 堆石子,第 (i) 堆石子有 (a_i) 个,给定 (x),每次可以取 ([1,x]) 个石子,问先手是否必胜。
结论: 若 (igopluslimits_{i=1}^n (a_i \% (x+1)) ot = 0) 则先手必胜,否则先手必败。
感性理解一下:对于某一堆石子 (a_i),当 (a_i>(x+1)),后手取掉一个数 (y in [1,x+1)),先手可以取一个数 (z),满足 (z=x+1-y),(z) 一定是可以取到的(也就是说(zin [1,x+1))),则 (a_i) 变为了 (a_i - (x+1)),以此类推,该堆石子变为 (a_i\%(x+1)) 时,这堆石子就可以取任意数了。推广到每一堆石子,就转化成了 NIM 游戏。