基于Alpha-Beta剪枝法的中国象棋博弈系统研究

更新时间:2024-11-07 06:39:23 阅读: 评论:0


2022年8月1日发
(作者:李顺桃)

。 一… , 一 1…1 ,1~ 一1 1 h 一一 L 一n 

基于Alpha—Beta剪枝法的中国象棋博弈系统研究 

黎利辉 

(广西民族师范学院数学与计算机科学系广西崇左532200) 

【摘要】:目前国内中国象棋人机博弈方面的研究相对落后。针对这一状况,设计了一个中国象棋 

博弈系统,本系统实现前台界面、棋盘表示、着法生成、棋局评估、博弈树搜索等必要过程。棋局评估考 

虚到了棋子的基本值、灵活性、受攻击度、受保护度,棋子位置附加值等。搜索引擎采用Alpha-Beta剪 

枝法。整个系统功能完备,具有较强的象棋对弈水平,为相关研究提供了较强的借鉴意义和参考价值。 

【关键词】:中国象棋;着法生成;评估函数;博弈树搜索 

引言 

组,对每一个轮到本方下的棋子寻所有可能着法, 

人机博弈是计算机人工智能的一个研究热点,许 将每一个着法保存到一个ChessMove类型的二级数 

多人工智能算法可以作用到人机博弈上来,同时对人 组里,其相关的数据结构如下。 

机博弈的研究也摧生了许多新的算法【1J,故人机博弈 public class ChessManPos{ 

是人工智能研究领域的“果蝇”。在国外从事这方面的 public byte x; 

研究特别多,1997年,由1名国际象棋特级大师,4名 public byte y; 

电脑专家组成的“深蓝”小组研究开发出的国际象棋 

} 

博弈系统以3.5比2.5击败了棋王卡斯帕罗夫[21。目前 ChessManPos这个类的对象用来保存棋盘上某一 

中国象棋的研究进展与研究成果比国际象棋的落后 位置。 

很多。一个实用的中国象棋博弈系统一般分为前台界 public class ChessMove{ 

面、棋盘表示、着法生成、棋局评估、博弈树搜索等必 public short chesslD; 

要过程,其中博弈树搜索和棋局评估是一个博弈系统 public ChessManPos from; 

的关键。本文以Alpha—Beta剪枝法为基础,用JAVA public ChessManPos to; 

语言开发一个完整的中国象棋博弈系统。 int score; 

1棋盘表示 

} 

中国象棋的棋盘为10行9列,用一个1O行9列 public ChessMove[][]m_MoveList=new ChessMove 

的二维数组与之对应,而各棋子用对应的数字表示, 

[10][801; 

具体如表1所示。棋盘某位置上有一个棋子,则将表 ChessMove用来记录棋盘上从from到to的某一 

示棋盘的二维数组相应元素上的值设置为对应棋子 步,然后定义一个ChessMove类型的二维数组,这个 

的值。如果棋盘某位置上没有棋子,则将二维数组上 

二维数组的第一维的下标代表搜索时进行到的层数, 

对应元素的值设置为0。 第二维下标代表本层的第几步走法,每一个元素就代 

表1各类棋子与值的对应关系 表某一个具体的走法。 

棋子 黑帅 黑车 黑马 黑炮 黑士 黑象 黑兵 3棋局评估 

值 1 2 3 4 5 6 7 中国象棋博弈系统中棋局评估是非常重要的组 

棋子 红将 红车 红马 红炮 红仕 红象 红兵 成部分。本系统的棋局评估主要从剩余棋子基本值、 

值 8 9 10 1l 12 13 14 棋子灵活性、棋子受攻击度、棋子受保护度,棋子位置 

2着法生成 附加值这几个方面来衡量。分别计算这几种类型的 

着法生成的基本思路是扫描表示棋盘的二维数 

值,然后将它们的和作为棋局的优劣值,供搜索引擎 

项目支持:广西教育厅科研项目(201106LX652) 

20l4年第3期 『福建电脑 ・29・ 


本文发布于:2022-08-01 16:08:52,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/falv/fa/83/50812.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26