博弈论
整理了一些博弈论模型,但大部分还是咕咕咕了(●ˇ∀ˇ●)
博弈论
组合游戏
前言
组合游戏是指一种两个玩家的游戏,每个玩家都是聪明绝顶不存在随机操作,比如打牌不是,游戏的结果只有赢和输。
通常玩家会交替移动,直到游戏结束,即达到终止状态,不存在任何一种可行的移动方式的状态。
这种游戏的结果在一开始就已经被决定了,由游戏的集合,游戏的初始状态和玩家的先后手完全确定。
组合游戏的形式有两种分别是Impartial Combinatorial Games和Partizan Combinatorial Games,前者是指在游戏中两位玩家进行的移动是完全相同的,后者则不相同比如国际象棋(NGNL),主要还是讨论ICG。
定义
形式化的定义一个组合游戏:
- 两个玩家组成的游戏
- 游戏存在一个有限的状态集合
- 两个玩家的操作方式是相同的,没有区别
- 玩家交替进行
- 当玩家移动到终止状态时,游戏结束
一般的话都是最后一个移动的玩家获胜,讨论起来还相对简单,不过也存在最后一个移动的玩家失败的游戏,更为复杂一些。
不过重要的是,无论游戏怎样进行,都会在有限步数内结束。
另外,两个玩家都是足够聪明的玩家,每一步都会走最优策略。
状态
由于游戏的结果在一开始就可以确定,所以存在先手必胜和后手必胜。
定义P-position为先手必胜,N-position 为后手必胜。
NIM 游戏
前置知识
位运算
正文
NIM游戏,属于组合游戏的一种,起源可以追溯到很久以前,其游戏内容为:
有堆石子Alice和Bob轮流从中取至少一个至多不超过一堆石子,谁取走最后一堆石子,谁就胜利。
是否存在一种先手必胜的策略?
这种问题的解决方法,是设为每堆石子的数量,,若则先手必胜,否则后手必胜。
证明:
-
没有后继状态的状态为必败状态(Terminal Position)
例如将石子取完后,此时为N-position(此时先手已经没有可以取的石子了)。
-
对于 的局面一定存在某种移动使得 ,即P-position一定可以转移到N-position
假设设为1的最高位为第位,那么一定存在一个的第位为1,此时,一定小于(因为的第位不为0,异或后为0肯定小于),我们移走个石子,此时第堆还剩个石子,此时,得证。
-
对于的局面一定不存在某种移动使得,即N-position一定不可转移到N-position
设取走第堆的石子后变为了,此时得不成立。
至于异或为什么能表示状态之间的转移主要还是因为:
- 终止状态时显然有
- 取出第堆的石子的操作其实等价于将这堆石子的数目异或上一个数变为
- 每个状态之间的异或其实就体现在上述证明中的第2,3条引理,对某个状态的异或就是对整体结果的异或
现在我们将取石子的游戏转化成了异或的游戏,同时也满足对应的规则,异或和在与的两个状态间不停的转换,就体现了P-position和N-position之间的转换。
Anti NIM
前置知识
NIM
正文
Anti NIM游戏,就是修改NIM游戏的胜利判定为拿走最后一堆石子的失败,会变得更复杂一点(但也不难)
引理:
先手必胜当且仅当:
- 每堆的物品数都为1且NIM和为0
- 有些堆的物品数大于1且NIM和不为0
证明:
- 当所有堆的石子均为1时
- 石子NIM和,此时有偶数堆,先手必胜
- 时,此时有奇数堆,先手必败
- 当有一堆石子数时,此时显然
- 若有奇数堆石子,此时把的那堆石子取至1个石子,转化为1中的2,先手必胜
- 若有偶数堆石子,此时把的那堆石子取完,同样转化为1中的2,先手必胜
- 当有两堆及以上石子数时
- 若,又可以分为两种情况
- 转化为至少两堆石子且,转化到3中的2
- 转化为一堆石子,由2可知,此时先手必胜
- 若,根据NIM游戏的证明,必定有一种方法转化为3中的1,此时先手总是能让后手取进行3中的1,后手只能给先手3中2直至必胜状态,故此时先手必胜
- 若,又可以分为两种情况
Staircase NIM
前言
Staircase NIM是NIM游戏的又一种变形,不过还是非常简单
正文
这次Alice和Bob又换了种玩法,
有堆石子,每次移动可以将第层上的至少一个石子移动到层上,谁取完最后一堆石子谁就胜利。
求是否存在一种先手必胜的策略。
首先考虑只有偶数层存在石子也就是说,假设对方为先手,那么对方只能将若干个石子移动的奇数层,此时我们再讲其移动到偶数层,直到最后偶数层上都没有石子(都到第0层上了),此时后手必胜
然后考虑奇数层的石子,将奇数层移动到偶数层,其实可以直接当做把奇数层的石子直接拿走,并不会影响之前偶数层策略的影响,那么就将问题转化为了奇数层之间的NIM博弈,如果可以做到留给对方的只有偶数层石子,则对方必败
其他博弈论游戏
占个坑 😱
博弈问题
1. A Funny Game
首先Alice作为先手,
- 拿一个,环断为长度为奇数的链,此时Bob再拿一个把链的长度变为偶数,接下来Alice拿几个Bob拿相同数目的硬币,Bob必胜
- 拿两个,环断为长度为偶数的链,此时Bob再拿两个链的长度仍然为偶数,接下来采取和1相同的策略即可,Bob必胜
综上,当时Alice必胜,反正Bob必胜。(好像叫做对称博弈)
2.谁能赢呢?
很简单,就像多米诺骨牌去覆盖棋盘,为奇数时需要挖掉左上和右下才能完全覆盖,此时后手必胜,为偶数时直接覆盖此时先手必胜。
3.取石子
首先如果不能合并,那么只要石子总数是偶数,Alice就必胜,所以也就是说,合并操作是用来转换状态的。
- 考虑石子个数$>mm$为奇数则先手必胜,否则后手必胜
证明:
为奇数时,不管后手做哪一个操作均可将变回奇数,最后合并为一堆时先手必胜。
为偶数时,
- 先手选择合并,变为奇数,变成后手的必胜局面
- 先手选择取石子,变为奇数,变成后手的必胜局面
- 先手选择取石子,变为奇数,此时后手将的石子堆合并(如果选择取石子,则堆数-1,石子数-1,为奇数,先手必胜)
- 考虑石子个数,使用记忆化搜索,为有堆石子为1,堆数量不为1的状态。
4.A New Stone Game
考虑两堆石子数量相同,这时肯定是后手必胜,只要后手和先手一直做相同的操作就可以必胜。
如果有的石子数量不相同的话,此时必定存在一种方案使得操作后石子数量相同
- 若当前有奇数堆石子的数量不能两两配对,则将其中的一堆石子全部取走,分到其他堆石子,使其两两配对,有偶数堆
- 若当前有偶数堆石子的数量不能两两配对,则将其中的一堆石子不全部取走,分到其他石子,仍为偶数堆
所以此时后手面对的是必败状态,先手必胜。
5.小约翰的游戏
Anti NIM游戏,时间复杂度
1 |
|
6.NIM游戏
判断异或和即可,时间复杂度
1 |
|
坑。。。