博弈论笔记

博弈论笔记

巴什博弈

Nim游戏

威佐夫博弈

Ferguson游戏

Chomp游戏

SG函数


今天讲了三种博弈题型,今天困,老师又说不清楚,听的云里雾里的。
博弈最重要的是局面,局面确定了,输赢也就确定了。
在推导过程中,要标出
必败点一定会输的点
必胜点可以到达必败点的点
由此找规律


巴什博弈

有n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取 m个。最后取光者得胜。

假设n = m + 1,那么无论如何取,先取者必输。因为先取者无论取多少,后者一次性便可将剩余取完。

胜利法则:若n%(m+1)不等于0,则先手必胜


Nim游戏

有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
Nim游戏是博弈论中比较重要的的,因为很多问题都可以转化成它。有个很重要的结论就是
若A(1) xor A(2) xor … xor A(n)==0 那么必输,否则必胜。
老师上课没讲证明,弄得我一头雾水。。
简易证明如下:
出处:https://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html

今有若干堆火柴,两人依次从中拿取,规定每次只能从一堆中取若干根, 可将一堆全取走,但不可不取,最后取完者为胜,求必胜的方法。
设S态为A(1) xor A(2) xor … xor A(n)!=0
T态为A(1) xor A(2) xor … xor A(n)=0
[定理1]:对于任何一个S态,总能从一堆火柴中取出若干个使之成为T态。
证明:
若有n堆火柴,每堆火柴有A(i)根火柴数,那么既然现在处于S态,
c = A(1) xor A(2) xor … xor A(n) > 0;
把c表示成二进制,记它的二进制数的最高位为第p位,则必然存在一个A(t),它二进制的第p位也是1。(否则,若所有的A(i)的第p位都是0,这与c的第p位就也为0矛盾)。之所以要取有第p位的A(t),是因为如果取位数较小的元素,按位异或的结果可能会变大。
那么我们把x = A(t) xor c,则得到x < A(t).这是因为既然A(t)的第p位与c的第p位同为1,那么x的第p位变为0,而高于p的位并没有改变。所以x < A(t).讲x替换A(t)
A(1) xor A(2) xor … xor x xor … xor A(n)
= A(1) xor A(2) xor … xor A(t) xor c xor … xor A(n)
= A(1) xor A(2) xor… xor A(n) xor A(1) xor A(2) xor … xor A(n)
= 0
这就是说从A(t)堆中取出 A(t) – x 根火柴后状态就会从S态变为T态。证毕
[定理2]:T态,取任何一堆的若干根,都将成为S态。
证明:用反证法试试。

c = A(1) xor A(2) xor … xor A(i) xor … xor A(n) = 0;
c’ = A(1) xor A(2) xor … xor A(i’) xor c xor … xor A(n) = 0;
则有
c xor c’ = A(1) xor A(2) xor … xor A(i) xor … xor A(n) xor A(1) xor A(2) xor … xor A(i’) xor c xor … xor A(n) = A(i) xor A(i’) =0
进而推出A(i) = A(i’),这与已知矛盾。所以命题得证。
[定理 3]:S态,只要方法正确,必赢。
最终胜利即由S态转变为T态,任何一个S态,只要把它变为T态,(由定理1,可以把它变成T态。)对方只能把T态转变为S态(定理2)。这样,所有S态向T态的转变都可以有己方控制,对方只能被动地实现由T态转变为S态。故S态必赢。
[定理4]:T态,只要对方法正确,必败。
由定理3易得。

看了半天才有点明白。还有一道拓展,取最后一根火柴的人输。原文里有很严密的分析过程和两道题的对比。并没有完全看懂。
老师找的例题是 高僧斗法


威佐夫博弈

凡是正儿八经的玩意儿都得有个奇奇怪怪的名字。这东西今天让我想了半天。

有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

这个最大的不同就在于可以两堆同时取。考虑的时候要打表。
首先考虑两堆中有一堆是1的情况,找出必败点。 经过寻找,得出只有1,2时必败
再找有一堆是2的时候,发现无论是多少,只要拿走一些,到达1,2即可,所以必败点1,2
再找有一堆是3的时候,3,4可以分别拿走一个变成1,2.所以必败点3,5 即 3,3+2
再找4: 4,5可以到达1,2;4,6可以到达3,5;必败点4,4+3
再找5 : 5已经有必败点了,所以跳过
然后6:6,6+4
7:7,4
.……
打表,用大数除以小数,在数据大的时候,比值就是黄金分割的倒数!

黄金分割是个神奇的东西,看起来毫不相关的东西居然有它的身影。pi,e,42……这些数字里有宇宙的奥义,藏着上帝的秘密。

关于博弈论分析问题的方法,点这个链接看他的博客

斐波那契博弈和k倍博弈


Ferguson游戏

进行游戏需要用到两个盒子,在游戏的开始,第一个盒子中有n枚石子,第二个盒子中有m个石子(n, m > 0)。参与游戏的

两名玩家轮流执行这样的操作:清空一个盒子中的石子,然后从另一个盒子中拿若干石子到被清空的盒子中,使得最后两个

盒子都不空。当两个盒子中都只有一枚石子时,游戏结束。最后成功执行操作的玩家获胜。找出游戏中所有的P位置。

这个写出必败点、必胜点,一点一点推导就可以。不难
结论是(x,y)至少一偶时,先手胜;都为奇时,先手败

通过这个例子,一是要会通过必败点推导必胜点然后归纳,另一个是在做题时可以考虑一下奇数偶数。


Chomp游戏

来源Chomp游戏(必胜策略分析)
Chomp是一个双人游戏,有m x n块曲奇饼排成一个矩形格状,称作棋盘。

----两个玩家轮流自选一块还剩下的曲奇饼,而且还要把它右边和下边所有的曲奇饼都取走(如果存在)

----先吃到左上角(1,1)那块曲奇饼的玩家为失败

这个结论是先手必胜
如果后手有必胜策略,使得无论先手第一次取哪个石子,后手都能获得最后的胜利。
那么现在假设先手取最右下角的石子(m,n) ,接下来后手可以取某块曲奇(a,b) 使得自己进入必胜的局面。
事实上,先手在第一次取的时候就可以取曲奇 (a,b) ,之后完全模仿后手的必胜步骤,迫使后手失败。
于是产生矛盾。因此不存在后手必胜策略,先手存在必胜策略。

类似问题

1、三维Chomp游戏

将曲奇排成 P x Q x R 的立方体,两个玩家轮流自选吃掉一块剩下的曲奇饼,若取走的曲奇饼为 (i,j,k) ,则也要取走所有满足 i ≤ a ≤ P,j ≤ b ≤ Q , k ≤ c ≤ R 的曲奇饼(a,b,c)(如果存在)。

可以类似地将Chomp游戏扩展到任意维,并可以类似地证明,先手都存在必胜策略。

2、有限偏序集上的Chomp游戏

Chomp游戏可以推广到在任意一个存在最小元 a 的有限偏序集(S,≤)上:两名游戏者轮流选择S中的元素 x ,移走 x 以及所有 S 中比 x 大的元素。失败者是被迫选择最小元 a 的玩家。

如果 (S,≤) 有最大元素 b ,那么在偏序集上的Chomp游戏存在一个获胜策略.

3、约数游戏

给定一个大于1的自然数 N ,两个游戏参与者轮流选择N的大于1的正约数,但不可选择之前被选择过的因子的倍数(例如 N = 72,有一方之前选择了4,则之后任一方都不可以再选择36)

4、删数游戏

给定整数集合 {1,2,…n} ,两个人轮流从中选择一个数字,并将它和它的约数从集合中删除,删除最后一个数的人获胜。

类似Chomp游戏,得到结论就是无论 n 是几,都是先手必胜。

类似的问题,都是类似的分析方法,假设后手有必胜策略,前者都可以“悔棋”,然后取后手的策略。
特点是一删删一堆,会对后手产生影响


SG函数

学了这么多博弈,老师今天终于给我讲了SG函数。SG函数在博弈论的问题里相当使用,尤其适用于解博弈和问题。
介绍SG函数之前,先介绍mex函数

若S为一个非负整数集合
mex(S)={S中未出现的的最小非负整数}
比如mex(0,1,3)=2 mex(0 1 2 3 )=4 mex()=0

那么SG函数是什么呢

SG(x)=mex{ SG(x的后继元素) }
什么是x的后继元素呢,就是由x通过题目中的操作能得到的值

哦,云里雾里,SG有什么用处啊。我再由一个问题举个例子,顺便介绍一下 博弈和是什么。

博弈和问题就是由多个博弈子问题构成的问题

Nim游戏就是最简单的博弈和问题,n堆石子,就是n个子问题。

而对于博弈和问题,各个问题SG值的Nim和等于0,先手必胜,否则后手必胜。

这是个结论,我一点也不想知道是怎么证明的,也不知道是哪个天才整出来的,简直了,居然能在这么复杂的问题里找到共性,提炼出规律。可怕!

回归正题,继续以Nim游戏这个最简单的博弈和问题介绍此类问题的通解。
对于一堆石子,石子数为0,则必败,这时SG(0)=0。而有一颗石子时,我可以通过拿走一颗到达0,所以SG(1)=mex{0}=1。以此类推,SG(x)=x.因此直接用石头的个数求得Nim和就是结果。

提升一下难度,如果只能取2颗或5颗石子,那么怎么做呢?
SG(x)=mex{SG(x-2),SG(x-5)}.(x>=2&&x>=5)
大致了解了吧。
例题Treblecross 点这里进入VJ
有时间我会做做这个题写题解的。(今天太累了不想写了)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值