一种自博弈模拟计算的加速方法及系统技术方案

技术编号:36456697 阅读:49 留言:0更新日期:2023-01-25 22:54
本发明专利技术公开了一种自博弈模拟计算的加速方法及系统,属于自博弈模拟计算技术领域,包括以下步骤:S1:初始化根节点;S2:进行蒙特卡洛搜索;S3:寻找最优子节点;S4:更新根节点并计算;S5:对局结束。本发明专利技术采用高低精度计算卡混用的架构,在蒙特卡洛搜索过程中,根据当前搜索局面与实际局面的距离,采用阈值法分离计算逻辑,远离实际局面的搜索采用低精度计算,接近实际局面的搜索采用高精度计算,最终融合两部分的结果共同给出蒙特卡洛搜索结果,能够在有限的计算资源下依旧能保证自博弈算法的性能。性能。性能。

【技术实现步骤摘要】
一种自博弈模拟计算的加速方法及系统


[0001]本专利技术涉及自博弈模拟计算
,具体涉及一种自博弈模拟计算的加速方法及系统。

技术介绍

[0002]自博弈用于棋类游戏,尤其是围棋等蕴含复杂纬度的游戏,是首先由谷歌于2017年取得突破性进展,谷歌提出的一种适用于围棋、国际象棋和日本将棋等的棋类算法,命名为AlphaZero算法,在没有人工设计的先验知识的情况下,仅依靠游戏规则和自博弈,成功击败了各种棋类软件和人类职业选手。其思想是通过大量的模拟落子对战,找到最大胜率的方案,并对这些方案进行学习以获得判断棋局的能力。其核心是蒙特卡洛算法与深度网络(即深度学习网络),其中的深度网络给出单次的落子预测,而蒙特卡洛算法则反复的调用深度网络,完成模拟对战,并最终给出最优的落子。蒙特卡洛算法具有搜索的次数越多,给出的解越接近最优解的特点,因此计算资源越多,自博弈智能体性能越强。低精度计算卡通过损失一定的计算精度,有效降低了功耗并且提升了计算速度,能大大提升智能体进行蒙特卡洛算法的搜索效率,改进智能体性能。
[0003]在原版的自博弈算法中,每秒一般需要搜索几万步,这是一个非常高的计算量。在计算资源有限的情况下,业界一般通过降低蒙特卡洛搜索的次数,或者降低深度网络的深度来降低单步的计算量,但这些都会对自博弈算法的性能造成极大的影响。为此,提出一种自博弈模拟计算的加速方法及系统。

技术实现思路

[0004]本专利技术所要解决的技术问题在于:如何解决现有技术中存在的在计算资源有限的情况下,通过降低蒙特卡洛搜索的次数或者降低深度网络的深度来降低单步的计算量,对自博弈算法的性能造成极大影响的问题,提供了一种自博弈模拟计算的加速方法,该方法利用高低精度计算卡,加速运算过程中的需要展开的大量模拟计算,以此获得性能的提升。
[0005]本专利技术是通过以下技术方案解决上述技术问题的,本专利技术包括以下步骤:
[0006]S1:初始化根节点
[0007]将蒙特卡洛搜索树根节点初始化为空;
[0008]S2:进行蒙特卡洛搜索
[0009]以当前根节点开始,进行多次蒙特卡洛搜索;
[0010]S3:寻找最优子节点
[0011]依据蒙特卡洛搜索结果,找到当前根节点下的最优子节点;
[0012]S4:更新根节点并计算
[0013]舍弃当前根节点下的其余子节点,以步骤S3中的最优子节点为新的根节点,并以当前局面为输入,用高精度计算卡重新执行新的根节点的蒙特卡洛搜索过程,为新的根节点的子节点赋予落子概率;
[0014]S5:对局结束
[0015]重复步骤S2~S4,直到对局结束。
[0016]更进一步地,在所述步骤S2中,进行多次蒙特卡洛搜索的具体步骤如下:
[0017]步骤S21:判断当前节点是否为叶子节点;
[0018]步骤S22:若不是叶子节点,则根据之前蒙特卡洛搜索结果找到最优子节点,并移动到该最优子节点;
[0019]步骤S23:重复子步骤S21、步骤S22直到找到叶子节点;
[0020]步骤S24:判断步骤S23中找到的叶子节点离根节点深度是否小于设定值,若是,用高精度计算卡执行深度学习网络计算,得到落子预测结果,否则在低精度计算卡执行深度学习网络计算,得到落子预测结果;
[0021]步骤S25:依照深度学习网络的得到的落子预测结果模拟落子;
[0022]步骤S26:判断对局是否结束,如果结束,根据胜负结果递归更新父节点价值,如果没有结束,则为当前叶子节点扩展子节点,并用深度学习网络的预测落子概率为每个叶子节点扩展的子节点赋予落子概率,并用深度学习网络的预测价值递归更新父节点价值。
[0023]更进一步地,在所述步骤S24中,离根节点深度小于设定值时将深度学习网络由32位浮点型转为8位整型。
[0024]更进一步地,在所述步骤24中,通过开关切换两种版本将深度学习网络由32位浮点型转为8位整型。
[0025]更进一步地,在所述步骤S26中,对局的胜负平的得分分别表示为1、0、

1,当对局已经能分出胜负时,则此时得分是准确的;该得分将累加至达到该局面的路径上的所有节点,即根据胜负结果递归更新父节点价值;当对局仍不能分出胜负时,则使用深度学习网络预测得分,该得分同样将对每个父节点进行更新,即用深度学习网络的预测价值递归更新父节点价值。
[0026]更进一步地,在所述步骤S3中,最优子节点即为自博弈算法的对战落子。
[0027]本专利技术还提供了一种自博弈模拟计算的加速系统,采用上述的方法对自博弈模拟计算进行加速,包括:
[0028]初始化模块,用于将蒙特卡洛搜索树根节点初始化为空;
[0029]搜索模块,用于以当前根节点开始,进行多次蒙特卡洛搜索;
[0030]寻优模块,用于依据蒙特卡洛搜索结果,找到当前根节点下的最优子节点;
[0031]更新模块,用于舍弃当前根节点下的其余子节点,以步骤S3中的最优子节点为新的根节点,并以当前局面为输入,用高精度计算卡重新执行新的根节点的蒙特卡洛搜索过程,为新的根节点的子节点赋予落子概率;
[0032]终止对局模块,用于重复步骤S2~S4,直到对局结束;
[0033]控制处理模块,用于向其他模块发出指令,完成相关动作;
[0034]所述初始化模块、搜索模块、寻优模块、更新模块、终止对局模块均与控制处理模块通信连接。
[0035]本专利技术相比现有技术具有以下优点:该自博弈模拟计算的加速方法及系统,采用高低精度计算卡混用的架构,在蒙特卡洛搜索过程中,根据当前搜索局面与实际局面的距离,采用阈值法分离计算逻辑,远离实际局面的搜索采用低精度计算,接近实际局面的搜索
采用高精度计算,最终融合两部分的结果共同给出蒙特卡洛搜索结果,能够在有限的计算资源下依旧能保证自博弈算法的性能。
附图说明
[0036]图1为本专利技术实施例中自博弈模拟计算的加速方法的流程示意图;
[0037]图2为本专利技术实施例中的蒙特卡洛搜索子流程示意图。
具体实施方式
[0038]下面对本专利技术的实施例作详细说明,本实施例在以本专利技术技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。
[0039]本实施例提供一种技术方案:一种自博弈模拟计算的加速方法,包括以下步骤:
[0040]步骤1:初始化根节点
[0041]将蒙特卡洛搜索树根节点初始化为空;
[0042]步骤2:进行蒙特卡洛搜索
[0043]以当前根节点开始,进行多次蒙特卡洛搜索;
[0044]步骤S3:寻找最优子节点
[0045]依据蒙特卡洛搜索结果,找到当前根节点下的最优子节点,该最优子节点即为自博弈算法的对战落子;
[0046]步骤4:更新根节点并计算
[0047]舍弃当前根节点下的其余子节点,以步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自博弈模拟计算的加速方法,其特征在于,包括以下步骤:S1:初始化根节点将蒙特卡洛搜索树根节点初始化为空;S2:进行蒙特卡洛搜索以当前根节点开始,进行多次蒙特卡洛搜索;S3:寻找最优子节点依据蒙特卡洛搜索结果,找到当前根节点下的最优子节点;S4:更新根节点并计算舍弃当前根节点下的其余子节点,以步骤S3中的最优子节点为新的根节点,并以当前局面为输入,用高精度计算卡重新执行新的根节点的蒙特卡洛搜索过程,为新的根节点的子节点赋予落子概率;S5:对局结束重复步骤S2~S4,直到对局结束。2.根据权利要求1所述的一种自博弈模拟计算的加速方法,其特征在于:在所述步骤S2中,进行多次蒙特卡洛搜索的具体步骤如下:步骤S21:判断当前节点是否为叶子节点;步骤S22:若不是叶子节点,则根据之前蒙特卡洛搜索结果找到最优子节点,并移动到该最优子节点;步骤S23:重复子步骤S21、步骤S22直到找到叶子节点;步骤S24:判断步骤S23中找到的叶子节点离根节点深度是否小于设定值,若是,用高精度计算卡执行深度学习网络计算,得到落子预测结果,否则在低精度计算卡执行深度学习网络计算,得到落子预测结果;步骤S25:依照深度学习网络的得到的落子预测结果模拟落子;步骤S26:判断对局是否结束,如果结束,根据胜负结果递归更新父节点价值,如果没有结束,则为当前叶子节点扩展子节点,并用深度学习网络的预测落子概率为每个叶子节点扩展的子节点赋予落子概率,并用深度学习网络的预测价值递归更新父节点价值。3.根据权利要求2所述的一种自博弈模拟计算的加速方法,其特征在于:在所述步骤S24中,离根节点深度小于设定值时将深度学习...

【专利技术属性】
技术研发人员:郑歆慰欧君辉
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1