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

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 

 

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值