首页 > 其他分享 >【数学】博弈论初步

【数学】博弈论初步

时间:2024-01-23 20:35:07浏览次数:30  
标签:必败 可以 博弈论 初步 必胜 异或 数学 4k SG

平等博弈问题的基本模型:一个状态 DAG 上的移动。

解决博弈论的重要方法:打表

博弈论问题一般有一些方向:

  • 观察先手怎么做,后手怎么做。一般是一些显然的贪心策略。

  • 结合 SG 函数。

  • 结合已有模型。

Ferguson Game

两堆石子,每次可以清空一堆,拆另一堆为两堆,无法操作者输。

分两堆奇偶性画出状态转移,发现两奇必败,其他必胜。

Chomp Game

\(n \times m\) 网格,每次拿走一个点右上的所有数,删除 \((1,1)\) 的人输。

这题有一个非构造性的巧妙判断方法:考虑第一次无论怎么操作都会删掉右上角,所以先手拿掉右上角,如果后手此时必胜,则先手第一步学习后手的必胜策略即可。

所以 \(n = 1,m = 1\) 时后手必胜,否则先手必胜。

Bash Game

\(n\) 个石子,一次拿 \([1,m]\) 个,无法操作的人输。

这题有两种分析方法:

第一种,考虑状态间的转移,考虑最后的必败状态是 \(n = 0\) ,也是 \(n \equiv 0 \mod (m + 1)\) 。考虑如果 \(n \not \equiv 0 \mod (m + 1)\) ,先手一定可以把它变成 \(n \equiv 0\) ,同理,如果一开始 \(n \equiv 0\) ,那么操作过后一定 \(\not \equiv 0\) ,由于石子数一定在减小,所以总有一个时候 \(n \equiv 0\) 时失败。

这样得出先手必胜条件为 \(n \not \equiv 0 \mod (m + 1)\) 。这是一种十分常规的分析方法,考虑用合理的状态刻画先后手之间的互相转化,最后走到终点。

但是感觉这样设计状态有些唐突,我们考虑第二种,从终点开始, \(n = 0\) 是必败态。容易得到 \(n \in[1,m]\) 是必胜态,因为一定可以一步取完。再推,发现 \(n = m + 1\) 是必败态,因为后继状态全部必胜;同理又发现 \(n \in [m + 2,2m + 1]\) 是必胜态,因为可以转化到 \(m + 1\) 。

这里得出了 SG 函数的一个弱化结论(十分显然):如果一个状态的后继状态中存在必败态,那么这个状态就是必胜态;否则为必败态。

这个结论有一个练习题:过河卒(作者省选的遗憾)。

SG 定理

我们定义 DAG 上一个节点的 SG 函数:

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

其中无出度的点(必败)的 \(SG\) 值为 \(0\) 。

\(SG\) 函数的性质就是先手必胜当且仅当 \(SG\) 函数大于 \(0\) 。

有以下定理:

对于一个由多个不干扰的平行游戏组成的博弈,整体的 SG 函数值为子游戏 SG 值的异或和。

Nim Game

\(n\) 堆石子,第 \(i\) 堆有 \(a_i\) 个,可以选取一堆并且拿走任意个石子(非 \(0\)),无法操作者输。

考虑用 \(SG\) 函数分析,如果列出 \(0,1,\dots,a_i\) 这些点代表石子个数,我们发现这些点构成一张竞赛图,其中大的连向小的。

不难归纳证明 \(SG(i) = i\) 。

根据以上定理,我们发现这个游戏先手必胜当且仅当所有堆的异或和大于 \(0\) 。

如果要具体分析的话,就是先手先操作使得异或和等于 \(0\) ,后手一次操作一定让它变得大于 \(0\) ,先手存在操作将异或和重新变回 \(0\) (取最大的一堆),这样操作最后到 \(0\) 时一定轮到后手。

Lasker’s Nim Game

Nim 游戏,但是可以选择这一步分裂石子堆。

\(SG(x)\) 与新局面取 \(mex\) 就好了,由于是两堆并列,所以新局面是 \(SG(y)\ xor\ SG(x - y)\) 。

打表发现:

\(\forall k \in \mathbb{N^+}\),\(SG(4k) = 4k - 1,SG(4k + 1) = 4k + 1,SG(4k + 2) = 4k + 2,SG(4k + 3) = 4k + 4\) 。

k-nim Game

\(n\) 堆石子,每堆有 \(a_i\) 个,每次可以选 \(k\) 堆拿,无法操作者输。

考虑如果 \(\forall i,a_i = 1\) ,那么就是一个 Bash Game。

考虑定义状态为对于所有堆,每一个二进制位 \(1\) 的个数都是 \(k + 1\) 的倍数。当前操作者一次操作一定会让某些位 \(1\) 的个数不是 \(k + 1\) 的倍数。由简单 nim 游戏我们可以发现,一定可以通过操作一个数改变某一位的值;同样地,操作最大的数可以改变所有位的值。由于每次操作不超过 \(k\) 个数,所以一个二进制位上可以改变不超过 \(k\) 个 \(1\) ,所以如果当前某些位不是 \(k + 1\) 倍数,那么一定可以变成 \(k + 1\) 的倍数。

所以类似地,这个游戏的结论就是先手必胜当且仅当某一位二进制 \(1\) 的个数不是 \(k + 1\) 的倍数。

Anti-nim

nim 游戏,但是不能操作者胜。

考虑如果全部都是 \(1\) ,那么偶数时先手胜,奇数时后手胜。

如果只有 \(1\) 堆 \(>1\) ,那么先手可以决定取不取完,必胜;注意到这种情况所有堆异或和 \(>0\) 。

如果有很多堆 \(>1\) ,且所有堆异或和 \(>0\) ,那么先手可以操作一次使异或和 \(=0\) ,此时一定不会出现上面的情况,后手操作一次后异或和一定重新 \(>0\) ,总有一次会变成上面的情况,先手必胜。

反之,如果有多堆 \(>1\) 且所有堆异或和 \(=0\) ,先手必败。

一些奇妙的转化
棋盘游戏

\(m \times m\) 的棋盘和 \(n\) 个棋子,每次可以操作一个棋子向左下对角线方向,左边,下面移动任意格,一个棋子移到 \((0,0)\) 就获胜。

这个和以往的博弈不同,一个到达就获胜,不能直接 \(SG\) 函数,考虑转化。

容易发现当前行动的这个人不会走到 \((0,y),(x,0),(1,1)\) ,不然直接送掉。所以可以假设 \((1,2),(2,1)\) 是棋子的终点,当所有棋子到达时,对手就被迫走上面三步,你就赢了。

所以把 \((1,2),(2,1)\) 当作终点推 \(SG\) 即可。

Crosses and Crosses

一张 \(1 \times n\) 空纸条,可以涂黑一格,涂黑后连续三个黑就赢。

\(n \leq 5000\) 。

考虑涂黑一格后,左右延伸两格范围内都不能再涂,所以转化为左右两段的子问题,\(SG\) 函数递推即可。

翻硬币游戏

一排 \(n\) 个硬币, \(m\) 个朝上,每次选择区间并将所有硬币翻面,要求右端点的硬币一定朝上,无法操作者输。

\(1 \leq n \leq 10^9,1 \leq m \leq 10^5\) 。

翻硬币游戏的统一结论:这些硬币可以看作很多只有一个硬币的子问题的组合,\(SG\) 函数直接异或。

关于这个的感性证明就是考虑翻完最高位,并且同时将低位的很多硬币都翻转,相当于这些子问题的异或,如果某个低位本来就有朝上的硬币,那么会被抵消,同时异或运算也可以抵消,所以 \(SG\) 函数不被影响。

K 倍动态减法游戏

\(n\) 个石子,第一个人拿 \([1,n - 1]\) 个,后面每个人拿的都不能超过前面一个人的 \(k\) 倍,不能操作者输。

\(k = 1\) :先手必胜当且仅当 \(n \neq 2^i\) ,因为先手每次取 \(lowbit\) ,然后后手必须取更低的,会制造新的 \(1\) ,而只有先手的操作会让 \(1\) 的个数减少,所以最后拿完的一定是先手,必胜。

如果是 \(2^i\) ,那么先手拿完后会变成多个 \(1\) ,后手采用相同策略。

\(k = 2\) :先手必胜当且仅当 \(n \in Fibonacci\) 。考虑一个正整数一定可以拆分成若干个不相邻的 Fibonacci 数的和。有一个特征就是 \(f_{i + 2} > 2f_i\) ,所以我们就可以每次拿 Fibonacci 拆分中最低位,类比二进制计算。

最后通解也就可以构造:我们需要构造数列 \(\{a_n\}\) 使得任意一个正整数可以表示成若干个 \(a_i\) 的和并且这种表示中相邻两项相差至少 \(k\) 倍。

设 \(a_1 = 1\) ,我们记数列 \(\{b_n\}\) 为 \(a_n\) 可以表示出的最大范围,接下来这样构造:

\(a_{n + 1} = b_n + 1,b_{n + 1} = a_{n + 1} + b_j\)。

\(j\) 是满足 \(ka_j < a_{n + 1}\) 的最大的 \(j\) ,由于 \(b_n + 1\) 前面表示不出,所以这一项一定要能表示这个数;\(b_{n + 1}\) 是因为选了 \(a_{n + 1}\) 后下一项需要小于等于 \(\frac {a_{n + 1}}{k}\) 。

这样,策略就是取最小表示中最低的位来获得胜利,如果 \(n\) 是序列中的数的话就必败。

标签:必败,可以,博弈论,初步,必胜,异或,数学,4k,SG
From: https://www.cnblogs.com/TheLastCandy/p/17983359

相关文章

  • 斜45度瓦片地图(Staggered Tiled Map)里的简单数学
    转载至:ShuaiYUAN斜45度瓦片地图(StaggeredTiledMap)里的简单数学前段时间在做游戏的地图编辑功能,我们是在一个斜45度视角的场景上,对地图上的建筑或装饰物进行添加、移动、移除等基本操作,而且位置的改变是以网格作为最小操作单位的。本渣是用StaggeredTiledMap实现的,与垂直视......
  • P4588 [TJOI2018] 数学计算
    题目描述小豆现在有一个数x,初始值为1。小豆有Q次操作,操作有两种类型:1m:将x变为×*m,并输出xmodM。2pos:将x变为x除以第pos次操作所乘的数(保证第pos次操作一定为类型1,对于每一个类型1的操作至多会被除一次),并输出xmodM。输入格式一共有t组输入。对于每一......
  • 《算法引论》第二章(数学归纳法)
    第二章总结2.1原始的数学归纳法可以变形为各种形式,核心是有几个知道的n比较小的值或者性质+有一些从前向后的推断方式,然后推出一系列东西。比较常见的变形有强归纳法、间隔归纳法(n=1,2,..k时成立,n-k成立能推出n成立)、指数归纳法(n/k推n),等等。关键:根据我们掌握了什么决定使用什么......
  • 博弈论(基础)
    一些用处不多的姿势:perfectinformation:双方做决策时知道当前局面处于什么状态以及可能向什么状态转移。(如围棋你知道当前局面以及可以知道对手下一步可以走的位置)complete information;博弈双方知道各自的目的。(如狼人杀显然不是,你不知道对方的身份以及对方取得成功的条件)im......
  • 纯粹的数学
    纯粹的数学-记《一个数学家的叹息》一个数学家的叹息[美]保罗·洛克哈特whatweneedarenotions,notnotations.—CarlFriedrichGauss摘录⛤当代的教育制度继承自工业革命时期,所以教育的目的是为了创造工业所需的人才。大量产出工业需求的一致性劳动力是学校教育的......
  • 离散数学 第1章 数理逻辑
    1.1命题1.1.1基本概念断言:一个陈述语句。祈使句、疑问句一定不是断言。命题:要么为真,要么为假,不能二者都是的断言。原子命题(本源命题):一个命题已不能分解成更简单的命题命题和本源命题常用大写字母P、Q、R表示eg.P:4是质数1.1.2命题联结词复合命题:命题和原子命题可通过......
  • 区块链技术初步认识
    概念:区块链(英文名:blockchain)是一种块链式存储、不可篡改、安全可信的去中心化分布式账本,它结合了分布式存储、点对点传输、共识机制、密码学等技术,通过不断增长的数据块链(Blocks)记录交易和信息,确保数据的安全和透明性。区块链的特点包括去中心化、不可篡改、透明、安全和可编程性......
  • OI 博弈论若干模型总结(Genshing)
    OI博弈论的若干模型OI不是知识竞赛。平等博弈是完全信息的(知道双方目标及操作收益),交替行动的,知道当前局面和转移的,平等(决策和当前状态操作者无关)的。不平等博弈和上面一致,但是有一方更加平等。所有的平等博弈都可以化为DAG上的移动游戏。公平组合游戏是无法行动者败的游戏......
  • 程序员数学之-IEEE754规范
    1定点数与浮点数在现实生活中,不仅要有整数,还需要小数,计算机怎么表示小数呢?有两种方式:定点数与浮点数定点数(FixedPointNumber):顾名思义,小数点位置固定,例如常见的Qm.n表示法,共需1(符号位)+m(整数位)+n(小数位)bit位来表示数据,如Q7,Q15,Q31等数据类型。其优点是:计算速度快;缺点......
  • 书里写爱因斯坦的数学考试考了1分
    像小学时候,书里写爱因斯坦的数学考试考了1分,但是后来仍然成为了伟大的科学家。 殊不知德国的教育分数,是6分制,1分是优秀,6分是最差的。所以爱因斯坦小时候的数学成绩,是很好的,各位同学想要未来成为伟大的科学家,一定要学好数学。除了爱因斯坦,还有著名的发明家爱迪生。他7岁......