1
“理治棋壮”中国象棋计算机博弈引擎简介
“理治棋壮”中国象棋计算机博弈引擎开发小组
计算机博弈是人工智能领域公认的最具挑战性的科研课题之一。中国象棋是从两军对阵
中抽象出来的一种智力游戏,是博弈的一个标准问题。正逢人工智能学科创立 50 周年之际,
由中国人工智能学会主办,东北大学、清华大学、北京理工大学联合承办的全国首届中国象
棋计算机博弈锦标赛暨机器博弈学术研讨会将于 2006 年 8 月 2 日——7 日在北京举行。我
们“理治棋壮”小组将作为北京理工大学代表队参加本次比赛。
我们此次开发的项目为一个基于中国象棋通用引擎协议( UCCI)的中国象棋计算机博弈
引擎。项目采用 GNU C++开发,遵循 GPL 许可,综合体现面向对象思想和软件工程理论,培
养团队合作精神和学习创新能力。
本引擎通过标准输入和标准输出与支持 UCCI 的中国象棋界面软件通讯,可实现跨平台
及联网的人机、机机对战。博弈算法实现的关键技术包括:棋盘表示的数据结构、着法生成、
局面评估;其策略核心在于棋局评估函数,核心方法是博弈树搜索。同时开局库和残局库的
构建对算法的性能也有重要的影响。
想让计算机下棋,首先必须解决的问题就是如何把棋盘状态和棋子分布编码到计算机,
转化为计算机可以处理的数据格式。着法生成与棋盘数据结构密不可分,如何使两者协调工
作,加速对博弈树的操作,尤其是如何在计算机博弈中找到最佳的途径,是博弈爱好者研究
的重点。棋局评估就是给棋局打分。在较少的步数内,对局面进行量化,通过数值评判棋局
的好坏。评估需要大量的象棋知识,仁者见仁,智 者见智,是机器博弈中最为人性化的部分。
另外,如果把中国象棋棋谱上一些公认为最佳的开局着法和残局着法存储在数据库中,在开
局和残局时用查询取代搜索和评估,那么会大大提高计算机的对弈水平。
我们的引擎除通讯协议采用标准的 UCCI 模块外,主体部分将完全独立自主开发。核心
算法在参考人工智能和中国象棋领域已有成熟算法的基础上将有所改进和创新,同时我们也
将邀请我校一些象棋高手作为局面评估及开局、残局问题的顾问。报名参加本次锦标赛的,
既有多位以往计算机博弈界的世界冠军,也有不少像我们一样的新手。预祝我们在比赛中取
得良好的成绩!
北京理工大学“理治棋壮”中国象棋计算机博弈引擎开发小组版权所有(2006.7~2006.8)
项目主管: 林 健(北京理工大学计算机科学技术学院)
指导教师: 黄 鸿(北京理工大学信息科学技术学院自动控制系系统工程研究所)
技术顾问: 赵陈翔(北京理工大学软件学院)
开发人员: 林 健(北京理工大学计算机科学技术学院)
高 然(北京理工大学计算机科学技术学院)
应张彬(北京理工大学软件学院)
武 斌(北京理工大学软件学院)
联系方式: lj@linjian.cn(林健)
honghuang@bit.edu.cn(黄鸿)