挑战非平面的棋盘,AlphaGo稳胜人类?
2016/6/5 超级数学建模
上方超级数学建模可加关注
传播数学干货,学会理性的方式去思考问题
AlphaGo与李世石的围棋大战已结束,
但人工智能这股热潮依旧甚嚣尘上,
转念一下,
如果在莫比乌斯带或者球面上下围棋会怎么样?
是否还是战胜人类?
1.棋盘
如果是环面或者带边莫比乌斯带,那么棋盘还是好搞的。稍微科普一下。
环面:

这是一个20乘20的方格,然后按照箭头方向把对边贴起来,也就是说,图中相同字母是同一个点这样贴起来之后,环面上恰好有19乘19=361个顶点,和通常的围棋盘是一样的。
莫比乌斯带:

和前面类似,不过这个是19行20列的网格,然后把对边反向贴起来,相同字母对应的是同一个点,这样依然是361个顶点。
知友韩凤鸣提出了另外一种莫比乌斯带的棋盘的想法,就是在真正的莫比乌斯带上下棋。真正的莫比乌斯带是这样的:

图片来自百度百科图片来自百度百科
他的观点是,每个点可以落两个棋子,分别那个点的“正面”和“反面”上。(加引号是因为对于整个莫比乌斯带,不存在正面和反面,只有一个面。)
如果在这样的纸带上下棋,我认为的下棋方法就确实是相当于把纸戳破来下棋了……好像看起来是不太合理,但是事实上,可以证明,如果每个点看成两个点的话,这样下棋和在圆筒的外表面上下棋是等价的。
证明
一个比较容易的方式是这样的,先看不带边的情形,考虑莫比乌斯带在三维空间中的法丛,取S^0丛,因为莫比乌斯带是不可定向的,所以这样取出来的S^0丛是连通的,而S^0其实就是正负1,所以这是莫比乌斯带的一个double cover,从而是圆筒。边界随便处理一下就好了。
btw这就是14年丘赛几何的最后一个还是倒数第二个题,不过对于一般的mfd取norm bundle肯定是不行的,因为没有外围空间,可以取定向线丛或者n-form丛……
当然我们未必要求读者了解covering space,所以给一个简单一点的看法
我们先在莫比乌斯带上取一条起点线,就在我们看到的这一面上,如下图红线

然后拿一卷保鲜膜(保鲜膜:我的错?),按照图中箭头方向捋着莫比乌斯带走,直到回到起点线。这里的回到是指恰好回到起点线,因为事实上会回来两次,一次在起点线的背面。现在我们让莫比乌斯带凭空消失,而把保鲜膜拿出来,那么两面下棋的方法,就等价于在这个保鲜膜上下棋。所以我们只要关心保鲜膜的形状就可以了。因为两面下棋是强制把一个点拆成两个点,上面的方法相当于是把这两个点强行拆出来。
为了看保鲜膜的形状,我们再做一点具体的事情。我们在图上画一条蓝色的箭头,如下图

让这条蓝色的箭头沿着保鲜膜运动,运动之后会变成这样

运动起来就变成这样了,虚线表示在我们看不到的那一面,如图所示,蓝色箭头第一次回到了起点线,方向是反的,但是在起点线的背面,所以还没有走完保鲜膜的全程,继续走。

现在回来了,如绿圈圈出的,方向变成了一样的,也就是说,保鲜膜的起点和重点是用同样的方向粘合的,这就是圆筒,结束。
用围棋的话来说,如果白子和黑子分别走蓝色箭头的头和尾,那么白子和黑子能互不干扰的占整个一条边,这是只有在圆筒上才会发生的事情。
但是球面怎么办? 那么来讨论一下球面棋盘的问题吧。
作为一个球面上的棋盘,个人感觉应该有这么几个要求:
0 每个顶点都要落在球面上。
1 每个点周围有四条边,用围棋的话说,每个棋子下上去都应当有四气。
2 每个格子都是正多边形,每个点附近的正多边形都一样。(这个要求有点太严了,再议)
如果按照上面的要求,这样的多面体其实是不多的。 首先,如果仅考虑2,我们来分个类:
——正多面体(完全对称,面只有一种正多边形,共5种.wiki:正多面體)
——半正多面体(满足2,但是用到了多于一种正多边形作为面.可以分成三大类.wiki:半正多面體)
————阿基米德立体(共13种,wiki:阿基米德立體)
————正棱柱
————正反棱柱
如果再加上条件1,那么只剩下下面几种了:
正反棱柱(虽然这个有无穷多种,但是我们肯定不喜欢,作为球面上的棋盘来说太扁了。。)

正八面体(8个面,12条边,6个顶点)

截半立方体(14个面,24条边,12个顶点)

截半二十面体(32个面,60条边,30个顶点)

小斜方截半立方体(26个面,48条边,24个顶点)

小斜方截半二十面体 (62个面,120条边,60个顶点)

图片来自wiki
基本来说都不太适合作为棋盘,原因在于格点太少,最多只有60个点,根本玩不开啊……
如果放松2的话,那么还能得到更多的多面体,例如只有4条经线加任意多纬线,这也是可以的。但这个分类就不清楚了。。
2.关于下棋策略
其实我也不是很会下围棋,略知道规则而已。球面就先不讨论了,棋盘还没定好呢。
先来看莫比乌斯带上的事情。俗话说的好,金角银边草包肚,正常棋盘上角最好,边次之,内部最差。原因是,按照这个顺序,圈地的效率降低,而且做活的难度也上升。然而,如果在莫比乌斯带上,没有角,所以作为理智的棋手,果断先抢边啊!
所以呢,我估计下棋的时候是这样的。(箭头还是标在棋盘上吧,免得忘记)

黑1占边,白2也是占边。黑1占边,白2也是占边。

黑3拆三继续占边,白4也拆三(我随便拆的,拆错了不要怪我……)
然后下面继续拆。注意一下黑7的位置,拆三的话会跑到左上角来。

白8、黑9继续拆,这时候黑9就会到这里来

这个时候黑9已经跑到白2附近了,这里是莫比乌斯带和圆筒的区别。
如果棋盘是圆筒的话,黑白可以分别不干扰地占边。
但是现在,白棋是不是得考虑防守一下了,比如说白10可以考虑小飞一下(我随便飞的,飞错了不要怪我……),像这样

如果有高手的话不妨下一盘试试看,我就不多献丑了。
而环面的话事情就麻烦了,圈地还是次要的,关键是做活。所谓做活呢就是要有两个眼,这样才是活棋。
举个例子,在角上的话六子肯定能活,而边路爬边二线,俗话说的好,七死八活,就是说爬七个后手死爬八个才后手活。而在中间的话那就不知道多少个子了……
莫比乌斯带上好歹有边,虽然只有一条,而环面上完全没有,因此感觉做活比圈地更重要。
而且另一方面,因为没有边,打入估计是几乎不可能的,也就是说,基本上围住了的地就是自己的。以上都是个人感觉,还是那句话,如果有会下围棋的并且有兴趣的话,不妨下一盘棋谱发过来研究一下。
3.征子
像打劫、双活这种事情都是局部的,和棋盘的结构没什么关系,但是征子就不一样了,这个和棋盘的拓扑结构是有关的。先科普一下,所谓征子,就是下面的图中,如果轮到黑子,那么白必死。

步骤如下图

黑棋步步叫吃,白棋被逼至边上,死。
如果是在环面上,并且棋盘就如开始所言,那么征子也一定是可行的杀法。
这里棋盘直接用19乘19,贴边的事情记着就好,就不表示出来了。
在环面上,如下图

由对称性,从哪里起步都是一样的。下面黑先行,步步叫吃,就会得到下图

下到这里,特别说明一下,右边的黑子是合理的,因为原来的左右两边被贴起来了嘛,所以左边新下的白子邻接的位置其实是右边黑子的位置。
下面出现这种情况就不特殊说明了,继续下。

白子刚刚好撞回到最开始的黑子头上,黑1打吃,白一条大龙就跪了。也就是在环面上,征子还是可行的。
莫比乌斯带上,情况又不一样了。这里也随便画一个示意一下。
就从这里开始征子好了。

黑先行,若干步后,又会走到边上来。

方便起见,中间的天元已经标出来了。(当然莫比乌斯带是没有天元的,只是有标出来只是为了中间的一条线明确一些。)白1走到边上了之后,黑2落子应当如上图。然后继续下。

黑1打吃,白2一头撞墙,白棋一条大龙就跪了。
单独写一下征子只是单纯地想展示一下棋盘的形状而已,嗯,就酱。
via:王筝(知乎)
如果觉得文章不错,欢迎打赏

在非平面的棋盘上,无论是环面、莫比乌斯带、球面,严重地加重人类对棋局的控制能力和计算力,出错的机率显然会增加。
而AlphaGo的学习过程都是基于平面棋局,而在缺乏对非平面棋局的学习,AlphaGo是否能实现人类类比的学习行为,这或许是决定这场对决的有趣之处。


http://www.duyihua.cn
返回 超级数学建模 返回首页 返回百拇医药