中国象棋的编程设计
[4] Hsu T.S.,Liu P.Y.. Verification of endgame databases. ICGA Journal,2002,25(3):132-144.
· 111 ·
14 14 12 18 16 18 12 14 14 16 20 18 24 26 24 18 20 16 12 12 12 18 18 18 12 12 12 12 18 16 22 22 22 16 18 12 12 14 12 18 18 18 12 14 12 12 16 14 20 20 20 14 16 12 6 10 8 14 14 14 8 10 6 4 8 6 14 12 14 6 8 4 8 4 8 16 8 16 8 4 8 -2 10 6 14 12 14 6 10 -2
图 1 一个车在各个位置的价值
4 8 6 12 4 12 16 8 4 4 10 28 16 8 16 28 10 4 12 14 16 20 18 20 16 14 12 8 24 18 24 20 24 18 24 8 6 16 14 18 16 18 14 16 6 4 12 16 14 12 14 16 12 4 2 6 8 6 10 6 8 6 2 428848824 0 2 4 4 -2 4 4 2 0 0 -4 0 0 0 0 0 -4 0
的位置的重要性的表在下列图中(1-2 图)被给。 1.1.3 动态调整根据状态
动态调整使用了模拟识别技术去动态地调整目前棋 子的价值和位置能量表。在图 3 中,“炮”的位置有 c0、C1、 c2、e0、E1 和 E2,可能间接地威胁敌人的“将”或“马”,这 些位置将会被优化调整。当敌人移动“将”或“马”时,这 些位置必须重新进行调整。 1.2 搜索技术
算。一个开放的数据库能根据来自互联网的中国象棋的比 赛以及比赛的结果得到极大扩展。根据人类与计算机的比 赛结果,依靠一个合适的数据库所得到的最好的象棋程序 的水平相当于 6 段的棋手。目前中国象棋程序的实现需要 依赖结局数据库和检索系统,自分析能力不是很强,相信随 着硬件的飞速发展,在不久的将来中国象棋程序会克服这 些困难,取得更高的独立性及自适应性。
因为中国象棋和国际象棋都有着相同的复杂性,因此 搜索方法也同样的适用二者。基本上,一个中国象棋程序 会建造一个最小的游戏树,即 α - β 搜索。在基于变化的 搜索结构(PVS)的搜索过程中,使用以下的几种方法会减 少计算的时间并且增加搜索的准确性。 1.2.1 静态搜索
静态搜索会探索所有的攻击,并且检查当前的位置, 静态位置的终止条件为寻找那些不受攻击的或者受攻击 程度最轻的位置。
参考文献
[1] Lai F P. Chinese Chess History[EB/OJ]. http://chess.cc.ntu.edu. tw/.
[2] Wu R,Beal D F(2001c). Fast,memory-efficient retrograde algorithms[J]. ICGA Journal,24(3):147-159.
当对手正在思考时,程序能够充分的利用这个时间去 预测对手的移动并且储存结果。如果预测是准确的,取得的 结果会被进一步的计算。 1.2.4 移动命令
包括杀手启发式,历史启发式(谢弗, 1983 年)以及 内部迭代深化。
2 结束语
相比其他如跳棋,黑白棋,围棋等棋类来说,中国象棋 更类似于西方的国际象棋。正因为如此,基于人工智能的计 算机中国象棋从许多国际象棋的编程技术中受益。在开始 阶段,中国象棋程序目前使用一个开放的数据库来支持计
图7 创建调整图层,选取“图层”→“新调整图层”→“色阶”。
4 结束语
Photoshop 作为当今图像设计领域的姣姣者 Photoshop 是一门创造艺术的技术。艺术是精神的载体,但艺术的精神 内涵往往体现在形式上,而 Photoshop 被人们常用于图像制 作,因此,Photoshop 的确拥有较高的利用价值。
essman and the strategy of playing chess which provides the fundamental for the algorithm design; Secondly, it prop- oses α-β searching method, and puts forward some ways to minimize the searching time and complexity of the algo- rithm; At the end of the paper, it points out the deficiency of existing algorithm and the direction for improvement. Keyword: Chinese Chess Programming Design Artificial Intelligence Open Database Knowledge Base
表 1 每个棋子的价值 Piece: King Assistant Elephant Rook Horse Cannon Pawn Value: 6000 120 120 600 270 285 30
1.1.2 位置的重要性 除了棋子的重要性,每个棋子的位置也相当的重要。
对方的“宫”是威胁对方“将”的最好的地方。因为每个棋 子有着不同的移动方式,大多数程序会配备着一个表,这 个表储藏着每个棋子最有可能的重要位置。“车”,“马”
20 步移动。例如,一方有三个“兵”击败对方有两个“士”
象棋有两个玩家,零记录便是全部的信息。象棋专业的 和两个“象”。派出三个“兵”越过“河”可能需要 30 步或
知识在 800 年前就开始发展。如今,世界上已经有很多优秀 40 步,但如果所有棋子可以进行交换来产生这种情况,那
的人类棋手。然而现在最好的象棋程序已经和这些人类棋 么胜利肯定是确定的。这种嵌入的方法可减少所需增加的
[3] Yen S.J.,Chen J.C.,Hsu S.C.(2004). Chinese Chess Informa- tion. [EB/OJ] ICGA Games Information homepage. http://www.cs. unimaas.nl / icga/games/chinesechess.
收稿日期:2009-06-27 *鲍鹏 中国矿业大学计算机科学与技术学院学生(江苏,徐州 221116)。
· 110 ·
的发挥;(2)重要的位置;(3)根据状态动态调整的能力。 以下将讨论这些要素的细节。
1.1.1 棋子能力的发挥 计算棋子的威胁力最简单的方法是衡量目前棋子在
棋盘上的位置。每个棋子有着不同的攻击力和防御力,这 些都是不同的。“将”是最重要的棋子,它的价值比所有的 棋子加起来都大。“车”的重要性等同于一个“炮”加上一 个“马”。“马”的重要性等同于两个“象”。基于这些启发 式规则,给棋子了以下的价值(见表 1)。
象棋是世界上最流行的棋类游戏之一,在中国大陆和 1.1 棋子位置关系
台湾以及有中国人居住的地方大概有十亿人在玩。象棋有
位置的评价是中国象棋最需要智力的地方。一些特殊
着十分悠久的历史,其在南宋时就开始流行[1]。象棋的最早 的棋盘位置很难确定搜索树在什么时间要扩大到 15 步或
记录以及写着其游戏理论的书都来自于那个时代。
图 2 一个马在各个位置的价值
9
EA K
8·
A
7 ·H
E
6·
P
P
5
·
·
·
·
4
3·
P
P·
·
2·
·
1
0 ab c de f gh i
图 3永久的状态不得不在搜索的过程中定义,其受一个频
繁发生的动作影响。如果一个程序仅被评估在第一级,它将 会导致一个重复尝试的错误棋盘状态。 1.2.3 提前的计算和存储结果
手不相上下,尽管象棋十分的复杂。
搜索深度,但它肯定需要增加时间来计算每个评价函数。
1 中国象棋算法的设计
在中国象棋中位置的评价有以下三个要素:(1)棋子能力
......................................................................................................................................
参考文献
[1] Adobe 公司北京代表处主编. Adobe Photoshop CS2 标准培训 教材》[B]. 北京:人民邮电出版社,2006-01.
[2] 汪端编著. 老邮差:数码照片处理技法·风光篇(附光盘)[B]. 北京:人民邮电出版社,2008-01.
[3] 杨成伟编著. 图像大师 Photoshop CS[B]. 重庆:西南师范大学 出版社,2007-01.
200 9 年 10 月
电脑学习
第5期
中国象棋的编程设计
鲍 鹏* 高 珩 王 伟
摘 要 : 本文阐述了中国象棋编程设计,首先叙述了象棋中的位置与下棋策略的关系,为算法设计提供基础;其次,简述了 α - β 搜索技术,并对其提出了相应方法来减小搜索时间和计算复杂度。最后也指出了现有算法的不足和改进方向。
关 键 词 : 中国象棋 编程设计 人工智能 开放数据库 知识库 中图分类号: TP302.2 文献标识码: A 文章编号:1002-2422(2009)05-0110-02
Program Design of Chinese Chess
Bao Peng Gao Heng Wang Wei Abstract: The paper elaborates on the design of Chinese Chess. Firstly it presents the relationship between the position of ch-