组合游戏/博弈论学习笔记

【有一些东西不准确或者不对的还望各位大佬指正】

参考资料:

巴什博奕
威佐夫博弈
尼姆博弈

博弈论基本概念

一、概念

首先要明确,我们在这所讨论的【博弈题】都是【组合游戏】,最后所讨论的sg函数的适用范围也是【组合游戏】。

组合游戏

定义:
在游戏中双方都有完整的信息,没有牵涉,任何状态的合法操作对双方来说都是相同的。

判定:(相比定义更详(luo)细(suo)一些)

满足以下条件的游戏是ICG(可能不太严谨):1、有两名选手;2、两名选手交替对游戏进行移动(move),每次一步,选手可以在(一般而言)有限的合法移动集合中任选一种进行移动;3、对于游戏的任何一种可能的局面,合法的移动集合只取决于这个局面本身,不取决于轮到哪名选手操作、以前的任何操作、骰子的点数或者其它什么因素; 4、如果轮到某名选手移动,且这个局面的合法的移动集合为空(也就是说此时无法进行移动),则这名选手负。根据这个定义,很多日常的游戏并非ICG。例如象棋就不满足条件3,因为红方只能移动红子,黑方只能移动黑子,合法的移动集合取决于轮到哪名选手操作。

表示:
组合游戏可以抽象地用一个有向无环图来表示,这个图中每个点都对应这一个状态,每条有向边代表从一个状态到另一个状态的合法操作
这里写图片描述
这有一道和此定义相关的题poj2425【不过poj最近好像挂了】
我的题解

状态定义

P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败。因为前一个(previous)玩家将获胜,所以称作P。
N点:必胜点,处于此情况下,双方操作均正确的情况下必胜。
因为下一个(next)玩家将获胜,所以称作N。
这里写图片描述

二.三大博弈模型

巴什博弈:
内容

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

结论

如果n=(m+1)r+s(r为任意自然数,0< s≤m) 那么先取者获胜。
如果s=0 那么后取者获胜。

威佐夫博奕:
内容

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

结论

必败点(P):(ai,bi)
ai=[i*(1+√5)/2](方括表示下取整),bi=ai+i
其余均为必胜点(N)

尼姆博奕:
内容

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

结论:(证明见后面sg函数的内容)

共n堆,每堆大小为a1,a2,……an
若a1^a2^a3……an=0 则为P-position(必败点)
其余情况为N-position(必胜点)

由此我们引出sg函数

三.sg函数

内容

mex(minimal excludant):施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3、mex{2,3,5}=0、mex{}=0。
对于任意状态 x,定义 SG(x) = mex(S),其中 S 是 x 后继状态的SG函数值的集合。SG函数的终态为 SG(x) = 0,当且仅当 x 为必败点P时。

对于单个nim游戏我们可以直接得出它们的sg值(比如轮流取一堆石子),但是是对于多个组合游戏呢?
在这里用SG表示多个组合游戏的SG和
SG=sg(a)^sg(b)^……
为什么可以子组合游戏sg的异或值就是SG的值呢?
蒟蒻我也不知道,但是这有一段证明【异或】求法是正确的引用

它是P-position当且仅当a1^a2^…^an=0,其中^表示异或(xor)运算
1、最后的状态,全为零,显然成立;
2、对于某个局面(a1,a2,…,an),若a1^a2^…^an<>0,一定存在某个合法的移动,将ai改变成ai’后满足a1^a2^…^ai’^…^an=0。不妨设a1^a2^…^an=k,则一定存在某个ai,它的二进制表示在k的最高位上是1(否则k的最高位那个1是怎么得到的)。
这时ai^k< ai一定成立。则我们可以将ai改变成ai’=ai^k,此时a1^a2^…^ai’^…^an=a1^a2^…^an^k=0。
3、对于某个局面(a1,a2,…,an),若a1^a2^…^an=0,一定不存在某个合法的移动,将ai改变成ai’后满足a1^a2^…^ai’^…^an=0。因为异或运算满足消去率,由a1^a2^…^an=a1^a2^…^ai’^…^an可以得到ai=ai’。所以将ai改变成ai’不是一个合法的移动。证毕。
通俗的说,如果异或的结果为0,那么改变任何一个数,显然结果肯定不能为0了,如果结果不为0,改变某个特定一个数,可以使结果等于0,而异或运算恰好就满足这个条件。因而成就了这个不可思议的定理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值