关于chomp!游戏及其拓展的讨论

注:本文内容基于作者在“无处不在的数学”的课上展示,并对其有所增删

简述

主要研究问题为chomp!游戏。

本文首先给定一个游戏场景,并以此为例引入组合游戏等相关概念,并通过简单的逻辑推理对胜负关系进行分析并得到相关结论,接下来对该问题进行拓展与变形,最终将其抽象为较为规范的数学问题并得到一个一般性的结论。

引例

假设你穿越到了未来,看到了两个机器人正在玩一个游戏,游戏规则是这样的:

游戏一开始有一个 n ∗ m ( n , m ≥ 1 ) n*m(n,m\ge 1) nm(n,m1)的方格图,两名玩家轮流进行操作,每次操作的玩家要选择一个未删除的方格,将它和在它左上角的方格全部删掉

谁删掉右下角的方格谁就输了。

你能否预测这场游戏的胜负结果?

概念

首先,在博弈论上我们可以将这场游戏归为公平组合游戏

其中公平组合游戏满足以下规则[1]

(1)由两名玩家交替行动,且这两个人的决策都对自己最有利;
(2)在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关;
(3)无论二者如何做出决策,游戏可以在有限步内结束,且不会出现平局。

解释一下,第一条显然满足;由于没有类似“其中一名玩家可以选两个格子删除”的“耍赖”规则,所以第二条成立;而且每次操作后方格图至少减少一个格子,方格图中总格子数有限,所以一定会出现游戏结束的情况且不存在平局关系,因此第三条也成立。

接着我们给出策梅洛定理[2](Zermelo’s theorem),其表明在二人参与的游戏/博弈中,如果满足:

(1)游戏的步骤数有限
(2)信息完备(这里的信息完备指二人都了解游戏规则,了解游戏曾经所发生过的信息)
(3)不会产生平局
(4)游戏本身具有确定性,不会加入随机因素

则先行一方有必胜策略,或者后行一方有必胜策略。

注意到该定理的四项条件显然适用于该游戏,而我们前面提到两名玩家都会采取最优策略,那么对于有必胜策略的任一方,它此时所面对的游戏局面对他而言一定是必胜的,所以最后我们引入关于局面状态的定义:

必胜态§:任一后继局面为必败态,则当前局面为必胜态。
必败态(N):所有后继局面均为必胜态,则当前局面为必败态。
其中所有游戏局面均属于 { P , N } \{P,N\} {P,N}中的任一种。

简单来说,如何理解这一定义?

在本游戏中,当方格图被删空时,此时轮到的玩家获胜,所以当前局面为(初始)必胜态;

而对于一个未删空的方格图,玩家不同的选择会使得操作后留给对手的方格图不同,如果所有可能留给对手的局面都是必胜态,那么当前局面就是必败态,比如此时只有1个格子;

相反的,如果在可能留给对手的局面中,至少有一个是必败态,那玩家使用最优策略就一定会选择留给对手必败的局面,那么当前局面就是必胜态。

介绍完相关概念和定理,下面我们先给出结论

结论

n = m = 1 n=m=1 n=m=1时,先手玩家必败,否则先手玩家必胜

分析证明

n = m = 1 n=m=1 n=m=1时显然先操作的玩家会输
而当这一条件不满足时,无论先手玩家的第一次选择怎样操作,最左上角那个方格是一定会被删掉的
因此考虑使用反证法:

n , m n,m n,m不同时为1时,如果存在某种方格图能使先操作的玩家A必输,那么就假设先手玩家第一次就取左上角的方格(因为此时为必败态,所以先手玩家如何操作都会输),由于后手玩家B必胜,此时B会选择某个方格x,使其自身和左上角的方格全部删除,然后局面一定还是A必输的,否则B就输了。

我们回到第一次操作,A同样选择x(规则(2)使得A也可以选择格子x),那么根据上面的分析,此时对于B而言是必输局面,与假设矛盾,因此假设不成立。

经过分析,这个问题得到较圆满的解决,但遗憾的是,我们无法给出一种具体的操作策略来供必胜玩家使用,只能证明存在对应的必胜策略。

接下来我们看几个扩展问题

拓展1

有一个 n × m × l n×m×l n×m×l的立方体,每个位置上放一块棋子,两名玩家轮流每次选择一枚棋子 ( a , b , c ) (a,b,c) (a,b,c),并取走立方体中所有符合条件的棋子 ( i , j , k ) (i,j,k) (i,j,k),要求 a ≤ i ≤ n ∩ b ≤ j ≤ m ∩ c ≤ k ≤ l a\le i\le n∩b\le j\le m∩c\le k\le l ainbjmckl,最后不能操作的玩家算输,假设玩家都采取最优策略,求胜负关系

这实际就是上面问题的三维版本,使用类似分析可得当 p = q = r = 1 p=q=r=1 p=q=r=1时先手必败,否则先手必胜

同样的,我们可以将问题推广到n维,得到的结论是类似的

拓展2

一个集合 S = { 1 , 2 , 3 , 4 , . . . , n − 1 , n } S=\{1,2,3,4,...,n-1,n\} S={1,2,3,4,...,n1,n},其中 n ≥ 1 n\ge 1 n1,两名玩家轮流操作,每次操作选择一个数 x ∈ S x\in S xS,并删除目前S中存在的所有x的约数(包括x),谁不能操作( S = ∅ S=\emptyset S=)时谁就赢了,假设玩家都采取最优策略,请预测胜负关系。

类似于上面的分析,我们发现 S S S中的1就是那个“左上角”格子,因为1是任何正整数的约数。

所以结论就是 n = 1 n=1 n=1时先手输,否则先手胜。

拓展3

给定一棵n个节点的有根树,起始每个节点均为白色,两名玩家轮流操作,每次操作选择一个白色节点,将该节点及其祖先均染为黑色,谁不能操作(所有节点均为黑色)时谁就赢了,假设玩家都采取最优策略,请预测胜负关系。

结论与前面两个问题类似,这里的“根”就是“左上角”格子,但这里的问题是更为抽象化的(涉及离散数学中“有根树”的概念),而在接下来的讨论中我们会给出更为一般化的结论。

一般化结论

我们将上面的结论推广至有限偏序集,即:

游戏在一个初始存在最大元素max的有限偏序集 ( S , ≤ ) (S,\le) (S,)上进行,两名玩家轮流操作,每次选择 S S S中的元素 x x x,并令新的集合 S ′ = S − T S'=S-T S=ST,其中 T = { y ∣ x ≤ y , y ∈ S } T=\{y|x\le y,y\in S\} T={yxy,yS}(即T由所有大于等于x的元素构成),当轮到某位玩家操作时,若 S = ∅ S=\emptyset S=,则该玩家输。

结论: ∣ S ∣ = 1 ⇔ |S|=1\Leftrightarrow S=1先手必败

∣ S ∣ = 1 ⇒ |S|=1\Rightarrow S=1先手必败,显然正确

∣ S ∣ > 1 |S|>1 S>1时,我们同样通过反证法来证明:

假设先手必败(即后手必胜),则先手就在第一次操作中选择元素max,此时 S ′ = S − { m a x } S'=S-\{max\} S=S{max},而此时由于后手存在必胜策略,因此后手会选择 x 0 ∈ S ′ x_0\in S' x0S,留给先手玩家必败局面 S 1 = S ′ − { y ∣ x 0 ≤ y , y ∈ S ′ } S_1=S'-\{y|x_0\le y,y\in S'\} S1=S{yx0y,yS}
然而回到第一次操作,此时 x 0 ∈ S x_0\in S x0S,先手玩家选择 x x x,那么 S 2 = S − { y ∣ x 0 ≤ y , y ∈ S ′ } S_2=S-\{y|x_0\le y,y\in S'\} S2=S{yx0y,yS},由于 S 1 = S 2 S_1=S_2 S1=S2,因此后手玩家处于必败局面,与前面假设矛盾,所以此时先手必胜。

这样我们就得到了以上更为接近数学语言描述的结论。

附录:关于有根树的概念[3]

有根树(tree)是包含n个结点的有限集,其中:
1.每个元素称为结点(node)
2.有一个特定的结点被称为根结点或树根(root)
3.除根结点之外的其余数据元素被分为 m m m个互不相交的集合 T 1 , T 2 , … … T m T_1,T_2,……T_m T1T2……Tm,其中每一个集合 T i ( 1 ≤ i ≤ m ) T_i(1\le i \le m) Ti(1im)本身也是一棵树,被称作原树的子树(subtree)。

树也可以这样定义:树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。

附录:关于偏序集的概念

我们对于一个集合 S S S中的元素规定一种二元关系 R R R,如果该关系对于该集合上的元素满足自反性反对称性传递性,那么称 R R R为集合 S S S上的偏序关系,一般记作 ( S , ≤ ) (S,\le) (S,)(关系 R R R写作 ≤ \le ),对于 a , b ∈ S a,b\in S a,bS,我们会写成 x ≤ y x\le y xy

1.自反性: ∀ x ∈ S \forall x\in S xS,均有 x   R   x x\ R\ x x R x.

2.反对称性: ∀ x , y ∈ S \forall x,y\in S x,yS,如果 x   R   y x\ R\ y x R y y   R   x y\ R\ x y R x均成立,那么 x = y x=y x=y.

3.传递性: ∀ x , y , z ∈ S \forall x,y,z\in S x,y,zS,如果 x   R   y x\ R\ y x R y y   R   z y\ R\ z y R z均成立,那么 x   R   z x\ R\ z x R z也成立

生活中较为常见的大于等于,小于等于,等于都属于偏序关系

偏序关系 ≤ \le 与实数集 R R R上的 ≤ \le (小于等于)并不一样,而通过定义,我们可以将小于等于归为偏序关系的一种。

∀ x ∈ S \forall x\in S xS x ≤ m a x x\le max xmax均成立,则我们称 m a x max max为偏序集 ( S , ≤ ) (S,\le) (S,)的最大元素。

正文介绍的相关问题都满足这种偏序关系,如删格子游戏中x,y代表方格, x ≤ y x\le y xy表示y在x的左上方,而最大元素就是左上角的方格;约数游戏中 x ≤ y x\le y xy表示y为x的约数,而最大元素就是1.

小结

文中介绍的问题一般被称为chomp!问题,对该问题的研究讨论属于组合博弈论的范畴,而本问题仅是分析方法较为简单,无需较多数学工具的一类问题。

组合博弈论是博弈论的一个分支,它的主要研究对象是资讯完全、轮流行步且不带几率成分的二人博弈。

除了chomp!游戏外,还有很多组合游戏有着巧妙的数学分析与逻辑证明,和我们的生活也存在着许多联系。

希望本文能让大家更多地了解和体会到组合游戏的精彩与有趣。

参考文献

[1]王晓珂,《解析一类组合游戏》,国家集训队2007论文
[2]Ernst Zermelo,“Über eine Anwendung der Mengenlehre auf die Theorie des Schachspiels”(1913)
[3]百度百科,树(数据结构名词)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值