本文首发于知乎专栏——不一样的围棋,作者,不会功夫的潘达
在职业围棋圈,一部分棋手自称“求道派”。“道”者,终极真理是也。与“棋道”如影随形,“围棋上帝”、“围棋之神”也是棋手和棋迷常挂在嘴边的两个概念。在上一章节我们讲到,围棋之多变如恒河沙数,非人力所能及。思及此,棋迷朋友可能会诘问,围棋的终极真理是否存在,“围棋上帝”到底会怎样下棋。笔者将在本文解答这两个问题。(本文部分内容参考了笔者的其它回答)
1、小学生的游戏
围棋,终究还是个游戏。欲知围棋之道,我们可以先从研究一个简单的游戏入手。抢三十,一个酒桌上的小游戏,也是一道小学奥数题。它的规则是这样的:
甲和乙从1开始轮流报数,每次可以报1、2或3个数。比如甲报1,2;乙报3,4,5,甲报6,乙报7,8. 报出“30”这个数字的玩家获胜。
抢三十的诀窍,说来也不难,只需用到一点逆向思维。如果甲想抢到30,一定不能以29收尾,否则乙下回合可以直接抢到30。同理,甲也不能以28或27收尾,不然乙也能直接抢到30. 不过,若是甲以26收尾,则乙在下一回合必然抢不到30. 不仅如此,乙下一回合必然以27,28,29三者之一收尾。这样一来,轮到甲的时候,甲必然能抢到30. 因此,甲抢到26就可以保证获胜。同理,想要抢到26,甲必须抢到22、18、14、10、6、2. 我们以下图示意:
以红色的30为最终目标,橙色的26、22等数是兵家必争之地,而白色的27、28、29等数,只能过站,不可以停留。甲玩家只需一路占领2、6、10、14、18、22、26这一串等差数列,即可将胜利收入囊中。
小结一下。抢三十这个游戏,先手方(即先报数的甲玩家)有必胜策略,而且可以用数学语言精确地描述:先手方先报1,2;之后,若后手方报n个数(n=1,2或3),则先手方立即回以4-n个数。最终,先手方总能抢到30。
在博弈论(Game Theory)中,数学家把像22、26这些游戏中的“兵家必争之地”,称作必胜局面(Winning Position)。换句话说,抢到必胜局面的一方,即可稳操胜券。相应的,像27,28,29这样的节点,在此停留就会失败,被称为必败局面 (Losing Position)。
这个策略说来容易,却隐藏着许多变化。举个例子。甲报1,2,乙报3,4;这是一个回合。每一个回合,甲都会占领一个新的必胜节点。七个回合结束以后,甲才能抢到30. 每一个回合中,乙可以报一个、两个或三个数,各有三种选择。根据乘法原理,六个回合中,乙共有3*3*3*3*3*3*3=3^7=2187种策略的组合。只不过,乙的变化再多,也逃不出甲的手掌心。
那么,如果甲和乙抢的不是三十,而是每次可以报1-299个数字,报出1,000,000者为胜呢?依样画葫芦,我们仍可以为先手方找到必胜策略:先手方只需先报100。然后,若后手方报n个数(n=1,2,…,299),先手方立即回以300-n个数。先手方总能抢到100,400,700,1000,…999700,1000000这一串数,即“必胜节点”,从而获胜。
我们来看这一套必胜策略包含的变化。后手方每次有299种选择,先手方每次也只有一种回应。3330个回合之后,先手方就能获胜。因此,总变化数是299^3330。数字虽大,终究有限。因此,这个无聊的游戏,就算是上帝来和笔者玩,只要笔者拿到先手,就输不出去。这就是抢三十这类游戏的“终极真理”了。
2、完全信息游戏与策梅洛定理
抢三十这一类游戏,我们能够运筹帷幄、立于不败之地的关键是,我们知道对手所有可能的选择,我们了解游戏中所有的信息。像这样的游戏,我们称之为完全信息游戏 (Perfect Information Game) 【反例:斗地主不是完全信息游戏,因为看不到对手的牌】。另一方面,抢三十也是一个有限游戏(Finite Game),即它总是在有限个回合内完成。对于所有的完全信息有限游戏,我们都可以画出它们的游戏树 (Game Tree)。就像图论中的树一样,一个完整的游戏树包含有一个起始节点,代表游戏中某一个局面,接着下一层的子节点是原来父节点局面下一步的各种可能性,以此类推。游戏树逐层扩展,直到游戏结束。
上图是抢三十游戏树的一部分。19这个节点只与20、21、22这三个节点连接,意味着若甲报出19,则乙只能报到20、21或22. 其它节点间的连接关系同理。
抢三十游戏相对简单,在于它只有一个终局局面,或者说游戏树的末端节点,也就是30。我们很容易从这唯一的最终节点逆推出必胜策略。但是对于拥有不止一个终局局面的游戏,推理最优策略就不那么容易。这时,就轮到游戏树出场亮相了。接下来,我们再介绍一个游戏为例。
井字棋 (Tic-Tac-Toe),又称XO棋,是一种简单的棋。对局双方轮流在3×3的棋盘上落子,在横、竖或对角线方向上连成三个的一方获胜。如下图,是从空枰开始的井字棋游戏树。
如果能完整地画出一个游戏的游戏树,那么我们就像掌握了抢三十的秘笈一样,只需按图索骥。比如说,对于井字棋游戏的一个残局,下图的游戏树给出了双方所有的应对可能性。
此残局的初始局面,由画“X”一方先行。X方有三种选择,而每一种选择下,O方也有两种应对。标有蓝色分数的棋局是终局节点,+1表示X方获胜,-1表示O方获胜,0表示平局。很明显,X方不能选择棋盘右边的两个点,否则O方可以一击绝杀。因此,X方只能走在棋盘左边。这样一来,即使O方选择正确,X方也能保证平局。游戏树第二层和第三层的部分节点标有黑色数字。这些节点并非终局,但我们可以简单推理出双方都走对情况下的棋局结果,标上+1,-1或0。同理,我们可以逐层往上标记,直到残局的初始局面,也就是游戏树的起始节点。图中,起始节点的值是0,因此我们得到结论,此残局若双方应对无误,结果是平局;X方应走在棋盘左中的一点。
井字棋完整游戏树,来自Wikipedia
更进一步,如果我们画出井字棋的完整游戏树(如上图),我们就可以用同样的方法,逆推出游戏树中每一个节点最终会走向何种结果,最终推出双方的最优策略,以及在最优策略下谁胜谁负。事实上,如果从空枰开局,双方不犯错的情况下,井字棋会以平局收场。
所有的二人完全信息有限游戏,如果没有运气成分(例如飞行棋掷骰子),在理论上我们都可以用同样的方法,画出游戏树,从结果逆推到开局。数学家恩斯特·策梅洛(Ernst Zermelo)将这个结果总结为策梅洛定理(Zermelo's Theorem),表述如下:
若二人完全信息有限游戏不涉及随机成分,则要么先行方有必胜策略,要么后行方有必胜策略,要么双方均拥有必不败策略(即若双方都不犯错,游戏将会是平局)。
策梅洛定理的严格证明,其实和前文井字棋部分所述类似。在确定游戏树之后,从所有终局局面出发,可以推断出任意局面的胜负性(即此局面何方有必胜策略,或者双方均有不败策略),直至初始局面。在数学上,这种推理的方法,被称为反向数学归纳法(Backward Induction)。
策梅洛定理适用于大部分为人熟知的棋类游戏,比如国际象棋、五子棋、黑白棋、西洋跳棋等,但不适用于涉及运气成分的飞行棋,也不适用于多方混战的中国跳棋。
3、围棋,有限游戏?
读到这里,性急的读者可能已经脱口而出,“那么,围棋当然也适用策梅洛定理,一定存在某一方的必胜策略嘛”。且慢。围棋确实符合“二人”、“完全信息”、“无随机因素”这三个特点,但“有限”这个性质,我们暂时还得打个问号。
有记载的职业棋局,最长手数记录是414手(林修平VS陈禧一),超过了围棋盘交叉点的总数361个。但这并不是一局围棋长度的上限。能够无限进行下去的棋局,其实在职业比赛中已经出现过多次。比如下图,古力和李世乭在2012年三星杯32强双败淘汰赛首轮的一局。
由于棋盘右方罕见的四劫循环,本局被判“无胜负”,双方重赛。注意,本局的结果是“无胜负”,而不是和棋(平局)。“无胜负”隐含的意思是,这盘棋可以无限进行下去。在规则没有禁止的情况下,黑白双方将反复提四个劫,循环往复。
对应到围棋的游戏树中,多劫循环是一种循环(loop)结构。
比如,在上图中,节点1-2-5和节点2-3-4-5分别构成循环。循环使得策梅洛定理中的反向归纳法失效,不适用于有循环的游戏。
好在,现行中国围棋规则在原则上禁止多劫循环,也包括长生等其他特殊的循环棋型。
中国围棋竞赛规则(2002年版)
第一章 总则
第6条 禁止全局同形
着子后不得使对方重复面临曾出现过的局面。
本条规则有时简称“禁全同(SuperKo)”或“禁同形”。在部分比赛中,禁全同规则并未得到严格执行。本章节剩余的部分,我们仍基于严格的禁全同规则来讨论。在严格禁同的情况下,循环不复存在。即使局面再多,一盘棋也不能无限进行下去。
综上所述,禁全同的围棋是有限游戏,适用策梅洛定理。取决于贴先的不同,黑方或白方之一肯定有必胜或不败的策略。现行中国规则,黑贴3又3/4子,杜绝了和棋的可能性。因此,黑方或白方之一肯定有必胜策略。如果采用旧时的不贴目规则,允许和棋,则要么黑方有必胜策略,要么白方有必胜策略,要么双方均有必不败策略。
4、存在而不可知的必胜策略
也许思维活跃的读者还有疑问。黑白双方之一有必胜策略,这个回答并不令人满意。想必读者更关心的问题是,到底是黑棋必胜,还是白棋必胜。前文介绍的抢三十,变化不少,但掌握规律以后没有任何难度,因为先手方有一个简单易行的必胜策略。无禁手的五子棋倒是很复杂,但资深爱好者大多也知道花月局加蒲月局可以保证黑方必胜。
图注:五子棋花月开局。其后变化虽复杂,但黑方总有确定获胜的路线。