最强围棋软件Zen的开发历程
更新时间:2013-2-4、浏览次数:
由于围棋的复杂度太高,如果仅用穷举搜寻的技巧,并不能得到我们要的结果,因此我们必需要发展其它策略来帮助制作计算机围棋程序。直观上来说,最直接的制作计算机围棋程序的方式,就是直接用计算机去仿真人类下棋的思考方式,这也是现今的计算机围棋程序最常用的方法。就人们下棋思考方向而言,选择着点时大都根据该点是否利于占地、是否利于攻防、是否有关死活等,因此我们必须找出一条设计之途来模拟这种思路。以下我们就借着分析人类下棋的思考模式来说明一般计算机围棋程序的制作方法。
就占地而言,围棋中有所谓「金角、银边、铜肚皮」之理论。角隅的下法我们可藉由建立定石数据库来选择着点,边上地域之争夺则可另建一套拆边系统,中央则因不易围取,需要多个较复杂的子系统来帮助判断攻击,例如藉由攻击对方而围到中空,此在多次的对局中屡有所见,是以足可弥补「铜肚皮」的小瑕疪。
就棋块或大龙攻防方面而言,程序必须要有辨认一块棋的能力,且还要能”看”出周遭状况而得悉安危与否。因此在程序中建有一”块”棋的数据结构,用来获得这块棋的种种信息,诸如它所包含的棋串、占地数目、本身涵盖的区域大小等。又为找出有利的攻防点,程序必须建立类似雷达网的系统,由一棋块为根据向外层层扩散,以得知何处有敌子,何处有援军,是否已被包围等等。另外为了仿真人类棋手的视觉效果,也必须开发出一种影响力评估值的方法,藉由此方法,可加强计算机围棋程序对于判断模样、棋块安危和占地数目的能力。
而当棋局中短兵相接,牵涉到死活纠缠的状况时,就需要有一搜寻分析系统,借着搜寻的细算功能,判断棋子是否可以吃到(或逃出),以及如何去吃(如何逃出)与吃(逃)该棋串之价值大小。此一攻杀细算模块为任何围棋程序所必备[Hsu et al., 1994] [Hsu and Liu, 1991] [Hwang and Hsu, 1994]。
三、计算机围棋比赛简介
目前世界上较为人知的计算机围棋比赛共有五个:应氏杯﹑FOST杯﹑奥林匹亚杯﹑北美杯及欧洲杯。而其中较大型的比赛为应氏杯和FOST杯,以下就这两个比赛作一简单的介绍。
3.1 应氏杯世界计算机围棋比赛
应氏杯主要是由应昌棋围棋教育基金会所主办的,为第一个全世界性的计算机围棋比赛[许 1989]。应氏杯比赛主要包括两个部份,计算机对计算机比赛和计算机对人脑比赛,其中人脑指的是青少年高段棋士。应昌棋围棋教育基金会主要宗旨是推广围棋,其并为围棋修订了一套完整的围棋规则,也就是俗称的计点制,是公认较为完备的围棋规则。
应氏杯的初赛于每年七月在台湾举行,通过初赛者可获得旅费补助。而决赛则因为为了推广围棋运动,自1990年起,于每年十一月分别在世界各不同大都市举行。比赛的赛程安排是采瑞士制,而规则是用计点制围棋规则,详细的参加办法可洽应昌棋围棋教育基金会。
为了鼓励人们从事计算机围棋方面的研究,基金会给予在应氏杯中计算机对计算机的比赛的前三名奖金分别如下:冠军是二十万台币、亚军是四万台币、季军则是二万台币。而计算机对人脑的比赛的奖励则视局差而定,详细的情形如表二所示。目前为止举办过的比赛的时间地点及比赛成绩如表三所示[许 1989] [Fotland 1996] 。为方便阅读起见,表三根据比赛成绩只列出前三名及比赛的时间地点。
表二 应氏杯计算机对人脑的比赛的奖励
手合 须赢场数 奖金(NT) 备注
让十六手 三战两胜 100,000 1991年由Mark Boon赢得
让十四手 三战两胜 150,000 1995年由 陈志行 赢得
让十二手 三战两胜 200,000 1995年由 陈志行 赢得
让十手 三战两胜 250,000 尚未有人赢得
让八手 三战两胜 400,000 尚未有人赢得
让七手 三战两胜 550,000 尚未有人赢得
让六手 三战两胜 700,000 尚未有人赢得
让五手 三战两胜 850,000 尚未有人赢得
让四手 三战两胜 1,000,000 尚未有人赢得
让三手 三战两胜 2,000,000 尚未有人赢得
让两手 三战两胜 5,000,000 尚未有人赢得
让一手 三战两胜 10,000,000 尚未有人赢得
让先 五战三胜 20,000,000 尚未有人赢得
分先 七战四胜 40,000,000 尚未有人赢得
表三 应氏杯历年之比赛结果
时间 地点 第一名 第二名 第三名
1985 台北 王若曦 曹国明 Allan Scarff
1986 台北 杜贵崇 刘东岳 Bruce Wilcox
1987 台北 王若曦 刘东岳 陈开佑
1988 台北 林和芳 刘东岳 Mark Boon
1989 台北 Mark Boon Bruce Wilcox 陈克训
1990 北京 Mark Boon 陈克训 Janusz Kraszek
1991 新加坡 Mark Boon 陈克训 刘东岳
1992 东京 陈克训 陈志行 Mark Boon
1993 成都 陈志行 Janusz Kraszek 陈克训
1994 台北 陈克训 David Fotland 陈志行
1995 汉城 陈志行 Michael Resis 陈克训
1996 广州 陈志行 陈克训 高国元
3.2 FOST杯世界计算机围棋比赛
FOST杯是由日本的Fusion of Science and Technology organization在1995年开始举办的,举办的时间地点大约是每年的九月在日本东京地区举行。1997年将在日本名古屋举行。FOST杯所提供的奖金如下:冠军是两百万日币、亚军是五十万日币、季军则是二十万日币。比赛是采用日本棋院的围棋规则,详细有关此比赛的细节可参考[Fotland 1996]。
目前为止举办过的比赛的时间地点及比赛成绩如表四。另主办单位为测试前几名的棋力,亦举办计算机对人脑的比赛,而两届的冠军陈志行教授的围棋程序HandTalk在经过测试后,在1995年给予日本棋院的五级棋力证书(约等于台湾九级棋力),而在1996年则获得日本棋院的四级棋力证书(约等于台湾八级棋力),由于HandTalk在近几年的各项比赛均拔得头筹,HandTalk可说是目前为止棋力最强的计算机围棋程序。