OI 博弈论若干模型总结(Genshing)

OI博弈论的若干模型

OI 不是知识竞赛。

平等博弈是完全信息的(知道双方目标及操作收益),交替行动的,知道当前局面和转移的,平等(决策和当前状态操作者无关)的。

不平等博弈和上面一致,但是有一方更加平等。

所有的平等博弈都可以化为 DAG 上的移动游戏。

公平组合游戏是无法行动者败的游戏。这样的游戏每个状态具有结果类 \(\mathcal{N,P}\),分别代表先手必胜和先手必败。

若干简单游戏

DAG 上的移动游戏

有一张有向无环图, 其中一个节点上有一个棋子. 从 Alice 开始游戏, Alice 和 Bob 轮流将这个棋子沿着一条有向出边移动, 无法移动者判负. 问最后谁会获胜。

注意到这是一个平等博弈, 于是只用考虑先手必胜/必败. 于是按照拓扑排序的方式递推出当前棋子在每个节点时对应先手必胜/先手必败即可。

Ferguson Game

有两堆石子分别 \(n,m\) 个, 双人博弈, 每次操作是清空其中一堆石子并将另一堆石子分成任意非空的两堆新的石子. 无法操作者输,问最后谁会获胜。

先手必败当且仅当 \(2\not\mid n,m\),可以归纳证明。

Chomp Game

有一个 \(n\times m\) 的网格,每个人可以选择还有的格子 \((a,b)\),然后把 \((x',y'),\forall x'>a,y'>b\) remove 掉。无法操作者输,问最后谁会获胜。

先手必败当且仅当 \(n=m=1\)

证明:

先手可以通过选取必然被后面包含的 \((n,m)\) 来 pass 一步。

如果先手是必败的,选择对手的选择即可。

网易车 Game

买车和买 qq 超级会员。

先手必胜当且仅当其买车。

Bash Game

有一堆石子共 \(n\) 个, 双人博弈, 每次从石子堆中取出 \(1\sim m\) 个石子。无法操作者输,问最后谁会获胜。

先手必败当且仅当 \(n\equiv 0\pmod {m+1}\),可以归纳证明。

SG 函数及与其有关的游戏

公平组合游戏的 SG 函数

考虑 DAG \(E\) 上的移动游戏。定义

\[SG(u)=\operatorname{mex}\{SG(v)\mid (u,v)\in E\} \]

容易发现节点 \(u\) 先手必败当且仅当 \(SG(u)=0\)

SG定理

一个公平组合游戏可以被一个数,即 SG 函数等价(等价定义见下)。

证明:

首先定义一个游戏的位置(position)是当前局面可以转移到的局面的集合。

两个(可以认为是不同游戏平行进行)位置 \(S\)\(S'\) 的和:\(S+S'=\{S+s'\mid s'\in S\}\cup \{s+S'\mid s\in S\}\)。这告诉我们,加法满足交换律和结合律。

定义两个位置 \(G,G'\) 等价: \(G\approx G'\) 当且仅当 \(\forall H,G+H,G'+H\) 在同一结果类中。这样的等价关系明显是传递的。

Lemma 1

\[\forall A\in \mathcal{P},G\approx G+A \]

\(H\) 是任意位置。

证明:若 \(G+H\in\mathcal{P}\)\(A+G+H\) 显然有后手获胜策略。

\(G+H\in\mathcal N\)\(A+G+H\) 可以选择一个 \(G+H\)\(\mathcal P\) 位置 \((G+H)'\),之后 \(A+(G+H)'\in \mathcal P\),根据上一行。所以 \(A+G+H\in \mathcal N\)。证毕。

Lemma 2

\(G\approx G'\iff G+G'\in \mathcal P\)

证明:

先证 \(G\approx G'\Rightarrow G+G'\in \mathcal P\)

根据定义,\(G'+G(=G+G')\)\(G+G\) 在一个结果类。而显然 \(G+G\in \mathcal P\),那么 \(G'+G\in \mathcal P\)

再证 \(G\approx G'\Leftarrow G+G'\in \mathcal P\)

\(A=G+G'\),则 \(A\in \mathcal P\)。根据 Lemma 1,

\[G\approx G+A=G+(G+G')\\=(G+G)+G'=G'+(G+G)\approx G' \]

那么 \(G\approx G'\)

接下来证明原命题。

使用归纳证明之。

考虑位置 \(G=\{G_1,G_2,\dots, G_k\},G'=\{*n_1,*n_2,\dots,*n_k\}\)

下面证明:\(G\approx *m=\operatorname{mex}(*n_i)\)

先证明 \(G\approx G'\)。考虑 \(G+G'\):由归纳假设这是 \(\mathcal P\),后手可以通过 \(G,G'\) 中的另一个的与之等价的东西回复先手,而 \(A+A\in\mathcal P\)。所以 \(G+G'\in \mathcal P\)

再证明 \(G'+*m\in\mathcal P\),显然 \(G'+*m\in\mathcal P\Rightarrow G\approx *m\)

构造此方案。

考虑先手在 \(*m\) 移动到 \(m'<*m\),而后手可以把 \(G'\) 移动到 \(m'\) 得到两个相等的局面,因为 \(m\)\(\operatorname{mex}\)

如果先手在 \(G'\) 移动到 \(*n_i\),若 \(*n_i<*m\),后手把 \(*m\) 移到 \(*n_i\);否则后手把这个 \(*n_i\) 搞成 \(*m\)。这样都会得到两个相等的局面。那么 \(G'+*m\in \mathcal P\)

因此,\(SG\) 函数被证明和游戏等价。

Nim 和

看起来有很多人认为这是 SG 定理,尽管并非如此。

根据 SG 定理:我们已经知道一个公平组合游戏等价于一个 Nim 堆。对一个由多个平行进行的组合游戏构成的博弈, 其整体的 SG 函数值为各个子游戏的函数值的异或和。即:多个平行进行的

以下假设 \(\oplus\) 是异或。

设目前的 \(n\) 堆是 \(x_1,x_2,\dots,x_n\),操作后变成 \(y_1,y_2,\dots,y_n\),改变的是第 \(k\) 堆。

\(s=\oplus x_i,t=\oplus y_i\),不难发现 \(t=s\oplus x_k\oplus y_k\)

Lemma 1

\(s=0\)\(\forall t,t\neq 0\)。如果没有移动,命题是 vacuously true。如果移动了,由于 \(y_k<x_k\),命题是显然的。

Lemma 2

\(s\neq 0\)\(\exists t,t=0\)。设 \(d\)\(s\) 的最高的非零位,选择 \(k\) 使 \(x_k\)\(d\) 非零。令 \(y_k=s\oplus x_k\),此时 \(y_k<x_k\)。此时不难发现 \(t=0\)

归纳可以证明 Nim 和。

P2197 代码:

#include<bits/stdc++.h>
using namespace std;
int T,n,a,ans;
int main(){
	cin>>T;
	while(T--){
        cin>>n>>a;ans=a;
		for(int i=1;i<n;i++)cin>>a,ans^=a;
		if(ans)cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
	return 0;
}

Lasker’s Nim Game

首先

\[SG(n)=\operatorname{mex}(\{SG(k\mid 0\le k<n\}\cup \{SG(k)\oplus SG(n-k)\mid 0<k<n\}) \]

这样的问题可以试图打表猜想。归纳可证

\[SG(4k)=4k-1,SG(4k+1)=4k+1\\ SG(4k+2)=4k+2,SG(4k+3)=4k+4 \]

棋盘游戏

有一个 \(m \times m\) 的棋盘和 \(n\) 个棋子, 初始位置给定. 双人博弈, 每次选取一个在 \((x, y)\) 的棋子移动到 \((x − k, y)\)\((x, y − k)\)\((x − k, y − k)\). 第一个将其中一个棋子放置到 \((0, 0)\) 的人获胜, 问最后谁会获胜。\(m\le 100\)

如果到 \((1,2)\) 或者 \((2,1)\) 就寄了,否则没有寄。把这两个当成终止态搞即可。

Crosses and Crosses

有一个 \(1 \times n\) 的纸条, 初始全部为空. 双人博弈, 每次选取一个空白的位置涂黑. 第一个满足 “操作后有连续三个位置被涂黑” 的人获胜, 问最后谁会获胜。

找到一个位置之后相当于 ban 了周围的各 \(2\) 个位置。SG 函数可以递推。\(n\le 5000\)

翻硬币游戏

初始是一个黑白色序列,对于一个满足某性质的下标集合翻转黑白色,规定左端点是必须从黑到白。交替做。

结论:一个局面等价于所有只保留一个黑色(其他全部白)的局面 Nim 的和。

证明好像是显然的,利用 \(G\approx G'\iff G+G'\in \mathcal P\) 归纳(递降?)即可。

当时脑车了,,,看成只能在最左侧为左端点

posted @ 2024-01-22 14:47  British_Union  阅读(39)  评论(0编辑  收藏  举报