最近几天,AlphaGo与围棋世界冠军李世石的对弈引起了全世界的关注,已然成了历史性的事件。今天下午第四场比赛结束,由于AlphaGo程序出现bug,使得李世石获得了唯一的一次胜利。
这自然凸显出人工智能的强大,大家觉得,计算机的计算速度之快,只要遍历完所有可能的情况,自然会胜过人类。其实,这是没有真正理解围棋困难程度的表现。
AlphaGo与李世石的对局
围棋与数学
现在世界上流行的棋类之中,与数学联系得最密切的,莫过于围棋了。围棋自布局至终盘,其间的棋之死活、形势优劣和终局胜负,无一不与数字有关。请看:“对杀白多一气”,“盘面领先十目”,“转换黑损三目”,“先手官子四目”,“白胜四分之一子”。其实,围棋中涉及到数学的地方决不限于上述所举之例。连围棋的基本棋理也借助数学理论予以论证。如常用的棋理格言“金角银边草肚皮”,就是计算同样数目的棋子在角、边、腹等处所围地域的多寡来加以说明的。
远在古代,人们就已经注意到了棋局总数的问题。依照围棋规则,对弈对方总能够在有限的棋步以内弈至终局。显而易见,能够弈出的不同局面的棋避总数也必定是个有限数字。宋代学者沈括曾对这个问题进行过计算。他的计算方法是:棋盘上每一点都有黑、白、空三种可能出现的状态,那么用现代的数学方式表示便是一个点可产生 3 = 3^1('^'在本文代表次方符号,'*'代表乘号) 种局面,二点则能产生 3 * 3 = 3^2 种局面,┄┄以此类推, 19 * 19 路棋盘共 361 点可能产生的不同局面总数的 3^361 。