南极捕鱼的潘达,我专业真不是下棋的 阅读原文 大开脑洞:完美的棋盘是什么样的 潘达按:本文作者 @萤 - 时光灯 ,写这篇文章的灵感来自于一次阅读刘慈欣小说时候突发的畅想。潘达参与编辑本文。 ———————————————————————————————————————— 从 AIphaGo 到超现实数,围棋始终是工程师们的沙盘,数学宝宝们的游乐场。不过,这些科学家研究的对象都是下棋的策略。今天就让我们来返璞归真一下,站在巨人的肩上,从数学的角度来解读一下承载这种美丽游戏的背景——棋盘吧。 非洲地图棋盘(原作者:百度贴吧@漫游的大卫 ) 围棋的棋盘是一个 19x19 的正方形,我们叫它 19 路棋盘。古代的时候也有用 17 路棋盘的。小朋友在刚学棋的时候也会用到 13 路和 9 路的棋盘。我们日常会用到的围棋盘都是这些正方形的。也有些人创造性地使用地图形状的棋盘,但是在我看来,这些都不是最完美的棋盘。 完美的棋盘,首先应该没有“特殊”的交叉点——每个交叉点都应该恰好与另外四个交叉点相邻,不多不少。下面这张同心圆的棋盘就可以满足此要求。 平面同心圆棋盘 那么,可以更给力一点吗? 当然是可以的 。 上面那张同心圆的棋盘,虽然每个点确实只有四个邻点,而且没有了“角”,但还有里、外两条“边”,仍不够对称。更完美的棋盘,在没有棋子的时候,应该是混沌一片,处处都是对称的。无论第一手下在哪里,都是一样的。第一手过后才有了两极,有了策略,有了胜负。 想要这样的棋盘其实很容易。只需要把这个正方形的棋盘卷一卷,卷成一个圆柱型,然后再折一折,折成一个甜甜圈就可以了。这里我们定义 1=19, A=T,这样一个 19 路的普通棋盘就变成了 18 路的甜甜圈棋盘。 甜甜圈棋盘的平面实现,网络实战示意图 当然,已经有会玩的棋友想在我前面了。在 LittleGolem 这个网站上(感谢 @龚渠成 的推荐),就有一场正在进行的甜甜圈围棋锦标赛,有几十位棋友参加。(https://littlegolem.net/jsp/in/tournament.jsp?gtid=go19&variant=TOROID)上图的这张棋谱是两位高水平的爱好者在甜甜圈棋谱上的实战。请读者注意,这张棋盘实际上只有中间橙色的 11 路,周边灰色的部分只是辅助对弈者直观理解甜甜圈棋盘的。 可以看到,如果棋子下在了某一个角上,棋盘的灰色部分也对应地放上三枚棋子。假设棋子下在了边上,我们要同时在对面的边上也放上一样颜色的棋子。当然还有计算边上和角上的棋子的气的时候,要把对面的那一气也算进去。在网络围棋的时代,要实现这样一个棋盘太容易了,只需要用上面的定义,就可以把一个看上去方方正正的棋盘卷成一个甜甜圈棋盘。当然,这样还有很多不足,比如很多人会习惯性的忽略对手从棋盘的另一面搞突袭。这都是棋子间的距离不够直观导致的。也许正是因为这样的不足,所以这种理论上完美的棋盘只有少数人在玩。 (潘达按:别吐槽我离题啊,这段已经点题了!具体的甜甜圈围棋战略,可以看 LittleGolem 上的棋谱。) 那么,可以更更给力一点吗? 当然是可以的。 有没有可能把甜甜圈围棋盘搬到现实中来呢?有一位不愿意透露姓名的西方围棋爱好者,兼能工巧匠,就做出了一个真正的甜甜圈棋盘。 三维甜甜圈棋盘 三十八条交叉的圆形铁丝,组成了纵横十九道的甜甜圈棋盘。这里的棋子也是特制的,在中心划了十字槽,可以嵌在交叉点上。 可惜,如此漂亮的实物甜甜圈棋盘,仍有几处瑕疵。在这个甜甜圈棋盘上,里圈的格子特别小,而棋盘的纵线也会比横线短很多,因此每个格子都不再是正方形的了。棋盘格子大小不相等,给棋手直观理解棋局带来了困难。比如离某颗棋子最远的地方在哪里,这种简单的策略也需要额外的思考时间。 那么,可以更更更给力一点吗? 当然还是可以的。 数学上已经有前辈把我们所遇到的这些难题通通解决了。这个人就是约翰·纳什(John Nash)。你可能在经济学领域或者是在他对博弈论的贡献里听说过他的名字。你也可能看过以他的传记拍成的电影《美丽心灵》。电影里有他和好基友在校园里下围棋的场景。纳什就是这样,润物细无声地帮我们解决了上文提到的所有问题,但是却没有向大家透露,他解决的这些问题与围棋有什么关系。不过我想,懂一点围棋和数学的人看到他的嵌入理论(Nash Embedding Theorems)的时候,不难联想到围棋的棋盘。 约翰·纳什 纳什的嵌入理论就是做了两件事(为了不引入更多术语,我们只讨论甜甜圈棋盘这一种情况。嵌入理论可以应用在更广泛的领域上)。第一件事,嵌入理论可以把平面的正方形棋盘‘折’成一个类似甜甜圈的形状,使得棋盘上的每一个格子仍然保持相等的大小。这一步用到的具体定理又叫 Nash-Kuiper 定理,它保证了这种折叠的存在。而近年,一个法国数学家团队完成了这种折叠的具体构造,像是一个螺纹装饰的甜甜圈,见下图。 精细折叠过的“螺纹甜甜圈”棋盘 实现螺纹甜甜圈的技术挺难的,需要在普通甜甜圈的基础上做数次名为“起皱”的迭代,相当于一层层地给甜甜圈刻上螺纹。甜甜圈上螺纹的作用是,使得甜甜圈棋盘上每一格的长宽都相等。像这样保持原有图形距离关系的折叠,数学术语叫做等距映射(isometry)。 下图给出了折叠前的正方形棋盘,与折叠后螺纹甜甜圈棋盘上曲线的对应关系。正方形棋盘上原本的纵线(下图左方黑色纵线),在折叠后变成了螺纹甜甜圈上的一个截面的边缘(下图右方黑色的“雪花形”曲线)。熟悉数学的读者可能已经看出来,这条雪花形曲线是一种分形(fractal)。 左图为原正方形棋盘上的三条横、纵、斜线。右图为三条线,折叠后在甜甜圈上的形状与位置。 那么,可以更更更更给力一点吗? 当然仍然是可以的。 我们历经艰险做出了螺纹甜甜圈形棋盘,但它仍有一个明显的缺陷:不够光滑。光滑在数学上的含义是,这个曲面上每个点的切面都是可以算出来的。但是螺纹甜甜圈棋盘,首先它视觉上皱皱巴巴的我们人类不太可能用它下棋。其次,它数学上也不完美,虽然它每个点的切面都能算出来,但是某些局部的弯曲程度却是不连续的。用数学语言说,这些局部的二次导数是无法定义的。综上所述,我们必须通过第二步来完善这个棋盘。当然,得到这个结果已经很厉害了,手残党如我折出的棋盘有棱有角,切面都不能保证存在的呀。 手残折的有棱有角的棋盘 第二步,把甜甜圈上任意多的点放到一个高维度的欧几里得空间,并且保留了原有的甜甜圈上每个点之间的距离关系。在这个新的高维的棋盘上,棋盘的面确实是平滑的,你可以对每个点算导数算到地老天荒。而且视觉上,我们上一步被折的皱皱巴巴的棋盘,在这一步重新得以平展开了。纳什证明了对于甜甜圈这样的 m=2 曲面来说,寻找嵌入所需要的维度数不会超过 m^2+5m+3=17 维。不要被这么高的维度吓到,这只是一个上限。可以作用于任何形状的甜甜圈上任意的点。而我们的棋盘可能更特殊,所以幸运的话可能不需要那么多维度就可以解决问题了。 光说不练假把式。下面就让我们从 4 路开始,来体验一下这个高(维度)大(脑洞)上(档次)的甜甜圈棋盘吧。那我们先从 5x5 的正方形棋盘开始,给每个点都标上坐标。注意边和角的坐标都是重复的。一共有 16 个坐标。 4 路平面呈现 然后,我们算一下每两个点之间的距离,从白色方块开始我们有可能走出并,尖,单关跳,小飞和象步。但是大飞和拆二就不行了。 然后,我们拿出一个四维的立方体。把立方体的 16 个顶点依次标上原来的坐标。一个闪闪发光的四维甜甜圈棋盘就做好了。 四维上的 4 路棋盘 验证一下,在四维立方体上,同样任意两点之间的距离,同样起于白色方块我们可以得到和平面上一样的结果。 那么,还可以更更更更更给力一点吗? 额…… 这个问题,我也遇到困难了。刚才我示范的是四路棋盘,但更高路数的棋盘,我也不知道答案。 3 路棋盘在三维里的光滑嵌入我猜测是行不通的。如果 4 路棋盘需要 4 维空间实现嵌入,那么 5 路棋盘需要几维空间呢?17 路,19 路棋盘,是不是就需要用到最高的 17 维才能嵌入了呢?我在这里抛砖引玉,希望读者中有大牛能完美地解答这个开放性问题。 不过,无论是这个完美的棋盘是需要嵌入四维空间,还是十七维空间,想在这个棋盘上下棋,首先我们得进入高维空间呢。读者朋友们,如果做出了这张完美棋盘,那我们就在高维空间见面下棋吧! 阅读原文