您好,欢迎来到客趣旅游网。
搜索
您的当前位置:首页中国象棋与国际象棋比较分析

中国象棋与国际象棋比较分析

来源:客趣旅游网
维普资讯 http://www.cqvip.com

第21卷 第1期 Vo1.2l No.1 重 庆 工 学 院 学 报 Journal of Chongqing Institute of Technology 2007年1月 Jan.2007 【计算机与通信】 中国象棋与国际象棋比较分析 王晓鹏,王骄,徐心和,郑新颖 (东北大学人工智能与机器人研究所,沈阳 110004) ~ ^ ^ 0 l^、 c ^0: b 0 ‘ ^ b } : ^‘ ^ = ^ ~ ^‘:t^ :、、 摘要:众所周知,国际象棋的计算机博弈已经有了很长的历史,国际象棋的世界棋王也一度被“深 蓝”计算机打败,然而中国象棋的计算机博弈却开展得不尽人意.中国象棋和国际象棋同属于二 人零和完全知识博弈.尽管2种棋的目标都是将对方的将(帅或王)将死,但二者在棋盘、棋子、规 则上却存在着很大的差异.从计算机博弈的角度,在棋盘、棋子、博弈复杂度、计算机博弈关键技 术等方面对中国象棋和国际象棋进行比较分析,以便更好地开展中国象棋的计算机博弈活动. 关键词:中国象棋;国际象棋;比较分析;计算机博弈;博弈复杂度;着法生成;评估函数;搜索 文献标识码:A 冲 、; ~卟 引擎 中图分类号:TP391 0 文章编号:1671一o924(20cr7)01—0071—06 A Comparative Analysis between Chess and Chinese Chess WANG Xiao-peng,‘WANG Jiao,XU Xin-he,ZHENG Xin—ying (Institute of Artiifcial Intelligence and Robotics,Northeastern University,Shenyang 1 10004,China) Abstract:It is well known that chess computer game has a long history,and the world chess king Was once defeated by DEEPBLUE.However Chinese chess computer game is unsatisfactory.13oth chess and Chinese chess belong to two-player,zero-sum game wih compltete information.The gDal of the two chesses is to checkmate the opponent’S King,but there ale great diferences between the two in chessboard,chessmen nd raoles.In order to carry out activities of Chinese chess computer game etbter,this paper gives a com— parative analysis between Chinese chess and chess from he a]t of chessboard,chessmen,game complex— ity,key technologies and SO on. Key words:Chinese chess;chess;comparative naalysis;computer game;game complexity;move genera。 tion;eva/uation function;search engine 的记载,发展到现在的模样是在北宋末期.中国象 0引言 中国象棋是世界上历史最为悠久的棋类,早 在2 000多年前的战国时期就已经有了关于象棋 棋在国内有很好的群众基础,在大街小巷都能看 到象棋博弈者的身影.然而中国象棋的计算机博 弈却开展得不尽如人意,成了“被爱情遗忘的角 落”[11.近年来,和一些学者开始对中国 ・收稿日期:2oo6—10—31 作者简介:王晓鹏(1981一),男,辽宁葫芦岛人,硕士研究生,主要从事人工智能和计算机博弈的研究 维普资讯 http://www.cqvip.com

72 重庆工学院学报 象棋计算机博弈展开研究,逐渐涌现出“象棋明 星”、“象棋世家”、“梦入神机”、“纵马奔流”、“谢谢 大师”、“象棋奇兵”、“棋天大圣”等优秀的中国象 分成红黑2个战场.“九宫”和“河界”的存在 了一些棋子的活动范围,也增添了中国象棋计算 机表示的难度[3一引. 棋计算机博弈软件,每年也都有全世界范围内的 中国象棋计算机博弈软件之间的比赛——计算机 奥林匹克竞赛(Computer Olympiad).虽然现在最好 的博弈软件已经达到了大师级水平,但要打败中 国象棋世界冠军还有很长的路要走. 国际象棋的计算机博弈开展得比较早,并且 以IBM“深蓝”计算机战胜国际象棋世界棋王卡斯 帕罗夫的那次“人机大战”最为出名.虽然现在国 际象棋计算机博弈已经取得了很大的成绩(很多 软件达到国际等级分2 800分以上),软件与软件 之间的比赛,以及“人机大战”仍在进行之中,并且 水平越来越高.目前比较有名的国际象棋软件有 Zappa(第13届奥赛冠军)、Junior(第14届奥赛冠 军)、Crafty(开源软件)、Fritz、Shredder等. 专家研究认为,中国象棋与国际象棋没有本 质上的区别,只是形式上的不同.由于中西方的历 史、地理、文化背景的不同,使得两者在规则、着法 上有很大的差异 2.国际象棋计算机博弈开展得 比中国象棋早,技术已经很成熟,参考资料也比较 多,并且有很多的开源代码.本文中就是通过对中 国象棋和国际象棋的比较分析,找出中国象棋和 国际象棋的共同点和存在的差别,进而吸收国际 象棋计算机博弈的先进技术和经验,为中国象棋 计算机博弈活动开展服务. 1 中国象棋和国际象棋规则比较 象棋实际的棋盘、棋子的特点和行棋规则决 定了象棋计算机博弈程序的数据结构、着法生成、 搜索算法和评估函数.所以在对象棋进行计算机 建模之前,有必要对象棋的规则有个深入的了解. 在这一节中,就棋盘、棋子、棋规等3方面对中国 象棋和国际象棋进行比较分析. 1.1 棋盘 如图1所示,中国象棋棋盘1O行9列9o个交 叉点,棋子就摆在和活动在这些交叉点上;国际象 棋棋盘8行8列64个格,棋子在这些格子内移动. 中国象棋棋盘比国象棋盘更像战场,它有2个特 殊的地域:划有斜交叉线的地方叫“九宫”;棋盘中 间没有划通直线的地方叫“河界”,“河界”把棋盘 a)中国象棋棋盘 b)固际象棋棋盘 图1 中国象棋和国际象棋棋盘 1.2棋子 中国象棋共有32个棋子,分为红黑2组,每组 16个,有7个兵种.红棋子:帅一个,车、马、炮、相、 士各2个,兵5个;黑棋子:将一个,车、马、炮、象、 士各2个,卒5个. 虽然中国象棋红黑2方对应的棋子名称有所 不同,但其走法和作用完全一样.国际象棋黑白2 组各有6个兵种,只是没有和中国象棋的炮对应 的兵种,分别为:王、后各一个,车、马、象各2个, 兵8个,黑白棋子名称和作用完全相同. 中国象棋和国际象棋兵种的行棋规则如表1 所示.下面仅就兵种做如下比较分析【5J: 维普资讯 http://www.cqvip.com

王晓鹏,等:中国象棋与国际象棋比较分析 73 表1兵种的行棋规则比较 1)中国象棋的将(帅)和士,只能在各自的宫 殿内走动,象不能越过“河界”.中国象棋有一个特 殊规则就是将帅不能对脸,有了这条规则,将帅有 时候会有车一样的威力.国际象棋的王虽然不像 中国象棋的将(帅)有象、士的保护,但它有一个特 殊走法“王车易位”,这就可以使王从中心兵家必 争之地转移到安全的侧翼. 2)中国象棋的马和象(相)分别存在“蹩马 腿”、“塞象眼”的走法,国际象棋没有,所以国 际象棋的象比中国象棋的象(相)有更大的活动空 间. 3)中国象棋和国际象棋唯一走法完全相同的 就是车. 4)炮是中国象棋中一个很特殊的棋子,它的 走法规则和车相同,但是它要隔一个子才能吃掉 另一个子.这样任何一个子和炮配合,都可以有车 的威力,所以在中国象棋计算机博弈中炮的吃子 着法的生成比较难. 5)国际象棋比中国象棋多3个兵,还有2个 特殊规则:“吃过路兵”、“兵的升变”.显而易见,国 际象棋的兵比中国象棋的兵具有更大的灵活性和 威力,国际象棋兵的计算机表示也要更复杂些. 1.3 棋规 中国象棋和国际象棋的棋规有很大不同.中 国象棋棋规又分为中国棋规和亚洲棋规,中国棋 规比较复杂,计算机实现比较难,所以现在棋规普 遍采用亚洲棋规.即使是亚洲棋规l6,也要比国际 6]象棋的棋规复杂得多. 国际象棋取胜的唯一途径就是把对方的王将 死,如果不能将死对方,就只能谋求和棋,所以国 际象棋的结果以和棋居多.国际象棋自然限招、无 子可走(称为“逼和”)、“长将”、“长打”、“长捉”都 判和棋,循环不变也作和.中国象棋自然限招也判 为和棋,无子可走(称为“困毙”)方判负,循环分为 合法循环和非法循环,合法循环判和,非法循环一 方判负,“长打”被判为禁手,不变作负[引,两子或 多子轮捉一子作负,将帅兵长捉子作和.具体规则 请参考文献[6]. 2 中象和国象计算机博弈关键技术比较 要想让电脑像人脑一样下棋,首先要解决如 下几个问题【8J: 1)棋盘、棋子的表示方法,即局面在存储器中 的存储方法,程序是根据它来分析局面的; 2)掌握下棋的规则,即什么样的着法是合理 的,如果程序连是不是合法着法都不能区别出来, 那么对手就可以利用非法的着法来欺骗电脑; 3)找出所有合理着法,这样程序就可以从这 些着法中找到最好的,而不是随便找一种着法; 4)比较方法,包括比较着法和比较局面的方 法,这样程序就可以选择最佳的着法; 5)用户界面,棋手和电脑下棋的平台. 首先介绍博弈复杂度,然后就计算机博弈中 的一些关键技术,如数据结构、着法生成、搜索引 擎、评估函数、开局库和残局库等做简要的分析. 用户界面在几乎所有棋类游戏中都差不多,这里 便不作介绍了. 2.1 博弈复杂度 在组合博弈理论中,博弈复杂度是度量博弈 复杂程度的尺度.这里主要介绍2种复杂度的测 量:状态空间复杂度、博弈树复杂度 8. 状态空间复杂度是指游戏中所有可能出现的 不同局面的数量.当这个值很难计算的时候,通常 通过把非法局面或在游戏过程中不可能出现的局 面也包括进来得到一个上限值的方法来进行估 计. 博弈树复杂度是指博弈树的大小,也就是所 有可能的棋局的总数.博弈树比状态空间要大得 维普资讯 http://www.cqvip.com

74 重庆工学院学报 一多,因为同样的局面可能在很多不同的棋局演化 7~+7进行编码,这样可以方便地区分出红黑 中出现.通常不可能精确地计算出博弈树的大小, 但在一些游戏中可以将博弈树的平均分支因子的 层数次幂作为博弈树大小的一个上限值. 拿并字棋(Tie.tae.toe)为例,棋盘上共有9个 位置,每个位置有3个状态,要么空要么被黑子或 白子占据,所以可以给出其状态空间的上界是39 棋子.国际象棋的棋子表示法和中国象棋类似,由 于国际象棋只有12种棋子,故可用一6~+6进行 编码.表3给出中国象棋和国际象棋的棋子编码 表,其中0表示空格子[¨. 采用一7~+7和一6~+6编码还有一个额 外的好处,就是对于一些对称的常量数据可以压 :19 683.对于并字棋,第一步有9个位置可走,第 二步有8个,以此类推,可得出其博弈树大小的上 界为9 1=362 880. 由于博弈复杂度的值都比较大,通常以其上 限值的对数值(以10为底)的形式给出.一些常见 游戏的博弈复杂度如表2所示. 表2 几种棋类的空间复杂度及树复杂度比较 游戏名棋盘大小状态空间复杂度 博弈树复杂度 从表2可以看出,中国象棋的状态空间复杂 度和博弈树复杂度都比国际象棋要高,显然这对 中国学者提出了更严峻的挑战. 2.2 数据结构 计算机博弈中,良好的数据结构是保证程序 运行效率的基础.每步平均调用数千万次的着法 生成,仅仅依靠编码优化是不能彻底解决问题的. 没有良好的数据结构设计,庞大的博弈树的展开 就会成为速度的瓶颈. 2.2.1 空间分布信息的表示.要让计算机下棋首 先需要解决的就是对棋盘和棋子进行编码.应该 说编码的方法是任意的,只要能够满足棋局表示 的惟一性和可区分性,都是可行的编码. 中国象棋棋盘10行9列9o个交叉点,很容易 用9o元的一维数组表示与坐标的对应关系,如图 2 a);而国际象棋8行8列64个格,可以用64元的 八进制一维数组表示,如图2 b)所示. 中国象棋有14种棋子,某个位置没有棋子也 要表示出来,也就是一共有15种情况.通常采用 缩处理,比如红车与黑车的位置值评估表,由此可 以减少内存占用. 09 19 29 39 49 59 69 79 89 08 18 28 38 48 58 68 78 88 07 17 27 37 47 57 67 77 87 02 12 22 32 42 52 62 72 82 O1 11 21 3l 41 51 61 71 81 00 1O 20 30 40 50 60 70 80 a)中国象棋棋盘一维数组的表示 07 17 27 37 47 57 67 77 87 06 16 26 36 46 56 66 76 86 05 15 25 35 45 55 65 75 85 02 12 22 32 42 52 62 72 82 O1 11 21 31 41 51 61 71 81 00 1O 20 30 40 50 60 70 80 b)国际象棋棋盘一维数组表示 图2 一维数组表示的中象和国象棋盘 2.2.2 空间状态信息表示区别.中国象棋普遍采 用路向(行向)比特向量[9]和比特棋盘[10]来表示空 间状态信息,而国际象棋通常采用比特棋盘和旋 转比特棋盘来表示. 1)比特棋盘.比特棋盘最初是由国际象棋计 算机博弈研究者提出并应用的,它是用一个64位 的二进制变量记录国际象棋棋盘上的某些布尔条 件.比特棋盘最大的好处是进行区域判断,快速而 高效.并且更新比特棋盘代价很小,只需进行少量 的位操作.特别是在如今的64位处理器和64位操 作系统下,比特棋盘更有其得天独厚的优势. 维普资讯 http://www.cqvip.com

王晓鹏,等:中国象棋与国际象棋比较分析 表3中国象棋和国际象棋的兵种编码表 75 对于中国象棋,如果想应用比特棋盘,需要做 马和象也可以使用折叠比特棋盘法来生成着法. 相应的改动.因为中国象棋存在90个交叉点,64 位已经不能满足需求.中国象棋的比特棋盘通常 用3个int型数据,共计96位进行表示,高6位没 有使用. 比特棋盘最大的难点是坐标的提取,从整数 中提取最高有效位,要通过大量的MSB(Most Sig. nitlcant Bi卜一最高有效位)运算才能够得到.64 位的MSB速度比较快,96位的MSB提取要比64 位慢好几倍,所以比特棋盘在中国象棋计算机博 弈中的高效性还需要进一步探讨. 2)路向(行向)比特向量.对于沿直线行走的 棋子,如果采用路向(行向)比特向量,对于着法生 成与审局函数来说,可以带来很高的运算速度.中 国象棋中最灵活的棋子是车和炮,在大多数局面 下,它们的着法占整个合理着法的百分比非常高, 所以在中国象棋中普遍应用这种比特向量.国际 象棋中,后、车、象为最灵活的棋子,但仅车具有沿 直线行走的性质,象和后都可以沿斜线行走.如果 维持路向(行向)比特向量,仅仅可以辅助后和车 的直线着法生成和审局判断,对于沿斜线行走的 棋子,还需要额外的数据结构支持.所以路向(行 向)比特向量在国际象棋中应用的比较少. 3)旋转比特棋盘.国际象棋的棋盘是8×8中 心对称的,除了比特棋盘之外,旋转比特棋盘[¨】也 是国际象棋计算机博弈的一个重要研究成果.但 是对于中国象棋来说,棋盘并不是沿中心对称的, 所以旋转比特棋盘很难在中国象棋计算机博弈中 得到使用. 2.3 着法生成 着法生成是博弈树展开的依据,着法生成的 速度对搜索的效率影响巨大. 国际象棋通常使用比特棋盘与旋转比特棋盘 结合的方式进行着法生成,对于车、后、象还可以 单独采用旋转比特棋盘法. 中国象棋中,除了车和炮之外,其它棋子都可 以使用模板匹配法[ ]与预置着法表相结合的方法 来生成着法.马和象的模板比较复杂,士、象、将的 模板相对简单.车、炮、兵的着法可以采用路向(行 向)比特向量与预置着法表相结合的方法来生成. 2.4 搜索引擎 搜索是计算机博弈研究的重点,如何快速有 效地搜寻到最佳的着法,如何在同样的时间内搜 寻到更深的层次,如何既要得到高效的搜索速度 又要尽量减少危险的裁剪,这都是研究者们追求 的目标. 由于中国象棋与国际象棋都属于完全知识博 弈,在计算机博弈程序的几大模块之中,搜索是中 国象棋和国际象棋最为相近的模块.几乎所有国 际象棋计算机博弈中的优秀搜索算法,都可以在 中国象棋计算机博弈中取得良好的效果. 但是,由于中国象棋和国际象棋在走法和规 则上,毕竟还存在很多不同,许多国际象棋的算法 想在中国象棋博弈中取得同样好的效果,还需要 进一步改进和控制. 1)国际象棋如果走棋方没有合理着法可以 走,那么将判为和棋.但是在中国象棋中,这种情 况会判走棋方输棋.这个区别也存在于搜索当中, 如果博弈树中某个节点所有的叶子节点都不合 理,国际象棋要判断当前节点是否被对方将军,被 将军返回输棋分值,否则返回和棋分值.中国象棋 则不需要这种判断,直接返回输棋分值. 2)国际象棋如果出现循环,则一律按照和棋 处理.中国象棋存在棋规的判断,存在3种可能: 和棋循环,赢棋循环,违例循环.这个在搜索中同 样需要体现,中国象棋博弈出现循环的时候,要有 相应的棋规判断函数,根据判断结果返回相应分 值. 3)Nu山 ove[13]是国际象棋一个非常著名的算 法,在国际象棋中,NullMove的天敌是 ZugsWang[H J,它会令NullMove做出错误的判断.中 国象棋由于其规则存在“困毙”,这使得ZugsWang 的现象更为严重.所以,NullMove在中国象棋博弈 中,需要额外进行一些控制.通常的做法是在残局 阶段禁止掉NullMove,因为“困毙”现象在残局阶段 出现极为频繁. 许多国际象棋的算法,在中国象棋博弈中,并 不能达到最好的效果,甚至带来相反的作用,需要 额外进行研究.比如历史裁剪、Razor/Futiliyu算法、 维普资讯 http://www.cqvip.com

76 重庆工学院学报 MPC算法,直接使用国际象棋博弈搜索中的条件 往往有副作用,这些都需要学者的进一步研究. 2.5 评估函数 3 结束语 和其他棋类游戏(如跳棋、黑白棋、围棋)相 比,中国象棋的复杂度和国际象棋接近[5,但高于 5]国际象棋.中国象棋可以借鉴很多应用在国际象 棋上的关键技术.中国象棋和国际象棋的玩法和 规则有很大的差别,一些适用国际象棋的算法对 所谓棋局评估函数就是对当前棋盘局面的评 价给予量化打分,以便在搜索过程中依靠其取值 的大小而决定取舍.不论中国象棋还是国际象棋 评估函数通常包括棋子价值评估值、棋子位置评 估值、棋子灵活度评估值、棋子配合评估值、将帅 安全评估值等几部分….但由于2种棋盘的阵形、 棋子活动范围、特殊走法等方面存在着很大的差 异,所以评估函数各部分的具体实现都要考虑2 种棋各自的特点.比如棋子价值评估值,根据有关 文献,中国象棋和国际象棋棋子价值的大概评估 值如表4. 表4兵种价值评估值比较 棋种 帅/王士/后象/相 车 马 炮兵/卒 中象开 穷大 170 160 1 000 450 450 60 国象无穷大 900 325 500 300 100 可以说,中国象棋和国际象棋的评估函数除 了构造方法可以互相借鉴外,其它方面没有必然 的联系. 2.6 开局库和残局库 中国象棋和国际象棋开局库的原理和实现方 法基本相同,都是将一些久经考验的高质量的开 局存入一个数据库中,在每次搜索之前先查看库 中有无当前局面,如果有就不进行搜索了,直接取 出库中的着法,这可以大大加快开局时的速度和 提高开局的质量【9J.开局库主要是采用Zobrist哈 希技术【l5J加以实现.目前,国象和中象都已经有比 较成熟的开局库.和开局不同,残局的局面很少相 同,所以不能采用构造开局库的方法来构造残局 库,而通常采用回溯分析法(Retrograde algorithm). 残局阶段的胜负判定规则要给予足够的重 视.无论在国象还是中象中,“困毙”和“将军”都是 判断最终胜负的主要规则,但也存在很大的区别. 如国际象棋循环作和,而中国象棋循环结果可能 胜、负或和棋;国际象棋长将、长捉判和,中国象棋 长将、长捉判负等.所以要想想造中国象棋残局 库,首先要解决好中国象棋的特殊规则. 目前国际象棋已经有了完整的和不完整的3、 4、5、6子的残局库,而中国象棋这方面的研究还比 较少,很多软件都没有使用残局库.中国象棋的残 局库开发起来比国际象棋要难得多,但开发出来 会使中国象棋的博弈水平有很大的提高. 中国象棋可能并不好用,比如旋转比特棋盘.许多 国际象棋成熟的做法我们还需要结合中国象棋的 特点加以完善. 参考文献: [1】徐心和,王骄.中国象棋计算机博弈关键技术分析 [J].小型微型计算机系统,20O6,27(6):961—969. [2] 刘适兰.从国际象棋与中国象棋的异同看中西方文 化的差异[J].武汉体育学院学报,2003,37(5):1—3. [3] 中国象棋协会.象棋竞赛规则[M].上海:上海辞书 出版社,1999. [4] 国际象棋规则[EB/OL].[2005—02—17].hup:// WWW.cl ̄ssvariants.com/d.chess/chess-chinese.htm1. [5] Shi—Jim Yen,Jr-Chang Chen,Shun-Chin Hsu.Computer Chinese chess[JJ.ICGA Journal,20o4(3):3一I8. [6]亚洲棋规之棋例细则[EB/OL].[2OO4—02—24]. hup://www.chesssky.net/qi1.J/qili/rules/index.hun. [7]黄晨.中国象棋和国际象棋比较研究[EB/OL].[2OO3 —10—12].hap://WWW.elephantbase.net/. [8]博弈复杂度[EB/OL].[2001—11—23].http://WWW.  ̄lswerS.com/game%20complexity%20. [9]涂志坚.电脑象棋的设计与实现[D].广州:中山大 学出版社,2004. [10]S Cracraft.Bitmap Move Generation in ch ̄[j].Joumal 0f the International Computer Chess Association,1984,7 (3):146—153. [11]Hyan R M.Romted Bitmaps a New Twist on an Old Idea [J].ICCA Joumal,1999,22(4):213—222. [12]王小春.Pc游戏编程[M].重庆:重庆大学出版社, 2002"172—174,182—184. [13]Ernst A Heinz.Adaptive null nlove pruning[J].ICGA Journal,2004,22(3):123—132. [14]SchaeferJ,h P,Szafron D.A Re-examination of Bnlte- Force Search Games:Planning and I_eaming[C].chpel Hi11:N.C,1993:51—58. [15]Zobrist A.A new hashing method iwth application for game playing[R].Madison:Computer Science Department Uni— versity of Wiseomin,1970. (责任编辑陈松) 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务