博弈论一些情况总结
来源:互联网 发布:excel数据标志为百分比 编辑:程序博客网 时间:2024/05/29 23:44
博弈小结:
(忽略从word上复制过来之后的奇葩缩进)
看了张一飞+贾志豪+方展鹏+曹钦翔的论文都讲得超好,这些应该到处都可以找到的。
终于会基本的博弈了。
仅仅只是看完之后的回忆录而已,基本上和论文相似,仅总结加深记忆用。
看到本文的人轻点喷。
也许看论文会更清晰。
以前博弈各种弱,只是零零星星的了解一些知识,严格的证明之类的没有接触。
现在终于都搞清啦!不过碰上奇葩博弈还是做不出。。。
1.极大极小搜索
2.普通NIM游戏
如果A=B,则T胜。如S={3,3,2,2}分解成{3,3}和{2,2}.
如果对于A是S胜,B是S败(由于A,B等价,反过来亦然),S只需要先拿A,然后T如果拿A,S也拿A,T拿B,S也拿B,那么S因为对于A,S是先手,所以S总是可以拿到A的最后一个,并且可以逼着T当B的先手。因为B先手必败,S也可以拿掉B的最后一个。
如果对于A和B都是S败,那么A先随便拿一个,对于T来说就变成了上一种情况了。那么此时T胜。
当A和B都是S胜时,S肯定不会第一步把局面变成一胜一负,他会继续变成AB都对于T必胜,那么T又纠结了。如此往复,就无法确定了。
上面的分解,归纳一下,如果对于B,S必败,那么整个局面的胜负和A一样。
那么如果原几何是{2,2,2,7,7,3,3,9}就可以分解成A{2,9},B{2,7,3},C{2,7,3}。因为B+C是必败的,所以A+B+C的胜负和A一样,这样就转化成了一个不重集合了,打裸就少了一堆状态了。
好吧!以上就可以类比出XOR运算了。沿着这个思路,就可以想到一个函数来优化打裸了。
如果p=0则该状态是S败,否则S胜。
因为终止状态是p=0,要证明这个结论的正确性,只需要证明从p≠0能够转移到p=0,而从p=0只能转移到p≠0即可。
首先,明确xor的基本性质。
1.a+b=c,则有a+c=b.
2.p=a1+a2+…..an≠0,必然存在k,使p+ak<ak,因为p的最高位为1,肯定有一个ak该位也是1,p+ak该位就是0了。所以得证。
证明从p≠0能够转移到p=0
证明从p=0只能转到p≠0
其他时候,随便你选什么数ak,那么其他数的xor和肯定等于ak。
p=(ak-xxx) + ak,xxx为正数且小于ak,那么p显然就不为0了。
至此,证明了f[a1]=a1的正确性了。
现在题目稍稍拓展一下。
N堆石子,每次任选一堆,可以从这堆拿走不超过m个的石子。求先手必胜还是必败。
这个的f[a1]=a1%m.
因为游戏的分解之类的东西与前一个游戏一样,所以只需考虑一堆石子即可。
考虑最开始的那个打裸,从后往前推一下N和P就可一直到a1%m=0时必败。
来个终极版NIM游戏。
有若干排石子,每次必须选相邻的两个拿走,把原来的那排变成了两排。
谁无路可走了谁就挂了。
分析这个题,发现各种分解的性质和前面的两个游戏一样的。现在就需要求f值了。
和前面的游戏一样,我们设计的f值必须满足
终止状态p=0,从p≠0能够转移到p=0,从p=0只能转移到p≠0即可。
第一个条件是显然成立的。
回忆论文,先假设#S表示S这个状态的f值之xor和,
要满足第二个条件
要满足第三个条件
其实,这就是sg值了。以前一直觉得这东西特别神奇,原来就这样就证明出来了。
看sg函数的使用条件:
1.
2.
3.
4.
5.
3.anti-nim游戏
先手必胜有两种状态:
1.如果每一个小游戏都只剩下一个石子了,SG为0。
2.至少一堆石子>1,且SG不为0.
证明
a.
b.
还需要证明1,2的反面是必败的。
1显然了。
2的话,你会把SG变成非0,而且因为现在至少两堆石子>1了,所以你还会给人家至少留一个>1的,那么无论怎么搞,都会送给后手一个必胜态。
4.every-SG游戏
形象的说就是红队和蓝队每个队n个人,然后进行n个博弈,最后结束的一场博弈的胜者胜利。
显然,每个博弈的胜者都想让时间坚持得更久,每个败者都想让这场博弈早点结束。
不难列出每个点到终止的步数的DP方程。
如果v是先手必胜,则f[v]=max(f[u])+1,其中u为v的后继且u为先手必败。
否则f[v]=min(f[u])+1,u为v后继。
5.不平等博弈
则说明x>=0成立,且x<=0不成立。
也就有SA中的元素都>=0,y中的元素都>0,那么A能转移到的状态总是有>=0的,y能转移到的总是>0的,那么A总是有状态可转,那么A必胜。
如果x<0
如果x=0
真的很佩服方展鹏神犇能想到把博弈和超现实数结合起来。
弱菜就只有膜拜的份了。
理论知识终于准备得差不多了,接下来就是刷更多题熟练了。
- 博弈论一些情况总结
- 关于博弈论基础知识的一些总结
- 关于博弈论基础知识的一些总结
- 关于博弈论基础知识的一些总结
- 博弈论总结
- 博弈论总结!
- 博弈论总结
- 博弈论总结
- 博弈论总结
- 博弈论总结
- 博弈论总结
- 博弈论总结
- 博弈论 总结
- 博弈论总结
- 博弈论总结
- 博弈论总结
- 总结C++中的一些特殊情况
- 博弈论知识总结【转】
- http://www.ruanyifeng.com/blog/2014/05/restful_api.html RESTful API 设计指南
- Cocos2dx加载网络图片并保存
- View类的setVisibility()
- 字符串时间转换数据库时间
- Android Notification
- 博弈论一些情况总结
- css复习——a标签 day5
- 面向对象
- JavaWeb多项目部署后非ROOT项目无响应问题
- yii2 中关于隐藏frontend/web和backend/web的方法
- Lambda 表达式
- 部分jar包及功能
- 启动docker容器时虚拟机端口转发外部无法访问
- 数字图像处理成长之路2:mat与通道