博弈论 1.Introduction(组合游戏基本概念、对抗搜索、Bash游戏、Nim游戏)

本文探讨了博弈论的基本概念,包括每个玩家的偏好和博弈的动态过程。重点介绍了组合游戏,它通过限制和简化使得问题更易解决,如Bash游戏的状态转移可以转化为有向无环图。在分析这类游戏时,PN态是一个关键工具,用于确定最优策略。通过实例和解题方法,如打表,展示了如何解决博弈问题。此外,还讨论了奇偶数堆石子游戏的胜负规则,并给出了证明思路。最后,博弈论的思想也被应用于其他问题,如回文判定和删除除数问题。
摘要由CSDN通过智能技术生成

1.博弈

博弈论是研究具有斗争或竞争性质现象的数学理论和方法。

每个玩家都有一个偏好,A一般是希望A赢,如果不可以的话就倾向于 平局,B一般倾向B赢,达不到的话就倾向于平局。他们的每一步组成了一个“函数”,或者说是“映射”,即每一步操作都会对应一种结果,而每一步又都不是固定的,是根据上一步来产生......

 “一般的博弈游戏是非常复杂的,一般算不出答案,所以在算法考试中一般不考,考得多的是下面的‘组合游戏’”

2.组合游戏(combinatorial game)

 组合游戏 给了限制,给问题做了简化

“ 状态的转移” -> “有向无环图”

 Bash游戏

 0个石子为结束状态,0可以由1得来,可以由2得来,由3得来...4可以到达3,2,1.....。21为起点,这个可以在有限步内结束。

Bash游戏是一个组合游戏

讨论这个游戏的最优策略,以及在最优策略下谁会赢

P N态

注意上图的“性质”,与Bash游戏无关,所有的组合游戏都适用。

 

 浅解释:对于上图,玩家A到达0后玩家B就不能再取了,游戏结束(A胜),所以0为P态(A走到0,A胜);到达1的玩家,取走这一个石子后下一玩家到达0,则走下一步的玩家赢 该玩家败,1为N态;……能到P态的都是N态,我们称“当前玩家”从当前这个状态往下走的玩家,则P态:当前玩家输,N态:当前玩家赢。对于P态,无论怎么走都会输,所以就是最优策略了,而N态 要到达P态,使自己赢。

P N态是我们分析博弈问题的一个最基础的工具。【一般都是倒推

确定终态:正常规则与反常规则

 Bash游戏是正常规则,那么反常规则的Bash游戏呢?(照样倒着 “递推”)

 例题

1.【hdu 1404】Digital Diletions

 2.【hdu 1079】Calendar Game

 所以一个非常重要的"万能"的方法就是: 打表(学会了打表,博弈题基本上就解决了一半)

我们再回过头来看第一题,他不满足 组合游戏的定义(组合游戏不会有平局),但依然可以用其思想来解决,这里可以dp、递推,我们只关心那些“数对”(回文判定时的首尾呼应的数对)的个数,而它们具体在什么位置我们并不关心,“1-1”就可以不用管了,下图的f, 我们要记录“0-0”对的数量,“0-1”对的数量,0的个数,以及上一步是否进行了翻转操作....

3.【cf 1527 B2】Paindrome Game

 

 4.小牛再战

分析:

(这里手动“打表”了先)N=0时,P态(正常规则);N=1时,可以全部取走,N态;

    N=2时,设这两堆:x1>=x2>0; 首先,显然(emogg说的,受伤了啊我),x1==x2 为P态,因为我们从x1取一部分走(放不放到x2都一样) 变成 y, x2 ,如果y=0, 那就进入N=1的N态了->此时x1==x2为P态;若y!=0, 第二个玩家总能将其变为相等的两堆:在x2那堆拿走(x2-y)个石子....也就是总与上个玩家“作对”,这样x1>x2就是N态。N=3时,是N态,设x1>=x2>=x3>0 ,那么从x1拿(x2-x3)个给x3(多的扔掉), 得到 0,x2, x2(P态); 我们是可以保证x1>(x2-x3)的(因为x1>=x2, x2>x2-x3啊)所以N=3为N态;

 结论:

1.N是奇数->N态;

2.N是偶数时,两两成对是P, 否则是N;

 

证明:

先全都排个序:x1>=x2>=x3>=...>=xn;

N是奇数的时候,取最大的那个,分配到后面(全部=x2)x1 >( x2-x3)+(x4-x5)+(x6-x7).....+(X[n-1] - X[n]) 只要把后面括号顺序改一下就可以看出来了:x1 > x2 (- x3+x4) (-x5+x6) (-x7..)...( +X[n-1] ) - Xn; 括起来的都是小于0的,又x1>=x2 ....

N是偶数的时候,两两成对为P态,不成对则可以一步变成两两成对的P态->为N态,详见下图吧。。

5.【cf 1537 D】Deleting Divisors 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值