博弈论总结
SG 定理
设游戏可以表示为有向无环图 \(G=(V,E)\),规定其中不存在平局,必胜态为其可以转移到一个必败态
那么对于其中某一状态 \(X\in V\),定义其 \(SG\) 函数值为:
据此,状态 \(X\) 是先手必败当且仅当 \(SG(X)=0\)
归纳证明:假设定理对于当前的 \(G\) 成立,那么新加入一个状态 \(X\),若 \(SG(X)>0\),则必然存在一个 \(Y\) 使得 \(SG(Y)=0,(X,Y)\in E\),转移到一个必败态符合定义
若 \(SG(X)=0\),则无出边或任意的 \((X,Y)\in E\) 都有 \(SG(Y)>0\),则为必败态
游戏的复合
定义游戏 \(X,Y\) 的复合是 \(X+Y\),其中 \(X,Y\) 互相不影响且都在游戏 \(X+Y\) 中
对于游戏 \(X=X_1+\cdots+X_n\)有 \(SG(X)=\operatorname{XOR}_{i=1}^n SG(X_i)\)
证明:设 \(b=\operatorname{XOR}_{i=1}^n SG(X_i)\),则只需证 \(\forall a<b,\exists X'=X_1+\cdots+X_i'+\cdots+X_n,SG(X')=a\) 和 \(\forall X',SG(X')\neq b\)
其中,\(X'\) 表示某一由 \(X\) 转移到的状态
对于第一个式子,设 \(d=b\operatorname{xor} a\),由于 \(a<b\),\(d\) 的二进制下最高位是最高的一个 \(b\) 是 \(1\) 但 \(a\) 不是 \(1\) 的位
由于 \(b\) 由所有 \(SG(X_i)\) 异或而来,必然存在某一 \(X_i\) 是的 \(SG(X_i)\) 的那一位也是 \(1\),因此 \(SG(X_i)\operatorname{xor} d<SG(X_i)\)
那么也必然存在 \(SG(X_i')=SG(X_i)\operatorname{xor} d\)
于是对于 \(X'=X_1+\cdots + X_i' +\cdots X_n\),有 \(SG(X')=b\operatorname{xor} d=a\)
对于第二个式子,设 \(\exists X',SG(X')=b\)
那么设 \(X'=X_1+\cdots + X_i'+\cdots X_n\),则可得 \(SG(X_i')=SG(X_i)\),矛盾
对于为何要用异或,更深刻的说明:https://www.zhihu.com/question/51290443/answer/125105697
另一种复合形式
若干游戏,每次可以一次进行最多 \(k\) 个、最少 \(1\) 个游戏,无法进行者输
\(\operatorname{xor}\) 是二进制的不进位加法,那么设 \(a \oplus b\) 是将 \(a,b\) 用二进制表示后,进行 \(k+1\) 进制下的不进位加法
则结论是 \(SG(X)=SG(X_1)\oplus SG(X_2)\oplus\cdots\oplus SG(X_n)\)
仍然是按照上面的证法
对于每个 \(a<b\) 都有 \(SG(X')\) 可以取到 \(SG(X')=a\),可以按位考虑
对于最高的 \(a\) 比 \(b\) 小的那一位开始,此时通过减少某些位的值(\(1\) 变 \(0\)),一定可以使得 \(b\) 在这一位上和 \(a\) 相等
那么若 \(X_i\) 在这一位减少了至少 \(1\),那这个数后面的可以任意取,都能保证 \(SG(X_i')<SG(X_i)\),也就是一定能取到
若对于某一位这些任意取的数仍无法使得 \(a,b\) 在这一位上相等,就让其他某些数在这一位减小,讨论一下发现这样做出改变的数不会超过 \(k\) 个
那对于那个不存在 \(SG(X')\) 使得 \(SG(X')=SG(X)\) 的要求,仍然反证,考虑存在一个集合 \(p_1,p_2,\cdots,p_u(u\le k)\),使得 \(SG(X_{p_1}')\oplus \cdots \oplus SG(X_{p_u}')=SG(X_{p_1})\oplus \cdots \oplus SG(X_{p_u})\)
每位独立,对于任意一位,因为最多改变 \(k\) 个数,则无法使得这一位上既存在数改变,\((k+1)\) 进制下不进位加法和还不变
因此只能有 \(SG(X_{p_i}')=SG(X_{p_i})\),矛盾
对应 nim 和 nim-k
anti-SG
- 规定决策集合为空(就是没有出边)的人赢
- 其他规则同 SG 游戏
考虑如何复合若干个 anti-SG 游戏,有结论:
- 其中存在某游戏的 SG 值大于 \(1\),且 \(SG(X)\neq 0\)
- 其中不能存在某游戏的 SG 值大于 \(1\),切 \(SG(X)=0\)
一样用归纳之类的证就行
这也就是 SJ 定理
对应 anti-nim
every-SG
- 对于所有没有结束的单一游戏,必须对其进行一步决策
- 其他规定同 SG 游戏
显然,只有最晚结束的一个单一游戏,可以决定整个游戏的胜负
而能赢的单一游戏,必然一定要赢
因此,对于必胜的游戏,我们希望它结束的尽量晚,而对于必败的游戏,希望它结束的尽量早
那么就有了时间上的考虑:对于 SG 为 \(0\) 的状态,希望知道它最快几步结束;对于 SG 非 \(0\) 的状态,希望知道它最慢几步结束
定义 \(\operatorname{step}(X)\) 函数来描述这个步数,有:
那么最终的定理就有了:先手必胜当且仅当 \(\operatorname{step}\) 函数最大的单一游戏是奇数
显然只有是奇数的时候最后一步被先手走
其他模型
巴什博奕
\(n\) 个石子,每次取 \([1,m]\) 个,取完者胜
直接求 \(SG\),发现 \(SG(x)=x\bmod (m+1)\)
威佐夫博弈
两堆石子,每次可以从一堆中取任意个,或从两堆中分别取出相同多个,取完者胜
发现并不是简单的复合
结论是,设两堆大小是 \(x,y\),且有 \(x<y\),则先手必败当且仅当 \((y-x)\frac{\sqrt{5}+1}{2}=x\)
证明
斐波那契博弈
\(n\) 个石子,先手任意取,后面每个人取的数量不能超过上个人的两倍,取完者胜
先手必败当且仅当 \(n\) 是斐波那契数
证明
Multi-SG
此类游戏允许对于某状态,他的某一后继是由若干单一游戏复合而成
他符合基本的 SG 函数理论,所以那些又单一游戏复合而成的后继的 SG 值就是那些游戏的 SG 的异或和
而此状态的 SG 值仍然直接取 \(\operatorname{mex}\) 就行
典型例子就是 nim 游戏加上一种把某一堆石子分裂成两堆非空棋子的操作
观察一下发现此时 SG 值有结论:
Shannon 开关游戏
有向图,先手每次删一条边,后手每次固定一条边(不能再被删),最后后手固定的边形成一颗生成树则后手胜,否则先手胜
结论是,当且仅当原图有两棵不共边的生成树的时候,后手有必胜策略,否则先手必胜
后手的必胜策略可以简单归纳证明,先手必胜的证明需要用到拟阵
树的删边游戏
一棵以 \(1\) 为根的有根树,每次的操作是删去一条边,并拿走所有与跟不相连的点,无法删的人输
考虑子树 \(u\) 的 \(SG\) 值,从所有儿子 \(v\) 的 \(SG\) 转移上来的时候实际上是一堆游戏复合起来
但每个游戏都可以通过删掉边 \((u,v)\) 来一步结束
这样设原来的子树 \(v\) 为 \(G\),那么这个一步结束可以通过从 \(v\) 再往上连一个父亲得到 \(G'\) 来等效,我们有 \(SG(G')=SG(G)+1\)
简单的证明可以归纳一下,对 \(|G|\) 归纳,若 \(|G|=1\),显然 \(SG(G)=0,SG(G')=1\)
那么考虑 \(G\) 的某后继状态 \(H\),必然有 \(|H|<|G|\),设在 \(H\) 中给 \(v\) 再往上连一个父亲得到 \(H'\),根据归纳假设,有 \(SG(H')=SG(H)+1\)
对于任意 \(0\le i < SG(G)\),必有一个 \(H\) 使得 \(SG(H)=i\),那么现在对于 \(1\le i\le SG(G)\),必有一个 \(H'\) 使得 \(SG(H')=i\)
又因为可以直接切掉 \(v\) 和父亲的边得到 \(SG\) 为 \(0\) 的后继状态,那么有 \(SG(G')\ge SG(G)+1\)
又因为不存在 \(H\) 使得 \(SG(H)=SG(G)\),所以不存在 \(H'\) 使得 \(SG(H')=SG(G)+1\)
于是得证 \(SG(G')=SG(G)+1\)
最后的结论也就是 \(SG(u)=\operatorname{XOR}_{(u,v)\in E} SG(v)+1\)
树的删边游戏2
一棵有根树,存在某些点上面挂了一个从这个点开始、从这个点结束的环,每次删掉一条边,拿走不与根相连的部分,无法删者输
无向图删边游戏
一个无向连通图,有一个点作为图的根,每次删去一条边,把不与根相连的部分拿走,无法删的人输
MinMax 树和 Alpha-Beta 剪枝
https://blog.csdn.net/weixin_42165981/article/details/103263211