首页 / 专利库 / 人工智能 / 人人交互 / 基于UCT算法的亚马逊棋机器博弈系统

基于UCT算法的亚逊棋机器博弈系统

阅读:470发布:2020-05-24

专利汇可以提供基于UCT算法的亚逊棋机器博弈系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于UCT 算法 的亚 马 逊棋机器博弈系统,包括:外部显示装置、输入装置和内部处理单元;其中外部显示装置,用于与内部处理单元建立通讯,显示棋盘信息和博弈过程;输入装置,用于用户设置参数和在博弈模式下的策略选择,并与内部处理单元建立通讯,进行亚马逊棋游戏;内部处理单元:采用智能的博弈技术实现游戏系统的智能化,实现智能博弈技术之间自动博弈以及人与智能博弈技术之间的博弈。本发明解决了原有算法的估值问题,对所有的可能下棋选择进行全局搜索的 基础 上根据搜索结果选择好的 节点 进行更多次的局部搜索,可以让搜索结果向着好的方向发展;提高了UCT的搜索效率与深度。,下面是基于UCT算法的亚逊棋机器博弈系统专利的具体信息内容。

1.一种基于UCT算法的亚逊棋机器博弈系统,其特征在于包括:外部显示装置、输入装置和内部处理单元;
其中所述外部显示装置,用于与内部处理单元建立通讯,显示棋盘信息和博弈过程;
所述输入装置,用于用户设置参数和在博弈模式下的策略选择,并与内部处理单元建立通讯,进行亚马逊棋游戏;
所述内部处理单元:采用智能的博弈技术实现游戏系统的智能化,实现智能博弈技术之间自动博弈以及人与智能博弈技术之间的博弈。
2.根据权利要求1所述的博弈系统,其特征在于:所述内部处理单元包括:
搜索模,采用基于UCT算法的概率估值搜索方法,根据当前棋盘的状态,模拟各种下棋选择将会获得的结果,不断地对博弈树进行搜索与更新,最后根据搜索树的各节点的收益值找到当前的最优的下棋选择;
存储模块,通过使用大小为10×10的字符型数组实现棋盘存储,当下棋过程中棋局状态发生变化时,通过改变数组实现对棋盘信息的更新;
信息交互模块,用于实现外部装置、输入装置与处理单元之间的数据传输、信息交互,对游戏系统的状态进行控制;
互动模块,通过在外部显示装置弹出选择对话框来让用户进行游戏模式选择,用于人人对弈、人机对弈与机机对弈的选择入口。
3.根据权利要求2所述的博弈系统,其特征在于:所述于UCT算法的概率估值搜索方法采用以下步骤:
(1)选择节点:根据博弈树中各分支节点的UCB值进行节点选择,获取UCB值最大的节点;
(2)展开节点:当一个节点被选中,如果该节点没有子节点并且达到预设的访问次数时,为该节点扩展子节点并进行剪枝
(3)模拟棋局:对所拓展的节点按照一定的方法进行模拟下棋,不区分博弈的双方,知道棋局结束为止;模拟结束后统计模拟次数与胜负结果,为下一步提供数据;
(4)回溯更新:根据模拟棋局得到的胜负结果与模拟次数对模拟棋局的节点进行估值,并将模拟棋局的胜负结果沿着父节点回溯更新整个博弈树。
4.根据权利要求3所述的博弈系统,其特征在于:所述步骤1中UCB值采用式1的计算公式:
式中:α是调整系数,M是到目前为止在整个博弈树中已访问的节点的次数,Cj是博弈树分支j的访问次数, 是博弈树中第j个分支的平均回报。
5.根据权利要求3所述的博弈系统,其特征在于:所述步骤2中对所得节点进行修剪保留,采用式2的估值公式对所得节点进行筛选:
Evaluation=f(S,m1)+f(S,m2)+f(S,a)   (2)
式中:S表示当前形局势,m1、m2、a分别代表QueenMove、KingMove和灵活度的估值,f是灵活度函数。
6.根据权利要求3所述的博弈系统,其特征在于:所述步骤4中更新采用以下步骤:把从代表当前局面的父节点到步骤2中所找到的子节点所形成的路径上的所有点,依照模拟棋局的结果来更新胜利场数和访问次数,亦即若此点为先手,且模拟棋局的结果为先手胜,则此节点的胜利次数加一,反之亦如此;访问次数则是此路径上的所有节点都加一,根据博弈树每个分支的访问次数和收益值对每个分支进行概率估值的修改
7.根据权利要求6所述的博弈系统,其特征在于:所述概率估值采用收益值反映,其计算方式为:若模拟结果为胜,则收益值为1,若模拟结果为负,则收益值为0。

说明书全文

基于UCT算法的亚逊棋机器博弈系统

技术领域

[0001] 本发明属于机器博弈棋类竞技游戏博弈平的研究领域,特别涉及一种基于UCT算法的亚马逊棋机器博弈系统。技术背景
[0002] 1.机器博弈
[0003] 机器博弈,也称计算机博弈,就是指计算机通过运行人类编写的程序,模拟人类在下棋时复杂的思维,从而让计算机像人类一样具有下棋的能,下国际象棋,五子棋,西洋跳棋,中国象棋等等。计算机博弈作为人工智能领域一个非常重要而且极具挑战性的课题,在最开始人工智能领域的研究,正是从计算机下棋开始。早在上世纪50年代,计算机和信息论的先驱者阿兰·图灵(Alan Turing)、克劳德·香浓(Claude Shannon)等大师就都非常重视计算机博弈的研究。人类开发下棋软件就是让计算机模仿人脑进行思维。如果能够掌握下棋的本质,也就掌握了人类智能行为的核心,那些能够存在于下棋活动中的重大原则,或许就存在于其他任何需要的人类智能活动中。
[0004] 2016年3月10日,一场震惊世界的围棋大战在AlphaGo与李世石之间展开并且最终AlphaGo取得了胜利,2017年1月4日,升级版的AlphaGo匿名为Master在网络上横扫了中、日、韩三国的世界顶尖围棋手后以60胜0负1平完美收官,使我们不得不重新审视计算机博弈这个可以颠覆人类认知的领域。
[0005] 2.亚马逊棋简介
[0006] 亚马逊棋属于两人对弈确定性的棋盘类游戏,属于零和游戏(游戏双方在游戏结束时肯定会分出胜负),于1988年由阿根廷的Walter Zamkauskas发明。1922年西班牙的游戏杂志发布了相应的游戏规则;1993年,Michael Keller推荐进入到“kNight Of The Square Table”邮政游戏俱乐部,从此之后被逐步得到推广。2000年和2001年的国际计算机奥林匹克锦标赛都开展了亚马逊棋的比赛,亚马逊棋也由此推向全世界。亚马逊棋目前已经成为国际计算机奥林匹克锦标赛的常规比赛项目,2011年开始的全国大学生计算机博弈大赛也将其列为比赛项目,也是比赛参与者较多的项目之一。
[0007] 亚马逊棋的规则比较简单,棋子下棋的规则与设置障碍的规则相同。只要理解下棋的规则,障碍设置的规则就迎刃而解。具体规则如下:
[0008] (1)在10*10的棋盘上红方(或白方)在A4、D1、G1和J4位置上摆放白方的四个皇后,蓝方(或黑方)在A7、D10、G10和J7位置上摆放四个皇后。
[0009] (2)皇后可下棋的位置与国际象棋皇后下法的规则相同。
[0010] (3)由红方(或白方)开始游戏,每轮下棋由两步组成:
[0011] ①移动摆放皇后位置,规则和国际象棋皇后走棋的规则相同;
[0012] ②落子后以当前皇后的位置为基点设置障碍,障碍摆放点的位置和皇后可摆放点的位置相同(即两者使用的规则相同)。
[0013] (4)皇后和障碍设置的线路上不得有其他棋子或障碍。
[0014] (5)可以完成最后一步的一方为赢家。
[0015] 3.亚马逊棋博弈的搜索算法
[0016] 当前的亚马逊棋机器博弈系统所采用的搜索技术多为Alpha-Beta剪枝算法。棋类游戏系统通常是根据当前局面对存在的所有可能情况向下搜索,构造出一棵模拟的树状图,称之为博弈树。由于Alpha-Beta剪枝算法中的α值和β值就是当前棋盘节点的估值,所以亚马逊棋必须有一个期盼的估值函数。估值函数可以将不同的棋盘量化,通过量化后的数字来比较不同的棋盘对于博弈双方的优劣情况。亚马逊棋属于添子类游戏,在开局可行的走法就有两千多种,平均可行的走法也有80多种,形成的博弈树无疑是十分巨大的,因此使得整个博弈树的估值变得十分困难。Alpha-Beta剪枝算法必须要设计一个估值函数对整个博弈树进行估值。然而亚马逊棋走法巨大的特性导致搜索深度无法增加,在比赛时间的限制下基于当代计算机的性能最多能搜索到四至五层,胜率以及稳定性有待提高。
[0017] 蒙特卡罗方法也称为统计模拟方法,是一种以概率统计理论为基础的一类非常重要的数值计算方法。概率统计方法可以解决亚马逊棋中估值设计随机性强的问题。置信上限树算法又称UCT(Upper Confidence Tree)算法是一种采用概率估值的搜索方法,是蒙特卡罗算法的发展。该方法通过对博弈树中的走法进行快速模拟,计算出UCB(Upper Confidence Bound)值,选择UCB最优的节点作为最佳走法,大大提升了亚马逊棋机器博弈系统的搜索性能。

发明内容

[0018] 本发明目的是针对现有亚马逊棋博弈系统搜索算法的缺陷,提供一种基于UCT算法的亚马逊棋机器博弈系统。
[0019] 为了实现上述目的,本发明采用采用以下技术方案:一种基于UCT算法的亚马逊棋机器博弈系统,包括:外部显示装置、输入装置和内部处理单元;
[0020] 其中所述外部显示装置,用于与内部处理单元建立通讯,显示棋盘信息和博弈过程;
[0021] 所述输入装置,用于用户设置参数和在博弈模式下的策略选择,并与内部处理单元建立通讯,进行亚马逊棋游戏;
[0022] 所述内部处理单元:采用智能的博弈技术实现游戏系统的智能化,实现智能博弈技术之间自动博弈以及人与智能博弈技术之间的博弈。
[0023] 进一步的,内部处理单元包括:
[0024] 搜索模,采用基于UCT算法的概率估值搜索方法,根据当前棋盘的状态,模拟各种下棋选择将会获得的结果,不断地对博弈树进行搜索与更新,最后根据搜索树的各节点的收益值找到当前的最优的下棋选择;
[0025] 存储模块,通过使用大小为10×10的字符型数组实现棋盘存储,当下棋过程中棋局状态发生变化时,通过改变数组实现对棋盘信息的更新;
[0026] 信息交互模块,用于实现外部装置、输入装置与处理单元之间的数据传输、信息交互,对游戏系统的状态进行控制;
[0027] 互动模块,通过在外部显示装置弹出选择对话框来让用户进行游戏模式选择,用于人人对弈、人机对弈与机机对弈的选择入口。
[0028] 进一步的,于UCT算法的概率估值搜索方法采用以下步骤:
[0029] (1)选择节点:根据博弈树中各分支节点的UCB值进行节点选择,获取UCB值最大的节点;
[0030] (2)展开节点:当一个节点被选中,如果该节点没有子节点并且达到预设的访问次数时,为该节点扩展子节点并进行剪枝;
[0031] (3)模拟棋局:对所拓展的节点按照一定的方法进行模拟下棋,不区分博弈的双方,知道棋局结束为止;模拟结束后统计模拟次数与胜负结果,为下一步提供数据;
[0032] (4)回溯更新:根据模拟棋局得到的胜负结果与模拟次数对模拟棋局的节点进行估值,并将模拟棋局的胜负结果沿着父节点回溯更新整个博弈树。
[0033] 进一步的,步骤1中UCB值采用式1的计算公式:
[0034]
[0035] 式中:α是调整系数,M是到目前为止在整个博弈树中已访问的节点的次数,Cj是博弈树分支j的访问次数, 是博弈树中第j个分支的平均回报。
[0036] 进一步的,步骤2中对所得节点进行修剪保留,采用式2的估值公式对所得节点进行筛选:
[0037] Evaluation=f(S,m1)+f(S,m2)+f(S,a)  (2)
[0038] 式中:S表示当前形局势,m1、m2、a分别代表QueenMove、KingMove和灵活度的估值,f是灵活度函数。
[0039] 进一步的,步骤4中更新采用以下步骤:把从代表当前局面的父节点到步骤2中所找到的子节点所形成的路径上的所有点,依照模拟棋局的结果来更新胜利场数和访问次数,亦即若此点为先手,且模拟棋局的结果为先手胜,则此节点的胜利次数加一,反之亦如此;访问次数则是此路径上的所有节点都加一,根据博弈树每个分支的访问次数和收益值对每个分支进行概率估值的修改
[0040] 进一步的,概率估值采用收益值反映,其计算方式为:若模拟结果为胜,则收益值为1,若模拟结果为负,则收益值为0。
[0041] 亚马逊棋机器博弈系统界面层提供重新开始游戏、悔棋、走法显示等功能,下棋的双方可以选择为人人对弈、人机对弈和机机对弈,在设置完双方和对弈参数后,即可在自己回合开始行棋。当某一方玩家出现错误时,可以向对方提出悔棋请求,当对方同意后,棋盘上会自动消除此方玩家刚才下的那一步棋以及设置的障碍。
[0042] 系统的搜索层主要是通过加载系统搜索方法,根据当前棋盘的状态通过对博弈搜索算法的应用,模拟各种下棋选择将会获得的结果,不断地对博弈树进行搜索,最后根据搜索到的情况找到当前对我方最优的下棋选择。在获得当前最优的下棋选择后,根据棋盘数据结构返回所下走法的坐标(包括原位置、棋子所在位置以及设置障碍位置),界面模块根据坐标在棋盘上进行显示。
[0043] 置信上限树UCT算法能对当前棋局存在的所有可能情况进行多次模拟,通过概率值来预估节点的好坏,优先选择表现好的节点。在超大规模博弈树的搜索过程中选择进行模拟的节点时,相对于传统的搜索算法,采用以置信上限区间值UCB为依据的方法,具有时间和空间方面的优势。在与险评估模型相结合的基础上,可以在可控的时间内得到当前局势下的相对较优的解决方案。这种方法可以很好的解决了亚马逊棋目前存在的盘面评估问题。
[0044] 采用UCT算法作为亚马逊棋机器博弈系统的博弈搜索技术还具有以下优势:(1)解决了原有算法的估值问题;(2)UCT算法在对所有的可能下棋选择进行全局搜索的基础上根据搜索结果选择好的节点进行更多次的局部搜索,可以让搜索结果向着好的方向发展;(3)在UCT算法扩展节点时,通过一定的估值算法对所有走法进行一定的剪枝,提高了UCT的搜索效率与深度。附图说明
[0045] 图1亚马逊棋机器博弈系统主界面
[0046] 图2 UCT算法的搜索过程示意图
[0047] 图3黑方QueenMove示意图
[0048] 图4白方QueenMove示意图
[0049] 图5黑方KingMove示意图
[0050] 图6白方KingMove示意图

具体实施方式

[0051] 为了更好的理解本发明的技术方案,现结合实例与附图作进一步的说明。
[0052] 1.亚马逊棋机器博弈系统
[0053] 亚马逊棋机器博弈系统包括外部显示装置,输入装置和内部处理单元。
[0054] 外部显示装置:用于与内部处理单元建立通讯,显示棋盘信息和对弈过程;对系统的界面进行实现同时具有对策略进行自动化测试的功能以及具有人性化的悔棋功能。本发明设计的亚马逊棋机器博弈系统是基于MFC单文档应用类型设计的。
[0055] 输入装置:用于用户设置棋盘模式,并与内部处理单元建立通讯,进行亚马逊棋游戏,如显示对弈过程,设置先后手等。
[0056] 内部处理单元:采用智能的博弈技术实现游戏系统的智能化,实现人机或机机之间的的对弈。本发明系统采用Microsoft Visual Studio 2010作为开发环境,以C++为编程语言,实现了亚马逊棋机器博弈系统。根据系统设计要求,亚马逊棋机器博弈系统的初始化界面如图1所示。内部处理单元包括搜索模块、存储模块、信息交互模块、互动模块。
[0057] 搜索模块:采用基于UCT算法的概率估值搜索方法,根据当前棋盘的状态通过对博弈搜索算法的应用,模拟各种下棋选择将会获得的结果,不断地对博弈树进行搜索,最后根据搜索的情况找到当前的最优的走法;
[0058] 存储模块:整个棋盘的所有数据全部存储在一个字符型10×10的数组如公式(3)所示。每一个元素对应真实棋盘中的棋子、障碍、空地一一对应。正方棋子用2表示,反方棋子用3表示,障碍用1表示,空地用0表示。
[0059]
[0060] 信息交互模块:实现了外部显示装置、输入装置与内部处理单元中搜索模块之间的信息交互。
[0061] (1)当外部输入装置的开始开关处于开启状后,搜索模块进行初始化操作,准备接受来自输入装置的控制信号。若控制信号显示机器走棋,则调用搜索模块的策略接口;若显示需要人工下棋则在棋盘界面上对鼠标位置进行捕获,当棋盘上的下棋位置被触发,则将下棋位置的坐标作为信号发送给处理单元,更新存储数组。(2)若信号显示准备获取输入信息下棋过程中一方完成走棋后,交互模块中的计时单元完成本轮下棋的计时操作,同时给出切换信号。(3)当因为某些原因需要暂停比赛,可以通过外部装置的暂停按钮向内部处理单元发送暂停比赛计时、停止搜索操作、定棋盘界信号,内部出路单位根据信号完成相应的操作。(4)下棋过程中若下棋某方出现行棋失误,违反游戏规则,外部装置发送违规指令给内部处理单元,内部处理单元给出报警提示,若下棋方需要进行悔棋,内部处理单元则根据存储模块的下棋记录对最新的下棋记录进行撤销,同时将本轮计时从比赛时间中减去。
[0062] 互动模块:实现人人对弈、人机对弈与机机对弈三种。人人对弈策略为计算机处于捕捉鼠标事件状态,若检测到鼠标点击事件,则开始检测鼠标位置是否合法,包括:(1)是否处于四条直线所围成的正方形区域内,可根据当前正方形区域内的类型来指定为抓取棋子、设置障碍或行棋。(2)若指定位置已有障碍或者行棋不符合规范,系统弹出违规警示,并继续捕捉鼠标事件。人机对弈策略的人方采用与人人对弈相同的策略,对于机方则调用搜索算法,通过将棋盘状态参数传入算法中得到最佳走法来完成对弈。机机对弈策略则双方均调用搜索算法进行搜索,返回最佳走法来完成对弈。
[0063] 2.基于置信上限树UCT的搜索方法
[0064] 搜索模块采用基于概率估值的搜索算法,并在原有的基础上根据亚马逊棋的特点对算法进行优化。搜索算法的过程,如图2所示,具体步骤如下:
[0065] (1)选择节点
[0066] UCT算法是将置信上限算法思想用于博弈树搜索的一种算法,置信上限(以下简称UCB)值算法是一类解决多臂匪徒问题算法的总称。算法中的UCB值就是每个分支的胜负概率情况的一个反映,UCB值是每个分支的概率估值。UCB值的大小代表这个节点的优劣,值越大这个节点越优,在进行搜索和模拟时对此优节点的访问次数也会更多。
[0067] UCB的核心是探索与发展之间的平衡,既要充分利用已经获得的具有优势的节点,又要充分探索未知的节点,以发现更高收益的节点。传统搜索算法中博弈树的高度通常是相同的。而UCT算法不同的分支可以拓展到不同的搜索深度。对于双方最有可能落子的分支,UCT算法可以达到非常深的深度;反之,对于双方不太可能落子的分支,UCT算法的深度就会变得很浅。这样能充分利用计算机资源,大大提高搜索深度的局部深度,提高算法的智能水平。
[0068] (2)拓展节点
[0069] 在UCT算法的拓展节点这一步骤中,需要为节点拓展子节点。因此拓展子节点的多少将直接影响整个算法的效率。如果每次拓展子节点的数量比较少的话,算法的效率无疑是比子节点数量多的情况高上许多。经研究发现,在给定一个棋局状态的情况下,有很多情况下的落子显然是错误的,这里本发明采用一种特定的估值策略对所有可行走法进行筛选,剔除明显错误或者收益不大的节点。值公式如下所示︰
[0070] Evaluation=f(S,m1)+f(S,m2)+f(S,a)   (2)
[0071] 式中:S表示当前形局势,m1、m2、a分别代表QueenMove、KingMove和灵活度的估值,f是灵活度函数。系统根据当前的游戏动作的总数确定当前游戏进度。
[0072] QueenMove是四个棋子之一从自己所在的格子利用皇后走法移动到这个空格至少需要走多少步。皇后走法有八个方向,只要没有障碍或棋子就可以移动。KingMove是四个棋子利用国王走法走到这个空格至少需要多少步。国王移动是指距离为1的单步移动,只可以移动到相邻的空间。QueenMove(如图3、图4所示)和KingMove(如图5、图6所示)对于游戏的中后期来说是一种相对准确的估值方法。
[0073] (3)棋局模拟
[0074] 当一个节点被选择函数选中,那么将从该节点的棋局状态开始随机落子直至游戏结束。利用蒙特卡罗法思想,进行大量的随机试验,根据试验结果进行下一步的估值。要使大量的随机模拟具有意义,就要让随机模拟具有一定的智能,而不是随机落子,本发明将模拟棋局中的模拟算法进行了一定程度的智能化。
[0075] 具体算法为:对于某一棋盘状态,若对局没有结束,判断当前局面是否存在极具优势的走法,如果存在,则选择最好的走法,反之,则选择一个随机合法的走法,最终返回最佳走法。
[0076] (4)回溯更新
[0077] 根据模拟棋局得到的胜负概率值对整个博弈树进行估值,将模拟棋局的胜负结果沿着父节点反馈更新整个博弈树。回溯更新模拟棋局产生的收益值。收益值是单节点的概率估值,其计算方式为:若模拟结果为胜,则收益值为1,若模拟结果为负,则收益值为0。
[0078] 在计算了收益值之后,对博弈过程中构建的博弈树,按照选择节点的路径进行回溯更新,更新的是每个节点的访问次数和收益值两个属性,将博弈树中所有访问过的节点的访问次数加一,该节点的收益值加上所有子节点的收益值之和,作为新的收益值。
[0079] (5)获得最优走法
[0080] 每一步下棋都分配有固定的时间。下棋初始阶段,以当前棋局作为根节点构建博弈树,然后对博弈树第一层的所有节点随机设定UCB值,设定值能明显区分访问过的节点与未访问过的节点。UCT算法不断的进行选择、拓展、模拟、更新四个步骤,直至时间用完,挑出收益值最高的子节点作为本次的最优走法。
[0081] 以上虽然已结合实施例对本发明的具体实施方式进行了详细的说明,但是需要指出的是,本发明的保护范围并不受这些具体实施方式的限制,而是由权利要求书来确定。本领域技术人员可在不脱离本发明的技术思想和主旨的范围内对这些实施方式进行适当的变更,而这些变更后的实施方式显然也包括在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈