简单博弈论
容斥原理
设 S1 , S2 , \(\ldots\) , Sn 为有限集合, |S| 表示集合S的大小, 则:
|\(\bigcup\limits_{i=1}^n\ S_i\)| = \(\sum\limits_{i=1}^n\ | S_i |\) - \(\sum\limits_{1 \leqslant i \lt j \leqslant n}\ |S_i\bigcap S_j|\) + \(\sum\limits_{1 \leqslant i \lt j \lt k \leqslant n}\ |S_i \bigcap S_j \bigcap S_k |\) \(\cdots\) + \((-1)^{n+1}\) \(\cdot\) \(|S_1 \bigcap \cdots \bigcap S_n |\)
位运算: 用 \(2^m\) 的二进制数 \(\underbrace{01011\cdots0011}_{m位}\) 来表示集合被选择的情况
NIM 游戏
给定N堆物品, 第 i 堆物品有 \(A_i\) 个. 两名玩家轮流行动, 每次可以任选一堆, 取走任意多个物品, 可把一堆取光, 但不能不取. 取走最后一件物品者获胜. 两人都采取最优策略, 问先手是否必胜.
我们把这种游戏称为 NIM 博弈. 把游戏过程中面临的状态称为局面. 整局游戏第一个行动的称为先手, 第二个行动的称为后手. 若在某一局面下无论采取何种行动, 都会输掉游戏, 则称该局面必败. 所谓采取最优策略是指, 若在某一局面下存在某种行动, 使得行动后对面面临必败局面, 则优先采取该行动. 同时, 这样的局面被称为必胜. 我们讨论的博弈问题一般都只考虑理想情况, 即两人均无失误, 都采取最优策略行动时游戏的结果.
NIM 博弈不存在平局, 只有先手必胜和先手必败两种情况.
定理: NIM博弈先手必胜, 当且仅当 \(A_1\) ^ \(A_2\) ^ \(\cdots\) ^ \(A_n\) != 0
必胜局面: 存在一种行动, 使得下一步必为必败局面.
必败局面: 无论进行何种行动, 下一步必为必胜局面.
\(A_1\) ^ \(A_2\) ^ \(\cdots\) ^ \(A_n\) != 0 (必胜): 存在一种操作, 操作后 \(A_1\) ^ \(A_2\) ^ \(\cdots\) ^ \(A^{'}_i\) ^ \(\cdots\) ^ \(A_n\) == 0
\(A_1\) ^ \(A_2\) ^ \(\cdots\) ^ \(A_n\) == 0 (必败): 任何一种操作后都有 \(A_1\) ^ \(A_2\) ^ \(\cdots\) ^ \(A^{'}_i\) ^ \(\cdots\) ^ \(A_n\) != 0
公平组合游戏 ICG
若一个游戏满足:
- 由两名玩家交替行动
- 在游戏进行过程的任意时刻, 可以执行的合法行动与轮到哪名玩家无关
- 不能行动的玩家判负
则称该游戏为一个公平组合游戏.
NIM 博弈属于公平组合游戏, 但城建的棋类游戏, 比如围棋, 就不是公平组合游戏. 因为围棋交战双方只能落黑子或和白子, 胜负判定也比较复杂, 不满足条件2和条件3
有向图游戏
给定一个有向无环图, 图中有一个唯一的起点, 在起点上放有一枚棋子. 两名玩家交替地把这枚棋子沿有向边进行移动, 每次可以移动一步, 无法移动者判负. 该游戏被称为有向图游戏.
任意一个公平组合游戏都可以转化为有向图游戏. 具体方法是, 把每个局面看成图中的一个节点, 并且从每个局面向沿着合法行动能够到达的下一个局面连有向边
Mex 运算
设S表示一个非负整数集合. 定义 mex (S) 为求出不属于集合S的最小自然数的运算, 即: mex (S) = min {x} , x属于自然数, 且x不属于S
SG 函数
在有向图游戏中, 对于每个节点 x , 设从 x 出发共有 k 条有向边, 分别到节点 \(y_1\) , \(y_2\) , \(\ldots\) ,\(y_k\) , 定义SG (x) 为x的后继节点 \(y_1\) , \(y_2\) , \(\ldots\) , \(y_k\) 的 SG 函数值构成的集合再执行 mex (S) 运算的结果, 即:
SG (x) = mex ( { SG(\(y_1\)) , SG(\(y_2\)) , \(\cdots\) , SG(\(y_k\)) } )
特别地, 整个有向图游戏G的 SG 函数值被定义为有向图起点S的 SG 函数值, 即 SG(G) = SG(s)
有向图游戏的和
设 \(G_1\) , \(G_2\) , \(\cdots\) , \(G_m\) 是m个有向图游戏. 定义有向图游戏G, 它的行动规则是任选某个有向图游戏 \(G_i\) , 并在 \(G_i\) 上行动一步. G被称为有向图游戏 \(G_1\) , \(G2\) , \(\cdots\) , \(G_m\) 的和.
有向图游戏的和的 SG 函数值等于它包含的各个子游戏 SG 函数值的异或和, 即 SG(G) = SG(\(G_1\)) ^ SG(\(G_2\)) ^ \(\cdots\) ^ SG(\(G_k\))
定理: 有向图游戏的某个局面必胜, 当且仅当该局面对应节点的SG函数值大于0
\(\quad\)\(\quad\) 有向图游戏的某个局面必败, 当且仅当该局面对应节点的SG函数值等于0