博弈论基础入门
扩展
读完本篇 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) \neq 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) \neq 0\)。
关于该定理的证明,读者可以在自主完成上一定理的证明后,结合NIM游戏定理的证明,感性理解一下。(因为我也不会呀qwq)
题目
更多博弈论基础入门好题:
变形
每次取 \([1,x]\) 的 NIM 游戏
题目大意: \(n\) 堆石子,第 \(i\) 堆石子有 \(a_i\) 个,给定 \(x\),每次可以取 \([1,x]\) 个石子,问先手是否必胜。
结论: 若 \(\bigoplus\limits_{i=1}^n (a_i \% (x+1)) \not = 0\) 则先手必胜,否则先手必败。
感性理解一下:对于某一堆石子 \(a_i\),当 \(a_i>(x+1)\),后手取掉一个数 \(y \in [1,x+1)\),先手可以取一个数 \(z\),满足 \(z=x+1-y\),\(z\) 一定是可以取到的(也就是说\(z\in [1,x+1)\)),则 \(a_i\) 变为了 \(a_i - (x+1)\),以此类推,该堆石子变为 \(a_i\%(x+1)\) 时,这堆石子就可以取任意数了。推广到每一堆石子,就转化成了 NIM 游戏。