基于最优资源分配算法的蒙特卡罗树搜索方法与流程

文档序号:15929866发布日期:2018-11-14 01:30阅读:644来源:国知局

本发明涉及博弈技术领域,尤其涉及一种基于最优资源分配算法的蒙特卡罗树搜索方法。

背景技术

马尔科夫决策过程(markovdecisionprocess,mdp)利用{状态集,动作集,转移模型,回报函数}的四元组来对环境已知的顺序决策问题进行建模。完整的决策过程可以用{状态,动作}对的序列来描述。其中每个下一个状态s′由依赖于当前状态s和所选取的动作a的概率分布来决定。mdp中的策略指的是从状态空间到动作空间的映射关系,即在每个状态下选取特定动作的规则。mdp的目标即是找出使得期望回报最高的策略。当环境中状态数目过多或者难以知道时,策略无法被有效评估。解决这一问题的有效措施之一是采用蒙特卡罗树搜索(mcts)估计每一对{状态,动作}的值函数以替代策略评估。

蒙特卡罗树搜索是一种通过在决策空间中随机抽样并根据结果构建搜索树,从而在给定域中找到最佳决策的方法。它已经对人工智能(ai)产生了深远的影响,理论上mcts可以应用于任何可以用{状态,动作}对描述以及用于通过仿真来预测结果的领域。由于mcts在围棋游戏(go)方面取得的巨大成功以及在其他许多问题上的潜在应用,研究者们对mcts的研究兴趣急剧上升。

mcts的出现可以追溯到1928年,johnvonneumann提出minimax理论为对抗树搜索(adversarialtreesearch)方法铺平了道路。而后,蒙特卡罗(montecarlo)方法在20世纪40年代被正式地作为通过随机采样来处理不太适合于树搜索定义所明确的问题的方法。最终,rémicoulomb于2006年结合了这两种方法并提出了mcts,为go中的移动规划提供决策。

至此之后,mcts被广泛研究且出现了很多变种形式,比如置信上限树(uct)、单选手或多选手的mcts、实时mcts等等。同时,mcts的树策略(treepolicy)以及其他方面都得到了改进和增强。然而基于蒙特卡罗的方法有一个共同点,即需要通过大量的仿真(simulation)实验来统计所面对的问题的性质。在计算资源较少的情况下,即使面对中等复杂度的问题,蒙特卡罗树搜索过程中部分关键的状态节点或者动作边也可能无法被访问,这也导致了mcts在较少计算资源的情况下表现较差的困境。



技术实现要素:

本发明的目的是提供一种基于最优资源分配算法的蒙特卡罗树搜索方法,可以在计算资源有限的情况下,使得蒙特卡罗树搜索的性能得到较大提升。

本发明的目的是通过以下技术方案实现的:

一种基于最优资源分配算法的蒙特卡罗树搜索方法,包括:

以待决策问题的初始状态作为蒙特卡罗树的根节点r0,假设对应的动作空间有n个动作,则由此形成根节点r0的n个子节点,每一子节点作为一个子蒙特卡罗树的根节点,且每一子节点作为最优资源分配算法的决策方案;

对各决策方案分配初始计算资源,以此对各决策方案所对应的子蒙特卡罗树进行相应计算资源量的蒙特卡罗树搜索迭代计算,并记录每次迭代的收益;

判断第l轮后所有决策方案已使用的计算资源总和是否不小于最大可用计算资源t;其中,表示一个决策方案在第l轮分配计算资源后的总计算资源;

若否,则增加计算资源δ,利用最优资源分配算法依据各决策方案历史收益,来确定第l+1轮计算时各决策方案实际可用的计算资源量,并执行与之前步骤相同的迭代计算;

若是,则结束蒙特卡罗树搜索过程,从而确定由平均性能表现最好的决策方案所对应的动作。

由上述本发明提供的技术方案可以看出,仅对蒙特卡罗树中根节点的子节点的选择策略进行了调整,即采用最优资源分配算法对各子节点所对应的蒙特卡罗子树进行仿真计算资源的分配,而各子节点所对应的蒙特卡罗树的搜索方法,比如树策略等等,均保持不变,这使得本发明的方法可以方便与蒙特卡洛树搜索方法结合,同时,还能提高蒙特卡罗树搜索在计算资源有限情况下的决策性能。本发明的方法适用于所有具体形式的蒙特卡罗树搜索方法,具有广泛的应用范围。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的一种基于最优资源分配算法的蒙特卡罗树搜索方法的流程图;

图2为本发明实施例提供的基于最优资源分配算法的蒙特卡罗树搜索示意图;

图3为本发明实施例提供的对子节点进行蒙特卡罗树搜索过程示意图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

本发明实施例提供一种基于最优资源分配(optimalcomputingbudgetallocation,ocba)算法的蒙特卡罗树搜索方法,其针对蒙特卡罗树在计算资源有限的情况下决策性能较差的问题,该方法以蒙特卡罗树根节点下的各子节点为决策方案,依据最优资源分配算法更适当地对各决策方案分配计算资源以进行蒙特卡罗树搜索,使得在计算资源有限的情况下,蒙特卡罗树搜索的性能可以得到较大提升。

本发明主要流程如图1所示,其主要包括如下几个部分:

1、以待决策问题的初始状态作为蒙特卡罗树的根节点r0,假设对应的动作空间有n个动作,则由此形成根节点r0的n个子节点,每一子节点作为一个子蒙特卡罗树的根节点,且每一子节点作为最优资源分配算法的决策方案。

本发明实施例中,假设对应的动作空间有n个动作,分别执行n个动作后,将转移到n个新的状态,也即形成根节点r0的n个子节点;将每一子节点作为一个子蒙特卡罗树的根节点,则共有n个相互独立的子蒙特卡罗树smcti,每一个子节点都作为最优资源分配算法的决策方案θi。

2、对各决策方案分配初始计算资源,以此对各决策方案所对应的子蒙特卡罗树进行相应计算资源量的蒙特卡罗树搜索迭代计算,并记录每次迭代的收益。

本发明实施例中,初始时,也即当l=0时,为各决策方案分配初始计算资源,同时对各决策方案所对应的子蒙特卡罗树进行相应计算资源量的蒙特卡罗树搜索迭代计算。

为便于理解,本发明实施例中,计算资源可认为是蒙特卡罗树搜索的迭代次数;令l=0,对各决策方案所对应的子蒙特卡罗树smcti均进行n0次蒙特卡罗树搜索迭代计算,并记录每次迭代的收益。

实际上在不同环境下,计算资源还可以理解为计算时间和存储空间等等。

3、判断第l轮后所有决策方案已使用的计算资源总和是否不小于最大可用计算资源t。

本发明实施例中,表示一个决策方案在第l轮分配计算资源后的总计算资源,也即该决策方案在第l轮和第l轮之前每轮使用的计算资源之和。

4、增加计算资源δ,利用最优资源分配算法依据各决策方案历史收益,来确定第l+1轮计算时各决策方案在第1到第l+1轮的总计算资源量,并确定各决策方案在第l+1轮实际可用的计算资源量,并执行与之前步骤2中相同的蒙特卡洛树搜索迭代计算。

本发明实施例中,利用最优资源分配算法依据各决策方案历史收益的均值和方差将数量为的可用总计算资源分配给各决策方案,各决策方案在第l+1轮得到的计算资源量为之间差值将决定第l+1轮仿真计算时各方案实际可用的计算资源量。

具体的,对于所有决策方案θi,i∈i={1,2,…,n},记其中任意一个非最优决策方案为θj,一个最优决策方案为θb,其他决策方案为θx,x∈x,其中j,b∈i,j≠b,x∈x=i-{j,b}。同样的,用符号j,b,x分别作为非最优决策方案、最优决策方案、其他决策方案的各种性质的标记。示例性的,j=1,b=2,那么x∈x={3,4,5,…,n}。

则对于所有的i∈i={1,2,…,n},j,b∈i,j≠b,x∈x=i-{j,b},有如下公式:

其中:

上式中,分别表示非最优决策方案θj、最优决策方案θb、其他决策方案θx在第l+1轮得到的计算资源量;n表示相应下标所对应决策方案在相应上标所示轮次分配资源后的总计算资源;μk(θi)表示决策方案θi在第k次计算时的收益,表示在第l轮搜索迭代后,平均历史收益最高的决策方案的标记;μ表示历史收益的均值,δ表示历史收益的方差,上标l为轮次的序号,下标为各种性质决策方案的标记,例如,为决策方案θi第1~第l轮次计算历史收益的均值、方差;均为中间参数,其中,可以分别为其他方案θx和最优方案θb相对于选定的非最优决策方案θj在第l轮已获得的总计算资源量的比例系数。假定决策方案θj得到的计算资源为一个单元量。对于这个公式,可以看到,如果其他决策方案θx历史收益均值越大(表现越好)、方差也越大(说明表现不确定,需要用更多次计算以确定真实表现),那么的值越大,这说明即将分配给其他决策方案θx的计算量越多。

结合之间差值确定第l+1轮计算时各决策方案实际可用的计算资源量:i∈i;即,对于各决策方案所对应的子蒙特卡罗树smcti均进行计算资源量为的蒙特卡罗树搜索迭代计算;则各决策方案第l+1轮分配计算资源后的总计算资源为:

执行上述步骤后在转入步骤3中进行判断,若判断结果为否,则继续执行本步骤,直至判断结果为是,则转入步骤5。

5、结束蒙特卡罗树搜索过程,从而确定由平均性能表现最好的决策方案所对应的动作。

当结束蒙特卡罗树搜索后,通过平均性能可以选出决策方案所对应的动作。

本发明实施例上述方案,仅对蒙特卡罗树中根节点的子节点的选择策略起作用,即采用最优资源分配算法对各子节点所对应的蒙特卡罗子树进行仿真计算资源的分配,而各子节点所对应的蒙特卡罗树的搜索方法,比如树策略等等,均保持不变,这使得本发明的方法可以方便与蒙特卡洛树搜索方法结合,同时,还能提高蒙特卡罗树搜索在计算资源有限情况下的决策性能。本发明的方法适用于所有具体形式的蒙特卡罗树搜索方法,具有广泛的应用范围。

为了便于理解,下面结合一个示例来进行介绍。

本发明实施例上述方案,可以适用于所有具体形式的蒙特卡罗树搜索方法。本示例中,以黑白棋对弈中落子问题为研究对象,蒙特卡罗树搜索的具体形式采用置信上限树(uct),则uct中根节点r0为待落子的棋盘状态,此时动作空间为在当前棋盘状态下可以落子的所有位置,每一个动作对应一个落子位置,共n个落子动作。

根节点的每一子节点为执行动作ai落子后棋盘变成的新状态。以每一子节点作为新的根节点进行uct搜索,由此将产生一个新的蒙特卡罗树smcti,即上述以节点r0作为根节点的蒙特卡罗树的子树。

黑白棋对弈过程中,若落子方落子后仿真计算结果为胜,那么此落子动作的收益记为1;如果为败,则收益记为0;否则,收益记为0.5。

各子节点的所有仿真计算结果的均值和方差将作为最优资源分配算法的输入以进行下一轮各决策方案计算资源的计算。

在本示例中,计算资源为对子蒙特卡罗树树smcti进行uct搜索的迭代次数或者仿真次数,如图2所示为基于最有资源分配算法的mcts搜索过程,如图3所示为对子节点进行蒙特卡罗树搜索的迭代过程。

当整个方法执行完毕后,将返回对弈中当前棋盘状态下最优落子动作。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1