OI 中的博弈论

其实我从小就开始学习博(打)弈(扑)论(克),对于各种不平等博弈(斗地主,炸金花,跑得快,斗牛,510k,五星,变色龙,够级,保皇)都有了解。

上边纯属扯淡。

下面是关于OI中博弈论的学习笔记。

 先介绍一些概念

双人平等博弈

要求:

1.信息完全公开

2.双方轮流行动

3.面对同一局面,双方的决策集合相同

4.一般规定不能操作者输

5.游戏不会成环,有限步数之内游戏必将结束

游戏的转移图

任意一个局面是一个节点,两个局面可以相互转移,就在他们之间连一条边。

这样得到的DAG就是游戏的转移图。

P态和N态

定义先手必胜状态为N态反之则为P态

不难验证,一个状态为P态,当且仅当它是一个结束状态或它的后继状态均为N态

因此我们也可得到一个在游戏图上判断胜负的基本方法:搜索游戏的所有P态

SG函数

sg函数是处理博弈问题的一个强力工具。

定义一个局面x的SG函数为:

1.若它本身不存在后继,SG(x)=0

2.否则设它的所有转移集合为S,SG(x)=mex{S}

一个局面为P状态当且仅当SG值=0

下面介绍各种平等博弈的一般模型

尼姆博奕

经典问题:有n堆石子,第i堆有ai个,两个人轮流操作,每次选择一堆非空的石子,从中选择若干个,不能操作者输。

解法:我们记所有ai的异或和为x,后手必胜当且仅当x=0。

对于游戏最终状态满足x=0,后手胜利。

对于一个x=0的局面,任意操作都会打破这种状态。

对于一个x≠0的局面,至少存在一中操作使x=0。

而事实上,Nim游戏就代表了所有的平等博弈问题。

Nim和

设现在存在两个游戏A和B,双方在两个游戏上博弈,轮流操作。

每次选择一个游戏,在一个游戏上进行转移。

不难发现这是一个新游戏,我们用它来定义游戏的和,记做A+B。

Nim博弈就是N堆取石子游戏的和。

定理:SG(A+B)=SG(A)^SG(B),可用归纳法证明。

反Nim博弈

对原来的游戏规则,现在约定不能执行操作的人胜利,既执行最后一次。

简单起见,我们考虑n个游戏的和,并且假定每个单独的游戏中,所有SG(x)=0的局面不存在出边。

定理:在这种情况下,先手必胜当且当

1.存在一个游戏SG(x)>1,且所有的游戏异或和不为0

2.游戏有SG(x)=1,且有偶数个游戏

任何时候,对手执行了一个使SG(x)变大的操作,我们可以执行一个操作把它变回来,且这不是做后一次。

下面是SG函数在一些场景的应用

巴什博弈

同Nim游戏,只是每次取的个数不能超过m。

结论:SG(x)=x mod (m+1)

阶梯博弈

有n堆石子放在n层楼梯上,每次选择一层的若干石子放入下一层,一层的石子向下扔视为扔掉,无法操作视为输。

其实相当于所有奇数堆的石子做Nim游戏。

为什么和偶数层的无关呢?可以这么想,假如我们把若干石头从偶数层干到奇数层,那对方还能继续把他干回偶数层。

这是一个递归的过程,直到把它干到0。而这一系列操作跟奇数层的石子无关。

所以我们计算奇数层的异或和,就可以得到整个游戏SG函数。

威佐夫博弈

有两堆石子,博弈双方每次可以取一堆石子中的任意个,不能不取,或者取两堆石子中的相同个。先取完者赢。

不想写啥。还得搞黄金分割率。。上课件吧

等到时候做了题再丢几道博弈的题吧,总之感觉这个东西挺迷的。。

猜你喜欢

转载自www.cnblogs.com/Slrslr/p/9392538.html
OI