确定执行设备的动作选择方针的制作方法

文档序号:23185359发布日期:2020-12-04 14:14阅读:273来源:国知局
确定执行设备的动作选择方针的制作方法

本文涉及确定用于执行设备的动作选择方针,以在包括执行设备以及一个或多个其他设备的环境中完成任务。



背景技术:

两个或更多个参与方之间的策略互动可以通过涉及两个或更多个参与方(也称为玩家)的博弈来建模和模拟。在涉及两个或更多个玩家的不完美信息博弈(iig)中,玩家在做出决策之前只能部分获得对手的知识。这类似于现实场景,例如贸易、交通路线规划和公开拍卖。许多现实生活场景可以表示为iig,例如不同公司之间的商业竞争、拍卖场景中的竞标关系以及欺诈方与反欺诈方之间的博弈关系。

由于信息隐藏,玩家必须在对对手的信息不确定的情况下做出决策,并且其还需要采取行动以利用对手对自己的信息不确定的优势。求解iig可能在计算上是昂贵且耗时的,特别是对于具有大量可能状态和供选择的可能动作的大型博弈。期望以有效方式求解iig的技术。



技术实现要素:

本主题的描述的实施例可以单独地或组合地包括一个或多个特征。

例如,在一个实施例中,一种执行设备的计算机实现的方法,用于生成动作选择方针,以在包括所述执行设备以及一个或多个其他设备的环境中完成任务的,所述方法包括:识别一个状态下的多个可能动作,其中,所述状态对应于信息集向量,并且所述信息集向量中的每个信息集包括由所述执行设备采取的导致所述状态的动作序列;识别所述状态下的当前动作选择方针向量,其中,所述当前动作选择方针向量中的每个当前动作选择方针对应于所述信息集向量中的一个信息集,并且所述动作选择方针指定在所述状态下的所述多个可能动作当中选择一个动作的相应概率;基于所述状态下的所述当前动作选择方针向量计算采样方针,其中,所述采样方针指定与所述状态下的所述多个可能动作中的每个动作对应的相应采样概率;根据所述采样方针中指定的所述状态下的所述多个可能动作中的一个动作的采样概率,对所述动作进行采样;基于所述动作更新所述执行设备在所述状态下的所述当前动作选择方针向量中的每个当前动作选择方针。

在一些实施例中,可以使用系统、方法或计算机程序,或者系统、方法和计算机程序的任何组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自包括以下一个或多个方面:

在一些实施例中,响应于确定满足收敛条件,基于所述动作选择方针来控制所述执行设备的操作。

在一些实施例中,基于所述动作更新所述执行设备在所述状态下的所述当前动作选择方针向量中的每个当前动作选择方针包括:基于所述动作执行蒙特卡罗反事实遗憾最小化(mccfr)。

在一些实施例中,基于所述动作更新所述执行设备在所述状态下的所述当前动作选择方针向量中的每个当前动作选择方针包括:基于所述动作的所述采样概率,计算采样的终点动作序列的概率,所述采样的终点动作序列包括所述动作和完成任务的终点状态;基于所述采样的终点动作序列的概率,计算所述动作的采样反事实值;基于所述动作的采样反事实值,计算所述动作的遗憾值;基于所述动作的所述遗憾值,更新所述执行设备在所述状态下的所述当前动作选择方针向量中的每个当前动作选择方针。

在一些实施例中,所述状态对应于包括由所述执行设备以及所述一个或多个其他设备公开已知的一个或多个动作的公开序列;以及所述信息集向量中的每个信息集包括所述公开序列。

在一些实施例中,基于所述执行设备在所述状态下的所述当前动作选择方针向量计算采样方针包括:将与所述状态下的所述多个可能动作中的每个动作对应的采样概率计算为在所述信息集向量上在所述状态下的所述多个可能动作中的每个动作对应的当前动作选择方针的平均值。

在一些实施例中,基于所述执行设备在所述状态下的所述当前动作选择方针向量计算采样方针包括:基于所述状态下的所述多个可能动作中的每个动作的当前动作选择方针和所述信息集向量的相应到达概率,计算与所述状态下的所述多个可能动作中的每个动作对应的采样概率。

在一些实施例中,基于所述状态下的所述多个可能动作中的每个动作的当前动作选择方针和所述信息集向量的相应到达概率,计算与所述状态下的所述多个可能动作中的每个动作对应的采样概率,包括:基于经所述信息集向量的相应到达概率加权的所述状态下的所述多个可能动作中的每个动作的当前动作选择方针的总和,计算与所述状态下的所述多个可能动作中的每个动作对应的采样概率。

在一些实施例中,基于所述执行设备在所述状态下的所述当前动作选择方针向量计算采样方针包括:基于所述状态下的多个可能动作中的每个动作的平均动作选择方针以及所述信息集向量的相应到达概率,计算与所述状态下的所述多个可能动作中的每个动作对应的采样概率。

在一些实施例中,基于所述状态下的多个可能动作中的每个动作的平均动作选择方针以及所述信息集向量的相应到达概率,计算与所述状态下的所述多个可能动作中的每个动作对应的采样概率包括:基于经所述信息集向量的相应到达概率加权的所述状态下的所述多个可能动作中的每个动作的平均动作选择方针的总和,计算与所述状态下的所述多个可能动作中的每个动作对应的采样概率。

应当理解,根据本文的方法可以包括本文描述的方面和特征的任何组合。即,根据本文的方法不限于本文具体描述的方面和特征的组合,而是还包括所提供的方面和特征的任何组合。

本文的一个或多个实施例的细节在附图和以下描述中阐述。通过说明书和附图以及权利要求书,本文的其他特征和优点将变得清楚。

附图说明

图1a和1b是示出根据本文的实施例的库恩扑克(kuhnpoker)的博弈树和公开树的示例的图。

图2是示出根据本文的实施例的以不同的采样方针应用于nlph的几种mccfr变体的收敛性能的双对数坐标曲线图。

图3是示出根据本文的实施例的在利用和不利用探索技术的情况下应用于nlph的几种mccfr变体的收敛性能的双对数坐标曲线图。

图4a是示出根据本文的实施例的在利用和不利用不同方差减小技术的情况下应用于nlph的几种mccfr变体的收敛性能的双对数坐标曲线图。

图4b是示出根据本文的实施例的在利用和不利用不同方差减小技术的情况下应用于nlph的几种mccfr变体的示例性计算效率的双对数坐标曲线图。

图5a至图5c是示出根据本文的实施例的通过对三种不同的扑克博弈nlph、hunl-r和nlfh进行外部采样的几种mccfr变体的收敛性能的双对数坐标曲线图。

图6a是示出根据本文的实施例的在nlph上利用和不利用跳过的几种mccfr变体的收敛性能的双对数坐标曲线图。

图6b是示出根据本文的实施例的在nlph上利用和不利用跳过的mccfr变体的收敛性能的双对数坐标曲线图。

图7是根据本文的实施例的用于执行蒙特卡洛反事实遗憾最小化(mccfr)以确定用于软件应用的动作选择方针的处理的示例的流程图。

图8是根据本文的实施例的用于执行蒙特卡洛反事实遗憾最小化(mccfr)以确定用于软件应用的动作选择方针的另一处理的示例的流程图。

图9是根据本文的实施例的用于执行蒙特卡洛反事实遗憾最小化(mccfr)以确定用于软件应用的动作选择方针的另一处理的示例的流程图。

图10描绘了示出根据本文的实施例的用于提供与所描述的算法、方法、功能、处理、流程和过程相关联的计算功能的计算机实现的系统的示例的框图。

图11描绘了根据本文的实施例的装置的模块的示例。

图12描绘了根据本文的实施例的另一装置的模块的示例。

图13描绘了根据本文的实施例的另一装置的模块的示例。

在各个附图中,相同的附图标记和名称指示相同的元件。

具体实施方式

本文描述了用于确定执行设备的动作选择方针的技术,以在包括执行设备以及一个或多个其他设备的环境中完成任务,例如,用于执行设备与一个或多个其他设备之间的策略交互。例如,执行设备可以执行用于搜索执行设备与一个或多个其他设备之间的博弈的纳什均衡的计算机实现的方法,并获得导致纳什均衡或近似纳什均衡的动作选择方针(例如,解法或策略)。在一些实施例中,这些技术可以涉及执行反事实遗憾最小化(cfr)算法以求解不完美信息博弈(iig)。在一些实施例中,这些技术可以降低计算复杂度和方差,同时提高cfr算法的收敛速度。

iig可以表示一种或多种现实场景,例如自动驾驶车辆(av)控制、资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理、贸易、投标等,其中涉及两个或更多个参与方(也称为玩家)的信息,且每个参与方可以具有关于另一参与方决策的不完美或不完全信息。本文使用扑克作为iig的示例。所描述的技术可以在许多其他人工智能(ai)和机器学习应用中使用。

求解iig的典型目标是找到纳什均衡,使得任何玩家都无法单方面提高奖励。换句话说,纳什均衡是涉及两个或更多个玩家的iig的典型解法。反事实遗憾最小化(cfr)是一种旨在近似地找到大型博弈的纳什均衡的算法。cfr试图使整体反事实遗憾最小化。事实证明,所有迭代中策略的平均值将收敛到纳什均衡。在求解博弈时,原始形式的cfr(也称为原始cfr、标准cfr、普通cfr或简称为cfr)在每次迭代中遍历整个博弈树。因此,原始cfr需要大容量存储器来存储大型零和扩展式博弈,例如单挑无限注德州扑克。在某些情况下,原始cfr可能无法用有限存储器处理大型博弈。

引入蒙特卡洛cfr(mccfr)以最小化反事实遗憾。mccfr可以根据采样的经验求解不完美信息博弈。与原始cfr不同,mccfr在每次迭代中对博弈树中的节点子集进行采样。mccfr可以计算反事实值的无偏估计,并避免遍历整个博弈树。由于在每次迭代中仅访问所有信息集的子集,因此mccfr比原始cfr需要更少的存储空间。mccfr可以包括不同的版本或变体,例如取决于不同的采样方针。mccfr通常因采样而长期性能较差且方差较高。

本文描述了加速mccfr收敛的示例性技术。例如,这些技术包括向量形式的采样方针、具有可证明无偏估计的方差减小方法、探索技术以及利用跳过机制和贴现(discounting)更新的混合mccfr变体。这些一种或多种技术可以组合在一起并应用于mccfr。实验结果表明,所描述的技术可以在mccfr的许多场景下实现100倍至1000倍加速。

本文中描述的技术可以产生一个或多个技术优势。在一些实施例中,所描述的技术可以由执行设备执行,用于生成动作选择方针,以在包括执行设备以及一个或多个其他设备的环境中完成任务。在一些实施例中,所描述的技术可以确定用于软件实现应用的动作选择方针,该软件实现应用在包括该应用支持的执行方以及一个或多个其他参与方的环境中执行动作。在一些实施例中,所描述的技术可以用于自动控制、自动驾驶车辆控制、机器人技术或涉及动作选择的任何其他应用中。例如,所确定的动作选择方针可以用于控制发动机、马达、致动器、阀和任何其他设备,或者可以应用于控制电路中以控制一个或多个设备的操作。在一个示例中,鉴于对环境中其他车辆的运动的预测,自动驾驶车辆的控制系统可以适于控制自动驾驶车辆的速度、加速度、方向和/或行驶时间。控制系统可以以更好的路线选择、减少的行驶时间和/或更低的燃料消耗来帮助自动驾驶车辆到达期望的目的地。例如,这可以促进交通规划、避免事故和提高操作安全性。

作为在自动驾驶车辆中的应用的示例,环境可以包括多个自动驾驶车辆,用于完成诸如交通规划或控制的任务,以避免碰撞并到达多个自动驾驶车辆的各个目的地。多个自动驾驶车辆中的每个都可以配备有执行设备,执行设备可以实施软件实现应用,以生成动作选择方针,从而在环境中完成任务。所生成的动作选择方针包括控制信息,该控制信息被配置为控制自动驾驶车辆的发动机、马达、致动器、制动器等中的一个或多个。因此,它可以被多个自动驾驶车辆中的每个用来控制自动驾驶车辆的一个或多个发动机、马达、致动器、制动器等,使得自动驾驶车辆可以遵循所生成的动作选择方针来实现任务。在一些实施例中,可以由iig对任务进行建模,并且可以通过计算机模拟(例如,通过求解iig)来生成动作选择方针以实现任务。多个自动驾驶汽车中的每个都可以表示iig的一个参与方。动作可以包括例如自动驾驶车辆的指定方向、速度、距离、时间或任何其他度量中的一个或多个。自动驾驶车辆的动作选择方针可以包括在不同状态下(例如,地理位置中的不同十字路口)选择各个动作的策略,使得自动驾驶车辆可以在环境中导航并到达目的地。

作为机器人技术应用的另一示例,环境可以包括工业机器人(例如,仓库机器人),其与一个或多个其他参与方(例如,其他机器人)进行交互以完成任务(例如,在仓库中移动物品或组装一些产品)。在一些实施例中,可以由iig对任务进行建模,并且可以通过计算机模拟(例如,通过求解iig)来生成动作选择方针以实现任务。该动作可以包括例如工业机器人的指定方向、位置、速度或任何其他运动中的一个或多个。工业机器人的动作选择方针可以包括在不同状态下(例如,仓库中的不同位置)选择各个动作的策略,使得工业机器人可以在环境中导航并完成任务(例如,移动仓库中的物品)。

在一些实施例中,所描述的技术可以帮助找到诸如资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理等的现实场景的更好策略,这些策略可以是由各方之间的策略互动来建模或表示,例如涉及两个或更多个参与方的iig。在一些实施例中,所描述的技术可以利用高级采样方案(例如,考虑当前策略的向量和/或通过探索),该高级采样方案返回方差较小的策略、更接近于全局最优解而不是局部最优解的策略、或者更接近于纳什均衡的策略。

在一些实施例中,所描述的技术可以帮助以更有效的方式找到现实场景的策略。因此,可以用较少的计算机模拟量和/或在减少的等待时间/响应时间内找到现实场景的解法或策略。例如,与原始cfr相比,所描述的技术基于mccfr,mccfr仅对iig玩家的所有可能动作组合中的一些进行采样,从而大大减少了遍历或用尽所有可能动作组合进行模拟和求解iig所需的计算量。在一些实施例中,可以在显著更短的响应时间内找到解法或策略,从而有助于使需要实时或接近实时响应或控制的某些现实场景成为可能。

在一些实施例中,所描述的技术可以在寻找纳什均衡以求解表示一个或多个现实场景的博弈时提高收敛速度,提高计算效率并减少mccfr算法的计算量。在一些实施例中,所描述的技术可以减小mccfr算法的方差。

在一些实施例中,当以向量形式实现mccfr时,所描述的向量形式的采样方针可以提供更有效的采样方针。所描述的向量形式的采样方针可以在决策点考虑多种不同的策略,并计算更多地关注相对重要的动作的采样方针,同时实现更好的找到纳什均衡(包括近似纳什均衡)的长期性能,例如,通过提高执行mccfr的收敛速度。

在一些实施例中,所描述的方差减小技术可以减小方差并减少mccfr的迭代次数。在一些实施例中,所描述的方差减小技术可以通过使用基于反事实值基线而不是基于预期效用值基线的控制变量算法来减少计算量并提高计算效率。

在一些实施例中,与现有技术方法相比,所描述的利用跳过机制和贴现更新的混合mccfr算法可以加速收敛并减小mccfr的方差。

在一些实施例中,扩展式iig可以表示为如下。iig中有n个玩家(机会除外)。n={1,...,n}是玩家的有限集合,并且每个成员都是玩家。在两玩家博弈中,n={1,2}。这两个玩家由p1和p2表示。对手观察不到玩家i的隐藏信息(变量),该信息由hvi表示。每个成员h∈h指可能的历史(或状态)。历史(或状态)可以包括导致状态的动作序列(包括机会的动作)。

对于玩家i,指玩家i以外的所有玩家的隐藏信息。空序列是h的成员。表示hj是h的前提。z表示终点历史的集合,并且任何成员z∈z都不是任何其他序列的前提。终点历史也可以称为终点状态,其可以是iig的结束状态。在终点历史中任何玩家都无需采取进一步的动作。每个终点历史z∈z对每个玩家i都有关联的效用或收益。

玩家函数p将n∪{c}的成员分配给每个非终点历史,其中c表示机会玩家。p(h)是在h下采取动作的玩家。a(h)={a:ha∈h}是h∈h\z之后的可用动作的集合。非终点历史也可以称为非终点状态,其可以是iig的中间状态。一个或多个玩家可以在非终点状态下采取可能动作,从而导致另一状态。

历史{h∈h:p(h)=i}的ii是玩家i的信息分划。集合ii∈ii是玩家i的信息集(infoset),并且ii(h)是指状态h下的信息集ii。对于ii∈ii,a(ii)=a(h)和p(ii)=p(h)。如果一个博弈中的所有玩家都可以回忆起他们以前的动作和信息集,则称为完美回忆博弈。

鉴于所有玩家的历史,可以递归建立前提树(trie)。这样的前提树在博弈理论中被称为博弈树。博弈树中的每个节点都指的是历史h。每个玩家的信息集树都建立在信息集而不是历史上。公开树是建立在公开序列上的前提树。每个公开序列都可以包括所有玩家甚至第三方观察者公开已知或可以观察到的动作。在一些实施例中,终点历史或终点状态可以由博弈树或公开树的终点节点或叶子节点表示。非终点历史或非终点状态可以由博弈树或公开树的非终点节点表示。终点历史z对应于动作序列(也称为终点动作序列),其包括所有玩家所采取的导致终点历史z的动作。例如,终点历史z对应于沿着从博弈树或公开树的根节点到终点节点z的轨迹或路径的动作序列,其包括所有玩家采取的导致终点历史z的动作。

图1a和图2b是示出根据本文的实施例的库恩扑克的博弈树100和公开树150的示例的图。库恩扑克是零和两玩家iig扑克的示例。库恩扑克是扩展式博弈的示例。博弈规则定义如下。整付牌仅包含三张扑克牌,例如,国王(k)、女王(q)和杰克(j)。向每个玩家发一张牌,其可与标准扑克博弈类似地下注。如果两个玩家都下注或两个玩家都过牌,则牌较高的玩家获胜,否则下注玩家获胜。

博弈树是有向图。博弈树的节点表示博弈中的位置(或玩家的状态)。如图1a所示,博弈树100的根节点110由圆圈表示,该圆圈是机会节点(也称为玩家0)。博弈树100的每个终点节点或叶子节点(例如,终点节点143a、153a、153b、143c、143d、147a、157a、157b、147c或147d)由菱形表示,表示博弈中一个或两个玩家的收益的终点状态。每个正方形(例如,非终点节点123、127、143b或147b)表示玩家1的状态。每个三角形(例如,非终点节点133a、133b、137a或137b)表示玩家2的状态。在一些实施例中,hi表示非终点节点,zi表示终点节点。

在向每个玩家发一张牌之后,有六个不同的可能状态。如从根节点110向外的六个箭头所示,六个不同的可能状态为[j,q]、[j,k]、[q,j]、[q,k]、[k,j]、[k,q],分别表示玩家1和玩家2收到的牌。博弈树100示出六个可能状态中的两个的子树103和107。对应于状态[j,q]的左子树103指示两个玩家(玩家1和玩家2)分别被发到j和q。对应于状态[j,k]的右子树107指示两个玩家(玩家1和玩家2)分别被发到j和k。

从博弈树的节点(或边)向外的箭头可以表示玩家在博弈状态下的可能动作。如图1a所示,节点123向外的箭头表示玩家1在与状态[j,q]相对应的节点123的状态下的可能动作a1a和a1b。类似地,节点133a向外的箭头表示玩家2在与玩家1选择的[j,q,a1a]状态相对应的节点133a的状态下的可能动作a2a和a2b。节点133b向外的箭头表示玩家2在与状态[j,q,a1b]相对应的节点133b的状态下的可能动作a2c和a2d。

从根节点110到每个节点的轨迹是动作的序列或历史。例如,如子树103中所示,非终点节点143b对应于包括动作[j,q,a1a,a2b]的动作(可以表示为h143b)的序列或历史。终点节点153b对应于包括动作[j,q,a1a,a2b,a3b]的动作(可以表示为h153b)的序列或历史。由于节点153b是终点节点,因该动作序列[j,q,a1a,a2b,a3b]可以称为终点动作序列(导致或引起终点状态153b)。在子树103中,节点143b是终点节点153b的前提。类似地,终点节点143c对应于包括动作[j,q,a1b,a2c]的动作(可以表示为h143c)的序列或历史。

在iig中,玩家2看不到玩家1的私人牌。类似地,玩家1看不到玩家2的私人牌。因此,玩家1在与状态[j,q]相对应的节点123处和与状态[j,k]相对应的节点127处可用的信息实际上是相同的,因为玩家1只知道其私人牌j,而不知道对手玩家2的私人牌是q还是k。信息集ii可以用于表示这些未区分状态的集合。令h123表示节点123的状态,而i1(h123)表示在节点123的状态下的信息集,并且h127表示节点127的状态,而i1(h127)表示在节点127的状态下的信息集。在该示例中,i1(h123)=i1(h127)。通常,任何ii∈i包括玩家i观察到的信息,其包括玩家i的隐藏变量(例如,私人牌)和公开动作。在此示例中,i1(h123)=i1(h127)=j,其可以表示为i11。

类似地,玩家1在与状态[q,j]和[q,k]相对应的节点处可用的信息是相同的,可以由包括玩家1的私人牌q的相同信息集i12来表示。玩家1在与状态[k,j]和[k,q]相对应的节点处可用的信息是相同的,可以由包括玩家1的私人牌k的相同信息集i13来表示。

图1b示出对应于博弈树100的公开树150。公开树150中的每个节点125、135a、135b、145a、145b、145c、145d、155a或155b可以表示包括公开动作的序列或历史(也称为公开序列)的公开状态。每个节点对应于信息集的向量对于它们可以指示相同的公开序列。指向量的长度。例如,如图1b所示,节点125对应于初始公开序列,在该示例中其为空节点125与玩家1的信息集向量相关联,分别对应于玩家1的私人牌j、q、k。

作为另一示例,节点135a可以表示包括玩家1的动作[a1a]的公开序列并且对应于玩家2的信息集向量。类似地,节点135b可以表示包括玩家1的动作[a1b]的公开序列,并且对应于玩家2的信息集的另一向量。非终点节点145b对应于包括公开动作[a1a,a2b]的公开序列。终点节点155b对应于包括公开动作[a1a,a2b,a3b]的公开序列。

在一些实施例中,公开树150中的非终点节点145b可以表示六个不同的可能初始状态[j,q]、[j,k]、[q,j]、[q,k]、[k,j]和[k,q]之间的共同公开状态。非终点节点145b的共同公开状态包括包含公开动作[a1a,a2b]的公开序列,并且对应于玩家1在非终点节点145b处的信息集向量,i11(节点145b)可以表示玩家1在非终点节点145b处的信息集,其包括玩家1的私人动作和导致非终点节点145b的共同序列。即,i11(节点145b)=[j,a1a,a2b]。类似地,i12(节点145b)=[q,a1a,a2b];以及i13(节点145b)=[k,a1a,a2b]。信息集i11(节点145b)可以由博弈树100中的两个节点143b和147b共享。节点143b对应于博弈中所有玩家的导致节点143b的私人动作和公开动作的序列。即,h143b=[j,q,a1a,a2b]。类似地,节点147b对应于博弈中所有玩家的导致节点147b的私人动作和公开动作的序列。即,h1473b=[j,k,a1a,a2b]。可以看出,h143b和h1473b共享相同的信息集i11(节点145b)=[j,a1a,a2b]。

在一些实施例中,iig的策略和纳什均衡可以表示如下。对于玩家i∈n,扩展式博弈中的策略σi(ii)将a(ii)上的动作分布分配给信息集ii。策略组合(strategyprofile)可以表示为σ={σi|σi∈σi,i∈n},其中σi是玩家i的所有可能策略的集合。σ-i是指σ中除σi之外的所有策略。σi(ii)是信息集ii的策略。σi(a|h)是指玩家i在状态h下采取动作a的概率。ii=ii(h1)=ii(h2),σi(ii)=σi(h1)=σi(h2),σi(a|ii)=σi(a|h1)=σi(a|h2)。在一些实施例中,策略σi(ii)指定并包括在策略σi(ii)下在状态h下的多个可能动作中选择动作a的相应概率σi(a|h)。例如,对于图1a中的博弈树100的节点123处的玩家1,策略σ1(ii)可以包括在节点123的状态下从两个可能动作a1a和a1b中选择动作a1a的概率σ1(a1a|节点123),以及在节点123的状态下从两个可能动作a1a和a1b中选择动作a1b的概率σ1(a1b|节点123)。如果策略σ1(ii)是均匀的(例如,初始策略),则概率σ1(a1a|节点123)=0.5,概率σ1(a1b|节点123)=0.5。在一些实施例中,可以在cfr的每次迭代中更新策略σ1(ii),使得当cfr收敛时,如果玩家在状态h下或给定信息集i的情况下遵循策略σ1(ii)中指定的概率选择动作,则玩家可以达到纳什均衡(或近似纳什均衡)。例如,如果cfr输出的策略σ1(ii)指定概率σ1(a1a|节点123)=0.2,并且概率σ1(a1b|节点123)=0.8,则玩家可以在状态h下或者在给定信息集i的情况下选择概率为0.8的动作a1b,以接近纳什均衡(或近似纳什均衡)。

对于cfr这样的迭代学习方法,σt表示第t次迭代的策略组合。πσ(h)是指状态到达概率(也称为状态范围),其是所有玩家(包括机会,例如博弈树100中的根节点110)沿历史h的策略的乘积。对于空序列,=1。

在一些实施例中,可将到达概率分解为

其中是玩家i的策略σi的乘积,而是除i以外的所有玩家的策略的乘积,记为σ-i。πiσ(h)=πiσ(ii)。

对于两个历史h1和h2,πσ(h1,h2)指的是所有玩家从历史h1至h2的策略的乘积。可以类似的方式定义πiσ(h1,h2)和πσ-i(h1,h2)。ii的信息集到达概率(信息集范围)可以通过来定义。类似地,

对于玩家i,期望的博弈效用可以通过来计算。给定固定的策略组合σ-i,最佳响应表示为

∈-纳什均衡是近似纳什均衡,其策略组合σ*=(br(σ-i),br(σi)),满足:

策略σi的可利用性可以定义为如果∈i(σi)=0,则策略无法利用。在大型两玩家零和博弈例如扑克中,会很难计算。但是,如果玩家交换位置,则一对博弈的值为零,即,可将策略组合σ的可利用性定义为

cfr是一种用于在零和完美回忆不完美信息博弈中找到纳什均衡的迭代方法。可以计算出反事实值以表示玩家i在当前策略组合σt下在信息集ii处的预期效用,假设玩家i进行博弈以达到ii。在一些实施例中,给定σt,可以通过下式计算反事实值

其中是对手的范围矩阵(即,对手的到达概率),是玩家i在给定信息集ii下的预期效用值矩阵,而d表示维度。

在一些实施例中,可以被计算为除玩家i之外的所有玩家沿历史h∈ii的策略的乘积,表示给定玩家i在当前策略组合σt下达到了当前信息集ii的情况下对手动作的后验概率。给定玩家i在当前策略组合σt下达到了当前信息集ii并假设对手的私人动作是均匀分布的,则可以表示预期效用值矩阵。

例如,对于图1a和1b中的库恩扑克,可以表示当向玩家2分别发了具有均匀分布的私人牌j、q或k时,玩家1的预期效用值,而可以是给定玩家1在当前策略组合σt下达到了当前信息集ii,向玩家2分别发私人牌j、q或k的概率向量。

再举一个示例,在单挑无限注德州扑克(hunl)中,中的每个条目都指的是当发了特定一对私人牌时对手的范围。中的每个条目均指给定两个玩家的私人牌和当前策略下的预期效用值。

指的是动作a的反事实值,其遗憾可通过下式计算:

t次迭代后动作a的累计遗憾是

其中ri0(a|ii)=0。

定义则可以基于遗憾匹配根据以下方式计算t+1次迭代时的当前策略:

可通过下式计算t次迭代后的平均策略

cfr+与cfr类似,不同之处在于cfr+用遗憾匹配+替换遗憾匹配并使用加权平均策略。经过足够的迭代,事实证明cfr和cfr+可以达到纳什均衡。cfr和cfr+收敛到均衡的最著名的理论边界是此边界比以速率收敛的一阶方法慢。但是,在许多博弈中,cfr+的经验收敛速度远快于

mccfr通过在每次迭代中对信息集的子集进行采样来计算反事实值的无偏估计。定义q={q1,q2,...,qm},其中qj∈z是由mccfr生成的采样终点历史的集合(块),使得qj覆盖集合z。将定义为考虑块qj的概率,其中定义为考虑特定的终点历史z的概率。特定的终点历史z对应于动作序列(也称为终点动作序列),其包括所有玩家所采取的导致终点历史z的动作。在一些实施例中,考虑特定的终点历史z的概率是对该特定的终点历史z进行采样的概率(也称为采样的终点动作序列的概率)。在一些实施例中,可以基于包括在导致采样终点历史z的采样终点动作序列中的所有动作的采样概率,来计算采样终点历史z的概率或采样终点动作序列的概率。例如,如果导致采样终点历史z的采样终点动作序列包括动作序列[a1,a2,...,am],则可以将q(z)计算为采样终点动作序列[a1,a2,...,am]中所有动作各自的采样概率的乘积。

ii的采样反事实值的估计值(也称为估计反事实值)可以通过下式计算:

其中1/q(z)可以表示在计算采样反事实值时特定的采样终点历史z的重要性。

将σs定义为采样策略组合,其中是玩家i的采样策略,而是除玩家i外其他玩家的采样策略。采样动作a∈a(ii)的遗憾可以通过下式计算:

其中

其中是经加权的效用。

经过t次迭代后,动作a的估计累计遗憾为

其中

可以根据等式(7)基于遗憾匹配或类似于原始cfr的遗憾匹配+来计算t+1迭代时的当前策略。类似地,可以根据等式(8)来计算t次迭代后的平均策略

mccfr可证明地保持了反事实值的无偏估计,并收敛到纳什均衡。结果采样和外部采样是两种流行的采样方法。原始结果采样根据两个玩家的当前策略方针(或∈-贪婪)选择一个历史。外部采样与结果采样非常相似,不同之处在于一个玩家在其决策节点处采取所有动作。在每次迭代中,经典mccfr指定一个玩家作为遍历者,该玩家的累计遗憾和策略将在此迭代进行更新。之后,另一玩家将被指定为遍历者。提出了另一种采样方法,即鲁棒采样,其中遍历者对k个动作进行采样,而对手对一个动作进行采样。在鲁棒采样方案中,每个玩家都使用均匀采样方法在当前决策点处进行采样,而另一参与方根据对应策略进行采样。对应于不同迭代的到达概率可以是固定的。可以证明,鲁棒采样方案与mccfr中的结果采样方案相比,方差更小,而与外部采样相比,存储效率更高。在一些实施例中,鲁棒采样方案可以使mccfr以更快的收敛速度求解纳什均衡(包括近似纳什均衡)。

mccfr及其变体可以分为三种类型:数值形式mccfr、半向量形式mccfr和向量形式mccfr。为了清楚说明,将这三种类型的mccfr形式解释为在图1a-b中所示的库恩扑克中使用。在这里,鲁棒采样被用作默认采样方法,玩家p1是遍历者。在每个决策节点,p1根据均匀随机方针对一个动作进行采样,而p2根据p2的当前策略对一个动作进行采样。

数值形式的mccfr:在每次迭代的开始,分别为p1和p2发一张私人牌,例如将j发给p1,将q发给p2,如左子树103所示。然后他们互相对抗直到结束。在完美回忆两玩家不完美信息博弈中,给定公开序列和p2的私人牌,可以确定特定的信息集i2∈i2。p2根据σ2(i2)对一个动作进行采样。在这种情况下,数值形式的mccfr在每次迭代都会生成一个历史h。终点节点的值是博弈收益。

半向量形式的mccfr:假设向p2发了私人牌q,而向p1发了私人牌向量[j,k]。与数值形式的mccfr相似,这两个玩家互相对抗直到结束。p1的决策节点维护信息集向量而p2的节点维护一个信息集i2。此外,i1表示策略的向量在这种情况下,p2根据σ2(i2)对一个动作进行采样。当使用鲁棒采样时,p1根据均匀随机方针而不是方针向量对其动作进行采样,因此无需指定特定的当前策略作为采样方针。半向量形式的mccfr在每次迭代时都会更新遍历者的遗憾和策略的向量。可以预期,半向量形式的mccfr可以从有效的矩阵运算中受益,并且经验上的收敛速度要快于数值形式的mccfr。

向量形式的mccfr:此方法无需为p1和p2指定私人牌。如图1b所示,玩家i∈[1,2]的决策节点(例如,非终点节点125、135a或135b)维护信息集向量在每次迭代中,向量形式的mccfr沿公开树150生成序列的向量(例如,从节点125到终点节点例如节点155b遵循公开序列[a1a,a2b,a3b])。

因为每个决策节点表示当前策略的向量在给定当前策略向量中的多个当前策略的情况下,需要确定采样方针,以在决策节点处从玩家i的可能动作中对一个动作进行采样。没有使用均匀采样方针来使中的每个信息集共享相同的均匀策略,而是介绍几种非均匀采样方针。在一些实施例中,这些非均匀采样方针可以更加关注相对重要的动作,并且还可以获得更好的长期性能。

随机当前策略(rcs):使用rcs时,玩家i从中随机选择一个信息集ii并根据σit(ii)对一个动作进行采样。

平均当前策略(mcs):此采样方针是中所有信息集的当前策略的平均值,其可以通过下式计算:

mcs为中的不同信息集{ii}赋予相同的权重。

加权当前策略(wcs):在博弈论领域,玩家通常采取不利动作的概率非常低。通常,玩家在不同情况下会做出不同的决策。例如,在扑克博弈中显示有益的公共牌后,玩家可能需要采取更具侵略性的策略。因此,在wcs中,在等式(8)中的平均策略的基础上,中不同的信息集{ii}可以被不同地加权。例如,信息集ii可以被玩家i的范围加权。在这种情况下,可以通过下式定义wcs采样方针:

在一些实施例中,wcs采样策略可以包括其他版本,例如通过赋予不同或附加的权重。例如,在等式(14)中玩家i自己的范围可以被对手的范围或两个玩家的范围替换。在许多情况下,上述wcs采样策略可以有效地达到纳什均衡。

加权平均策略(was):在was中,等式(13)和等式(14)中的当前策略可以用t次迭代中的平均策略作为纳什均衡的近似值来替换。例如,通过由平均策略替换等式(13)中的当前策略σt,加权平均策略可以定义为

在一些实施例中,可以将而不是用作等式(15中的每个信息集的权重,因为等式(8)和等式(15)权重相同。

mccfr从采样经验中学习状态动作方针。蒙特卡洛方法中使用的方差减小技术可以应用于mccfr。例如,控制变量是一种方差减小技术,其中随机变量的方差可以通过减去另一随机变量并加上其期望值来减小。基线可用于方差减小技术中。基线允许基于从相同状态开始时动作的对数概率的性能好于或差于平均性能来增加或减少动作的对数概率。在一些实施例中,为了减小方差,可以为每个反事实值指定特定的基线。在一些实施例中,基线可以是标量。在一些实施例中,经基线校正的cfv可以是原始cfv减去指定基线。

在一些实施例中,不使用预期效用值,可以使用反事实值作为应用于mccfr的方差减小技术中的基线(称为反事实值基线)。事实证明,基于反事实值基线的方差减小是无偏的,并且可以比基于预期效用值基线的方差减小在计算上更为有效。

在利用反事实值基线的方差减小中,可以递归定义估计反事实值。qj指的是采样块,ii指的是成立的采样信息集。

定义为迭代t-1上的状态动作基线,将定义为玩家i的采样方针,将q(ii)定义为对ii进行采样的概率。

在向量形式的mccfr中,q(h)=q(ii)。迭代t-1上的估计状态动作基线可以计算为:

给定信息集ii处动作a的估计反事实值动作a的基线校正值或基线增强值可以通过下式计算:

信息集ii的估计反事实值可以通过下式计算:

定义b0i(a|ii)=0。可以使用两种示例性方法来更新基线。在第一种方法中,可以通过下式基于估计反事实值更新基线:

在第二种方法中,基于等式(17)中的基线校正值而不是估计反事实值更新基线。换句话说,用基于等式(17)计算的替换等式(19)中的第二基线也称为引导基线。

可以按照原始mccfr的类似公式来计算累计遗憾和平均策略,例如,分别根据等式(12)和(8)。可以针对所有信息集沿采样序列,递归更新估计反事实值和基线。

作为使用反事实值基线方法实现方差减小的示例,对于mccfr的每次迭代,可以执行以下步骤。

(a)根据等式(18)的上方等式(或第一等式)计算博弈树或公开树的终点节点的cfv。在一些实施例中,对于数值形式的实施方式,根据等式(18),针对公开树的终点节点的cfv的计算可以实现为(1×d矩阵)和(d×1矩阵)的矩阵(或向量)乘积,类似于等式(4)。在一些实施例中,对于向量形式的实施方式,根据等式(18)针对公开树的终点节点的cfv的计算可以实现为(d×d矩阵)和(d×d矩阵)的矩阵乘积。在一些实施例中,基于对手的范围矩阵和预期效用值矩阵的cfv的计算仅需要针对公开序列的终点节点的每个公开序列计算一次。非终点节点的cfv可以基于非终点节点的子节点的加权cfv之和,例如,根据等式(18)的下方等式(或第二等式)。

(b)根据等式(17)计算经基线校正的cfv。在向量形式的实施方式中,由于基线是cfv基线,因此该步骤可能只需要两个d×1矩阵相加,如等式(17)中的下方等式所示,而不是根据预期效用基线进行进一步的运算。

(c)根据等式(18)的下方等式(或第二等式)针对每个非终点节点计算cfv。此步骤包括子节点的经加权的cfv的总和。在向量形式的实施方式中,获得的cfv的维度为d×1。

(d)根据等式(19)更新基线。该步骤包括经衰减因子γ和考虑非终点状态的概率q(ii)加权的平均cfv,该平均cfv可以基于导致ii的动作序列的采样概率的乘积来计算。在向量形式的实施方式中,得到的更新后的基线的维度为d×1。

(e)沿着博弈树或公开树递归计算(b)-(d),直到到达当前迭代的根节点为止。例如,分别根据等式(10)、(12)、(7)和(8),按照原始mccfr的类似公式,计算得出的每个节点的经基线校正的cfv可用于计算遗憾、累计遗憾、当前策略和平均策略。

迭代中的上述步骤可以重复进行,直到达到收敛条件为止。达到收敛后的当前策略或平均策略可以作为mccfr的输出返回,以近似纳什均衡。

可以证明,使用反事实值基线方法减小方差保持了反事实值的无偏估计。即,如果基线校正后的反事实值由等式(17)和等式(18)定义,则ii∈ii,a∈a(ii),σt成立。

在一些实施例中,基于反事实值基线的方差减小技术比基于预期效用值基线的技术需要更少的计算。例如,根据等式(4),可将反事实值计算为对手的范围矩阵和预期效用值矩阵的乘积。当使用向量形式的mccfr时,基于预期效用值基线的方差减小技术将d×d矩阵保持为基线,并在控制变量中使用该基线来更新基线校正后的预期效用值(也为d×d矩阵)。此后,估计反事实值是对手的范围矩阵(1×d矩阵)、基线增强的预期效用值(d×d矩阵)和(1×1矩阵)的乘积。

与预期效用值基线不同,利用反事实值基线的方差减小技术在计算上更有效。在一些实施例中,信息集向量的反事实值是1×d矩阵。如等式(19)中所定义,反事实值基线基于反事实值更新。对应于的基线是1×d矩阵。等式(17)和等式(18)是对应于的几个1×d矩阵的求和或汇总。对于非终点状态,反事实值或基线校正后的反事实值可以基于等式(18)的下方等式(或第二等式)中所示的求和或汇总来更新。相比之下,对于利用预期效用值基线的方差减小技术,基于所有终点状态和非终点状态的相乘(例如,如等式(4)所示)来更新反事实值或基线校正后的反事实值。这样,反事实值基线相对于预期效用值基线所节省的计算量可以取决于表示环境或iig的博弈树或公开树的深度和/或非终点状态的数量。如果博弈树或公开树较深和/或具有大量非终点状态,则利用反事实值基线的mccfr的计算效率甚至比基于预期效用值基线的mccfr的计算效率更高。例如,在hunl中,d=13264。基于期望值的方法至少需要进行1326×1326次加法运算以更新其基线,而基于反事实值的方法仅需要1×1326次加法运算。

在一些实施例中,探索技术可以应用于mccfr,从而以较少的样本实现更好的性能。在一些实施例中,可以使用混合或混杂采样方针来平衡利用和探索,这是mccfr中的权衡,其从采样经验中学习状态动作方针。在一些实施例中,混合采样方针可以表示为:

其中σis(a|ii)指采样方针,σie(a|ii)指探索方针。α∈[0,1]是混合因子,其用于控制探索权重。通常,α是衰减因子。例如,设置则limt→∞α=0成立。采样方针σis可以是任何合适的采样方针,包括rcsσircs、mcsσimcs、wasσiwas、结果采样、外部采样、鲁棒采样或均匀采样。在一些实施例中,使成立。因此,使成立。

将δct(a|ii)定义为迭代t中信息集ii处动作a的采样次数。如果在此迭代中未对信息集ii或动作a进行采样,则δct(a|ii)为0。可以通过下式计算累计采样次数:

在数值形式的mccfr中,例如结果采样,如果在迭代t中在信息集ii处对动作a进行采样,则设置δct(a|ii)=1。在向量形式的mccfr中,当对进行采样时,对于每个信息集δct(a|ii)应该相应地更新。在一些实施例中,单个计数器用于整个信息集向量以计算对动作a采样的次数。在一些实施例中,使用小批量mccfr(在2019年1月17日提交的名称为“samplingschemesforstrategysearchinginstrategicinteractionbetweenparties(在多方策略交互中进行策略搜索的采样方案)”的第pct/cn2019/072200号pct申请,和2019年6月21日提交的名称为“samplingschemesforstrategysearchinginstrategicinteractionbetweenparties(在多方策略交互中进行策略搜索的采样方案)”的第16/448,390号美国专利申请中描述),因为在一次迭代中对小批量的块进行采样,因此δct(a|ii)可能大于1。可以通过下式计算探索方针

其中σie,t表示迭代t中的探索方针,β是非负实数。如果β=0,则σie,t(a|ii)是均匀随机探索。如果β>0并且在ii处对动作a进行重复采样,则趋于变小,因此与未进行探索的动作相比,对该动作采样的概率可能更小。在经验上,探索对mccfr很有帮助。例如,如果一个动作的累计遗憾为负,则其当前策略为零。在这种情况下,该动作将不会在下一次迭代中被采样。但是,在长时间进行迭代之后,该动作可能比其他动作具有更大的总体遗憾。因此,将需要很多次迭代才能使mccfr将其负遗憾改变为正值。使用探索时,mccfr有一定的概率对该动作进行采样,并在一些迭代后进行探索。

已进行实验以评估示例性技术,以在三种不同的扑克博弈上加速mccfr的收敛:单挑无限注翻牌前德州扑克(nlph)、单挑无限注翻牌德州扑克(nlfh)和单挑无限注德州扑克的河牌圈玩法(hunl-r)。这些技术包括向量形式的采样方针、利用反事实值基线的方差减小技术、利用探索的混合采样方针以及利用跳过机制和贴现更新的混合mccfr变体。实验结果表明,所述mccfr变体获得了2或3个数量级的改进。

hunl是不完美信息博弈解法的主要基线。本实验中使用的hunl是年度计算机扑克竞赛的标准版本。在hunl开始时,两个玩家拥有20000个筹码。如果没有一个玩家提前弃牌,hunl最多可以进行四个下注回合。这四个下注回合分别由翻牌前、翻牌圈、转牌圈和河牌圈来命名。每局开始时,从52张整付牌中向两名玩家各发两张私人牌。小盲位的一个玩家首先应将50个筹码放入底池,大盲位的另一玩家应将100个筹码放入底池。他们的位置在每局之后交换。每个玩家可以选择弃牌、跟注或加注。如果一个玩家选择弃牌,那么其将输掉底池中的钱,这局牌就结束了。如果一个玩家选择跟注,其应该在底池中放置一些筹码,以使其总筹码等于对手的筹码。如果一个玩家选择加注,其应该比对手增加更多筹码。在翻牌前回合后,显示三张公共牌,然后出现翻牌下注回合。在此回合之后,将显示另一张公共牌,并且进行第三下注回合。之后,显示最后一张公共牌,然后河牌圈开始。

hunl包含大约10161个信息集,并且太大而无法遍历所有节点。为了减少计算量,可以使用诸如动作抽象或纸牌抽象技术之类的抽象技术来实时求解完整hunl的子博弈。本实验使用1倍底池,并且全部在每个下注回合中,而无需任何卡牌抽象。

nlph只有一个下注回合,终点节点的值由均匀随机公共牌下的预期博弈效用表示,预期博弈效用已预先计算并保存在磁盘上。nlph包含7.8×104个信息集和1.0×109个状态。nlfh与hunl相似,不同之处在于仅具有前两个下注回合(翻牌前和翻牌圈)和三张公共牌。nlfh是一款大型博弈,包含超过4.3×109个信息集和5.8×1012个状态。我们的实验中使用的hunl-r是指hunl的第四下注回合。在这一回合开始时,每个玩家在底池中有$100,并且两个玩家的范围由均匀随机方针指定。hunl-r包含2.6×104个信息集和3.5×107个状态。

进行了一系列消融研究,涉及不同的采样方针、探索技术和方差减小技术,并在nlph上建立了反事实基线。然后,在hunl-r和超大型nlfh上比较了不同的mccfr方法。

通过可利用性评估所有实验,将可利用性用作标准获胜率度量。具有较低可利用性的方法更好。纳什均衡的可利用性为零。在本文中,可利用性的单位是每博弈百万个盲注(mbb/g)。它表示一个玩家平均每局扑克赢取几千分之一的大盲注。对于抽象的大型博弈,可利用性是在抽象的博弈上计算的。在实验中,β=ln(t+10)并且γ=0.5。可以使用其他值。实验遵循mccfr的典型流程,每个玩家分别遍历公开树或博弈树。图2-6显示了实验中多个mccfr变体的模拟结果的示例。每个图的x轴表示迭代次数,每个图的y轴表示可利用性。在不失一般性的前提下,将鲁棒采样用作nlph扑克上不同mccfr变体的示例性采样方案。鲁棒采样的一种有效形式是,遍历者根据均匀随机方针对1个动作进行采样,而对手根据其当前策略对1个动作进行采样。

图2是示出根据本文的实施例的以不同的采样方针应用于nlph的几种mccfr变体的收敛性能的双对数坐标曲线图200。mccfr是指半向量形式的mccfr。mccfr-rcs、mccfr-mcs、mccfr-wcs和mccfr-was分别指利用不同mcs、wcs和was采样方针的向量形式的mccfr变体。结果表明,mccfr-rcs与半向量形式的mccfr达到了相似的收敛性,因为rcs从中随机选择了信息集ii,并根据σii采样了一个动作。这种随机选择没有考虑不同信息集的重要性。除了mccfr-rcs,其他向量形式的mccfr变体比半向量形式的mccfr实现了2或3个数量级的改进。由范围对每个信息集加权的wcs和was具有比mcs更好的长期性能。注意,通常半向量形式的mccfr收敛速度快于其数值形式的版本,因此该数值形式的mccfr的收敛曲线未显示在图2中。在其余实验中,选择由两个玩家的范围加权的wcs作为采样方针。

图3是示出根据本文的实施例的在利用和不利用探索技术的情况下应用于nlph的几种mccfr变体的收敛性能的双对数坐标曲线图300。具体地,收敛曲线310、320、330和340分别对应于mccfr、不利用探索的mccfr-wcs、利用∈-贪婪探索的mccfr-wcs以及利用参照等式(20)描述的示例性探索技术的mccfr-wcs。图3显示了mccfr-wcs在收敛性能方面优于mccfr以及利用∈-贪婪探索的mccfr-wcs和利用参照等式(20)描述的示例性探索技术的mccfr-wcs在收敛性能方面优于mccfr-wcs。而且,利用参照等式(20)描述的示例性探索技术的mccfr-wcs的收敛速度比利用∈-贪婪探索的mccfr-wcs的收敛速度甚至更快,因为前一种探索技术考虑了不同动作的采样频率。

图4a示出根据本文的实施例的在利用和不利用不同方差减小技术的情况下应用于nlph的几种mccfr变体的收敛性能的双对数坐标曲线图400。具体地,收敛曲线410、420、430、440和450分别对应于mccfr、不利用任何方差减小技术的mccfr-wcs、利用使用预期效用值基线的方差减小技术的mccfr-wcs(表示为mccfr-wcs(evb))、利用使用参照等式(19)描述的cfv基线的方差减小技术的mccfr-wcs(表示为mccfr-wcs(cfvb))、以及利用使用cfv引导基线的方差减小技术的mccfr-wcs(表示为mccfr-wcs(cfvb,boot))。

如图4a所示,当使用方差减小技术(例如,控制变量技术)时,向量形式的mccfr变体收敛更快。此外,使用cfv基线的方差减小技术(例如,mccfr-wcs(cfvb)和mccfr-wcs(cfvb,boot))优于利用预期效用值基线的方差减小技术,mccfr-wcs(evb)。此外,利用预期效用值基线的mccfr需要对每个采样节点执行1326×1326次加法运算,这比反事实值基线要耗时得多。为了进行公平的比较,在图4a中提供了基于运行时间的收敛比较。

图4b是示出根据本文的实施例的在利用和不利用不同方差减小技术的情况下应用于nlph的几种mccfr变体的示例性计算效率的双对数坐标曲线图405。在实验中,半向量形式的mccfr(表示为mccfr)每千次迭代花费5.9秒;向量形式的mccfr-wcs(表示为mccfr-wcs)耗时6.2秒;利用反事实基线的方法(例如mccfr-wcs(cfvb)或mccfr-wcs(cfvb,boot))花费6.5秒,而利用预期效用值基线的方法(表示为mccfr-wcs(evb))花费48.7秒。

尽管在每次迭代中向量形式的mccfr比半向量形式的mccfr采样了更多的信息集,但是由于矩阵运算的优势,它们花费了相似的计算时间。从经验上讲,利用引导基线的方法(mccfr-wcs(cfvb,boot))的收敛速度比使用参照等式(19)描述的cfv基线的方法(表示为mccfr-wcs(cfvb))的收敛速度稍快。在其余的实验中,选择利用引导反事实基线的方法作为默认的mccfr变体。

图5a-5c是示出根据本文的实施例的通过对三种不同的扑克博弈nlph、hunl-r和nlfh进行外部采样的几种mccfr变体的收敛性能的双对数坐标曲线图500、530和560。图5a-5c示出利用所描述的wcs采样方针和引导基线的mccfr可以在许多场景(包括超大型博弈nlfh)中显著改进mccfr的收敛。改进的mccfr可以使许多扑克ai受益,并帮助他们在更少的运行时间内实现更好的策略。

图6a是示出根据本文的实施例的在nlph上利用和不利用跳过的几种mccfr变体的收敛性能的双对数坐标曲线图600。通过对向量形式的mccfr外部采样进行实验。在cfr中,累计遗憾初始化为零,当前策略从均匀随机策略开始。在一些实施例中,证明仅所有迭代内的平均策略组合收敛于纳什均衡。在一些实施例中,跳过cfr的前一次迭代可以获得mccfr的更快收敛。图6a示出具有不同跳过迭代的mccfr变体显著改进了nlph上的性能。图6a示出mccfr算法在长迭代范围内在nlph上的长期性能。跳过之前的10000次迭代(表示为wcs(skip10k))的方法收敛到0.94-纳什均衡。这种可利用性在德州扑克中被认为已经足够收敛。

图6b是示出根据本文的实施例的在nlph上利用和不利用跳过的mccfr变体的收敛性能的双对数坐标曲线图650。通过对向量形式的mccfr外部采样进行实验。作为贴现机制,线性mccfr利用取决于迭代t的值对遗憾和平均策略加权。在实验中,此贴现机制与指定权重为tw的向量形式的mccfr结合使用。图6b显示,权重为tw(其中w=1和w=2,表示为linearwcs(w=1)和linearwcs(w=2))的线性mccfr与利用贴现的向量形式的mccfr(表示为wcs)相比,改进了收敛性能。

图7是根据本文的实施例的用于执行蒙特卡洛反事实遗憾最小化(mccfr)以确定用于软件应用的动作选择方针的处理700的示例的流程图。处理700可以是利用上述采样方案的mccfr算法的示例。

图7所示的示例性处理700可以被修改或重新配置为包括附加的、更少的或不同的操作,其可以以所示的顺序或以不同的顺序执行。在某些情况下,例如可以重复或迭代一个或多个操作,直到达到终止条件为止。在一些实施方式中,图7中所示的一个或多个单独操作可以被执行为多个单独的操作,或者图7中所示的一个或多个操作子集可以被组合并且被执行为单个操作。

在一些实施例中,处理700可以以迭代方式执行,例如,通过执行两次或更多次迭代。在一些实施例中,处理700可以用在自动控制、机器人技术或涉及动作选择的任何其他应用中。在一些实施例中,处理700可以由执行设备执行,用于生成动作选择方针(例如,策略),以在包括执行设备以及一个或多个其他设备的环境中完成任务(例如,找到纳什均衡)。在一些实施例中,生成动作选择方针可以包括处理700的一些或全部操作,例如,通过在702处初始化动作选择方针并在750处通过迭代更新动作选择方针。执行设备可以在环境中执行处理700,以根据动作选择方针控制执行设备的操作。

在一些实施例中,执行设备可以包括位于一个或多个位置并且根据本文进行了适当编程的数据处理装置,诸如一个或多个计算机的系统。例如,经过适当编程的图10的计算机系统1000可以执行处理700。执行设备可以与执行方或玩家相关联。执行方或玩家以及一个或多个其他参与方(例如,与一个或多个其他设备相关联)可以是环境中的参与方或玩家,例如,以在执行方与一个或多个其他参与方之间的策略互动中进行策略搜索。

在一些实施例中,可以通过涉及两个或更多个玩家的不完美信息博弈(iig)来对环境进行建模。在一些实施例中,可以例如由应用支持的执行方执行处理700以求解iig。iig可以表示一个或多个现实场景,例如资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理等,其中涉及两个或多个参与方,每个参与方可能具有关于另一参与方的决策的不完全或不完美的信息。作为示例,iig可以表示至少涉及第一玩家和第二玩家的协作产品服务推荐服务。第一玩家可以是例如具有客户(或用户)信息、产品和服务信息、客户的购买历史等的在线零售商。第二玩家可以是例如具有该客户的社交网络数据的社交网络平台、拥有该客户的财务信息的银行或其他金融机构、汽车经销商或在预测和向客户推荐产品和服务时具有关于该客户的偏好、需求、财务状况、位置等的客户信息的任何其他参与方。第一玩家和第二玩家可能各自具有该玩家不想与他人共享的专有数据。第二玩家可以在不同时间向第一玩家仅提供部分信息。这样,第一玩家可能仅具有对第二玩家的信息的有限访问权。在一些实施例中,可以执行处理700以向具有第二参与方的有限信息的参与方进行推荐,从而利用有限信息规划路线。

在702处,第一次迭代(即,t=1迭代)中,对动作选择方针(例如,策略)初始化。在一些实施例中,动作选择方针可以包括或以其他方式指定执行设备(例如,执行处理700的执行设备)从一个状态(例如,当前状态i)下的多个可能动作中选择一个动作(例如,aj)的相应概率(例如,)。当前状态是由执行设备在前一状态下采取的前一动作导致的,并且当执行设备在当前状态下时,多个可能动作中的每个动作如果被执行设备执行都导致相应的下一状态。

在一些实施例中,状态可以由博弈树的节点(例如,博弈树100的非终点节点123、127、143b或147b或者终点节点143a、153a、153b、143c、143d、147a、157a、157b、147c或147d)表示。在一些实施例中,状态可以是由公开树的节点(例如,公开树150的非终点节点125、135a、135b或145b,或者终点节点145a、145c、145d、155a或155b)表示的公开状态。

在一些实施例中,可以例如基于现有策略、均匀随机策略(例如,基于均匀概率分布的策略)或另一策略(例如,基于不同概率分布的策略)来初始化该策略。例如,如果系统从现有的cfr方法(例如,原始cfr或mccfr方法)热启动,则可以从现有策略组合中初始化迭代策略,以克隆现有的遗憾和策略。

在704处,确定是否满足收敛条件。mccfr通常包括多次迭代。收敛条件可用于确定是继续还是终止迭代。在一些实施例中,收敛条件可以基于策略σ的可利用性。根据可利用性的定义,可利用性应大于或等于0。越小的可利用性表示越好的策略。也就是说,经过足够的迭代后,收敛策略的可利用性应该接近0。例如,在扑克中,当可利用性小于1时,时间平均策略被认为是一种好的策略,并且确定满足收敛条件。在一些实施例中,收敛条件可以基于预定次数的迭代。例如,在小型博弈中,迭代可以通过可利用性轻松确定。即,如果可利用性足够小,则处理700可以终止。在大型博弈中,可利用性很复杂,并且通常可以指定较大的迭代参数。每次迭代后,都可以获得新的策略组合,它比旧的策略组合更好。例如,在大型博弈中,处理700可以在足够次数的迭代之后终止。

如果满足收敛条件,则无需进一步迭代。处理700进行到706。根据当前动作选择方针向量中的每个当前动作选择方针来控制执行设备的操作。例如,可以将当前迭代中的每个当前动作选择方针或t次迭代中的平均动作选择方针作为控制命令输出,以控制方向、速度、距离或者引擎、马达、阀、致动器、加速器、制动器或自动驾驶汽车或其他应用中的其他设备的其他操作中的一个或多个。如果不满足收敛条件,则将t增加1,并且处理700进行到下一次迭代,其中t>1。

在当前迭代(例如,第t次迭代)中,在710处,识别执行设备在一个状态下的多个可能动作。在一些实施例中,如上所述,状态可以是由公开树的节点(例如,公开树150的非终点节点125、135a、135b或145b或者终点节点145a、145c、145d、155a或155b)表示的公开状态。状态可以对应于信息集向量,并且信息集向量中的每个信息集包括由执行设备采取的导致该状态的动作序列。例如,如图1b所示,由公开树150中的节点表示的状态可以维护信息集向量

在一些实施例中,状态对应于公开序列,公开序列包括执行设备以及一个或多个其他设备公开已知的一个或多个动作,其轨迹从初始状态(例如,公开树的根节点)开始并以该状态结束。例如,节点155b的状态对应于公开序列(例如,公开序列[a1a,a2b,a3b,]),该公开序列包括从根节点125到节点155b,执行设备公开已知的一个或多个动作(例如,a1a和a3b)以及一个或多个其他设备的公开已知的一个或多个动作(例如a2b)。信息集向量中的每个信息集都包括公开序列。在一些实施例中,信息集向量中的每个信息集还包括沿从初始状态(例如,公开树的根节点)开始到该状态结束的轨迹上的一个或多个非公开动作(例如,由执行设备或机会采取的)。例如,在节点155b的状态下的信息集向量中的每个信息集包括公开序列[a1a,a2b,a3b,],以及相应的非公开动作(例如,机会发牌j、q、k)。

如图1b所示,利用对应的信息集向量,由表示环境的公开树的节点表示的状态与该状态下的多个可能动作相关联或相对应。例如,如公开树150中所示的节点125与该状态下导致相应的下一状态(例如,节点135a和节点135b)的多个动作(例如,动作a1a和a1b)相关联。作为另一示例,执行设备的另一状态(例如,节点145b)与该状态下导致相应的下一状态(例如,节点155a和节点155b)的多个动作(例如,动作a3a和a3b)相关联,其中节点145b是由执行设备在前一状态(例如,节点135a)下采取的前一动作a2b导致的。

在一些实施例中,例如通过读取表示环境的数据结构(例如,iig的公开树)来识别执行设备在该状态下的多个可能动作。数据结构可以在环境的每个状态下包括相应的多个可能动作。

在720处,识别该状态下的当前动作选择方针向量(例如,当前策略的向量)。在一些实施例中,该状态下的当前动作选择方针向量是当前迭代t中该状态下的动作选择方针(但是为简单起见,省略了迭代t的注释)。在一些实施例中,当前动作选择方针向量中的每个当前动作选择方针对应于信息集向量(例如,信息集向量)中的信息集。动作选择方针指定从该状态下的多个可能动作中选择一动作的相应概率。例如,动作选择方针σi1对应于该状态下的信息集向量中的ii1。如果状态是图1b中的公开树150的节点125,则动作选择方针σi1指定在当前迭代t中根据动作选择方针σi1在该状态下选择动作a1a的概率和选择动作a1b的概率。

在一些实施例中,通过在702处识别该状态下当前动作选择方针的初始向量,或者通过例如根据750,识别前一次迭代中该状态下的当前动作选择方针的更新向量,来识别当前迭代中该状态下的当前动作选择方针向量。

在730处,基于该状态下的当前动作选择方针向量来计算采样方针,其中,采样方针指定与该状态下的多个可能动作中的每个动作相对应的相应采样概率。在一些实施例中,采样方针包括在该状态下的多个动作上的概率分布。

注意,采样方针不同于动作选择方针(例如,当前动作选择方针),尽管两者都可以是在一个状态下的多个可能动作的概率分布。采样方针用于mccfr中,以确定在蒙特卡洛方法中对环境中的哪些轨迹或路径进行采样,而不是遍历环境中所有可能的轨迹或路径。采样方针被用来计算采样终点轨迹(即动作序列)的概率,其用于计算采样反事实值(也称为估计反事实值)以近似等于基于遍历环境中所有可能的轨迹或路径计算出的(实际)反事实值。

另一方面,无论是否使用采样,动作选择方针都可以是这样的策略:其指定和/或包括在该策略下从状态h下的多个可能动作中选择动作a的相应概率(例如σi(a|h)),例如,以完成任务并接近纳什均衡。可以在cfr算法的每次迭代中更新动作选择方针。在一些实施例中,cfr算法的输出可以是动作选择方针(或多次迭代的平均动作选择方针),该动作选择方针指定(根据如参照等式(2)所描述的最佳响应的策略)从iig的每个状态下的多个可能动作中选择一个动作的相应概率,使得玩家可以接近或达到纳什均衡。

在一些实施例中,在mccfr中,一旦根据采样方针采样了动作,则可以基于遗憾、cfv以及基于采样动作计算出的其他值中的一个或多个来更新动作选择方针。在一些实施例中,采样方针独立于动作选择方针,例如,在数值形式的mccfr中。在向量形式的mccfr中,一个状态下存在多个动作选择方针(例如,对应于信息集向量的动作选择方针向量)。在一些实施例中,采样方针可以独立于动作选择方针(例如,根据均匀分布或另一指定的分布)。在一些实施例中,可以基于与信息集向量相对应的多个动作选择方针来计算采样方针。

在一些实施例中,可以基于该状态下的当前动作选择方针向量来计算采样方针,例如,根据随机当前策略(rcs)、平均当前策略(mcs)、加权当前策略(wcs)、加权平均策略(was)或将采样方针与该状态下的多个当前动作选择方针相关联的任何其他方法。

在一些实施例中,基于执行设备在该状态下的当前动作选择方针向量来计算采样方针包括:例如,根据等式(13),将与该状态下的多个可能动作中的每个动作相对应的采样概率计算为在信息集向量上在该状态下的多个可能动作中的每个可动作的当前动作选择方针的平均值。

在一些实施例中,基于执行设备在该状态下的当前动作选择方针向量来计算采样方针包括:基于该状态下的多个可能动作中的每个动作的当前动作选择方针以及信息集向量的相应到达概率来计算与该状态下的多个可能动作中的每个动作对应的采样概率。在一些实施例中,基于该状态下的多个可能动作中的每个动作的当前动作选择方针以及信息集向量的相应到达概率来计算与该状态下的多个可能动作中的每个动作对应的采样概率,包括:例如,根据等式(14),基于经信息集向量的相应到达概率加权的该状态下的多个可能动作中的每个动作的当前动作选择方针的总和,计算与该状态下的多个可能动作中的每个动作相对应的采样概率。

在一些实施例中,基于执行设备在该状态下的当前动作选择方针向量来计算采样方针包括:基于该状态下的多个可能动作中的每个动作的平均动作选择方针以及信息集向量的相应到达概率来计算与该状态下的多个可能动作中的每个动作相对应的采样概率。在一些实施例中,基于该状态下的多个可能动作中的每个动作的平均动作选择方针以及信息集向量的相应到达概率来计算与该状态下的多个可能动作中的每个动作相对应的采样概率,包括:例如根据等式(15),基于经信息集向量的相应到达概率加权的该状态下的多个可能动作中的每个动作的平均动作选择方针的总和来计算与该状态下的多个可能动作中的每个动作相对应的采样概率。

在740处,根据采样方针中指定的该状态下的多个可能动作中的一个动作的采样概率,对该动作进行采样。例如,对于图1b中博弈树150的节点135a处的玩家1,采样方针可以包括对在节点135a的状态下的两个可能动作a1a和a1b中的动作a1a进行采样的采样概率(例如概率为0.3),以及对节点135a的状态下的两个可能的动作a1a和a1b中的动作a1b进行采样的采样概率(例如概率为0.7)。在节点135a处,相比于动作a1a,以更高的概率0.7对动作a1b采样。采样动作a1b可用于针对下一次迭代更新当前动作选择方针。

在750处,基于该动作(例如,上述示例中的采样动作a1b)来更新执行设备在该状态下的当前动作选择方针向量中的每个当前动作选择方针。在一些实施例中,基于该动作来更新执行设备在该状态下的当前动作选择方针向量中的每个当前动作选择方针包括:例如,根据等式(4)-(12)中的一些或全部,基于该动作执行蒙特卡洛反事实遗憾最小化(mccfr)。例如,基于该动作更新执行设备在该状态下的当前动作选择方针向量中的每个当前动作选择方针包括:基于动作的采样概率计算采样终点动作序列的概率(例如,),采样终点动作序列包括该动作和完成任务的终点状态;基于采样终点动作序列的概率计算动作的采样反事实值(如根据式(9);基于动作的采样反事实值计算动作的遗憾值(例如,根据等式(10)-(12)的部分或全部);以及基于动作的遗憾值(例如,根据基于等式(7)的遗憾匹配或遗憾匹配+)来更新执行设备在该状态下的当前动作选择方针向量中的每个。在一些实施例中,例如,根据等式(8),可以计算当前迭代之后的平均策略

在750之后,处理700可以返回到704以确定是否满足收敛条件。在一些实施例中,响应于确定满足收敛条件,基于动作选择方针来控制执行设备的操作。在一些实施例中,响应于确定满足收敛条件,可以例如根据等式(8)计算每个状态下跨所有迭代(例如,从第一迭代到当前迭代)的平均动作选择方针。在一些实施例中,平均动作选择方针可以用作处理700的输出,例如,用作计算出的纳什均衡。

在一些实施例中,动作选择方针可以用作软件实现应用的输出,以例如通过基于动作选择方针在多个可能动作中选择概率最高的动作来自动控制执行设备在每个状态下的动作。例如,环境包括交通路线规划环境,应用支持的执行设备包括计算机辅助车辆,动作选择方针包括用于控制计算机辅助车辆的方向的路线选择方针,并且根据动作选择方针控制执行设备的操作包括根据路线选择方针控制计算机辅助车辆的方向。控制计算机辅助车辆的操作可以包括控制节气门、转向、制动、导航、引擎模式中的一个或多个以实现方向、速度、在路线选择方针中指定的根据处理700生成的其他参数以完成例如,在包括共享道路的其他计算机辅助车辆的环境中到达所需目的地的任务。

图8是根据本文的实施例的用于执行蒙特卡洛反事实遗憾最小化(mccfr)以确定用于软件应用的动作选择方针的另一处理800的示例的流程图。处理800可以是利用如上所述的使用探索的混合采样方案的mccfr算法的示例。注意,处理800可以应用于数值形式mccfr、半向量形式mccfr和向量形式mccfr。在一些实施例中,例如,可以通过用处理800中的混合采样方针替换处理700中的采样方针,将处理800与处理700结合。

图8所示的示例性处理800可以被修改或重新配置为包括附加的、更少的或不同的操作,其可以以所示的顺序或以不同的顺序执行。在某些情况下,例如可以重复或迭代一个或多个操作,直到达到终止条件为止。在一些实施方式中,图8中所示的一个或多个单独操作可以被执行为多个单独的操作,或者可以将图8中所示的一个或多个操作子集组合为单个操作并作为单个操作被执行。

在一些实施例中,处理800可以以迭代的方式执行,例如,通过执行两次或更多次迭代。在一些实施例中,处理800可以用于自动控制、机器人技术或涉及动作选择的任何其他应用中。在一些实施例中,处理800可以由执行设备执行,用于生成动作选择方针(例如,策略),以在包括执行设备以及一个或多个其他设备的环境中完成任务(例如,找到纳什均衡)。在一些实施例中,生成动作选择方针可以包括处理800中的一些或全部操作,例如,通过在802处初始化动作选择方针并在850处通过迭代更新动作选择方针。执行设备可以在环境中执行处理800,以根据动作选择方针控制执行设备的操作。

在一些实施例中,执行设备可以包括位于一个或多个位置并且根据本文进行了适当编程的数据处理装置,诸如一个或多个计算机的系统。例如,经过适当编程的图10的计算机系统1000可以执行处理800。执行设备可以与执行方或玩家相关联。执行方或玩家以及一个或多个其他参与方(例如,与一个或多个其他设备相关联)可以是环境中的参与方或玩家,例如,以在执行方与一个或多个其他参与方之间的策略互动中进行策略搜索。

在一些实施例中,可以通过涉及两个或更多个玩家的不完美信息博弈(iig)对环境进行建模。在一些实施例中,处理800可以例如由应用支持的执行方执行以求解iig。iig可以表示一个或多个现实场景,例如资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理等,其中涉及两个或更多个参与方,每个参与方可能具有关于另一参与方的决策的不完美或不完全的信息。作为示例,iig可以表示至少涉及第一玩家和第二玩家的协作产品服务推荐服务。第一玩家可以是例如具有客户(或用户)信息、产品和服务信息、客户的购买历史等的在线零售商。第二玩家可以是例如具有该客户的社交网络数据的社交网络平台、拥有该客户的财务信息的银行或其他金融机构、汽车经销店或在预测和向客户推荐产品和服务时具有关于该客户的偏好、需求、财务状况、位置等的客户信息的任何其他参与方。第一玩家和第二玩家可能各自具有该玩家不想与他人共享的专有数据。第二玩家可以在不同时间向第一玩家仅提供部分信息。这样,第一玩家可能仅具有对第二玩家的信息的有限访问权。在一些实施例中,可以执行处理800以向具有第二参与方的有限信息的参与方进行推荐,从而利用有限信息规划路线。

在802处,类似于702,在第一次迭代(即,t=1迭代)中,对动作选择方针(例如,策略)初始化。在一些实施例中,动作选择方针可以包括或以其他方式指定执行设备(例如,执行处理800的执行设备的设备)从一个状态(例如,当前状态i)下的多个可能动作中选择一个动作(例如,aj)的相应概率(例如,)。当前状态是由执行设备在前一状态下采取的前一动作导致的,并且当执行设备在当前状态下时,多个可能动作中的每个动作如果被执行设备执行都导致相应的下一状态。

在一些实施例中,状态可以由博弈树的节点(例如,博弈树100的非终点节点123、127、143b或147b或者终点节点143a、153a、153b、143c、143d、147a、157a、157b、147c或147d)表示。在一些实施例中,状态可以是由公开树的节点(例如,公开树150的非终点节点125、135a、135b或145b,或者终点节点145a、145c、145d、155a或155b)表示的公开状态。

在一些实施例中,可以例如基于现有策略、均匀随机策略(例如,基于均匀概率分布的策略)或另一策略(例如,基于不同概率分布的策略)来初始化该策略。例如,如果系统从现有的cfr方法(例如,原始cfr或mccfr方法)热启动,则可以从现有策略组合中初始化迭代策略,以克隆现有的遗憾和策略。

在804处,类似于704,确定是否满足收敛条件。mccfr通常包括多次迭代。收敛条件可用于确定是继续还是终止迭代。在一些实施例中,收敛条件可以基于策略σ的可利用性。根据可利用性的定义,可利用性应大于或等于0。越小的可利用性表示越好的策略。也就是说,经过足够的迭代后,收敛策略的可利用性应该接近0。例如,在扑克中,当可利用性小于1时,时间平均策略被认为是一种好的策略,并且确定满足收敛条件。在一些实施例中,收敛条件可以基于预定次数的迭代。例如,在小型博弈中,迭代可以通过可利用性轻松确定。即,如果可利用性足够小,则处理800可以终止。在大型博弈中,可利用性很复杂,并且通常可以指定较大的迭代参数。每次迭代后,都可以获得新的策略组合,它比旧的策略组合更好。例如,在大型博弈中,处理800可以在足够次数的迭代之后终止。

如果满足收敛条件,则无需进一步迭代。处理800进行到806,并且根据动作选择方针来控制执行设备的操作。例如,可以将当前迭代中的动作选择方针或t次迭代中的平均动作选择方针作为控制命令输出,以控制方向、速度、距离或者引擎、马达、阀、致动器、加速器、制动器或自动驾驶汽车或其他应用中的其他设备的其他操作中的一个或多个。如果不满足收敛条件,则将t增加1,并且处理800进行到下一次迭代,其中t>1。

在当前迭代(例如,第t次迭代)中,在810处,识别执行设备在一个状态下的采样方针。采样方针指定对该状态下的多个可能动作中的每个动作进行采样的相应采样概率。在一些实施例中,采样方针包括在该状态下的多个可能动作上的第一概率分布。采样方针可以是关于图7描述的采样方针中的任何一个。例如,采样方针可以是均匀采样方针、随机采样方针、指定的随机方针、随机当前策略(rcs)、平均当前策略(mcs)、加权当前策略(wcs)、加权平均策略(was)或任何其他采样方针中的一个或多个。在一些实施例中,例如根据参照处理700的730所描述的示例性技术来识别执行设备在该状态下的采样方针。

在820处,识别执行设备在该状态下的探索方针。探索方针指定与该状态下的多个可能动作中的每个动作相对应的相应探索概率,其中,探索概率与在该状态下的多个可能动作中的每个动作已被采样的次数负相关。在一些实施例中,探索方针包括在该状态下的多个可能动作上的第二概率分布。

在一些实施例中,例如,通过根据等式(22)计算多个可能动作中的每个动作的探索概率,来识别执行设备在该状态下的探索方针,其中,i表示执行设备的标识(例如,与玩家i相关联);ii表示状态的信息集;a(ii)表示在该状态下的多个可能动作;a表示在该状态下的多个可能动作之一;t表示当前迭代;δct(a|ii)表示直到迭代t,在该状态下已对动作a采样的次数;以及σie,t(a|ii)表示在迭代t中,在该状态下探索动作a的探索方针;以及β是非负实数。

在830处,基于采样方针和探索方针来计算混合采样方针。在一些实施例中,基于采样方针和探索方针来计算混合采样方针包括:基于在该状态下的多个可能动作中的每个动作的采样概率与该状态下的多个可能动作中的每个动作的探索概率的加权和,计算该状态下的多个可能动作中的每个动作的概率。在一些实施例中,基于采样方针和探索方针来计算混合采样方针包括:根据等式(20),计算该状态下的多个可能动作中的每个动作的概率,其中,ii表示状态的信息集;a表示该状态下的多个可能动作之一;σise(a|ii)表示在该状态下对动作a进行采样的混合采样方针;σis(a|ii)表示在该状态下对动作a进行采样的采样方针;σie(a|ii)表示在该状态下探索动作a的探索方针;以及α∈[0,1]表示控制探索权重的因子。

在840处,根据在混合采样方针中指定的该状态下的多个可能动作中的动作的采样概率,对该动作进行采样。例如,对于图1b中博弈树150的节点135a处的玩家1,混合采样方针可以包括对节点135a的状态下的两个可能动作a1a和a1b中的动作a1a进行采样的混合采样概率(例如概率为0.2),以及对节点135a的状态下的两个可能动作a1a和a1b中的动作a1b进行采样的混合采样概率(例如概率为0.8)。在节点135a处,与动作a1a相比,可以以0.8的更高概率来对动作a1b采样。采样动作a1b可用于针对下一次迭代更新动作选择方针。

在842处,响应于根据混合采样方针对该状态下的多个可能动作中的一个动作进行采样,增加在该状态下对该动作采样的次数。在一些实施例中,在该状态下对该动作采样的次数包括直到当前迭代为止在该状态下对该动作已进行采样的次数(例如,δct(a|ii))。

在844处,减小与该状态下的多个可能动作中的该动作相对应的探索概率以计算下一次迭代(例如,第(t+1)次迭代)中的混合采样方针,使得该动作在下一次迭代中被采样的概率较低。在一些实施例中,例如根据等式(22)或其他函数,参照在该状态下对该动作已采样的次数,减小执行设备在该状态下的探索方针。

在850处,通过基于该动作来执行蒙特卡罗反事实遗憾最小化(mccfr),从而基于该动作(例如,在840中描述的示例中的采样动作alb)更新执行设备在该状态下的动作选择方针。动作选择方针指定在该状态下的多个可能动作中选择一个动作的相应概率以在环境中完成任务。动作选择方针可以是例如执行设备在该状态下的当前策略。例如,在mccfr中,一旦根据采样方针对动作进行了采样,则可以基于遗憾、cfv和其他基于采样动作计算出的值中的一个或多个来更新动作选择方针。

在一些实施例中,基于该动作来更新执行设备在该状态下的动作选择方针包括:例如根据等式(4)-(12)中的一些或全部,基于该动作来执行mccfr。例如,基于该动作来执行蒙特卡洛反事实遗憾最小化(mccfr)包括:基于该动作的混合采样概率计算采样终点动作序列的概率(例如,),该采样终点动作序列包括该动作和完成任务的终点状态;基于采样终点动作序列的概率来计算动作的采样反事实值(例如,根据等式(9));基于动作的采样反事实值来计算动作的遗憾值(例如,根据等式(10)-(12)中的一些或全部);以及基于动作的遗憾值来更新执行设备在该状态下的动作选择方针(例如,根据基于等式(8)的遗憾匹配或遗憾匹配+)。在一些实施例中,例如,根据等式(8),可以计算当前迭代之后的平均策略

在850之后,处理800可以返回到804以确定是否满足收敛条件。在一些实施例中,响应于确定满足收敛条件,基于动作选择方针来控制执行设备的操作。在一些实施例中,响应于确定满足收敛条件,可以计算每个状态下跨所有迭代(例如,从第一迭代到当前迭代)的平均动作选择方针。例如,根据等式(8)。在一些实施例中,平均动作选择方针可以用作处理800的输出,例如,用作计算出的纳什均衡。

在一些实施例中,动作选择方针可以用作软件实现应用的输出,以例如通过基于动作选择方针在多个可能动作中选择概率最高的动作来自动控制执行设备在每个状态下的动作。例如,环境包括交通路线规划环境,应用支持的执行设备包括计算机辅助车辆,动作选择方针包括用于控制计算机辅助车辆的方向的路线选择方针,并且根据动作选择方针控制执行设备的操作包括根据路线选择方针控制计算机辅助车辆的方向。

图9是根据本文的实施例的用于执行蒙特卡洛反事实遗憾最小化(mccfr)以确定用于软件应用的动作选择方针的另一处理900的示例的流程图。处理900可以是利用如上所述的使用cfv基线的方差减小的mccfr算法的示例。注意,处理900可以应用于数值形式、半向量形式和向量形式的mccfr。在一些实施例中,处理900可以与处理700和/或处理800结合以进一步改进mccfr的收敛性能。

图9所示的示例性处理900可以被修改或重新配置为包括附加的、更少的或不同的操作,其可以以所示的顺序或以不同的顺序执行。在某些情况下,例如可以重复或迭代一个或多个操作,直到达到终止条件为止。在一些实施方式中,图9中所示的一个或多个单独操作可以被执行为多个单独的操作,或者可以将图9中所示的一个或多个操作子集组合为单个操作并作为单个操作被执行。

在一些实施例中,处理900可以以迭代方式执行,例如,通过执行两次或更多次迭代。在一些实施例中,处理900可以用于自动控制、机器人技术或涉及动作选择的任何其他应用中。在一些实施例中,处理900可以由执行设备执行,用于生成动作选择方针(例如,策略),以在包括执行设备以及一个或多个其他设备的环境中完成任务(例如,找到纳什均衡)。在一些实施例中,生成动作选择方针可以包括处理900的一些或全部操作,例如,通过在902处初始化动作选择方针并在916处通过迭代更新动作选择方针。执行设备可以在环境中执行处理900,以根据动作选择方针控制执行设备的操作。

在一些实施例中,执行设备可以包括位于一个或多个位置并且根据本文进行了适当编程的数据处理装置,诸如一个或多个计算机的系统。例如,经过适当编程的图10的计算机系统1000可以执行处理900。执行设备可以与执行方或玩家相关联。执行方或玩家以及一个或多个其他参与方(例如,与一个或多个其他设备相关联)可以是环境中的参与方或玩家,例如,以在执行方与一个或多个其他参与方之间的策略互动中进行策略搜索。

在一些实施例中,可以通过涉及两个或更多个玩家的不完美信息博弈(iig)来对环境进行建模。在一些实施例中,处理900可以例如由应用支持的执行方执行以求解iig。iig可以表示一个或多个现实场景,例如资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理等,其中涉及两个或更多个玩家,每个参与方可能具有关于另一参与方的决策的不完美或不完全的信息。作为示例,iig可以表示至少涉及第一玩家和第二玩家的协作产品服务推荐服务。第一玩家可以是例如具有客户(或用户)信息、产品和服务信息、客户的购买历史等的在线零售商。第二玩家可以是例如具有该客户的社交网络数据的社交网络平台、拥有该客户的财务信息的银行或其他金融机构,汽车经销店或在预测和向客户推荐产品和服务时具有关于该客户的偏好、需求、财务状况、位置等的客户信息的任何其他参与方。第一玩家和第二玩家可能各自具有该玩家不想与他人共享的专有数据。第二玩家可以在不同时间向第一玩家仅提供部分信息。这样,第一玩家可能仅具有对第二玩家的信息的有限访问权。在一些实施例中,可以执行处理900以向具有第二参与方的有限信息的参与方进行推荐,从而利用有限信息规划路线。

在902处,类似于702,在第一次迭代(即,t=1迭代)中,对动作选择方针(例如,策略)初始化。在一些实施例中,动作选择方针可以包括或以其他方式指定执行设备(例如,执行处理900的执行设备)从一个状态(例如,当前状态i)下的多个可能动作中选择一个动作(例如,aj)的相应概率(例如,)。当前状态是由执行设备在前一状态下采取的前一动作导致的,并且当执行设备在当前状态下时,多个可能动作中的每个动作如果被执行设备执行都导致相应的下一状态。

在一些实施例中,状态可以由博弈树的节点(例如,博弈树100的非终点节点123、127、143b或147b或者终点节点143a、153a、153b、143c、143d、147a、157a、157b、147c或147d)。在一些实施例中,状态可以是由公开树的节点(例如,公开树150的非终点节点125、135a,135b或145b,或者终点节点145a、145c、145d、155a或155b)表示的公开状态。

在一些实施例中,可以例如基于现有策略、均匀随机策略(例如,基于均匀概率分布的策略)或另一策略(例如,基于不同概率分布的策略)来初始化该策略。例如,如果系统从现有的cfr方法(例如,原始cfr或mccfr方法)热启动,则可以从现有策略组合中初始化迭代策略,以克隆现有的遗憾和策略。

在904处,类似于704,确定是否满足收敛条件。mccfr通常包括多次迭代。收敛条件可用于确定是继续还是终至迭代。在一些实施例中,收敛条件可以基于策略σ的可利用性。根据可利用性的定义,可利用性应大于或等于0。越小的可利用性表示越好的策略。也就是说,经过足够的迭代后,收敛策略的可利用性应该接近0。例如,在扑克中,当可利用性小于1时,时间平均策略被认为是一种好的策略,并且确定满足收敛条件。在一些实施例中,收敛条件可以基于预定次数的迭代。例如,在小型博弈中,迭代可以通过可利用性轻松确定。即,如果可利用性足够小,则处理900可以终止。在大型博弈中,可利用性很复杂,通常可以指定较大的迭代参数。每次迭代后,都可以获得一个新的策略组合,它比旧的策略组合更好。例如,在大型博弈中,处理900可以在足够次数的迭代之后终止。

如果满足收敛条件,则无需进一步迭代。处理900进行到922,并且根据动作选择方针来控制执行设备的操作。在一些实施例中,动作选择方针包括执行设备在非终点状态下的动作选择方针。在一些实施例中,根据动作选择方针来控制执行设备的操作,包括基于非终点状态下的动作选择方针来控制执行设备在非终点状态下的操作,以用于下一次迭代。在一些实施例中,可以将当前迭代中的动作选择方针或t次迭代中的平均动作选择方针作为控制命令输出,以控制方向、速度、距离或者引擎、马达、阀、致动器、加速器、制动器或自动驾驶汽车或其他应用中的其他设备的其他操作中的一个或多个。如果不满足收敛条件,则将t增加1,并且处理900进行到下一次迭代,其中t>1。

在一些实施例中,处理900的每次迭代可以包括用于计算cfv并更新不同状态的动作选择方针的自下而上的处理。例如,处理900可以从终点状态(例如,图1a中的博弈树100的叶子节点或终点节点143a、153a、153b、143c、143d、147a、157a、157b、147c或147d开始,或者图1b中的公开树150的终点节点145a、145c、145d、155a或155b)并向上移动到初始状态(例如,图1a中的博弈树100的根节点110或图1b中的公开树150的根节点125)。

在当前迭代(例如,第t次迭代)中,在905处,例如根据等式(18)的上方等式(或第一等式),基于执行设备在终点状态下的收益以及一个或多个其他设备到达终点状态的到达概率计算执行设备在完成任务的终点状态下的反事实值(cfv)(例如,)。

终点状态(例如,图1b中的终点节点155b)是由动作序列(例如,动作序列[a1a,a2b,a3b])导致的,动作序列包括执行设备在多个非终点状态下采取的动作(例如a1a和a3b)以及一个或多个其他设备在多个非终点状态下采取的动作(例如a2b)。在一些实施例中,多个非终点状态中的每个具有一个或多个子状态。例如,非终点节点125具有两个子状态,即节点135a和135b;非终点节点135a具有两个子状态,即节点145a和145b;以及非终点节点145b具有两个子状态,即节点155a和155b。

在一些实施例中,一个或多个其他设备的到达终点状态的到达概率包括由到达终点状态的一个或多个其他设备所采取的动作的概率的乘积。例如,如果执行设备对应于玩家1,则一个或多个其他设备(例如,对应于玩家2)到达终点状态(例如,终点节点155b)的到达概率包括由到达终点状态的一个或多个其他设备所采取的动作(例如动作a2b)的概率的乘积。如果执行设备对应于玩家2,则一个或多个其他设备(例如,对应于玩家1)到达终点状态(例如,终点节点155b)的到达概率包括由到达终点状态的一个或多个其他设备所采取的动作(例如,a1a和a3b)的概率的乘积。

在906处,例如根据等式(17),基于执行设备在终点状态下的cfv和/或执行设备在前一次迭代的终点状态下的cfv基线,计算执行设备在终点状态下的经基线校正的cfv(例如,)。例如,根据等式(16),例如,基于以下计算在前一次迭代的终点状态下采取动作的执行设备的采样cfv基线(例如,):执行设备在前一次迭代的终点状态下的cfv基线、执行设备在前一次迭代的终点状态下采取动作的采样方针、以及执行设备采取的动作序列导致到达终点状态的概率。响应于确定动作被采样,例如,根据等式(17)的下方等式(或第二等式),基于执行设备在非终点状态下的cfv以及在前一次迭代的终点状态下采取动作的执行设备的采样cfv基线,计算在非终点状态下采取该动作的执行设备的经基线校正的cfv(例如,)。响应于确定未对动作进行采样,例如,根据等式(17)的上方等式(或第一等式),将在前一次迭代的终点状态下采取该动作的执行设备的采样cfv基线用作执行设备在非终点状态下的经基线校正的cfv。

在一些实施例中,对于每个非终点状态,并从具有终点状态以及一个或多个其他终点状态作为子状态的非终点状态开始,在908处,基于执行设备在非终点状态的子状态下的经基线校正的cfv的加权和计算执行设备在非终点状态下的cfv(例如,估计反事实值)。在一些实施例中,例如,根据等式(18)中下方等式(或第二等式),基于经当前迭代中非终点状态下的动作选择方针加权的执行设备在终点状态下的经基线校正的cfv以及执行设备在一个或多个其他终点状态下的对应经基线校正的cfv,计算执行设备在终点状态下的经基线校正的cfv与执行设备在一个或多个其他终点状态下的对应经基线校正的cfv的加权和。

在910处,类似于参照906描述的技术,例如根据等式(17),基于执行设备在非终点状态下的cfv和/或执行设备在前一次迭代的非终点状态下的cfv基线,计算执行设备在非终点状态下的经基线校正的cfv(例如,)。

在912处,例如根据等式(19),基于执行设备在前一次迭代的非终点状态下的cfv基线与执行设备在非终点状态下的cfv(例如)或经基线校正的cfv(例如)的加权和,计算执行设备在当前迭代的非终点状态下的cfv基线(例如)。在一些实施例中执行设备在前一次迭代的非终点状态下的cfv基线与执行设备在非终点状态下的cfv或经基线校正的cfv的加权和包括:经标量(例如(1-γ))加权的执行设备在前一次迭代的非终点状态下的cfv基线与经第二标量(例如(γ))和考虑非终点状态的概率(例如q(ii))加权的执行设备在非终点状态下的cfv或经基线校正的cfv的总和,例如根据等式(19)的下方等式(或第二等式)。

在916处,基于执行设备在当前迭代的非终点状态下的经基线校正的cfv来确定针对下一次迭代的非终点状态下的动作选择方针。在一些实施例中,每个节点的经基线校正的cfv可用于例如根据等式(10)、(12)、(7)和(8)来计算遗憾、累计遗憾、当前策略和平均策略。在一些实施例中,基于执行设备在当前迭代的非终点状态下的经基线校正的cfv,确定针对下一次迭代的非终点状态下的动作选择方针包括:基于执行设备在当前迭代的非终点状态下的经基线校正的cfv计算遗憾值(例如,根据等式(10)-(12)中的一些或全部);以及根据遗憾匹配(例如,根据基于等式(8)的遗憾匹配或遗憾匹配+),基于遗憾值确定针对下一次迭代的非终点状态下的动作选择方针。在一些实施例中,例如,根据等式(8),可以计算当前迭代之后的平均策略

在918处,确定当前状态是否是初始状态。在一些实施例中,这种确定可以用于确定是继续还是终止更新当前迭代中的状态的经基线校正的cfv。如果当前状态为初始状态,则无需进一步更新经基线校正的cfv。处理900进行到下一次迭代,即进行到904。如果当前状态不是初始状态,则该状态的前一状态或父状态(例如,博弈树或公开树中当前节点的父节点)用于替换当前状态,并且处理900返回到908以获得针对前一状态的每个动作的cfv。处理900可以如图9所示继续。

在一些实施例中,如上所述,对于处理900的每次迭代,仅终点状态将需要基于执行设备在终点状态下的收益与一个或多个其他设备到达终点状态的到达概率的乘积来计算反事实值(例如)(例如根据等式(18)的上方等式(或第一等式))。对于非终点状态,因为基线基于反事实值,而不是基于效用值,所以可以基于终点状态的反事实值的加权和和/或基线增强的反事实值的加权和来计算反事实值和/或基线增强的反事实值。因此,与例如,根据等式(4),基于玩家i的效用值矩阵和对手的范围矩阵(即对手的到达概率)计算反事实值的使用预期效用值基线的方差减小技术相比,处理900可以减少计算量并提高计算效率。在一些实施例中,反事实值基线相对于预期效用值基线所节省的计算量可以取决于表示环境或iig的博弈树或公开树中的深度和/或非终点状态的数量。

图10描绘了示出根据本文的实施例的计算机实现的用于提供与所描述的算法、方法、功能、处理、流程和程序相关联的计算功能的系统的示例的框图。图10是示出根据本公开的实施例的计算机实现的用于提供与所描述的算法、方法、功能、处理、流程和程序相关联的计算功能的系统1000的示例的框图。在所示的实施例中,系统1000包括计算机1002和网络1030。

所示的计算机1002旨在包含任何计算设备,例如服务器、台式计算机、膝上型计算机/笔记本计算机、无线数据端口、智能电话、个人数据助理(pda)、平板计算机、这些设备中的一个或多个处理器、另一计算设备或计算设备的组合,包括计算设备的物理或反事实实例、或计算设备的物理或反事实实例的组合。另外,计算机1002可以包括输入设备,例如小键盘、键盘、触摸屏,另一输入设备或可以接受用户信息的输入设备的组合,以及传达与计算机1002的操作相关联的信息的输出设备,包括图形类型的用户界面(ui)(或gui)或其他ui上的数字数据、视觉、音频、另一种类型的信息或各种类型的信息的组合。

计算机1002可以在分布式计算系统中充当客户端、网络组件、服务器、数据库的角色或另一持续性设备、另一角色或用于执行本公开中描述的主题的角色的组合。所示的计算机1002可通信地与网络1030耦接。在一些实施例中,计算机1002的一个或多个组件可以被配置为在包括基于云计算的环境、本地环境、全局环境、另一环境或环境组合的环境中操作。

在高级别上,计算机1002是可操作用于接收、发送、处理、存储或管理与所描述的主题相关联的数据和信息的电子计算设备。根据一些实施例,计算机1002还可包括服务器或与服务器可通信地耦接,包括应用服务器、电子邮件服务器、网络服务器、高速缓存服务器、流数据服务器、另一服务器或服务器的组合。

计算机1002可以通过网络1030(例如,来自另一计算机1002上执行的客户端软件应用)接收请求,并通过使用软件应用或软件应用的组合处理接收的请求来响应接收的请求。另外,还可以从内部用户(例如,从命令控制台或通过另一内部访问方法)、外部或第三方或者其他实体、个人、系统或计算机向计算机1002发送请求。

计算机1002的每个组件可以使用系统总线1003进行通信。在一些实施例中,计算机1002的任何或所有组件,包括硬件、软件或者硬件和软件的组合,可以使用应用编程接口(api)1012、服务层1013、或者api1012和服务层1013的组合通过系统总线1003进行接口连接。api1012可以包括用于例程、数据结构和对象类的规范。api1012可以是独立于计算机语言的或依赖于计算机语言的,并且是指完整的接口、单个函数或甚至一组api。服务层1013向计算机1002或可通信地耦接到计算机1002的其他组件(无论是否示出)提供软件服务。使用服务层1013的所有服务客户可访问计算机1002的功能诸如由服务层1013提供的软件服务通过定义的接口提供可重用的、定义的功能。例如,该接口可以是用以java、c++、另一种计算语言、或以可扩展标记语言(xml)格式、另一种格式或多种格式的组合提供数据的计算机语言的组合编写的软件。虽然示出为计算机1002的集成组件,但是替代实施例可以将api1012或服务层1013示出为与计算机1002的其他组件有关的独立组件或可通信地耦接到计算机1002的其他组件(无论是否示出)。此外,在不脱离本公开的范围的情况下,api1012或服务层1013的任何或所有部分可以被实现为另一软件模块、企业应用或硬件模块的子模块(achildorasub-module)。

计算机1002包括接口1004。尽管示出为单个接口1004,但是可以根据计算机1002的特定需要、期望或特定实施例使用两个或更多个接口1004。接口1004被计算机1002用来与在分布式环境中通信地链接到网络1030的另一计算系统(无论是否示出)进行通信。通常,接口1004可操作地与网络1030通信,并且包括以软件、硬件或者软件和硬件的组合编码的逻辑。更具体地说,接口1004可以包括支持与通信相关联的一个或多个通信协议的软件,以使得网络1030或接口1004的硬件可操作地在所示计算机1002之内和所示计算机1002之外通信物理信号。

计算机1002包括处理器1005。尽管示出为单个处理器1005,但是可以根据计算机1002的特定需要、期望或特定实施例使用两个或更多个处理器1005。通常,处理器1005执行指令并操纵数据以执行计算机1002的操作以及本公开中所描述的任何算法、方法、功能、处理、流程和程序。

计算机1002还包括数据库1006,该数据库1006可以保存用于计算机1002的数据、通信地链接到网络1030的另一组件(无论是否示出)的数据、或者计算机1002和另一组件的组合的数据。例如,数据库1006可以是存储与本公开一致的存储数据的内存、常规数据库或另一类型的数据库。在一些实施例中,根据计算机1002的特定需要、期望或特定实施例以及所描述的功能,数据库1006可以是两个或更多个不同数据库类型的组合(例如,混合内存和常规数据库)。尽管被示为单个数据库1006,但是可以根据计算机1002的特定需求、期望或特定实施例以及所描述的功能来使用相似或不同类型的两个或更多个数据库。尽管数据库1006被示为计算机1002的集成组件,但在替代实施例中,数据库1006可以在计算机1002的外部。作为示例,数据库1006可以包括如上所述的动作选择方针(策略)1026,例如用于计算累计和/或平均动作选择(策略)。

计算机1002还包括存储器1007,该存储器1007可以保存用于计算机1002的数据、通信地链接到网络1030的另一组件(无论是否示出)的数据、或者计算机1002和另一组件的组合的数据。存储器1007可以存储与本公开一致的任何数据。在一些实施例中,根据计算机1002的特定需要、期望或特定实施例以及所描述的功能,存储器1007可以是两种或更多种不同类型的存储器的组合(例如,半导体和磁存储设备的组合)。尽管被示为单个存储器1007,但是可以根据计算机1002的特定需求、期望或特定实施例以及所描述的功能来使用相似或不同类型的两个或更多个存储器1007。尽管存储器1007被示为计算机1002的集成组件,但在替代实施例中,存储器1007可以在计算机1002的外部。

应用1008是算法软件引擎,其提供根据计算机1002的特定需要、期望或特定实施例的功能,特别是关于本公开中描述的功能。例如,应用1008可以用作一个或多个组件、模块或应用。此外,尽管被示为单个应用1008,但是应用1008可以被实现为计算机1002上的多个应用1008。另外,尽管被示为与计算机1002集成,但是在替代实施例中,应用1008可以在计算机1002的外部。

计算机1002还可以包括电源1014。电源1014可包括可被配置为用户可更换的可充电电池或用户不可更换的不可充电电池。在一些实施例中,电源1014可以包括功率转换或管理电路(包括充电、备用或另一电源管理功能)。在一些实施例中,电源1014可以包括电源插头,以允许将计算机1002插入壁式插座或另一电源中,从而例如为计算机1002供电或为可充电电池充电。

可以存在与包含计算机1002的计算机系统关联或在其外部的任何数量的计算机1002,每个计算机1002通过网络1030进行通信。此外,在不脱离本公开的范围的情况下,术语“客户端”、“用户”或其他适当的术语可以适当地互换使用。此外,本公开预期许多用户可以使用一个计算机1002,或者一个用户可以使用多个计算机1002。

图11是根据本文的实施例的装置1100的模块的示例的图。装置1100可以是用于生成动作选择方针以在包括执行设备以及一个或多个其他设备的环境中完成任务的数据处理装置或执行设备的示例性实施例。装置1100可以对应于上述实施例,装置1100包括以下:第一识别模块1101,用于识别一个状态下的多个可能动作,其中,所述状态对应于信息集向量,并且信息集向量中的每个信息集包括由执行设备采取的导致所述状态的动作序列;第二识别模块1102,用于识别所述状态下的当前动作选择方针向量,其中,当前动作选择方针向量中的每个当前动作选择方针对应于信息集向量中的信息集,并且动作选择方针指定在所述状态下的多个可能动作中选择一个动作的相应概率;计算模块1103,用于基于所述状态下的当前动作选择方针向量,计算采样方针,其中,所述采样方针指定与所述状态下的多个可能动作中的每个动作相对应的相应采样概率;采样模块1104,用于根据所述采样方针中指定的所述状态下的多个可能动作中的一个动作的采样概率,对该动作进行采样;以及更新模块1105,用于基于该动作,更新执行设备在所述状态下的当前动作选择方针向量中的每个当前动作选择方针。

在一些实施例中,装置1100还包括以下:控制模块1106,用于响应于确定满足收敛条件而基于动作选择方针来控制执行设备的操作。

在一些实施例中,其中,基于动作更新执行设备在所述状态下的当前动作选择方针向量中的每个当前动作选择方针包括:基于动作执行蒙特卡罗反事实遗憾最小化(mccfr)。

在一些实施例中,其中,基于该动作更新执行设备在所述状态下的当前动作选择方针向量中的每个当前动作选择方针包括:基于动作的采样概率,计算采样终点动作序列的概率,采样的终点动作序列包括动作和完成任务的终点状态;基于采样的终点动作序列的概率计算动作的采样反事实值;基于动作的采样反事实值,计算动作的遗憾值;基于动作的遗憾值,更新执行设备在所述状态下的当前动作选择方针向量中的每个当前动作选择方针。

在一些实施例中,其中,所述状态对应于公开序列,所述公开序列包括执行设备以及一个或多个其他设备公开已知的一个或多个动作;并且信息集向量中的每个信息集包括公开序列。

在一些实施例中,其中,基于执行设备在所述状态下的当前动作选择方针向量来计算采样方针包括:将与所述状态下的多个可能动作中的每个动作相对应的采样概率计算为信息集向量上所述状态下的多个可能动作中的每个动作的当前动作选择方针的平均值。

在一些实施例中,其中,基于执行设备在所述状态下的当前动作选择方针向量来计算采样方针包括:基于所述状态下的多个可能动作中的每个动作的当前动作选择方针和信息集向量的相应到达概率计算与所述状态下的多个可能动作中的每个动作相对应的采样概率。

在一些实施例中,其中,基于所述状态下的多个可能动作中的每个动作的当前动作选择方针和信息集向量的相应到达概率,来计算与所述状态下的多个可能动作中的每个动作对应的采样概率包括:基于经信息集向量的相应到达概率加权的所述状态下的多个可能动作中的每个动作的当前动作选择方针的总和,计算与所述状态下的多个可能动作中的每个动作相对应的采样概率。

在一些实施例中,其中,基于执行设备在所述状态下的当前动作选择方针向量来计算采样方针包括:基于所述状态下的多个可能动作中的每个动作的平均动作选择方针和信息集向量的相应到达概率,计算与所述状态下的多个可能动作中的每个动作相对应的采样概率。

在一些实施例中,其中,基于所述状态下的多个可能动作中的每个动作的平均动作选择方针和信息集向量的相应到达概率,来计算与所述状态下的多个可能动作中的每个动作对应的采样概率包括:基于经信息集向量的相应到达概率加权的所述状态下的多个可能动作中的每个动作的平均动作选择方针之和计算与所述状态下的多个可能动作中的每个动作相对应的采样概率。

图12是根据本文的实施例的设备1200的模块的示例的图。装置1200可以是用于生成动作选择方针以在包括执行设备以及一个或多个其他设备的环境中完成任务的数据处理装置或执行设备的示例性实施例。装置1200可以对应于上述实施例,装置1200包括以下:计算模块1201,用于基于采样方针和探索方针计算执行设备在一个状态下的混合采样方针,其中,所述状态对应于多个可能动作,当执行设备在所述状态下时,所述多个可能动作如果被执行设备执行,将导致相应的下一状态,其中,采样方针指定对所述状态下的多个可能动作中的每个动作进行采样的相应采样概率,其中,所述探索方针指定与所述状态下的多个可能动作中的每个动作相对应的相应的探索概率,其中,探索概率与所述状态下的多个可能动作中的每个动作已被采样的次数负相关;采样模块1202,用于根据混合采样方针中指定的所述状态下的多个可能动作中的一个动作采样概率,对该动作进行采样;以及更新模块1203,用于通过基于所述动作执行蒙特卡罗反事实遗憾最小化(mccfr)来更新执行设备在所述状态下的动作选择方针,其中,所述动作选择方针指定从所述状态下的多个可能动作中选择一个动作的相应概率,用于在环境中完成任务。

在一些实施例中,装置1200还包括以下:控制模块1204,用于响应于确定满足收敛条件而基于动作选择方针来控制执行设备的操作。

在一些实施例中,装置1200还包括:增加模块,用于增加在所述状态下对所述动作进行采样的次数;以及减小模块,用于响应于根据混合采样方针从所述状态下的多个可能动作中对所述动作进行采样,减小与所述状态下的多个可能动作中的所述动作相对应的探索概率,用于计算下一次迭代中的混合采样方针。

在一些实施例中,其中,基于所述动作执行蒙特卡罗反事实遗憾最小化(mccfr)包括:基于动作的混合采样概率,计算采样的终点动作序列的概率,采样的终点动作序列包括动作和完成任务的终点状态;基于采样的终点动作序列的概率,计算动作的采样反事实值;基于动作的采样反事实值,计算动作的遗憾值;基于动作的遗憾值,更新执行设备在所述状态下的动作选择方针。

在一些实施例中,其中:采样方针包括所述状态下的多个可能动作上的第一概率分布,并且探索方针包括所述状态下的多个可能动作上的第二概率分布。

在一些实施例中,其中,基于采样方针和探索方针计算混合采样方针包括:基于所述状态下的多个可能动作中的每个动作的采样概率和所述状态下的多个可能动作中的每个动作的探索概率的加权和来计算所述状态下的多个可能动作中的每个动作的概率。

在一些实施例中,其中,基于采样方针和探索方针计算混合采样方针包括:根据下式计算所述状态下的多个可能动作中的每个动作的概率:

其中:ii表示状态的信息集;a表示多个可能动作之一;σise(a|ii)表示在所述状态下对动作a进行采样的混合采样方针;σis(a|ii)表示在所述状态下对动作a进行采样的采样方针;σie(a|ii)表示在所述状态下探索动作a的探索方针;以及α∈[0,1]表示控制探索权重的因子。

在一些实施例中,其中,根据下式计算所述状态下的多个可能动作中的每个动作的探索概率:

其中:i表示执行设备的标识;ii表示状态的信息集;a(ii)表示所述状态下的多个可能动作;a表示所述状态下的多个可能动作之一;t表示当前迭代;δct(a|ii)表示直到当前迭代t在所述状态下对动作a进行采样的次数;σie,t(a|ii)表示在当前迭代t中在所述状态下探索动作a的探索方针;以及β是非负实数。

图13是根据本文的实施例的装置1300的模块的示例的图。装置1300可以是用于生成动作选择方针以在包括执行设备以及一个或多个其他设备的环境中完成任务的数据处理装置或执行设备的示例性实施例。装置1300可以对应于上述实施例,并且装置1300包括以下:对于多次迭代中的当前迭代,第一计算模块1301,用于基于执行设备在终点状态下的收益以及一个或多个其他设备到达终点状态的到达概率计算执行设备在完成任务的终点状态下的反事实值(cfv),其中,终点状态是由执行设备以及一个或多个其他设备在多个非终点状态下采取的动作序列导致的,其中,多个非终点状态中的每个具有一个或多个子状态;第二计算模块1302,用于基于执行设备在终点状态下的cfv和/或执行设备在前一次迭代的终点状态下的cfv基线,计算执行设备在终点状态下的经基线校正的cfv;对于每个非终点状态,并从具有终点状态以及一个或多个其他终点状态作为子状态的非终点状态开始:第三计算模块1303,用于基于执行设备在非终点状态的子状态下的经基线校正的cfv的加权和计算执行设备在非终点状态下的cfv;第四计算模块1304,用于基于执行设备在非终点状态下的cfv和/或执行设备在前一次迭代的非终点状态下的cfv基线,计算执行设备在非终点状态下的经基线校正的cfv;第五计算模块1305,用于基于执行设备在前一次迭代的非终点状态下的cfv基线与执行设备在非终点状态下的cfv或经基线校正的cfv的加权和,计算执行设备在当前迭代的非终点状态下的cfv基线;确定模块1306,用于基于执行设备在当前迭代的非终点状态下的经基线校正的cfv,确定针对下一次迭代的非终点状态下的动作选择方针。

在一些实施例中,装置1300还包括以下:控制识别模块1307,用于响应于确定满足收敛条件,基于非终点状态下的动作选择方针控制执行设备在非终点状态下的操作,以用于下一次迭代。

在一些实施例中,其中,基于执行设备在当前迭代的非终点状态下的经基线校正的cfv来确定针对下一次迭代的非终点状态下的动作选择方针包括:基于执行设备在当前迭代的非终点状态下的经基线校正的cfv计算遗憾值;以及根据遗憾匹配,基于遗憾值确定针对下一次迭代的非终点状态下的动作选择方针。

在一些实施例中,其中,一个或多个其他设备到达终点状态的到达概率包括由到达终点状态的一个或多个其他设备采取的动作的概率的乘积。

在一些实施例中,其中,基于执行设备在非终点状态下的cfv,和/或执行设备在前一次迭代的非终点状态下的cfv基线来计算执行设备在非终点状态下的经基线校正的cfv包括,基于以下计算在前一次迭代的终点状态下采取动作的执行设备的采样cfv基线:执行设备在前一次迭代的终点状态下的cfv基线,执行设备在前一次迭代的终点状态下采取动作的采样方针,以及执行设备采取的动作序列导致到达终点状态的概率;响应于确定对所述动作进行了采样,基于执行设备在非终点状态下的cfv和在前一次迭代的终点状态下采取该动作的执行设备的采样cfv基线计算在非终点状态下采取该动作的执行设备的经基线校正的cfv;以及响应于确定未对该动作进行采样,将在前一次迭代的终点状态下采取该动作的执行设备的采样cfv基线用作执行设备在非终点状态下的经基线校正的cfv。

在一些实施例中,其中,基于经当前迭代中非终点状态下的动作选择方针加权的执行设备在终点状态下的经基线校正的cfv以及执行设备在一个或多个其他终点状态下的对应的经基线校正的cfv,计算执行设备在终点状态下的经基线校正后的cfv与执行设备在一个或多个其他终点状态下的对应的经基线校正的cfv的加权和。

在一些实施例中,其中,执行设备在前一次迭代的非终点状态下的cfv基线与执行设备在非终点状态下的cfv或经基线校正的cfv的加权和包括以下两项之和:经标量加权的执行设备在前一次迭代的非终点状态下的cfv基线;经第二标量和考虑非终点状态的概率加权的执行设备在非终点状态下的cfv或经基线校正的cfv。

在先前实施例中所示的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型实施例设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、摄像电话、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏机、平板电脑、可穿戴设备,或这些设备的任何组合。

对于装置中每个模块的功能和作用的实施过程,可以参考前述方法中相应步骤的实施过程。为了简单起见,这里省略了细节。

由于装置实施例基本上对应于方法实施例,因此对于相关部分,可以参考方法实施例中的相关描述。前面描述的装置实施例仅仅是示例。被描述为独立部分的模块可以是物理上独立的或者不是物理上独立的,显示为模块的部分可以是物理模块或者不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。部分或全部模块可基于实际需求来选择,以达到本文的解决方案的目的。本领域的普通技术人员无需创造性的努力即可理解和实现本申请的实施例。

再次参考图11-13,每个图都可以解释为示出数据处理装置或执行设备的内部功能模块和结构,该数据处理装置或执行设备用于生成动作选择方针,以在包括执行设备以及一个或多个其他设备的环境中完成任务。执行主体本质上可以是电子设备,并且电子设备包括以下:一个或多个处理器;以及被配置为存储一个或多个处理器的可执行指令的一个或多个计算机可读存储器。在一些实施例中,一个或多个计算机可读存储器耦接到一个或多个处理器,并且其上存储有编程指令,该编程指令可由一个或多个处理器执行以执行算法、方法、功能、处理、流程和过程,如本文中所述。本文还提供了一个或多个非暂时性计算机可读存储介质,其耦接到一个或多个处理器且其上存储有指令,当由一个或多个处理器执行时,所述指令使一个或多个处理器执行根据本文提供的方法的实施例的操作。

本文还提供了用于一种用于实现本文提供的方法的系统。所述系统包括一个或多个处理器,以及耦接到一个或多个处理器的计算机可读存储介质,计算机可读存储介质上存储有指令,当由一个或多个处理器执行时,所述指令使一个或多个处理器执行根据本文提供的方法的实施例的操作。

在本文中描述的主题的实施例以及动作和操作可以以数字电子电路、有形实现的计算机软件或固件、计算机硬件(包括本文中公开的结构及其结构等同物)、或者它们中的一个或多个的组合实现。本文中描述的主题的实施例可以实现为一个或多个计算机程序,例如,一个或多个计算机程序指令模块,编码在计算机程序载体上,用于由数据处理装置执行或控制数据处理装置的操作。例如,计算机程序载体可以包括具有编码在其上或者存储在其上的指令的一个或多个计算机存储介质。载体可以是有形的非暂态计算机可读介质,诸如磁盘、磁光盘或者光盘、固态驱动器、随机存储区存储器(ram)、只读存储器(rom)、或者其他类型的介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。

计算机程序,也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或演绎性语言、说明或程序性语言;它可以配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由数据通信网络互联的在一个或多个位置的一台或多台计算机。

计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。

用于执行计算机程序的处理器包括例如通用微处理器和专用微处理器以及任何种类的数字计算机的任一个或多个处理器。通常,处理器将从耦接至该处理器的非暂态计算机可读介质接收用于执行的计算机程序的指令以及数据。

术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或者多处理器或计算机。数据处理装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)、asic(专用集成电路)或gpu(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。

本文中描述的过程和逻辑流程可通过一台或多台计算机或处理器执行一个或多个计算机程序来进行,以通过对输入数据进行运算并生成输出进行操作。过程和逻辑流程也可以由例如fpga、asic、gpu等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。

适合于执行计算机程序的计算机可以基于通用或专用微处理器或者两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。

通常,计算机还将包括或可操作地耦接至一个或多个存储设备,以从一个或多个存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以是例如磁盘、磁光盘或光盘、固态驱动器、或者任何其他类型的非暂态计算机可读介质。但是,计算机不需要具有这样的设备。因此,计算机可以耦接至一个或多个存储设备,诸如本地和/或远程的一个或多个存储器。例如,计算机可以包括作为计算机的组成部件的一个或多个本地存储器,或者计算机可以耦接至处于云网络中的一个或多个远程存储器。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。

组件可以通过诸如直接或经由一个或多个中间组件彼此交互性地电连接或光学连接而彼此耦接。如果一个组件集成到另一个组件中,部件也可以耦接至彼此。例如,集成到处理器(例如,l2缓存组件)中的存储组件耦接至处理器。

为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,lcd(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)轮流发送文本消息或其他形式的消息并接收来自用户的响应消息来与用户交互。

本文使用与系统、装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。

虽然本文包含许多具体实施细节,但是这些不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文中在多个单独实施例的上下文中描述的多个特定特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。

类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些情况下,多任务并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或者打包成多个软件产品。

已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

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