博弈论(公平组合游戏)

1. 公平组合游戏与 Nim 游戏

1.1 公平组合游戏

定义公平组合游戏满足下列性质:

  • 人数 22 位,且双方足够聪明。
  • 行动与先后手无关。
  • 状态不能多次到达。

1.2 Nim 游戏

Nim 游戏:

nn 堆石头,每次选择一堆并拿走 x(0<x)x(0<x) 个石头,拿到最后一个石头的人胜。问先手是否有必胜策略。

2. 博弈图与 Nim 和

2.1 博弈图

假设有 33 堆石头 {1,2,2}\{1,2,2\},博弈图如下:

(仅展示部分)

定义转移为图中的这些边,状态为这些点。显然,对于必胜状态和必败状态:

  • 如果儿子节点都为必胜状态,则这个节点为必败状态。
  • 如果儿子节点有必败状态,则这个节点为必胜状态。
  • 叶子节点为必败状态。

博弈图的性质:是一张 DAG。

那么 topo 一下就可以了。

2.2 Nim 和

发现一件这样的事情,博弈图的点数高达 ai\prod a_i 级别个,时间复杂度高达 O(ai)O(\prod a_i)。肯定需要优化!

其实,如果 xori=1nai=0\operatorname{xor}^n_{i=1}a_i=0,则必败,否则必胜。

2.3 对 Nim 和的证明

首先我们对博弈图的分析可以发现,终止状态为 (0,0,,0)(0,0,\cdots,0)。此时 xori=1nai=0\operatorname{xor}^n_{i=1}a_i=0 必败。

如果此时 xori=1nai=0\operatorname{xor}^n_{i=1}a_i=0,可以发现如果下一次操作仍然必胜,xori=1nai\operatorname{xor}^n_{i=1}a_i 仍然为 00,设改变的数为 aiaia_i\gets a'_i,那么 ai=aia'_i=a_i,矛盾。

如果此时 xori=1nai=k(k0)\operatorname{xor}^n_{i=1}a_i=k(k\ne0),则修改 aia_iai=ka'_i=k。一定存在 aiaixorka_i\ge a_i\operatorname{xor}k

所以当 xori=1nai=0\operatorname{xor}^n_{i=1}a_i=0,则必败,否则必胜。

3. 图游戏与 SG 函数

3.1 图游戏

在一个有向无环图中,只有一个起点,上面有一个棋子,两个玩家轮流沿着有向边推动棋子,不能走的玩家判负。

3.2 SG 函数

定义 SG(x)=mex{SG(son)}SG(x)=\operatorname{mex}\{SG(son)\}

3.3 SG 定理

对于所有的开始节点集合 beginbegin

SG 定理(Sprague–Grundy Theorem,Sprague–Grundy 定理):当且仅当 xori=1nSG(begin)=0\mathbf{\operatorname{xor}^n_{i=1}SG(begin)=0} 时,这个游戏是先手必败的。

4. 反常游戏

4.1 反常游戏

判定结果与原游戏相反,其余不变的游戏叫做反常游戏。

4.2 反 Nim 游戏

反 Nim 游戏:

nn 堆石头,每次选择一堆并拿走 x(0<x)x(0<x) 个石头,拿到最后一个石头的人败。问先手是否有必胜策略。

4.3 反 Nim 游戏 结论

ai=1a_i=1 时,nn 为偶数必胜,nn 为奇数必败。

当存在 ai>1a_i> 1,如果 xori=1nai0\operatorname{xor}^n_{i=1}a_i\ne 0 必胜,否则必败。

posted @ 2024-11-11 21:07  sLMxf  阅读(8)  评论(0编辑  收藏  举报  来源