博弈论

前言

做题总是有“必胜”之类的词,看不懂题意,就来学博弈论。

未完待续。

正文

基础

公平组合游戏:

  • 游戏有两个人参与,二者轮流做出决策,双方均知道游戏的完整信息;
  • 任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关
  • 游戏中的同一个状态不可能多次抵达,游戏以玩家无法行动为结束,且游戏一定会在有限步后以非平局结束。

与游戏者无关是什么意思?

定义必胜状态先手必胜的状态,必败状态先手必败的状态,注意此处先手定义为目前的先手,而非整个游戏的先手。

经典三定理:

  1. 没有后继状态的状态是必败状态。
  2. 否则 一个状态是必败状态 \(\iff\) 后继状态均为必胜状态。此时无论如何选,对方必胜,即自己必败。
  3. 其余状态均为必胜状态。即 一个状态是必胜状态 \(\iff\) 后继状态有必败状态。此时选任一必败状态,对方必败,即自己必胜。

于是可以 \(O(n+m)\) 在博弈图上遍历,即可判定所有状态必胜/必败。

Nim 游戏

\(n\) 堆物品,每堆有 \(a_i\) 个,两个玩家轮流取走任意一堆的任意个物品,但不能不取。取走最后一个物品的人获胜。

博弈图上,点数为 \(\prod (a_i+1)\),边数更多,暴力做不了。

定义Nim 和 \(S\)\(\bigoplus a_i\),则有某状态为必败状态 \(\iff S=0\),反之为必胜状态。

证:

  1. 没有后继状态的必败状态 \(S=0\)
  2. \(S\ne 0\) 时后继状态有 \(S=0\)。若将 \(a_i\) 改为 \(a_i'\),则 \(a_i'=a_i\oplus S\)。接下来证 \(a_i'<a_i\):对于 \(S\) 的最高位 \(k\),必有奇数个 \(a_i\) 满足第 \(k\) 位为 \(1\)。故任选一个第 \(k\) 位为 \(1\)\(a_i\),必有 \(a_i'\) 的第 \(k\) 位为 \(0\),故 \(a_i'<a_i\)
  3. 对于 \(S=0\) 时显然无法保持 \(S=0\),因为不能不取。

\(\square.\)

Bash 游戏

\(1\) 堆石子,总个数是 \(n\),两名玩家轮流在石子堆中拿石子,每次至少取 \(1\) 个,至多取 \(m\) 个。取走最后一个石子的玩家为胜者。取走最后一个物品的人获胜。

有:\((m+1)|n\) 时先手必败。

证:(数学归纳法)

  • 可设 \(n=0\) 是必败状态。
  • 则有 \(1\le n\le m\) 是必胜状态(显然)。
  • \(n=m+1\) 是必败状态。
  • \(m+2\le n\le 2m+1\) 是必胜状态。
  • 可得:\(n=k(m+1)\) 是必败状态,\((k-1)(m+1)\le n\le k(m+1)-1\) 是必胜状态。其中 \(k\in \Bbb{N}\)

\(\square.\)

有向图游戏

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

SG 函数

定义 \(\operatorname{mex}\) 为不属于集合 \(S\) 中的最小非负整数即 \(\operatorname{mex}(S)=\min\{x\},x\notin S,x\in \Bbb{N}\)

对于状态 \(x\) 和它的所有 \(k\) 个后继状态 \(y_1,y_2,\dots,y_k\),定义 SG 函数:

\[\operatorname{SG}(x)=\operatorname{mex}_{i=1}^{k}\{\operatorname{SG}(y_i)\} \]

而对于由 \(n\) 个有向图游戏组成的组合游戏,设它们的起点分别为 \(s_1,s_2,\dots,s_n\),则有 SG 定理:当且仅当

\[\operatorname{SG}(G)=\bigoplus_{i=1}^{n}\operatorname{SG}(s_i)\ne 0 \]

时,这个游戏是先手必胜的。

参考

posted @ 2024-05-10 21:21  Po7ed  阅读(2)  评论(0编辑  收藏  举报