首页 > 其他分享 >博弈论乱写1:常见模型

博弈论乱写1:常见模型

时间:2022-11-02 22:01:02浏览次数:81  
标签:局面 乱写 模型 博弈论 必胜 oplus SG operatorname Previous

按照自己的学习顺序写的,可能有点奇怪。这是这个系列中唯一有用的东西了。

ICG 游戏

Nim 游戏

有 \(n\) 堆石子,第 \(i\) 堆有 \(a_i\) 个,每次行动可以从任意一堆中取出任意多个(至少一个),两人轮流行动,先不能行动者输。问谁有必胜策略。

在解决具体的问题前,我们首先关注博弈本身的性质。

用 \(x\) 表示一个局面,用一个局面先手必胜,那么 \(P(x)=1\),否则 \(P(x)=0\)。类似的,后手必胜时有 \(N(x)=1\),否则 \(N(x)=0\)。我们有 \(P(x)\oplus N(x)=1\),这里 \(\oplus\) 表示按位异或运算(也记为 \(\operatorname{xor}\)),也就是说一个局面要么先手必胜,要么后手必胜。这个结论的严谨证明将在后面出现。

更进一步,如果一个局面 \(x\) 存在后续局面 \(y\) 有 \(P(y)=1\),那么 \(P(x)=1\),否则 \(P(x)=0\)。类似的,如果一个局面 \(x\) 所有后续局面 \(y\) 都有 \(N(y)=1\),则 \(N(x)=1\),否则 \(N(x)=0\)。

基于这样基本的理论,我们可以轻易的写出 dp 转移来解决这个问题,不够这样的复杂度是 \(O(V^n)\) 的,其中 \(V\) 表示 \(a_i\) 的最大取值,这样的复杂度是难以接受的。

试着发掘 Nim 游戏本身的性质,下面是两个例子。此处用 \((a_1,a_2,a_3\ldots a_n)\) 表示有 \(n\) 堆石子,第 \(i\) 堆有 \(a_i\) 个的局面。

  • 一开始,局面为 \((x,x)\),那么先手后手只需要模仿先手的操作,局面就总是形如 \((x,x)\),且该先手操作,易知石子个数单减,于是局面 \((x,x)\) 下后手必胜。如果 \(x\) 表示若干堆石子的状态,不难发现上面的过程依然可以使得后手必胜。

  • 一开始,局面为 \((2,3)\),先手只需从第 \(2\) 堆中取 \(1\) 个,使局面变为 \((2,2)\),就可以变为上面的情形,故局面 \((2,3)\) 是先手必胜的。

  • 一开始,局面为 \((1,2,3)\),尝试所有可能后可以发现是后手必胜的。

可以用程序验证更大的例子,观察 \((x,y,z)\) 在 \(1\le x\le y\le z\le6\) 的答案( Previous 表示先手必胜,Next 表示后手必胜 ):

(1,1,1)=Previous (1,1,2)=Previous (1,1,3)=Previous (1,1,4)=Previous (1,1,5)=Previous (1,1,6)=Previous
(1,2,2)=Previous (1,2,3)=Next (1,2,4)=Previous (1,2,5)=Previous (1,2,6)=Previous
(1,3,3)=Previous (1,3,4)=Previous (1,3,5)=Previous (1,3,6)=Previous
(1,4,4)=Previous (1,4,5)=Next (1,4,6)=Previous
(1,5,5)=Previous (1,5,6)=Previous
(1,6,6)=Previous
(2,2,2)=Previous (2,2,3)=Previous (2,2,4)=Previous (2,2,5)=Previous (2,2,6)=Previous
(2,3,3)=Previous (2,3,4)=Previous (2,3,5)=Previous (2,3,6)=Previous
(2,4,4)=Previous (2,4,5)=Previous (2,4,6)=Next
(2,5,5)=Previous (2,5,6)=Previous
(2,6,6)=Previous
(3,3,3)=Previous (3,3,4)=Previous (3,3,5)=Previous (3,3,6)=Previous
(3,4,4)=Previous (3,4,5)=Previous (3,4,6)=Previous
(3,5,5)=Previous (3,5,6)=Next
(3,6,6)=Previous
(4,4,4)=Previous (4,4,5)=Previous (4,4,6)=Previous
(4,5,5)=Previous (4,5,6)=Previous
(4,6,6)=Previous
(5,5,5)=Previous (5,5,6)=Previous
(5,6,6)=Previous
(6,6,6)=Previous

我们可以猜测先手必胜的条件是 \(a_1\oplus a_2\oplus a_3\oplus \cdots \oplus a_n\ne0\),考虑证明:

等价的命题是:后手必胜的条件是 \(a_1\oplus a_2\oplus a_3\oplus \cdots \oplus a_n=0\)。下面先给出构造。

我们假设 \(a_1\oplus a_2\oplus a_3\oplus \cdots \oplus a_n=x\)。

由异或的性质可知,一定存在 \(a_k\),使得 \(\operatorname{highbit}(a_k)=\operatorname{highbit}(x)\)。从第 \(k\) 堆中取出 \(a_k-(a_k\oplus x)\) 个后,第 \(k\) 堆余下 \(a_k\oplus x\) 个,此时有

\[\begin{align*} a_1\oplus a_2\oplus\cdots\oplus a_k^\prime\oplus \cdots\oplus a_n&=a_1\oplus a_2\oplus\cdots\oplus a_k\oplus x\oplus \cdots\oplus a_n\\ &=x\oplus x\\ &=0\\ \end{align*} \]

如果当前已经有 \(a_1\oplus a_2\oplus \cdots \oplus a_n=0\),那么不管先手如何操作,之后都有 \(a_1\oplus a_2\oplus \cdots \oplus a_n\ne0\),因为对于任意的 \(x\),有且只有 \(x\) 满足 \(x\oplus x=0\)。

而终止局面 \((0)\) 时显然满足 \(a_1=0\),且这个局面是后手必胜的。那么通过上文的构造方式就可以使得 \(a_1\oplus a_2\oplus a_3\oplus \cdots \oplus a_n\ne0\) 时先手必胜。

反常 Nim 游戏

Nim 游戏胜负规则相反。

直接上结论了:

满足下列条件之一时先手必胜,否则后手必胜。

  • 有偶数堆 \(1\) 个石子的堆。
  • 有至少一堆石子个数 \(>1\),且 \(a_1\oplus a_2\oplus \cdots \oplus a_n\ne0\)。

第一个条件显然,考虑第二个条件:

若只有一堆石子个数 \(>1\),那么我们可以分奇偶讨论。

  • 如果有偶数堆,那么把 \(>1\) 的那堆取完。
  • 如果有奇数堆,那么把 \(>1\) 的那堆取到只有 \(1\) 个。

易知此时先手必胜。

若有多堆石子个数 \(>1\),考虑 \(a_1\oplus a_2\oplus \cdots \oplus a_n=x\)。

  1. \(x=0\),考虑可能的转移。
    • 拿走一堆使得其余下的个数 \(\le1\),那么可以转化为先手必胜的情况。
    • 否则一定有 \(x^\prime\ne0\),转化为下面的情况。
  2. \(x\ne0\),用 Nim 游戏一样的构造转移到上面的状态。注意到转移时石子个数递减,最终转移一定变成只有一堆石子时先手必胜。

综上可知先手必胜。

SG 函数

到这里,我们终于可以给出 ICG 游戏的定义:

在一个 DAG 上,有一个棋子,两人轮流移动一步(走过一条边),先不能移动者负。

定义 \(\text{SG}(x)\) 函数,其中 \(x\) 是 DAG 上的一个点。

定义 \(\operatorname{SG}(x)=0\) 当 \(x\) 出度为 \(0\),否则 \(\operatorname{SG}(x)=\operatorname{mex}(\{\operatorname{SG}(v)\mid x\rightarrow v\})\),即其所有后继的 \(\operatorname{SG}\) 值的 \(\operatorname{mex}\)。

定义 \(\operatorname{mex}(S)\) 表示最小的集合 \(S\) 中未出现过的自然数,比如 \(\operatorname{mex}(1,2,3)=0,\operatorname{mex}(0,1,2,3)=4,\operatorname{mex}(0,1,2,4)=3\)。

如果一个点 \(x\) 满足 \(\operatorname{SG}(x)=0\),那么在这个点处后手必胜,否则先手必胜。

证明和 Nim 游戏几乎一模一样:终止处 \(\operatorname{SG}(x)=0\),而 \(\operatorname{SG}(x)>0\) 意味着可以从这个点走到 \(\operatorname{SG}(x)=0\) 的点,于是只需要把 Nim 游戏中的名词替换一下就可以了。

k-SG

更常见的情形是有多个 ICG 游戏同时存在,每次可以选择其中一个操作。

不加证明的,我们给出 \(\operatorname{SG}(x)=\operatorname{SG}(x_1)\oplus \operatorname{SG}(x_2)\oplus \operatorname{SG}(x_3)\oplus\ldots\oplus \operatorname{SG}(x_n)\)。其中 \(x_1,x_2\ldots x_n\) 表示 \(n\) 个子游戏。

证明过程和上面几乎一致,故略去。

策梅洛定理

就是 Nim 游戏里说后面会证的那个东西。

对于一个博弈,如果满足下列条件,那么任何局面要么先手必胜,要么后手必胜。

  • 两个玩家轮流操作,他们都足够聪明。
  • 下一个局面只和当前局面有关,和谁操作无关。
  • 双方都完全了解这个博弈的所有信息。
  • 博弈过程中不涉及随机变量,且胜负只由局面唯一决定。
  • 终止状态时,一个人赢,另一个人输,且不存在平局。
  • 博弈总会停止。

证明其实很简单,从终止局面向初始局面编号为 \(0,1,2\ldots n\),在第 \(0\) 个局面时的后手如果输了,说明在 \(1\) 个局面时(此时他是先手)他已经必败了,否则他不是足够聪明的。以此类推,用数学归纳法不难得出正整数时任何局面 \(x\) 都满足 \(P(x)\oplus N(x)=1\)。

习题

新 Nim 游戏

Nim z utrudnieniem

标签:局面,乱写,模型,博弈论,必胜,oplus,SG,operatorname,Previous
From: https://www.cnblogs.com/efX-bk/p/play_with_1.html

相关文章

  • CSP2022题目乱写
    官方数据没出,根据目前已知信息瞎写,有错误请帮忙指出假期计划要找\(1-a-b-c-d-1\)的形式,不想偏的话应该能想到预处理一部分然后拼接预处理形式相同的部分\(......
  • Go语言 实现一个简单生产者消费者模型,你是如何实现的?
    Go语言实现一个简单生产者消费者模型,你是如何实现的?Go语言圈 2022-10-3108:30 发表于广东学习与交流:Go语言技术微信群商务合作加微信:LetsFenggoland全家桶激活码......
  • 扩散模型的观后感
    近期不得不提的AI作画,实在是太火了。因此,跑去看了diffusionmodel的基本原理,公式推导比较难。大概意思上,分为两个步骤。一是训练过程,给定时间迭代步和包含噪声的图,要求模......
  • 【视频】CNN(卷积神经网络)模型以及R语言实现回归数据分析|附代码数据
    全文链接:http://tecdat.cn/?p=18149无人驾驶汽车最早可以追溯到1989年。神经网络已经存在很长时间了,那么近年来引发人工智能和深度学习热潮的原因是什么呢?(点击文末“阅读......
  • 使用Opencv4和YOLOv4(XTDrone)训练模型遇到问题的记录(二)
    使用Opencv4和YOLOv4(XTDrone)训练模型遇到问题的记录(二)WrittenByPiscesAlpaca(双鱼座羊驼) 目录使用Opencv4和YOLOv4(XTDrone)训练模型遇到问题的记录(二)一、Opencv4安装问......
  • 数据库—数据模型
    一、两大类数据模型1、概念模型     也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。2、逻辑模型和物理模型逻辑模型主要包括网状模型、层次......
  • 机器学习模型与算法 ----- 多元线性回归
             ......
  • AI人脸检测智能分析网关算法模型管理,支持自由组合算法
    AI图像识别技术是人工智能的一个重要领域,伴随着互联网技术的快速发展,图像识别技术的运用也越来越广泛。目前,基于神经网络的图像识别技术在社会生活的方方面面应用非常多。......
  • Javascript进阶笔记 - DOM模型与节点
    DOM模型与节点目录DOM模型与节点1.DOM模型2.节点2.1节点的常用方法1.DOM模型DOM(文档对象模型)就是把文档中的标签,属性,文本转换成对象来管理(类似于Java中的对象)do......
  • 使用德雷福斯模型
    我们通过的德雷福斯模型从新手到专家的升级之路.任何一个领域从新手到专家都需要十年时间.这个十年时间并不是一直不停的工作,而是不断的实践.这里的实践的含义是:1.定......