博弈论学习笔记
参考资料:link
公平组合游戏
定义
游戏有两个人参与,二者轮流做出决策。且这两个人的决策都对自己最有利。
当有一人无法做出决策时游戏结束,无法做出决策的人输。无论二者如何做出决策,游戏可以在有限步内结束。
游戏中的同一个状态不可能多次抵达。且游戏不会有平局出现。
任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关。
有向无环图
游戏可以转化成有向无环图,一个状态是一个点,一个决策是一条边。
终止状态出度为0。
必胜态与必败态
如果用1代表必胜态,0代表必败态。
当前状态必胜:后继状态存在0。
当前状态必败:后继状态没有0。
Nim游戏
桌子上有 \(n\) 堆石子 \(x_i\) ,游戏者轮流取石子。
每次只能从一堆中取出任意数目的石子,但不能不取。
取走最后一个石子者胜。
结论: 先手必胜 当且仅当 $x_1 \oplus x_2\ \oplus ... \oplus\ x_n \not= 0 $
数学归纳法证明:
- 最终状态异或和为0。
- 对于任意一个必胜态(异或和不为0),存在一个必败后继状态(异或和为0)。
设 $x_1 \oplus x_2\ \oplus ... \oplus\ x_n = k $,一定存在 \(x_p\) 在 \(k\) 的最高位为 \(1\) ,只要让这一位为 \(0\) ,后面的位相应改变使总体异或和为 \(0\) 就行了。 - 对于任意一个必败态(异或和为0),不存在一个必败后继状态(异或和为0)。
也就是说,先手只要一直取到异或和为 \(0\),就一定能赢。
SG函数&SG定理
定义 \(mex\) 函数:集合中最小的没出现过的自然数
定义SG函数:
\(SG(x)=mex\){\(SG(x_1),SG(x_2),...,SG(x_k)\)}
其中 \(x_i\) 为 \(x\) 的一个后继状态(即有向图中所有出边连向的状态)
这东西怎么理解呢?
首先,对于 \(SG(x_i)>SG(x)\) 根据 \(SG\) 函数定义 \(x_i\) 一定能回到 \(SG\) 更小的点 无效操作
那么 \([0,SG(x)-1]\) 一定都可达 那么相当于一堆石子取走 \([1,SG(x)]\) 个
所以我们有
SG定理
若当前局面 \(x\) 由若干个子游戏 \(x_i,x_2,...,x_n\) 构成,那么有:
\(SG(x)=SG(x_1) \oplus SG(x_2)\oplus\ ...\oplus\ SG(x_k)\)
注意这里区分子游戏和后继状态:子游戏互不影响,后继状态为当前状态的一种转移
假如Nim游戏我们在一堆中取石子,那么这个就转移到后继状态;
而如果是把这堆石子分成两堆,那么这两堆就可以看做两个子游戏了。
SG定理可以用Nim游戏来理解:
- 终止态 \(SG(t)=0\)
- 每次如果 \(SG(x)\not=0\) 一定可以转移到 \(SG(x)=0\) 的状态
显然 当且仅当 \(SG(x)\not=0\) 时 先手必胜
AntiNim&Anti-SG、SJ定理
Anti-Nim
Anti-Nim游戏规定,决策集合为空的游戏者赢。
Anti-Nim其他规则与Nim游戏相同。
分类讨论:
设此时 $x_1 \oplus x_2\ \oplus ... \oplus\ x_n = k $
-
1.当所有石子数不超过 \(1\) 时:
A.有奇数堆石子:有 \(k\not=0\)。显然此时先手必胜。
B.有偶数堆石子:有 \(k=0\)。显然此时后手必胜。 -
2.当只有一堆石子数量大于 \(1\) 时:
显然此时 \(k\not=0\)。
A.有奇数堆石子:把这堆石子取到只剩一个,转化为1A,先手必胜。
B.有偶数堆石子:把这堆石子取完,转化为1A,先手必胜。 -
3.当有两堆以上石子数量大于 \(1\) 时:
A.\(k=0\):和Nim游戏一样,只会转化到 3B/2A/2B。后手必胜。
B.\(k\not=0\):和Nim游戏一样,一定可以能转化为3A状态。先手必胜。
综上所述:
当 \(k=0\) ,\(\forall\ x_i \leq1\)
或 \(k\not=0\) 时,\(\exists\ x_i >1\),
先手必胜。
Anti-SG、SJ定理
SJ定理
先手必胜:
1.\(SG(x)=0\) ,\(\forall\ x_i \leq1\)
2.\(SG(x)\not=0\) ,\(\exists\ x_i >1\)
证明参考Anti-Nim。

浙公网安备 33010602011771号