基于uct算法的点格棋游戏系统的制作方法

文档序号:9933932阅读:1229来源:国知局
基于uct算法的点格棋游戏系统的制作方法
【技术领域】
[0001] 本发明属于电子棋类游戏技术领域,特别涉及一种基于UCT算法的点格棋游戏系 统。
【背景技术】
[0002] 点格棋是一种二人纸笔游戏,可以帮助人类提升逻辑推理能力,锻炼数学思维,开 发更深层次的智力。棋盘是由36个点60条边组成的5X5格子,规则是:对弈双方轮流棋盘上 着边,边由棋盘上相邻的两点连接而成,边只能是水平或者是竖直的;边不属于任何一方, 只会对格子的归属进行判断;当每个格子的四条边都被占满时格子由最后一个着边者占 领,占领格子后可继续着边直至不能占领格子或游戏结束,最后根据双方所捕获的格子数 多少判断胜负。棋类游戏博弈问题是人工智能的典型问题,研究博弈技术同时也可以推动 人工智能的发展。
[0003] 当前的点格棋博弈系统所采用的搜索方法多为Alpha-Beta算法。棋类游戏系统通 常是根据当前局面对存在的所有可能情况向下搜索,构造出一颗模拟的树状图,称之为博 弈树。由于Alpha-Beta算法中的α值和β值就是当前棋盘节点的估值,所以针对点格棋,必须 有一个棋盘的估值函数。利用估值函数将不同的棋盘量化,通过量化后的数字来比较不同 棋盘对于博弈一方的优劣情况。点格棋属于添子类游戏,在开局阶段棋盘中可下边较多、随 机性强,但是开局阶段对棋盘的划分将直接决定最终的胜负,所以估值函数设计相对较难。
[0004] 蒙特卡罗方法也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展 和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算 方法。使用概率统计的方法解决点格棋估值设计随机性强的问题,为实现采用概率估值的 搜索方法使用?目心上限算法又称UCT算法,它是冡特卡洛算法的一种延伸。
[0005] 综合上述分析,目前点格棋游戏系统常用的博弈技术是Alpha-Beta剪枝算法,但 是该算法必须要设计一个估值函数对局面优劣进行分析,而点格棋的估值函数设计目前的 方法存在判断依据少,随机性较强的较难。

【发明内容】

[0006] 本发明目的是针对现有点格棋算法的缺陷,提供一种基于UCT算法的点格棋游戏 系统。
[0007] 为了实现上述目的,本发明采用以下技术方案:一种基于UCT算法的点格棋游戏系 统,包括:外部显示装置、输入装置和内部处理单元; 外部显示装置,系统的外部接口,用于与内部处理单元建立通讯,显示棋盘信息和对弈 过程,控制游戏的开始与终止; 输入装置,用于用户设置参数和策略选择,并与内部处理单元建立通讯,进行点格棋游 戏,或者选择进行自动测试; 内部处理单元,采用智能的博弈技术实现游戏系统的智能化,实现智能博弈技术之间 自动对弈以及人与智能博弈技术之间的对弈。
[0008] 所述内部处理单元包括: 搜索模块,采用基于UCT算法的概率估值搜索方法,根据当前棋盘的状态通过对博弈搜 索算法的应用,模拟各种下棋选择将会获得的结果,不断地对博弈树进行搜索,最后根据搜 索的情况找到当前的最优的下棋选择; 储存模块,通过使用大小为11XII的字符型数组实现对棋盘信息的存储,当下棋过程 中棋局状态产生变化时,通过改变数组中的数据值实现对棋盘信息的存储;信息交互模块, 实现外部装置、输入装置与处理单元之间的数据传输,信息交互,对游戏系统的状态进行控 制;包括实现开始、暂停、悔棋、加载下棋策略等功能的控制; 互动模块,通过加载人工下棋和智能下棋两个接口实现人与人、人与电脑、电脑与电脑 之间的下棋,两个接口通过调用人工策略类和智能下棋策略类实现。
[0009] 所述基于UCT算法的概率估值搜索方法包括: (1) 选择结点:根据各分支的胜负概率在博弈树中进行节点选择,获取胜率值最大的节 占. (2) 展开节点:当一个结点被选中,如果该结点没有子结点,并且达到设定的模拟棋局 的次数,为该结点拓展子结点,在拓展节点时对等价边进行裁剪; (3) 模拟棋局:对所拓展的节点按照固定的方法进行模拟下棋,不区分博弈的双方,直 到棋局结束为止;模拟结束后统计模拟次数和胜负结果,为下一步估值提供数据; (4) 回馈更新:根据模拟棋局得到的胜负概率值对整个博弈树进行估值,将模拟棋局 的胜负结果沿着父节点反馈更新整个搜索树。
[0010] 所述步骤1中胜负概率用信心上限值反映,信心上限值计算公式如公式⑴所示:
式中为博弈树中第j个分支的平均回报,η是所有角子机总访问次数,如是博弈树分 支j的访问次数。
[0011] 所述步骤2中等价边为点格棋棋盘确定的链、环中,每个棋型剩余不止一条边,选 择其中任意一条产生的相同结果的边。
[0012] 所述步骤4中更新是把从代表当前局面的父节点到第2步中所找到的子节点所形 成的路径上的所有点,依照模拟棋局的结果来更新胜场数和访问次数,亦即若此点为先手, 且模拟棋局之结果为先手胜,则此节点的胜利次数加一,反之亦然;访问次数则是此路径上 的所有节点都加一,根据博弈树每个分支的访问次数和收益值对每个分支进行改了概率估 值。
[0013] 所述概率估值采用收益值反映,所述收益值的计算方式为:
式中k对修正值所占收益值的比重进行控制,s cor e表示本方所捕获的格子数,η表示棋 盘的大小。
[0014] 点格棋游戏系统的界面层提供强制下棋、悔棋、测试、设置棋盘参数等功能。在主 界面中点击菜单栏设置按钮可以,设置界面中可以设置的参数如棋盘大小、对弈双方等。下 棋的双方可以选择为人人对弈、人机对弈、机机对弈,在设置完双方和对弈参数后,点击开 始可以进行下棋。在过程中可以强制某一方走确定的棋步;当某一方玩家出现错误时,可以 向对方提出悔棋请求,当对方同意后,棋盘上会自动消除玩家刚下的一步棋。
[0015] 系统的搜索层主要是通过加载系统搜索方法,根据当前棋盘的状态通过对博弈搜 索算法的应用,模拟各种下棋选择将会获得的结果,不断地对博弈树进行搜索,最后根据搜 索的情况找到当前对我方的最优的下棋选择。在获得当前最优的下棋选择后,根据棋盘数 据结构返回所下边的坐标,界面模块根据坐标在棋盘上进行显示。
[0016] 蒙特卡洛法的一种延伸算法一UCT算法能对当前棋局存在的所有可能情况进行多 次模拟,通过概率值预估节点的好坏,优先选择表现好的节点。在选择进行模拟的节点时采 用以信心上限值为依据,在超大规模博弈树的搜索过程中相对于传统的搜索算法有着时间 和空间方面的优势。在与风险评估模型相结合的基础上,可以在可控的时间内得到当前局 势下的相对较优的解决方案。这种方法可以很好的解决了点格棋目前存在的盘面评估问 题。
[0017] 采用UCT算法作为点格棋游戏系统的博弈技术还具有以下优势:首先,它解决了原 有算法的估值问题,其次UCT算法在对所有的可能下棋选择进行全局搜索的基础上根据搜 索结果选择好的节点进行更多次的局部搜索,可以搜索结果向着好的方向发展。最后,在 UCT算法进行模拟棋局的时候可以同时利用多线程进行多次的模拟,充分利用了电脑的硬 件资源。
【附图说明】
[0018] 图1是实施例点格棋游戏系统主界面。
[0019] 图2是实施例UCT算法的搜索过程。
[0020] 图3是实施例等价边示意图。
【具体实施方式】
[0021] 为了更好地理解本发明
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1