1.1 机器博弈
机器博弈是博弈游戏与计算机技术的结合,是人工智能领域里一个重要研究领域,在国际上已经开展了半个多世纪。象棋是从两军对阵中抽象出来的一种智力游戏,因此它是博弈的一个标准问题。下棋的双方无时不在调动自己的一切智能,充分发挥逻辑思维、形象思维和灵感思维的能力。所以,在人工智能领域始终将棋类的机器博弈作为最具挑战性的研究方向之一。
计算机是出现在国外的,国际象棋在国际上开展较广泛,因此国际象棋机器博弈的研究已经有很长一段时间。中国象棋虽是世界上历史最为悠久的棋类,早在两千多年前的战国时代就已经有了关于象棋的记载,但是计算机的普及及计算机技术的发展远远落后于国外先进国家。中国象棋计算机博弈近几年才起步,参与者少,缺少参考文献。仅有少数商家开发了游戏软件和教学载体。中国象棋的计算机博弈还十分稚嫩,水平还不太高,开展得更不普及,这便是当前我们所面临的艰难局面。
1.1.1 Tic-Tac-Toe游戏
最简单的博弈游戏当属Tic-Tac-Toe游戏。在3×3的矩形棋盘中共九个位置,双方轮流布棋,某方三个棋子连成一条线(直线,对角线)为胜,均无三子连成直线为平。
给每一个位置编号,如图1-1所示。
图1-1 Tic-Tac-Toe游戏棋盘
下面给出一个游戏例子,红方走位置1、2、7、9,黑方走位置5、3、6、4。下至第8手,黑方在第2行连成一条线,获胜,如图1-2所示。
图1-2 Tic-Tac-Toe游戏走子顺序1示意图
再一个例子,红方走位置1、6、3、9,黑方走位置5、7、2。下至第7手,红方在第3列连成一条线,获胜,如图1-3所示。
图1-3 Tic-Tac-Toe游戏走子顺序2示意图
时间复杂性分析
第1手:棋盘上无子,可以在任意9个位置落子。
第2手:棋盘有1子,可以在剩下的任意8个位置落子。
第3手:棋盘有2子,可以在剩下的任意7个位置落子。
第4手:棋盘有3子,可以在剩下的任意6个位置落子。
第5手:棋盘有4子,可以在剩下的任意5个位置落子。
第6手:棋盘有5子,可以在剩下的任意4个位置落子。
第7手:棋盘有6子,可以在剩下的任意3个位置落子。
第8手:棋盘有7子,可以在剩下的任意2个位置落子。
第9手:棋盘有8子,只能在剩下的1个位置落子。
第1子有9种可能位置,第2子有8种可能位置,第3子有7种可能位置,……第8子有两种可能位置,最后一子只有1个位置。所以最大的搜索空间为:
9*8*7*6*5*4*3*2*1 = 362880
以CPU每秒运算1亿次,现在的计算机一眨眼功夫就可以搜索完毕。已经知道Tic-Tac-Toe游戏没有必胜局面,因此计算机玩这种游戏可以说永不言败。即使人掌握了一些基本技巧也很难说败。
行棋技巧
先手玩家的最佳走法是,第1步最好下在四个角落(即1、3、7、9),因为后手玩家除了下在中央的5号位置之外必败。即使对手下了该位置,只要回以马步布局或对角布局也还有一半的胜算。
先手玩家第1步的次佳选择在5号位置,因为后手玩家除了下在四个角落外必败,即使对手下了该位置,只要再下在对手的另一个对角也还有三分之二的胜算。
后手玩家的第1步,如果5号位置是空的则选择5号位置,否则选择在四个角落。
将Tic-Tac-Toe游戏棋盘扩宽到20路,将三连子获胜扩展到五连子获胜,就成了五子棋。五子棋的变化比Tic-Tac-Toe游戏要复杂得多,已经研究得知对黑方先手而言,有二十多种必胜开局。即只要黑方按照必胜开局行棋,必得获胜。为了规避这种先手的巨大优势,在很多比赛中就规定了一些先手的禁手,有“三、三”、“四、四”和“长连”等禁手。
在行棋过程中将五子棋的先后手不停的交换,即黑、白、白、黑、黑、白,一直下去,再将五连子获胜改成六连子获胜,就成了六子棋。六子棋中没有了先手的优势,到目前为止还没有发现必胜局面。
1.1.2 国际象棋机器博弈
讲到机器博弈,必然要提到国际象棋,因为它最早与计算机技术相结合,而且研究得最为深入的一种博弈游戏。
国际象棋棋盘是个正方形,由横纵各8格、颜色一深一浅交错排列的64个小方格组成。深色格称黑格,浅色格称白格,棋子就放在这些格子中移动。棋子共32个,分为黑白两组,各16个,由对弈双方各执一组,兵种是一样的,分为六种:王(1)、后(1)、车(2)、象(2)、马(2)、兵(8)。
在正式比赛中,国际象棋棋子采用立体棋子,非正式比赛中可以采用平面图案的棋子。
布子规则:上方16个为黑子,下方为白子。
“深蓝”与俄罗斯国际象棋大师卡斯帕罗夫的人机大战,使很多的中国人了解了国际象棋。“深蓝”是IBM专门为下国际象棋而设计的超级计算机,由256个信息处理器组成,每秒钟能做2亿次运算,平均每3分钟走一步棋。“深蓝”的程序代码是用C语言编写的并在AIX操作系统下运行。这种网络是可扩充的并行系统,它能在标准国际象棋比赛中为选手每步所分配的3分钟内计算出500亿至1000亿步。为了向“深蓝”提供可供利用的更为丰富的资源,“深蓝”小组收集了一种开局数据库,为该系统提供了象棋大师在过去100年间所进行的开局范例。除开局数据库外还应有终局数据库,终局数据库只在棋盘上仅剩五粒子时才被激活。该数据库提供数十亿场终局。同时,它还记录着本世纪以来国际象棋大师曾使用过的60万个棋谱。
1996年2月10日,美国费城,旷世棋王卡斯帕罗夫与IBM公司研制的“深蓝”(DEEP BLUE)计算机进行了震惊世界的国际象棋比赛。比赛期间,全球每天有2000万人通过互联网观看赛事,查询棋局。在这场举世瞩目的人与计算机的大战中,卡斯帕罗夫显示了人类的无穷智慧,以4比2的比分战胜了“深蓝”,这个结果让世界再次对他叹服。
一年后,美国纽约,卡斯帕罗夫与计算机“深蓝”的升级版“更深的蓝”之间展开第2轮国际象棋人机大战。“更深的蓝”吸取了第1次人机大战的教训,在开局、棋局的布置上更上一层楼。这一次,卡斯帕罗夫输了,他以2.5比3.5输给了“更深的蓝”。比赛结束后,人们对他的表现感到大惑不解,因为卡斯帕罗夫在至关重要的第6局决胜局中崩溃了,他完全没有发挥出自己的正常水平,仅下了19步就被杀得溃不成军,输掉了比赛。这在过去是绝无仅有的。似乎是为了解释疑惑,卡斯帕罗夫后来解释说:“我过于听从计算机专家的建议了,没有发挥出自己的潜力和运用好战术,这次我真的对计算机感到了畏惧。”
这场前无古人的人机大战给不仅是棋界,包括整个人类都造成了深远影响。正是“深蓝”与卡斯帕罗夫的两番对决,让更多的人认识了人工智能,认识了机器博弈。“深蓝”虽然只是陪人类下棋的玩具,它可以帮助人们研究如何最大限度地发挥计算机的优势,将“深蓝”计算机中所涉及到的技术转而应用于其他领域,更好地服务于人类。同样,其他用于博弈的计算机的成果也将进一步应用甚至深入到我们目前所无法做到的领域;人工智能的开发最终将会使人类受益。
1.1.3 机器博弈发展趋势
人工智能技术的不断发展,博弈理论的推广,计算机软硬件日新月异,以及棋类游戏的广泛群众基础,不断推动机器博弈的向前发展。
博弈棋种越来越多
在国际上开展最早也最广泛的博弈软件是国际象棋博弈软件,在“深蓝”之前有“深思”,“弗里茨”等,在“深蓝”之后有“更弗里茨”等博弈计算机。除国际象棋外,越来越多的棋类游戏被纳入了机器博弈的范围。如:中国象棋、围棋、9路围棋、六子棋、日本将棋、亚马逊、西洋双陆棋、国际跳棋、幻影围棋、苏腊卡塔尔、四人陆战棋。
计算速度越来越快
计算机下棋严重依赖CPU运算速度。CPU运算越快,则可以搜索更多的可能局面,搜索的深度可以更深,下棋水平就越高。以目前世界上任何一台PC,要想在国际象棋上战胜卡斯帕罗夫,简直就是梦想。“深蓝”完全依靠几百个CPU,超强的计算能力才与卡斯帕罗夫相抗衡。
CPU处理速度正按照摩尔定理不断发展,PC双核CPU、四核CPU不再是新鲜事,小型服务器上几十个处理器也越来越广泛,拥有上千个处理器的超级计算机也越来越多的应用于各个领域。像“深蓝”那样有几百个CPU的超级专用博弈机器只有IBM这样的巨头才有财力研发,普通软件开发商开发的博弈程序更多的是在小型服务器上运行,而一般的程序设计员还只能在PC上进行开发。