几年前敝会曾举办教师研习营
特邀有 " 台湾电脑象棋教父 " 美誉的许舜钦教授来做电脑象棋的专题演讲
这篇是小弟写的心得

 

本次教师研习营,很荣幸能邀请有「台湾电脑象棋之父」美誉的许舜钦教授来做电脑象棋的专题演讲。许教授言简意赅,妙语如珠,相信让参加本次研习营的老师都深觉受益匪浅,而小弟本身就与ELP有过四次正式比赛的交手经验,感受更是深刻。故特于此将许教授所授内容与笔者的心得写出,以示对许教授专程前来演讲之敬意。
  人工智慧(Artificial Intelligence)在电脑的领域内,获得广泛的重视,而在电脑棋弈类,目前人工智慧已经可以破解许多棋弈游戏,包括五子棋与跳棋。其中五子棋因为先下者有利,已被电脑破解为先行方必胜。而由吴毅成教授研究与推动的六子棋(Connect6)相应而生,于2005年发表于第十一届国际电脑赛局发展研讨会(许舜钦教授为本次研讨会议程委员会委员之一),并已经成为第十一届奥林匹亚电脑赛局竞赛的项目之一。而目前电脑还无破解的赛局,包含黑白棋、西洋棋、象棋、将棋与围棋(六子棋不知是否已可破解)。以大家最熟悉的象棋为例,在笔者大学时期,当时最流行的软体「将族」的棋力,还不到四段,十几年过后,现在电脑象棋的棋力已与大师甚至特大媲美,在近年来举办的人机对抗赛当中,都由电脑方取得优势即为一例,由此可见电脑象棋发展之快速,而人们也可以透过电脑象棋的棋步来研究棋艺,现在不少青年好手进步神速,也是借由电脑象棋之助益。
  在十八世纪时,一位匈牙利人自称完成世界上第一台对弈机,献给当时的女皇。当时这台机器连战皆捷,声威远播,后来成为众人茶余饭后的话题。当时不少人质疑这台机器如何对弈,后来谜底揭晓,原来机器里躲著一位非常瘦小的高手,是名波兰退役军官,在战争中残废,他躲在机器里面透过装置来走棋。虽然此事成为轰动欧洲的大笑话,但是可以看出,人们很早就想制造会思考的机器了。
  在50年代提出的赛局理论(Game Theory 又称博弈论),就是从赛局著手的。赛局理论是一种策略的应用,目的是要建构一套理论解释及预测在各不同状况下的策略互相影响的结果。而在赛局理论中,最常使用的表示方法,就是对局树(和系统分析的决策树方法类似)了,而科学家就是把对局树拿来应用在电脑弈棋。在1950年美国的科学家Claude E. Shannon 提出评价棋局形势优劣的审局函数 MiniMax Procedure 将棋弈问题转成为数学,可从各种待审定局面进行演算与比较,以做出最佳化选择,使赛局理论在棋弈的应用上出现了重大突破。而 MiniMax Procedure 分成三种型态:穷举搜寻法(Exhaustive Search)、选择性搜寻(Selective Search)、与目标性搜寻(Goal Oriented Search)。而穷举法就是列出所有可能的数据,一一检查其正确性。这种方法可以找出完整的正确数据,正好可以充分利用电脑可以快速运算的特性,但是对于人类来说,这种方式旷日费时,不符实际,所以人类的搜寻方式为后两种。到了1958年,第一台电脑弈棋机终于诞生,但是这个程式只有 6x6 的棋盘,省略了两支主教,而且只能选7种可能来做搜寻,并且只能做四层的运算,所以经常发生漏著与失误。当时的西洋棋大师都认为机器棋力低落,难与人抗衡,于是有位苏格兰的西洋棋冠军棋手打赌,十年之内不会有机器能打败他。然而这项赌注的提出,却促成了电脑弈棋的发展。
  世界电脑西洋棋大赛因应而生,于1974年开始举办,刚开始是每三年举行一次。1977年由一台名为「chess4.5」的电脑挑战该位冠军棋手,结果落败。但是其改进版「chess4.6」却以全胜姿态赢得该年的世界电脑西洋棋大赛冠军。而隔年即为赌注的最后一年,最新版的程式「chess4.7」与该名棋手进行六局对抗赛,结果该位冠军以三胜一和一败提前击败「chess4.7」结束这项对抗赛。虽然「chess4.7」以落败收场,但是在第四局击败该名冠军,这是电脑首次战胜人类大师,意味者电脑西洋棋的棋力已经不容小歔。在1980年的第三届世界电脑西洋棋大赛,由美国贝尔实验室(Bell Laboratories)推出的「BELLE」获得了冠军,并且该程式在1983年参加全美人类比赛成绩优异,被美国西洋棋协会正式授与大师头衔。到了1989年,则由「Deep Thought」(Deep Blue 的前身)获得了冠军。之后 IBM 赞助该程式的研发,同时改名为「Deep Blue」。但是1995年的世界电脑西洋棋大赛中,「Deep Blue」却败给了只用一台输入大量棋谱的PC「Fritz」,这时才知道建立大量资料库也可以大幅提升棋力。到了1996年,「Deep Blue」正式挑战棋王 Kasparov,虽然计划负责人谭崇仁估计可以 4:2 击败棋王 Kasparov ,但是最后 Kasparov 反以 4:2 击败「Deep Blue」。到了隔年, IBM卷土重来,并更名为「Deeper Blue」再度挑战棋王 Kasparov。「Deeper Blue」有备而来,研究负责人之一 IBM 研究中心工程师 Dr. Campelle 就表示以当时的电脑运算速度来看,应该能击败世界冠军。同时还找来了三届美国西洋棋冠军 Benjamin 来指导。最后「Deeper Blue」以3.5:2.5击败了 Kasparov,使得棋坛与电脑界为之震撼。之后于2003年,Kasparov 与前一年获得世界电脑西洋棋大赛冠军的「Deep Junior」再进行一次对抗赛,这次比赛最后以3:3和局收场。而随著科技日新月异,近几年的世界电脑比赛冠军,从四核心的「Deep Junior」,到双CPU双核心的「Zappa」与「Junior」,甚至今年的冠军「Rybka」, 是用40台电脑作丛集(cluster)运算,运算速度更是惊人。根据莫耳定律(Moore’s Law),在一定价格下,一颗晶片的最大处理能力是以每一年半的速率提升一倍,所以现在电脑弈棋功力大增已是理所当然的趋势。
  而我国电脑象棋的发展,是由1981年开始,犹记得当年由虞希舜先生研发的「象棋大师」参加新秀杯升段赛,并且还有刊载在「宝岛象棋」中。到了1988年,由宏碁公司赞助的电脑象棋大赛正式展开,首届冠军为虞希舜先生的「象棋大师」。隔年在伦敦举行的第一界世界电脑大赛中,「象棋大师」获得象棋组冠军,而1990年第二届比赛,由许舜钦教授指导,郑武尧先生研发的「ELP」摘下桂冠。到了1992年第四届比赛,来自美国的吴韧先生研发的「Surprise」抡元。吴韧先生即为日后在ICCS(Internet Chinese Chess Service)上名噪一时的梦入神机(mrsj)作者。而2001年与2002年连续两届,皆由「ELP」封王,而来自台南的郑明政先生研发的「象棋世家」则连续两年紧随其后,显示台湾电脑象棋发展已达到了相当成熟的水准。而近年来,中国的象棋软体发展有飞跃般的成长,从「ZMBL」(纵马奔流)、「象棋奇兵」、「棋天大圣」、「天机」、「象棋旋风」、「倚天」,都已有与象棋大师抗衡的实力,除了使用高规格的硬体设备,运算思考可达14层之外,另外还有大师甚至特级大师做指导,而后者就是目前台湾的电脑象棋软体不及之处。而这三项,正好就是决定研发象棋程式优劣的三项重要因素。
  现代电脑象棋的研发,在程式撰写上有著吃子优先以及先出动大子的经验法则,而在审局函数上,除了藉用电脑西洋棋的编写逻辑外,更加强了位置重要性以及将帅的防卫与威胁。但是目前在编写程式上有两点困难:第一、小卒很难给予适当的评分,尤其在残局阶段更为明显;第二、因为水平效应(horizontal effect)1,超出电脑运算阶层外的变化无法得知,1988年的电脑象棋大赛中,「象棋专家」就是因此错失一举制胜的大好机会,败给「象棋大师」而屈居亚军。而电脑象棋未来的展望,在开局方面则需大量搜集对局来建立开局资料库,在中局方面则是靠运算能力,所以是靠丛集方式用多台电脑同时运算,而在残局方面,则是将用审局函数为依据的对局搜寻法改为用回溯分析(Retrograde Analysis)演算法来设计残局资料库。
 最后在此由衷地感谢许教授于百忙之中,专程南下为此次教师研习营做专题演讲。


注1:今年笔者于象棋嘉年华与ELP对弈之局,至中局时,ELP因为受限于运算层级的水平效应,无法计算出吃掉黑马后的局势,以至于选择人类认为是不可行的连吃双马。而笔者首次与ELP于新庄市长杯对阵,也是以弃子取得必胜局势,巧合的是,两盘棋笔者都在弃子取得强大攻势下走软致败。


----------------------------------------------------
标题: ELP 先胜 张瑞祥 080224
赛事: 2008年象棋嘉年华在高雄 人机大战
日期: 2008.2.24
地点: 高雄
红方: ELP
黑方: 张瑞祥
结果: 红方胜
评论: 
作者: 
----------------------------------------------------
1. 炮八平五 马2进3 2. 马八进七 车1平2
3. 车九平八 卒3进1 4. 车八进六 马8进7
5. 兵三进一 车9进1 6. 马二进三 车9平6
7. 炮二平一 炮8进4 8. 兵七进一 卒3进1
9. 车八平七 炮2进4 10. 车七进一 炮2平3
11. 车七平三 炮3进3 12. 士六进五 炮3平1
13. 士五进四 车2进9 14. 帅五进一 车2退1
15. 帅五退一 卒3进1 16. 炮五进四 卒3进1
17. 车三平五 车6平5 18. 车五平八 车5平2
19. 车八平五 士6进5 20. 车五平八 象3进5
21. 车八退六 车2进7 22. 车一平二 卒3进1
23. 帅五进一 车2退5 24. 炮五平六 炮8平6
25. 炮一进四 车2进4 26. 炮一进三 士5退6
27. 车二进七 士4进5 28. 车二平五 车2平4
29. 车五平三 炮1退1 30. 帅五退一 车4进1
31. 车三进二 将5平4 32. 马三进四 士5进6
33. 车三退三 士6进5 34. 车三进三 士5退6
35. 炮六退一

相关文章