什么?象棋和围棋都存在不败策略?

作者: 李松

来源: 公众号:中国科学院理论物理研究所

发布日期: 2022-01-06 12:46:41

本文详细介绍了策梅洛关于双人完全信息博弈的一个定理,即在象棋和围棋等棋类游戏中存在不败策略,并通过五子棋的例子介绍了策略窃取的方法,证明了在某些游戏上后手不存在必胜策略,换言之,先手有不败策略。

象棋和围棋都是中华文明的瑰宝,更是训练和测试思维能力的方式之一,那些在这两种棋类上取得成就的人们,其智商普遍得到公众认可。但是,我们是否想过,在这两种棋类上是否存在必胜或者平局的策略?答案是存在的,这是策梅洛关于双人完全信息博弈的一个定理的结论。本文将详细介绍这个定理的证明,并将其用于诸如五子棋的分析中。

为了让大家对最优策略有一个直观的理解,这里举一个小游戏作为例子。

这个小游戏叫Chop,在游戏的最开始有一个m×n的网格,游戏由两位玩家轮流操作,每位玩家每轮可以沿着一整根竖网格线或者一整根横网格线将网格割掉一块,割到只剩下一个小方格的玩家为胜者。对于这类双人游戏,一般会有最先进行操作的玩家,我们将其称为先手,另一位被称为后手。如果一开始的时候m和n其中一个数为1,比如n=1,先手玩家可以直接切割掉(m-1)个格子即可获得胜利,这个策略就是先手玩家的最优策略。

如果对于一般的m和n,先手或者后手怎样才能保证获胜呢?其实很简单,如果m和n不相等,那么先手的最优策略会导致必胜的结果:这时候先手玩家只要割掉其中一块使得剩下的网格是个长和宽相等的网格即可。这样,无论后手切割哪条线,都是在长和宽相等的基础上进行切割,最后必然得到一个长宽不相等的网格,也就不可能是单独一个网格。先手玩家只要每一步实行这个策略,无论后手玩家怎么操作,先手玩家都会获胜。

这时候读者肯定明白了,当m=n的时候,无论先手玩家怎么操作,后手玩家都可以借助前述一样的策略获胜。

完全信息博弈和策梅洛定理。策梅洛定理适用于被称为完全信息博弈的一类游戏。所谓完全信息博弈,指的是游戏的所有信息都是公开的,游戏双方都能清楚了解到目前游戏所处的状态信息,并且游戏的每一步都不涉及概率因素。这个条件把扑克、飞行棋、暗棋和翻棋玩法下的军棋都排除掉了。

然后,我们还需要这个游戏能在有限步内结束,并且,游戏的结局要么是平局要么有一方是胜者。很明显,围棋是属于完全信息博弈的。至于象棋,有可能会进入循环状态从而整个游戏没完没了。为了避免这一点,我们可以加入一些新规则使得象棋不会出现循环,比如,设定一个很大的数N,只要连续N步双方都没有被吃掉棋子就判为和棋,或者不允许超过N次进入同一种棋子状态,否则判为和棋。

加入这些规则或者类似的规则之后,象棋就满足要求了。

策梅洛定理的证明。为了证明策梅洛定理,我们需要引入一个小小的概念:游戏树。在游戏的每一步,玩家有很多种走法,每一个走法都会产生新的分支,把两位玩家的所有可能走法考虑进来,就会得到一个树状结构。这个树状结构穷尽了游戏过程的所有可能性。接下来,我们假设每一位玩家都是理智的,当玩家处于游戏树的某个节点时,她/他必然会选择对其最有利的走法。

假如现在游戏状态来到了倒数第二步,再走一步游戏将结束了,那么我们就会看到游戏树的末端。得到了A处的胜负信息之后,我们就可以忽略A下面的所有节点了,这时候A就成了一个末端节点,它带有相应的胜负信息。这个操作可以继续进行下去,不断得到上一级节点的胜负信息,然后忽略掉旧的末端节点。如此往复,因为树是有限高的,最终我们会得到游戏一开始那个节点(术语叫根节点)的胜负信息。

如果根节点的胜负信息是(1,0),那么意味着先手玩家只要按最优策略走下去就会必胜;如果根节点的胜负信息是(0,1),那么意味着后手玩家具有必胜策略;如果根节点的胜负信息是(0,0),那么意味着双方的最优策略会导致平局。至此,策梅洛定理证明完毕。

如何确定谁才具有必胜策略:策略窃取。想必读者已经跃跃欲试了,如果知道了象棋或者围棋的最优策略,岂不是在棋坛上横着走?

可惜的是,虽然策梅洛定理的证明是构造性的,但是构造过程需要我们先得到整个游戏树,而像围棋这类棋,游戏的路径(指从根节点到末端节点的一条路径)比宇宙的原子数目还要多,要想通过整个游戏树来得到最优策略是不可能的了。如此说来,策梅洛定理仅仅给必胜或者平局策略提供了存在性。不过,借助策梅洛定理所提供的存在性,我们可以利用被称为策略窃取的方法证明在某些游戏上后手不存在必胜策略,换言之,先手有不败策略。

本文将以著名的五子棋为例介绍策略窃取是怎么一回事。很明显,五子棋满足策梅洛定理的条件,于是有且仅有三种可能性:先手具有必胜策略、后手具有必胜策略、双方的最优策略会导致平局。接下来我们使用反证法。假如后手具有必胜策略,我们把这个策略称为S。这时候无论先手玩家怎么走,后手玩家只要使用策略S,先手玩家必输。策略窃取的要点就是把对方的策略“窃取”过来。

先手玩家先在棋盘上随便放一个棋子,位置记为P1,然后假装这个棋子不存在。这时候轮到后手玩家放子了,由于假装P1上的棋子不存在,后手玩家成了“先手”,而先手玩家成了“后手”,于是先手玩家可以使用必胜策略S。根据这个策略的必胜性质,无论对方怎么走,“后手”玩家(也就是先手玩家)都将获胜。不过,事情似乎没那么简单。我们只是假装P1上的棋子不存在而已,实际上这个棋子是存在的。

P1位置上的棋子会怎么影响到策略S的使用呢?假如走到了某一步,策略S要求“后手”玩家将棋子放在P1位置,这时候P1已经存在“后手”玩家的棋子了,但是游戏要求玩家每一步都不能不下棋子,此时“后手”玩家可以在这一步把棋子下在其他的任意位置,记为P2。

这样的话P1和P2都占据了“后手”玩家的棋子,这就等价于游戏一开始“后手”玩家将棋子下在了P2,并且在目前这一轮“后手”玩家根据策略S的要求把棋子下在了P1位置。如果接下来策略要求棋子下在P2,那么“后手”玩家可以任意把棋子下在P3位置……如此类推,先手玩家可以完美使用策略S,于是会必胜。这和反证法的假设相矛盾。于是,五子棋只能存在两种情况:先手具有必胜策略、双方的最优策略会导致平局。

或者更简洁地表述为,先手具有不败策略。

UUID: d57b78cd-6034-4a99-b27c-434215ddb1d2

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/中科院物理所公众号-pdf2txt/2022/中科院物理所_2022-01-06_「转」什么?象棋和围棋都存在不败策略?.txt

是否为广告: 否

处理费用: 0.0073 元