博弈知识点整理

本文解析了几种经典的博弈论游戏,包括巴什博弈、尼姆博弈、约数博弈、斐波那契数列博弈及威佐夫博奕等,探讨了各种游戏的获胜策略及其变形。

博弈知识点整理

博弈满足的条件:
玩家只有两个人,轮流做出决策
游戏的状态集有限,保证游戏在有限步后结束,这样必然会产生不能操作者,其输
对任何一种局面,胜负只决定于局面本身,而与轮到哪位选手无关


一、巴什博弈(Bash Game)

  1. 问题模型:
    只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个,最后取光者得胜。
  2. 解决思路:
    n=m+1时,由于一次最多只能取m个,所以无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜,所以当一方面对的局势是n时,其面临的是必败的局势。所以当n=m+1)r+s,(r为任意自然数,sm)时,如果先取者要拿走s个物品,如果后取者拿走x(xm)个,那么先取者再拿走m+1k个,结果剩下(m+1)(r1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下m+1的倍数,就能最后获胜。
  3. 变形:
    条件不变, 改为最后去光的人输。
  4. 解决思路:
    结论:当(n1)%(m+1)==0时后手胜利。

二、尼姆博弈(Nim)

  1. 题目类型:
    有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
  2. 解决思路:
    abc表示某种局势,显证000是第一种奇异局势,无论谁面对奇异局势,都必然失败。第二种奇异局势是0nn,只要与对手拿走一样多的物品,最后都将导致000。 根据0nn, 我们可一得到a^b^c == 0 为必败状态。

    证明a^b^c != 0为必胜
    拓展到n个数


三、约数博弈:

  1. 题目类型:
    甲乙两个人玩一个博弈游戏。游戏初始状态包含1-n, 这n个正整数。
    甲乙两个人轮流玩这个游戏。每轮游戏中,游戏者任意选择一个还存在的数,然后删掉它和它所有的约数。
    谁最后没有数可删,谁就输掉了。
  2. 解决思路:
    先手有必胜策略。这个证明不是构造性的,也就是说没有给出先手怎么下才能赢。反证法:假设后手B有必胜策略,而先手A第一次取数1,B取了一个数x是必胜策略,然而A完全可以第一次取x(同时也必取了1)是必胜策略。故B必没有必胜策略。
  3. 变形:
    考虑一个新的规则“不准写数字1”。如果加上这个新规则后先写者有必胜策略,那么这个策略对于原游戏同样适用(因为1是所有数的约数,本来就不能写);如果在新规则下后写者必胜,则原游戏中的先写者写下数字1,然后他就变成了新规则下的后写者。于是不管怎么样,先写者总是有必胜策略。

四、 斐波那契数列博弈(Fibonacci)

  1. 问题类型:
    有一堆个数为n的石子,游戏双方轮流取石子,满足:
    • 先手不能在第一次把所有的石子取完;
    • 之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)。 约定取走最后一个石子的人为赢家。
  2. 解决思路:
    当n为Fibonacci数时,先手必败。即存在先手的必败态当且仅当石头个数为Fibonacci数。
  3. 证明:
    用第二数学归纳法证明:
    • 为了方便,我们将n记为f[i]。当i=2时,先手只能取1颗,显然必败,结论成立。
    • 假设当i<=k时,结论成立。 则当i=k+1时,f[i]=f[k]+f[k1]
      则我们可以把这一堆石子看成两堆,简称k堆和k1堆。
      • (一定可以看成两堆,因为假如先手第一次取的石子数大于或等于f[k1],则后手可以直接取完f[k],因为f[k]<2f[k1]
    • 对于k1堆,由假设可知,不论先手怎样取,后手总能取到最后一颗。下面我们分析一下后手最后取的石子数x的情况:
      • 如果先手第一次取的石子数y>=f[k1]3,则这小堆所剩的石子数小于2y,即后手可以直接取完,此时x=f[k1]y,则x<=23f[k1]
      • 我们来比较一下23f[k1]12f[k]的大小。即4f[k1]3f[k]的大小,对两值作差后不难得出,后者大。
      • 所以我们得到,x<12f[k]。即后手取完k1堆后,先手不能一下取完k堆,所以游戏规则没有改变,则由假设可知,对于k堆,后手仍能取到最后一颗,所以后手必胜。 即i=k+1时,结论依然成立。
    • 那么,当n不是Fibonacci数的时候,情况又是怎样的呢?
      • 这里需要借助“Zeckendorf定理”(齐肯多夫定理):任何正整数可以表示为若干个不连续的Fibonacci数之和。
      • 分解的时候,要取尽量大的Fibonacci数。

        比如分解85:85在55和89之间,于是可以写成85=55+30,然后继续分解30,30在21和34之间,所以可以写成30=21+9,依此类推,最后分解成85=55+21+8+1。

      • 则我们可以把n写成 n=f[a1]+f[a2]++f[ap]a1>a2>>ap
      • 我们令先手先取完f[ap],即最小的这一堆。由于各个f之间不连续,则ap1>ap+1,则有f[ap1]>2f[ap]。即后手只能取f[ap1]这一堆,且不能一次取完。
      • 此时后手相当于面临这个子游戏(只有f[ap1]这一堆石子,且后手先取)的必败态,即先手一定可以取到这一堆的最后一颗石子。
      • 同理可知,对于以后的每一堆,先手都可以取到这一堆的最后一颗石子,从而获得游戏的胜利。

威佐夫博奕


五、公平组合博弈(Impartial Combinatori Games)

  1. 定义:
    (1)两人参与。
    (2)游戏局面的状态集合是有限。
    (3)对于同一个局面,两个游戏者的可操作集合完全相同
    (4)游戏者轮流进行游戏。
    (5)当无法进行操作时游戏结束,此时不能进行操作的一方算输。
    (6)无论游戏如何进行,总可以在有限步数之内结束.
  2. 模型:给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移动者判负。事实上,这个游戏可以认为是所有公平组合游戏(Impartial Combinatori Games)的抽象模型。其实,任何一个ICG都可以通过把每个局势看成一个顶点,对每个局势和它的子局势连一条有向边来抽象成这个“有向图游戏”。
    • 一个状态是必败状态当且仅当他的所有后继状态都是必胜状态
    • 一个状态是必胜状态当且仅当他至少有一个后继点是必败状态
  3. Sprague-Grudy定理 (SG函数):
    • N={0,1,2,3,...} 为自然数的集合。Sprague-Grundy 函数给游戏中的每个状态分配了一个自然数。结点v的Grundy值等于没有在v的后继的Grundy值中出现的最小自然数.
    • 形式上:给定一个有限子集SN,令mex S(最小排斥值)为没有出现在S中的最小自然数。定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3mex{2,3,5}=0mex{}=0
    • 对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Garundy函数g如下:g(x)=mex{g(y)|yx}
  4. 性质:
    • (1)所有的终结点所对应的顶点,其SG值为0,因为它的后继集合是空集——所有终结点是必败点(P点)。
    • (2)对于一个g(x)=0的顶点x,它的所有后继y都满足g(y)!=0——无论如何操作,从必败点(P点)都只能进入必胜点(N点)//对手走完又只能把N留给我们。
    • (3)对于一个g(x)!=0的顶点,必定存在一个后继点y满足g(y)=0——从任何必胜点(N点)操作,至少有一种方法可以进入必败点(P点)//就是那种我们要走的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值