围棋中的数学原理

数学算法俱乐部

共 2285字,需浏览 5分钟

 ·

2020-07-28 15:52















数学算法俱乐部



日期2020年07月26日

正文共:2030字4

预计阅读时间6分钟

来源算法与数学之美


围棋一向被誉为是人类大脑智慧的专利,围棋的走法,几乎和宇宙中原子数量相同,甚至更多,每回合有250种可能,一盘棋可以长达150个回合,共有1后面再加360个0种下法,这样的计算量,对计算机来说叫暴力计算,非常残忍而且很难实现(对数字不敏感的直接看下面的GIF图更直观。但正是因为这种深度和复杂,所以几乎每个中国人都听到的话就是,围棋可以锻炼数学思维和逻辑能力。别急,至少让我们先看看围棋中有哪些数学原理。很认真的。


围棋的思维图


围棋,起源于中国,可以说是最早产生的一种棋类。相传围棋为尧所造,已经有4000年的历史。最初围棋可能与天文有联系,后来逐步变为纯粹的策略游戏。围棋的规则很简单,可以理解为双方抢占棋盘上的空间,对弈双方谁围起的空间越大谁就获得胜利。这与如今的市场经济体系是有相似之处的。


博弈论是二人在平等的对局中各自利用对方的策略变换自己的对抗策略,从而达到取胜目的理论与方法。其最早期的研究对象就是象棋,桥牌,赌博等。所以也可以用博弈论中的方法来研究围棋。

在围棋的一些基本概念,如死活,围空,实地与势中都蕴含着数学的原理。我们来细细看过。


有一句棋彦叫“多子围空方胜扁”,其意思是用多颗棋子围空的时候,棋型要尽量走成方形,也就是要有立体感,要把棋子的效率最大化,这样能围城大空。扁的棋型所占目数少,子效很低,弹性小。这其实是一个约束条件下的最优化数学问题。


下棋时我们总是希望用尽量少的子围出尽量大的空。当所用的子数一样时,围空越大越好。可以近似的把这个问题抽象为一个条件极值问题:矩形周长C为定值,求矩形面积S的最大值。

即求:

构造拉格朗日函数,

则可以列出方程:

解得:

由于空的最大值在区间内一定存在,所以易得:

就是最大值取得的条件,也就是说矩形为正方形时围空的效率最高。有经验的棋手布局时就会注意这一点,将子下得高低错落有致,这样易于高效的围出空来,不至于下出扁平的臃肿的所谓“愚形”。


当然,关于围空效率的问题,还有很多的棋彦,比如“金角银边草肚皮”,“莫压四路,休爬二路”,“七子沿边活也输”等等,这些道理都较易明白,这里就不再赘述了。



死活棋中的数学原理

围棋的死活是最基本的一项规则,可能也是唯一的规则了,所以死活的研究对于每一个棋手都是非常重要的。在下围棋时的计算主要就是死活和目数。对于一块棋的死活的计算,最一开始我们利用较多的就是穷举法,将可能的走法试一遍,来判断棋的死活。当然这种方法最适用于简单的死活,比如一些初学者做的死活题,因为此时可能性不多,能够穷举出来。对于一些复杂的死活问题,化归的思想是非常有用和自然的,如果能够试法将复杂问题转化为自己已经知道结论的简单问题,就能对自己的分析起到指导意义。比如我们一看到若干步之后能够构造出经典的活棋形式,就可以断定这片棋是活棋。
在对杀的过程中往往要判断自己单个眼内的内气是否满足需求。眼中内气的求法可用数列通项的递推方法来计算。若大小为n的眼位有an口气,则大小为n+1的眼有an+1口气,an+1与an满足的关系是
通过逐项相消的方法,可求得an的通项公式为
我们可以将该结论进行验证,
结果均与人们平时所熟悉数据的一致。当然n≥7时的大眼是公活的,讨论其气数在实战中意义不大,但是,这样的分析问题的方法却是值得借鉴的,因为这种递推的方法有助于我们化繁为简,加快计算速度。



围棋盘上格点数为19×19的数学原理

纵横十九道,迷煞多少人。围棋的规则现在已经基本定型。围棋的发展经理了一个漫长的过程。如今棋盘为19×19,也是经历了历史的演变。当然,围棋盘为什么是现在这个样子一直还是有争议的。但我们可以通过实地与外势的平衡来分析这个问题。

围棋盘上三路线被称为地线,在地线上行棋容易将低路上的空地围住。四路线被称为势,虽然不能完全控制住低路,但是对高路的围空很有帮助。我们可以看一个极端的例子。对于N路棋盘(一般最小的棋盘为九路,即N≥9),若地线全部被黑棋占领,势线全部被白棋占领(如下图所示),
则双方的围空效率之差为
其中,
这一项当N≥9时单调递减,
这一项也单调递增,所以整个式子是单调递增的。将N=18和N=19代入式子中,我们得到
可见N=19时|△λ| 取得最小值,即在十九路棋盘上行棋,双方的效率基本一致,使得取地与取势没有明显的优劣之分,这大大的拓宽了围棋的战术。所以围棋使用十九路棋盘不是没有道理的。

围棋是异常复杂与有趣的。它本身就是双方博弈的一种典型情况。围棋的道理与现实生活其实是紧密相关的,比如弃子、脱先、以及取势取地。这些特殊境况下的决策其实我们都会遇到。当然,很多情况下每个人找到的“最大的一手棋”都是不一样的,或者更本就没有这样的一手棋,但是我们必须要通过仔细的推理,判断来进行下去。

对于围棋的研究还是挺有实际意义的。围棋中无论是大问题还是小问题,我们可以尝试将这些问题抽象成数学问题,看清它的本质,这样对我们理解棋理甚至理解这个世界都是有好处的。



— THE END —




手动画出,优雅的二叉树形图
如何画出优秀的架构图?
数学和编程
机器学习中需要了解的 5 种采样方法
北大读博手记:怎样完成自己的博士生涯?非常具有指导性!
八卦二进制
浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报