英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
智能中国象棋系统设备的设计与实现
1st Jingyuan Zhang
数字音频与视频工程中心
中国传媒大学
中国北京
zhangjingyuan@cuc.edu.cn
2nd Hang Yin
数字音频与视频工程中心
中国传媒大学
中国北京
yinhang@cuc.edu.cn
摘要——作为中国代表性的中国象棋游戏,中国象棋是一种经过数千年发展的智力游戏。随着基于云的语音识别技术的成熟和人工智能技术的发展,智能中国象棋系统已经上升到一个新的水平,扩展了更加智能的人机交互体验。提出了一种基于电磁点阵的棋子牵引移动方法,摆脱了复杂的机械装置,完成了基于深度学习算法的游戏决策,实现了强大的棋子力量,并实现了基于自然语言处理的语音控制算法。最终,当系统启动时,您可以在真正的棋盘上与机器对战。
关键词——中国象棋,电磁点阵,MCTS,基于云的语音识别,牵引与移动
I.导论
中国象棋游戏算法在人工智能领域受到了广泛关注。中国象棋游戏由于规则清晰,操作重复等一系列优势,在计算机游戏界中起着非常重要的作用。
与传统的mini-max算法、Alpha-beta修剪方法、并行搜索算法和其他方法不同,AlphaGo和其他新算法使用基于策略网络,价值网络和蒙特卡洛树搜索(MCTS)的强化学习理论。这三个部分的结合在Go领域取得了巨大的成功,并将机器游戏的水平提升到了一个新的水平
通常的中国象棋游戏都是在计算机或手机上运行的,市场上很少有台式机产品可以直接与人类玩家一起玩。用户通过语音输入输入中国象棋命令后,该设备可以自动响应游戏决策,并自动完成物理棋盘上玩家(人与计算机)的移动,从而实现人机游戏的科幻场景。
II.相关工作
A.人机接口
人机交互接口指的是一种将人的中国象棋动作告知系统的方法。人机交互需要完成将用户输入命令转换为棋子移动命令,以及在棋子移动之后感知其在棋盘中的位置。已有技术依赖于复杂的设备。现有方法如下:1.玩家直接移动棋子完成游戏指令输入,然后依靠安装在棋盘或棋盘和棋子上的传感器感应设备(例如电磁波或压力感应)来知道棋子在棋盘上的位置;还有与相机和图像处理相关的算法,以完成对棋子在板上位置的感知。2.依靠手机和计算机等其他设备,通过蓝牙或以太网连接到系统,在手机或计算机上下棋,然后将真实的东西反映在板上;或使用键盘直接输入坐标来确定中国象棋的选择和移动。无论如何,上述方法需要复杂的装置或设备,这极大地影响了游戏体验。
B.游戏推理决策
在与用户进行游戏之后,需要完成游戏决策。在这方面,传统技术通常是通过诸如Mini-max / Alpha-beta修剪算法之类的搜索方法来存储大量游戏记录,在游戏记录中搜索最相似的情况,并确定对策。这样的中国象棋引擎技术很难具有较高的棋力,不能与大师一起玩,并且中国象棋力量相对固定。
类似于AlphaGo Zero的新型深度学习算法不需要预先存储的游戏记录。MCTS算法和强化学习网络用于计算获胜率最高的下一步,并确定对策。并且通过学习网络的训练,可以持续提高棋力,从而可以获得很高的棋力。
C.棋子的自动移动
棋子的自动移动是全自动中国象棋系统的关键。在这方面,现有技术是通过控制机械臂实现棋盘运动,并通过电机控制来控制机械臂在固定轨道上的运动,以完成棋子的牵引运动。机械臂的运动需要电动机。然而,存在诸如更大的噪声、一次只能移动一个棋子、更复杂的控制以及机器人手臂的尺寸通常大于棋盘等缺点。
III.中国象棋系统设计
一套全自动的中国象棋系统主要包括以下三个部分:1.人机交互;2.游戏决策;3.自动移动。系统结构如图1所示。
图1.系统结构划分
系统硬件包括拾音器模块、处理器和运动设备的各种组件:恒定电源、继电器组、印刷电路板、电磁点阵、棋盘和棋子。系统硬件结构如图2所示。
A.人机交互
无线移动接入的可用性不断提高,所有语音和语言处理应用程序都成为了技术焦点[1]。该系统使用语音输入并使用云语音识别技术来完成对玩家游指令的识别。常规语音识别是通过几个过程[2,3]完成的,例如预处理、特征提取、训练、匹配和后处理。
与传统语音识别相比,云语音识别仅在本地实现语音输入和预处理。语义理解、特征提取和识别匹配在云端完成。如图3所示。
该系统的人机交互模块由拾音单元和语音转换单元组成。拾音器由驻极体麦克风拾音器和放大器电路组成,可以将周围的声音(如“炮二平五”)记录为电信号的音频,其中包括人的声音。在将音频数据传输到云之前,需要进行预处理以使音频数据符合标准格式。音频数据为PCM格式,16位小端编码,采样率为16kHz,单声道。语音转换模块将音频数据发送到云,接收返回的识别结果,然后将识别结果输出到游戏决策模块,以完成指令输入和后续处理。
图2.系统硬件结构
图3.语音识别过程
B.游戏决策
游戏决策模块的输入端是字符串,其表示人机交互模块中的语音转换单元识别后的语音信息,输出端表示计算后棋子要在棋盘上移动的的目标路径,由游戏决策引擎决定。该路径由要在棋盘上移动的棋子的起点和终点的坐标表示。如图。图4是棋盘坐标的示意图。棋盘格线之间的交点是一个放置点,每个放置点的位置由放置点坐标标识。要在棋盘中移动的棋子的目标路径是棋子的初始位置坐标和目标位置坐标。
图4.棋盘格坐标示意图
当游戏决策引擎收到输入的语音信息,它首先将其转换为对应棋盘位置的坐标组。根据初始位置坐标,通过查询棋盘,找出需要移动的棋子。然后根据目标位置查询棋盘,以确定是否符合中国象棋规则。如果没有匹配,决策响应将停止,并且不会有输出产生;如果有,它将继续判断是否存在被吃掉的棋子。如果没有吃子,则输出坐标组到运动控制部分,然后更新棋盘;如果有吃子,则更新棋盘并输出两组坐标组运动控制模块,一组是正常移动的坐标组,另一组是被吃棋子的移动坐标组,然后更新棋盘。
将用户语音命令转换为棋子运动坐标组如下。在中国象棋游戏里面,描述棋子位置的规则如下:红方和黑方代表双方玩家,从右到左的红色垂直线(以红方玩家为参考)分别是一、二、三、四、五、六、七、八、九;黑色垂直线从右到左(以黑方玩家为参考)为1、2、3、4、5、6、7、8、9。移动红棋是基于红方玩家的视角,而移动黑棋则是基于黑方玩家的视角。前移为进,后移为退,侧移为平。如果两子在同一竖线上,则使用前后表明。例如,游戏开局时,红方玩家右侧的炮移至中线,就是所谓的“炮二平五”,即二号线的炮侧向移动至五号线。在图4所示的棋盘中,左下角的落点坐标为(0,0),因此“炮二平五”的坐标组对应是(9,2)-(6,2)。
被吃棋子的目标位置坐标组生成如下:如图4所示,棋盘左右两侧有两栏位置以放置被吃的棋子。当游戏引擎判断有棋子被吃,将会根据最近弃置域空位坐标原理生成被吃棋子的目标位置坐标。
游戏决策引擎输出坐标后,根据用户指示,执行蒙特卡洛树搜索(MCTS)[4,5]。将神经网络与MCTS结合使用以提供超前搜索,并评估树中的位置[6,7]。 MCTS本质上维护着一棵树,树的每个节点在每个节点中保存动作信息情况。信息为N(s,a)是访问次数、W(s,a)是总动作值、Q(s,a)是平均动作值,P(s,a)是被选择的概率。该过程有四部分。
- 选择
从树的根节点开始,所有合法操作都是可能的选项。根据在搜索树中的统计值,ai= argmax(Q(st,a) U(st,a)),选择其中一个动作,并且继续搜索,直至到达叶节点sL。
(1)
(2)
c是确定探索水平的常数。无论何时选择节点,都会人为地增加该节点的访问次数N(st,at),并减小节点的总作用值W(st,at),从而降低Q(st,at)。这种人为更改的数量称为虚拟损失,虚拟损失用于确保每个线程评估不同的节点。
- 拓展和评估
叶节点sL被馈入神经网络,并评估所有合法操作的胜率v。评估完成后,将叶节点展开,并将每个边缘(sL,a)初始化为{N(sL,a)=O,W(sL,a)=O,Q(sL,a)=O,P(sL,a)=pa},然后备份值v。
- 回退
边缘的统计信息在每个搜索步骤中都会反向更新。访问次数增加,N(st,at)=N(st,at) 1,并且将操作值更新为平均操作值,W(st,at)= W(st,at) v,Q(st,at) =。在进行备份之前,必须先恢复虚拟丢失。
- 操作
重复前三步,直到完成足够的搜索。搜索结束时,在根节点s0处选择一项动作,该动作与其访问次数的指数成正比,
pi;(a|s0)= (3)
tau;是控制探索级别的温度参数。保留该节点下子树的所有统计信息,并丢弃树的其余部分。
在确定了游戏决定之后,执行与上一个相同的进程,吃子检查,将坐标组输出到运动控制部分并更新棋盘。完成所有操作后,返回IDLE状态并等待下一轮用户指示。图5展示了游戏决策模块的流程图。
图5.游戏决策模块的流程图
由于每次游戏开始时棋子在棋子上的位置都是固定的,且游戏决策引擎在每次棋子移动时都会更新棋盘信息,也就是说,相应棋子的位置变化也会更新,从而确保了游戏决策引擎总是知道所有棋子位置。
C.自动移动
棋子运动模块由路径规划单元和运动控制单元组成,它们共同完成棋子运动控制信号的生成。
路径规划模块的输入端是游戏引擎发送的坐标组,输出端是一系列电磁体的坐标,它们是电磁体点阵的坐标。如图6所示,每个电磁铁在电磁铁点阵中的位置由电磁铁坐标标识。
图6.电磁点矩阵的示意图
游戏决策模块的输出格式为{类型,捕捉件,坐标}。所有可能的输出如下表1所示:
表I. 游戏决策的输出格式
种类 |
是否吃子 |
坐 标 |
备 注 |
0 |
0 |
{x0,y0,x1,y1} |
中线移动无吃子 |
1 |
1 |
{x0,y0,x1,y1},{x2,y2,x3,y3} |
中线移动炮吃子 |
2 |
0 |
{x0,y0,x1,y1} |
底线移动无吃子 |
2 |
1 |
{x0,y0,x1,y1},{x2,y2,x3,y3} |
中线移动吃子 |
考虑到不同的棋子具有独特的移动规则,我们还需要在避免碰撞的同时将弃子移动到弃子域,因此棋子的运动分为三类。
1)马,象,士和弃子的移动路径。
马,大象,士和弃子的移动路径使用中线方
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[259959],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。