CN112292698A - 确定执行设备的动作选择方针 - Google Patents

确定执行设备的动作选择方针 Download PDF

Info

Publication number
CN112292698A
CN112292698A CN201980040187.9A CN201980040187A CN112292698A CN 112292698 A CN112292698 A CN 112292698A CN 201980040187 A CN201980040187 A CN 201980040187A CN 112292698 A CN112292698 A CN 112292698A
Authority
CN
China
Prior art keywords
action
state
iteration
iterative
participant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980040187.9A
Other languages
English (en)
Other versions
CN112292698B (zh
Inventor
李辉
胡开亮
宋乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Publication of CN112292698A publication Critical patent/CN112292698A/zh
Application granted granted Critical
Publication of CN112292698B publication Critical patent/CN112292698B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/326Game play aspects of gaming systems
    • G07F17/3272Games involving multiple players
    • G07F17/3276Games involving multiple players wherein the players compete, e.g. tournament
    • G07F17/3279Games involving multiple players wherein the players compete, e.g. tournament wherein the competition is one-to-one, e.g. match
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/326Game play aspects of gaming systems
    • G07F17/3262Player actions which determine the course of the game, e.g. selecting a prize to be won, outcome to be achieved, game to be played
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3286Type of games
    • G07F17/3293Card games, e.g. poker, canasta, black jack

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了用于产生动作选择方针的执行设备的方法、系统和装置,用于在包括执行设备以及一个或多个其他设备的环境中完成任务。一种方法包括:在当前迭代中,识别在前一次迭代中执行设备在状态下的动作的迭代动作选择方针;基于在前一次迭代中的迭代动作选择方针计算在前一次迭代中的遗憾值;基于在前一次迭代中的遗憾值,而不是在前一次迭代之前的任何迭代中的任何遗憾值,计算在当前迭代中的增量动作选择方针;基于在前一次迭代中的迭代动作选择方针和在当前迭代中的增量动作选择方针计算在当前迭代中的迭代动作选择方针。

Description

确定执行设备的动作选择方针
技术领域
本文涉及确定执行设备的动作选择方针,以在包括执行设备以及一个或多个其他设备的环境中完成任务。
背景技术
求解IIG的方法具有很大的经济和社会效益。由于信息隐藏,因此玩家必须在对其对手信息不确定的情况下进行推理,并且玩家还需要采取行动以利用其对手对其自己的信息的不确定的优势。
两个或更多个参与方之间的策略交互可以通过涉及两个或更多个参与方(也称为玩家)的博弈来建模。在涉及两个或更多个玩家的不完美信息博弈(imperfectinformation games,IIG)中,玩家在做出决策之前只能部分地了解其对手。这类似于现实场景,例如贸易、交通路线规划和公开拍卖。许多现实生活场景可以表示为IIG,例如不同公司之间的商业竞争、拍卖场景中的竞标关系、欺诈方和反欺诈方之间的博弈关系。
发明内容
本文描述了用于确定执行设备的动作选择方针的技术,以在包括执行设备以及一个或多个其他设备的环境中完成任务,例如,在执行设备与一个或多个其他设备之间进行策略交互。例如,执行设备可以执行一种计算机实现的用于寻求执行设备与一个或多个其他设备之间的博弈的纳什均衡(Nash equilibrium)的方法。在一些实施例中,这些技术可以包括执行用于求解不完美信息博弈(IIG)的流式反事实遗憾最小化(CFR)算法,其可以节省存储空间,降低计算复杂性和方差,同时提高CFR算法的收敛速度。
本文还描述了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。
本文还描述了用于实现本文所述的方法的系统。该系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。
根据本文所述的方法、系统和计算机介质可以包括本文描述的各个方面和特征的任何组合。也就是说,根据本文所述的方法不限于本文具体描述的各个方面和特征的组合,而是还包括所描述的各个方面和特征的任何组合。
在附图和以下描述中阐述了本公开的一个或多个实现例的细节。根据说明书和附图以及权利要求,本文的其他特征和优点将显现。
附图说明
图1是示出根据本文的实施例的单牌扑克(one-card poker)中的部分博弈树的示例的图示。
图2A是示出原始CFR和流式CFR的工作流的示例的图示,图2B示出根据本文的实施例的流式CFR的工作流的示例。
图3是根据本文的实施例的流式CFR算法的示例的伪代码。
图4是根据本文的实施例的用于执行流式CFR以确定软件应用的动作选择方针的的处理的示例的流程图。
图5描绘了示出根据本文的实施例的计算机实现的用于提供与所述算法、方法、功能、处理、流程和进程相关联的计算功能的系统的示例的框图。
图6是根据本文的实施例的装置的模块的示例的图示。
不同的附图中相同的附图标记和名称表示相同的元件。
具体实施方式
本文描述了用于确定执行设备的动作选择方针的技术,以在包括执行设备以及一个或多个其他设备的环境中完成任务,例如,在执行设备与一个或多个其他设备之间进行策略交互。例如,执行设备可以执行一种计算机实现的用于寻求执行设备与一个或多个其他设备之间的博弈的纳什均衡的方法。在一些实施例中,这些技术可以包括执行用于求解不完美信息博弈(IIG)的流式反事实遗憾最小化(CFR)算法,其可以节省存储空间,降低计算复杂性和方差,同时提高CFR算法的收敛速度。
IIG可以表示一个或多个现实场景,诸如资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理,其中涉及两个或更多个参与方(也称为玩家),且每个参与方可以具有关于另一参与方的决策的不完全或不完美信息。
纳什均衡是涉及两个或更多个玩家的IIG的典型解法。反事实遗憾最小化(CFR)是一种旨在近似找到大型博弈的纳什均衡的算法。CFR试图最小化整体的反事实遗憾。事实证明,所有迭代中的多个策略的平均值会收敛到纳什均衡。在求解博弈时,原始形式的CFR(也称为原始CFR、标准CFR、普通CFR或简称CFR)在每次迭代中遍历整个博弈树。因此,原始CFR需要大容量存储器处理大型零和扩展式博弈,例如单挑无限注德州扑克。在某些情况下,原始CFR可能无法用有限存储器处理大型博弈。
引入蒙特卡洛CFR(Monte Carlo CFR,MCCFR)以使反事实遗憾最小化。MCCFR可以计算反事实值(counterfactual value)的无偏估计,并避免遍历整个博弈树。由于在每次迭代中仅访问所有信息集的子集,因此MCCFR所需的存储空间比原始CFR少。
可以使用结果采样(outcome sampling)算法或外部采样(external sampling)算法来执行MCCFR。MCCFR中的结果采样算法的方差大,并且难以在较少的迭代步骤中收敛到近似纳什均衡解。MCCFR中的外部采样算法的方差比结果采样算法的方差小,但该方法呈现与CFR类似的缺点。当博弈树很大时,它需要非常大的存储空间,并且不能扩展到复杂的大规模IIG。
本文公开了一种流式CFR算法。与原始CFR算法相比,在一些实施例中,流式CFR算法的空间复杂度为原始CFR算法的大约一半。在一些实施例中,流式CFR算法只需要一个表格式存储器或单个神经网络来跟踪关键信息,同时收敛到由原始CFR产生的可比较结果。所公开的流式CFR算法可以被用于大型博弈,即使在存在存储器限制的情况下。在一些实施例中,所描述的技术可被用于例如在AI扑克、推荐平台和可由涉及两个或更多个参与方的博弈建模的许多其他应用中。
在一些实施例中,具有玩家有限集合N={0,1,...,n-1}的扩展式博弈可以表示如下。定义hv i为IIG中玩家i的隐藏变量。例如,在扑克游戏中,hv i可以指玩家i的私人牌。H指的是历史的有限集合。H的每个成员
Figure BDA0002837529610000041
表示可能的历史(或状态),其包括每个玩家的隐藏变量和包括机会的玩家所采取的L个动作。对于玩家i,h也可以表示为
Figure BDA0002837529610000042
其中
Figure BDA0002837529610000043
指的是对手的隐藏变量。空序列
Figure BDA0002837529610000044
是H的成员。表达式
Figure BDA0002837529610000045
表示hj是h的前提(prefix),其中
Figure BDA0002837529610000046
且0<L’<L。
Figure BDA0002837529610000047
表示终点历史,并且任何成员z∈Z不是任何其他序列的前提。A(h)={a:ha∈H}是非终点历史h∈H\Z之后的可用动作集合。玩家函数P将N∪{c}的成员分配给每个非终点历史,其中c表示机会玩家标识符(ID),其通常可以是例如-1。P(h)是在历史h之后采取动作的玩家。
历史{h∈H:P(h)=i}的Ii是玩家i的信息分划。集合Ii∈Ii是玩家i的信息集。Ii(h)指的是状态h下的信息集Ii。在一些实施例中,Ii只能记住玩家i观察到的信息,包括玩家i的隐藏变量和公开动作。因此,Ii表示IIG中的序列,即hv ia0a1...aL-1。在一些实施例中,对于Ii∈Ii和对于任何h∈Ii,集合A(h)可以由A(Ii)表示,并且玩家P(h)由P(Ii)表示。对于每个玩家i∈N,效用函数ui(z)定义终点状态z的收益。下面将讨论这些符号和定义的更详细解释并且将包括图1中所示的示例。
图1是根据本文的实施例示出的单牌扑克中的部分博弈树102和部分博弈树104的示例的图100。单牌扑克是双玩家IIG扑克。单牌扑克是扩展式博弈的示例。游戏规则定义如下。从一副X张牌中给每个玩家发一张牌。第一玩家可以过牌或下注。如果第一玩家下注,则第二玩家可以跟注或弃牌。如果第一玩家过牌,则第二玩家可以过牌或下注。如果第二玩家下注,则第一玩家可以弃牌或跟注。游戏在两次过牌、跟注或弃牌的情况下结束。弃牌玩家将损失1个筹码。如果游戏在两次过牌的情况下结束,则牌较高的玩家赢得1个筹码。如果游戏在跟注的情况下结束,则牌较高的玩家赢得2个筹码。
博弈树是有向图。博弈树的节点表示博弈中的位置(或玩家状态),并且博弈树表示的边可以表示博弈的玩家的行动或动作。在图1中,zi表示终点节点,表示终点状态,hi表示非终点节点。部分博弈树102和104各自具有表示机会的根节点h0。在第一部分博弈树102中存在19个不同的节点,对应于左侧树中的包括机会h0的9个非终点节点hi和10个终点节点zi
在第一部分博弈树102中,如左子树中的“0:Q 1:J”所示,将(Q,J)发给两个玩家(玩家0和玩家1),以及如右子树中的“0:Q 1:K”所示,将(Q,K)发给两个玩家。
从根节点到每个节点的轨迹是动作的历史。动作由博弈树的边(用箭头表示)旁边的字母(例如,F、C、P和B)或表达式(例如,“0:Q 1:J”)表示。字母F、C、P、B分别表示弃牌、跟注、过牌和下注。
在扩展式博弈中,hi指的是动作的历史。例如,如第一部分博弈树102中所示,h3包括动作0:Q 1:J和P。h7包括动作0:Q 1:J、P和B。h8包括动作0:Q 1:K、P和B。在第一部分博弈树102中,
Figure BDA0002837529610000061
即h3是h7的前提。A(h3)={P,B}表示非终点历史h7之后的可用动作组是P和B。P(h3)=1表示在历史h3之后采取动作的玩家是玩家1。
在该IIG中,玩家1的私人牌对于玩家0是不可见的,因此对于玩家0来说h7和h8实际上是相同的。信息集可用于表示这些不可区分状态的集合。类似地,h1和h2在同一信息集中。对于右部分博弈树104,h′3和h′5在相同的信息集中;h′4和h′6在相同的信息集中。
通常,任何Ii∈I只能记住玩家i观察到的信息,包括玩家i的隐藏变量和公开动作。例如,如第一部分博弈树102中所示,h7和h8的信息集表示0:Q、P和B的序列。由于在该IIG中玩家0不区分h7和h8,如果I0是h7和h8的信息集,则I0=I0(h7)=I0(h8)。
策略分布σ={σii∈Σi,i∈N}是所有玩家策略的集合,其中Σi是玩家i的所有可能策略的集合。σ-i指的是除了玩家i之外的所有玩家的策略。对于玩家i∈N,策略σi(Ii)是函数,它将A(Ii)上的动作分布分配给信息集Ii。σi(a|h)表示在状态h由玩家i∈N∪{c}采取动作a的概率。在IIG中,如果两个或更多个状态具有相同的信息集,则这两个或更多个状态具有相同的策略。即,
Figure BDA0002837529610000062
Ii=Ii(h1)=Ii(h2),σi(Ii)=σi(h1)=σi(h2),σi(a|Ii)=σi(a|h1)=σi(a|h2)。例如,I0是h7和h8的信息集,则I0=I0(h7)=I0(h8),σ0(I0)=σ0(h7)=σ0(h8),σ0(a|I0)=σ0(a|h7)=σ0(a|h8)。在图1中,相同的阴影(灰色阴影除外)被用来表示在对应状态下设置的相同信息。
对于玩家i,策略分布σ的预期博弈效用被表示为
Figure BDA0002837529610000063
其是所有可能终点节点的预期收益。给定固定策略分布σ-i,玩家i的针对
Figure BDA0002837529610000064
实现收益最大化的任何策略
Figure BDA0002837529610000065
Figure BDA0002837529610000071
是最佳回应。对于双玩家的扩展式博弈,纳什均衡是策略分布
Figure BDA0002837529610000072
以使每个玩家的策略是对对手的最佳回应。∈-纳什均衡是纳什均衡的近似,其策略分布σ*满足:
Figure BDA0002837529610000073
Figure BDA0002837529610000074
策略σi的可利用性可以定义为
Figure BDA0002837529610000075
如果∈ii)=0,则策略是不可利用的。在像扑克这样的大型双玩家零和游戏中,
Figure BDA0002837529610000076
很难计算。然而,如果玩家交换他们的位置,则一对游戏的值为零,即
Figure BDA0002837529610000077
策略分布σ的可利用性可以定义为
Figure BDA0002837529610000078
Figure BDA0002837529610000079
对于诸如CFR的迭代方法,σt指的是第t次迭代的策略分布。如果玩家根据σ采取动作,则历史h的状态到达概率可以用πσ(h)表示。对于空序列,πσ(φ)=1。可以根据每个玩家的贡献将到达概率分解为
Figure BDA00028375296100000710
其中
Figure BDA00028375296100000711
Figure BDA00028375296100000712
信息集Ii的到达概率(也称为信息集到达概率)可以定义为
Figure BDA00028375296100000713
如果
Figure BDA00028375296100000714
从状态h'到h的间隔状态到达概率可以定义为πσ(h’,h),则πσ(h’,h)=πσ(h)/πσ(h’)。到达概率
Figure BDA00028375296100000715
Figure BDA00028375296100000716
可以被类似地定义。和
Figure BDA00028375296100000717
在大型零和IIG中,CFR被证明是用于计算纳什均衡的有效方法。可以证明,一个玩家的状态到达概率与对手的隐藏变量的后验概率成比例,即,
Figure BDA00028375296100000718
其中hv i和Ii表示特定h。
对于玩家i和策略分布σ,状态h下的反事实值(CFV)vi σ(h)可以定义为
Figure BDA00028375296100000719
其中
Figure BDA0002837529610000081
是玩家i相对于对手的隐藏变量的近似后验分布的预期奖励。于是,信息集Ii的反事实值为
Figure BDA0002837529610000082
采取动作a的动作反事实值可以表示为vi σ(a|h)=vi σ(ha),并且采取该动作的遗憾是
ri σ(a|h)=vi σ(a|h)-vi σ(h)。 (2)
类似地,信息集Ii的CFV可以定义为
Figure BDA0002837529610000083
而其动作a的CFV为
Figure BDA0002837529610000084
给定信息集Ii的动作a的遗憾可以定义为
Figure BDA0002837529610000085
其中,
Figure BDA0002837529610000086
注意,在不完美信息博弈中,
Figure BDA0002837529610000087
然后,可以根据式(4)计算动作a在T次迭代之后的累计遗憾:
Figure BDA0002837529610000088
其中Ri 0(a|Ii)=0。定义Ri T,+(a|Ii)=max(Ri T(a|Ii),0),可以例如基于遗憾匹配(RM),根据如下式(5)更新T+1迭代处的当前策略(或迭代策略或行为策略):
Figure BDA0002837529610000089
从迭代1到T的平均策略
Figure BDA00028375296100000810
可以定义为:
Figure BDA00028375296100000811
其中,
Figure BDA00028375296100000812
表示在第t次迭代时Ii的信息集到达概率,并用于对相应的当前策略
Figure BDA0002837529610000091
进行加权。
如果在迭代t中
Figure BDA0002837529610000092
被定义为附加分子,则平均策略
Figure BDA0002837529610000093
的累计分子可以定义为
Figure BDA0002837529610000094
其中S0(a|Ii)=0。
对于流式CFR,不同于原始CFR中的迭代策略
Figure BDA0002837529610000095
增量策略
Figure BDA0002837529610000096
被定义为式(8):
Figure BDA0002837529610000097
其中
Figure BDA0002837529610000098
Figure BDA0002837529610000099
是初始策略,例如,由诸如均匀随机策略分布的随机方针或其他初始化方针来初始化。
在迭代t中流式CFR的迭代策略可由式(9)定义:
Figure BDA00028375296100000910
其中,αt(Ii)是第t次迭代中Ii的学习率,且σi 0(a|Ii)=0。当t接近无穷大时,学习率αt(Ii)接近0。例如,αt(Ii)可以设置为1/t或其他值。利用式(9),可以获得下一次迭代中的迭代策略。在足够的迭代之后,由流式CFR获得的迭代策略分布
Figure BDA00028375296100000911
可以收敛到近似的纳什均衡。据证明,由式(9)定义的迭代策略分布可以在两玩家零和博弈中收敛到一组纳什均衡。
在求解博弈时,原始CFR在每次迭代中遍历整个博弈树。因此,原始CFR可能无法用有限的存储器处理大型博弈。引入蒙特卡洛CFR(MCCFR)以使反事实遗憾最小化。MCCFR可以计算反事实值的无偏估计并避免遍历整个博弈树。由于在每次迭代中仅访问所有信息集的子集,因此MCCFR所需的存储空间比原始CFR少。
例如,定义Q={Q1,Q2,...,Qm},其中Qj∈Z是每次迭代中的采样终点历史的块,使得Qj涵盖集合Z。通常,根据指定的采样方案,不同的Qj可能会重叠。可以使用几种采样方案。
图2A是示出原始CFR和流式CFR的工作流200的示例的图示,图2B示出根据本文的实施例的流式CFR的工作流205的示例。如图所示,原始CFR和流式CFR两者都可以以迭代的方式执行。图2A和图2B分别示出四次迭代,t=1、2、3或4。上标1、2、3或4表示第t次迭代。原始CFR和流式CFR可以包括更多迭代。为了简化表达式,省略
Figure BDA0002837529610000101
Figure BDA0002837529610000102
中的每个下面的下标i。
如图2B中流式CFR的工作流205所示,在第一次迭代中,t=1,例如,根据式(8),可以基于初始遗憾值
Figure BDA0002837529610000103
211来计算增量策略
Figure BDA0002837529610000104
213。例如,根据式(9),可以基于增量策略
Figure BDA0002837529610000105
213和初始迭代策略σ0(a|I)=0来计算迭代策略σ1(a|I)215。基于迭代策略σ1(a|I)215,例如,根据式(3),可以基于反事实值通过递归地遍历博弈树来计算迭代策略的更新遗憾值
Figure BDA0002837529610000106
221。
迭代策略的更新遗憾值
Figure BDA0002837529610000107
221可被用于在下一次迭代t=2中例如根据式(8)计算更新增量策略
Figure BDA0002837529610000108
223。例如,根据式(9),可以基于增量策略
Figure BDA0002837529610000109
223和第一次迭代中的迭代策略σ1(a|I)215来计算迭代策略σ2(a|I)225。类似地,基于迭代策略σ2(a|I)225,例如,根据式(3),可以基于反事实值通过递归地遍历博弈树来计算迭代策略σ2(a|I)225的更新遗憾值
Figure BDA00028375296100001010
231。
类似地,在下一次迭代中,t=3,基于更新遗憾值
Figure BDA00028375296100001011
231,例如,可以根据式(8)来计算更新增量策略
Figure BDA00028375296100001012
233。例如,根据式(9),可以基于增量策略
Figure BDA00028375296100001013
233和迭代策略σ2(a|I)225来计算迭代策略σ3(a|I)235。基于迭代策略σ3(a|I)235,例如,根据式(3),可以基于反事实值通过递归地遍历博弈树来计算迭代策略σ3(a|I)235的更新遗憾值
Figure BDA00028375296100001014
241。
在下一次迭代中,t=4,基于更新遗憾值
Figure BDA0002837529610000111
241,例如,可以根据式(8)来计算更新增量策略
Figure BDA0002837529610000112
243。例如,根据式(9),可以基于增量策略
Figure BDA0002837529610000113
244和迭代策略σ3(a|I)235来计算迭代策略σ4(a|I)245。基于迭代策略σ4(a|I)245,例如,根据式(4),可以基于反事实值通过递归地遍历博弈树来计算迭代策略σ4(a|I)245的更新遗憾值
Figure BDA0002837529610000114
(未示出)。更新遗憾值
Figure BDA0002837529610000115
可被用于计算下一次迭代的增量策略。流式CFR可以重复上述迭代,直到获得收敛。
注意,在流式CFR中,如图2B所示,当前迭代中的增量策略(例如,第T次迭代中的
Figure BDA0002837529610000116
)可以基于前一次迭代中动作的遗憾值(例如,第(T-1)次迭代中的
Figure BDA0002837529610000117
)来计算,而不是任何其他先前迭代(例如,第(T-2)次迭代、第(T-3)次迭代)中动作的任何遗憾值。而当前迭代中的迭代策略(例如,第T次迭代中的σT(a|I))可以基于第(T-1)次迭代中动作的迭代策略(例如,第(T-1)次迭代中的σT-1(a|I))和当前迭代中动作的增量策略(例如,第T次迭代中的
Figure BDA0002837529610000118
)来计算。因而,仅当前迭代中的迭代策略(例如,第T次迭代中的σT(a|I))需要被存储来计算下一次迭代中的更新迭代策略(第(T+1)次迭代中的σT+1(a|I))。这与原始CFR不同。例如,对于当前迭代(例如,第T次迭代),原始CFR基于所有t=1,2,…,T迭代中的累计遗憾
Figure BDA0002837529610000119
和平均策略进行。
如图2A中原始CFR的工作流200所示,在第一次迭代中,t=1,例如,根据式(5),可以基于初始累计遗憾R0(a|I)212来计算迭代策略σ1(a|I)214。例如,根据式(6),可以基于迭代策略σ1(a|I)214和初始平均策略σ0(a|I)=0来计算平均策略
Figure BDA00028375296100001110
210。基于迭代策略σ1(a|I)214,例如,根据式(3),可以基于反事实值通过递归地遍历博弈树来计算迭代策略的更新遗憾值
Figure BDA00028375296100001111
216。例如,根据式(4),可以基于
Figure BDA00028375296100001112
216的迭代策略和初始累计遗憾R0(a|I)212来计算动作a在第一次迭代后的更新累计遗憾R1(a|I)222。
在第二次迭代中,t=2,例如,根据式(5),可以基于更新累计遗憾R1(a|I)222来计算迭代策略σ2(a|I)224。例如,根据式(6),可以基于迭代策略σ2(a|I)224和第一次迭代中的平均策略
Figure BDA0002837529610000121
210来计算平均策略
Figure BDA0002837529610000122
220。基于迭代策略σ2(a|I)224,例如,根据式(3),可以基于反事实值通过递归地遍历博弈树来计算迭代策略的更新遗憾值
Figure BDA0002837529610000123
226。例如,根据式(4),可以基于
Figure BDA0002837529610000124
226的迭代策略和累计遗憾R1(a|I)222来计算动作a在第二次迭代之后的更新累计遗憾R2(a|I)232。
在第三次迭代中,t=3,例如,根据式(5),可以基于更新累计遗憾R2(a|I)232来计算迭代策略σ3(a|I)234。例如,根据式(6),可以基于迭代策略σ3(a|I)234和第二次迭代中的平均策略
Figure BDA0002837529610000125
220来计算平均策略
Figure BDA0002837529610000126
230。基于迭代策略σ3(a|I)234,例如,根据式(3),可以基于反事实值通过递归地遍历博弈树来计算迭代策略的更新遗憾值
Figure BDA0002837529610000127
236。例如,根据式(4),可以基于
Figure BDA0002837529610000128
236的迭代策略和累计遗憾R2(a|I)232来计算动作a在第三次迭代之后的更新累计遗憾R3(a|I)242。
在第四次迭代中,t=4,例如,根据式(5),可以基于更新累计遗憾R3(a|I)242来计算迭代策略σ4(a|I)244。例如,根据式(6),可以基于迭代策略σ4(a|I)244和第三次迭代中的平均策略
Figure BDA0002837529610000129
230来计算平均策略
Figure BDA00028375296100001210
240。基于迭代策略σ4(a|I)244,例如,根据式(3),可以基于反事实值通过递归地遍历博弈树来计算迭代策略的更新遗憾值
Figure BDA00028375296100001211
(未示出)。类似地,例如,根据式(4),可以基于
Figure BDA00028375296100001212
的迭代策略和累计遗憾R3(a|I)242来计算动作a在第四次迭代之后的更新累计遗憾R4(a|I)(未示出)。原始CFR可以重复以上迭代,直到获得收敛。
如图2A中原始CFR的工作流200所示,原始CFR需要在每次迭代中跟踪至少两个值,即,所有t=1,2,…,T迭代中的累计遗憾
Figure BDA0002837529610000131
和平均策略
Figure BDA0002837529610000132
因为原始CFR的每次迭代不仅取决于前一次迭代的遗憾和策略,而且取决于前一次迭代之前的所有迭代中的遗憾和策略。另一方面,流式CFR的每次迭代可以在不知道前一次迭代之前的任何迭代(例如,第(T-2)次迭代、第(T-3)次迭代)中的任何遗憾值或策略的情况下进行。例如,流式CFR可以仅需要存储迭代策略(例如,σ1(a|I)215、σ2(a|I)225、σ3(a|I)235、σ4(a|I)245,如图2A中的灰色块所示),而原始CFR需要存储每次迭代中的累计遗憾(例如,R0(a|I)212、R1(a|I)222、R2(a|I)232和R3(a|I)242)以及平均策略(例如,
Figure BDA0002837529610000133
210、
Figure BDA0002837529610000134
220、
Figure BDA0002837529610000135
230和
Figure BDA0002837529610000136
240,如图2B中的灰色块所示)。因而,流式CFR比原始CFR需要更少的存储空间(例如,一半的存储空间),从而提高了存储器效率。
图3是根据本文的实施例的流式CFR算法的示例的伪代码300。在一些实施例中,流式CFR算法是迭代算法。在每次迭代t中,对于玩家0和玩家1调用函数SCFR以更新增量策略
Figure BDA0002837529610000137
和迭代策略
Figure BDA0002837529610000138
分别如伪代码的第25行和第26行所示。增量策略
Figure BDA0002837529610000139
使用如伪代码300的第29行至第33行中定义的函数来CalculateStrategy更新。函数CalculateStrategy是式(8)的示例性实施方式。迭代策略
Figure BDA00028375296100001310
可根据式(9)来更新。函数SCFR返回每个信息集的反事实值作为输出,该反事实值通过递归地遍历博弈树来计算,如伪代码300的第4-27行所示。
图4是根据本文的实施例的用于执行流式反事实遗憾最小化(CFR)以确定软件应用的动作选择方针的处理的示例的流程图。处理400可以是上述关于图2-3的流式CFR算法的示例。在一些实施例中,处理400可以以迭代的方式来执行,例如,通过执行两次或更多次迭代来执行。在一些实施例中,处理400可被用于自动控制、机器人或涉及动作选择的任何其他应用中。在一些实施例中,可以执行处理400以为软件实现应用生成动作选择方针(例如,策略),该软件实现应用在包括由应用支持的执行设备以及一个或多个其他设备的环境中执行动作。动作选择方针指定选择多个可能动作中的每一个的对应概率。例如,执行设备可以在确定执行设备的动作选择方针和根据动作选择方针控制执行设备的操作时执行处理400。
在一些实施例中,动作选择方针在包括由应用支持的执行设备以及一个或多个其他设备的环境中。
在一些实施例中,处理400可以由执行设备来执行,以生成动作选择方针(例如,策略),从而在包括执行设备以及一个或多个其他设备的环境中完成任务(例如,寻找纳什均衡)。在一些实施例中,执行设备可以执行处理400以根据动作选择方针来控制执行设备的操作。
在一些实施例中,执行设备可以包括数据处理装置,诸如一个或多个计算机的系统,其位于一个或多个位置,并且根据本文适当地编程。例如,图5的计算机系统500经适当编程后可以执行处理400。该执行设备可以与执行设备或玩家相关联。执行设备或玩家以及一个或多个其他参与方(例如,与一个或多个其他设备相关联)可以是环境中的参与者或玩家,例如,用于在执行设备与一个或多个其他参与方之间的策略交互中进行策略搜索。
在一些实施例中,环境可以由涉及两个或更多个玩家的不完美信息博弈(IIG)建模。在一些实施例中,例如,处理400可以通过应用支持的执行设备来执行以求解IIG。IIG可以表示一个或多个涉及两个或更多个参与方的现实场景,诸如资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理等,各参与方可能对其他参与方的决策有不完全或不完美信息。例如,IIG可以表示至少涉及第一玩家和第二玩家的协作产品服务推荐服务。第一玩家可以是,例如,具有客户(或用户)信息、产品和服务信息、客户的购买历史等的在线零售商。第二玩家可以是,例如,具有客户的社交网络数据的社交网络平台,拥有客户的财务信息的银行或其他金融机构、汽车经销商或在预测和向该客户推荐产品和服务时可能拥有客户偏好、需求、财务状况、位置等客户信息的任何其他参与方。第一玩家和第二玩家可各自拥有该玩家不想与其他人共享的专有数据。第二玩家只能在不同时间向第一玩家提供部分信息。因此,第一玩家只能限制访问第二玩家的信息。在一些实施例中,处理400可以被执行以向具有第二参与方的有限信息的参与方作出推荐,利用有限信息计划路线。
在402,在第一次迭代(即t=1次迭代)中初始化参与方(例如,由应用支持的执行设备)在一个状态下的动作的迭代动作选择方针(例如,策略)。在一些实施例中,执行设备的状态是由参与方所采取的动作的历史导致的。
在一些实施例中,迭代策略可以被初始化,例如,基于现有策略、均匀随机策略(例如,基于均匀概率分布的策略)或其他策略(例如,基于不同概率分布的策略)。例如,如果系统从现有CFR方法(例如,原始CFR或MCCFR方法)热启动,则可以根据现有策略分布初始化迭代策略,以克隆现有遗憾和策略。
在一些实施例中,两个或更多个参与方之间的策略交互可以通过不完美信息博弈(IIG)来建模。作为示例,IIG表示包括参与方和第二参与方的协作产品服务推荐服务。该参与方对第二参与方的信息具有有限访问权。参与方的状态包括由第二参与方提供的信息的历史,参与方的动作包括响应于由第二参与方提供的信息的历史的动作,以向客户提供产品服务推荐。
在404,确定是否满足收敛条件。收敛条件可被用于确定是否继续或终止迭代。在一些实施例中,收敛条件可以基于策略σ的可利用性。根据可利用性的定义,可利用性应大于或等于0。越小的可利用性表明越好的策略。也就是,在足够的迭代之后,收敛策略的可利用性应该接近0。例如,在扑克中,当可利用性小于1时,时间平均策略被视为良好的策略,并确定收敛条件得到满足。在一些实施例中,收敛条件可以基于预定次数的迭代。例如,在小型博弈中,迭代可以由可利用性容易地确定。也就是,如果可利用性足够小,则处理400可以终止。在大型游戏中,可利用性是难以识别的,典型地,用于迭代的大参数可以被指定。在每次迭代之后,可以获得新策略分布,其优于旧策略分布。例如,在大型博弈中,处理400可以在足够次数的迭代之后终止。
如果收敛条件得到满足,则不需要进一步迭代。处理400进行至416,其中迭代策略(当前迭代中的最新策略)被输出。如果收敛条件没有得到满足,则t加1,处理400进行至下一次迭代,其中t>1。
在当前迭代(例如,第t次迭代)中,在406,在前一次迭代中参与方在该状态下的动作的迭代策略(例如,在第(t-1)次迭代中由信息集Ii表示的参与方的该状态下,动作a的迭代策略
Figure BDA0002837529610000161
)被识别。在第(t-1)次迭代中参与方在该状态下的动作的迭代策略表示在第(t-1)次迭代中参与方在该状态下采取该动作的可能性。
在408,在第(t-1)次迭代中参与方在该状态下的动作的遗憾值(例如,
Figure BDA0002837529610000162
)是基于在第(t-1)次迭代中参与方在该状态下的动作的迭代策略来计算的。在一些实施例中,执行设备在该状态下的动作的遗憾值表示执行设备在该状态下采取该动作的增益(例如,CFV)与执行设备在该状态下的增益之间的差。在一些实施例中,CFV可以通过递归地遍历表示包括由应用以及一个或多个其他参与方支持的执行设备的环境的博弈树来计算。
在一些实施例中,基于第(t-1)次迭代中参与方在该状态下的动作的迭代策略来计算第(t-1)次迭代中参与方在该状态下的动作的遗憾值包括:基于第(t-1)次迭代中参与方在该状态下的动作的迭代策略来计算第(t-1)次迭代中参与方在该状态下的动作的遗憾值,而不是第(t-1)次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值。
在一些实施例中,基于第(t-1)次迭代中参与方在该状态下的动作的迭代策略来计算第(t-1)次迭代中参与方在该状态下的动作的遗憾值包括:基于参与方在该状态下的动作的反事实值与参与方的状态的反事实值之间的差来计算第(t-1)次迭代中参与方在该状态下的动作的遗憾值(例如,根据式(3)),其中,参与方在该状态下的动作的反事实值与参与方的状态的反事实值是通过递归地遍历表示包括在第(t-1)次迭代中由应用以及一个或多个其他参与方支持的执行设备的环境的博弈树来计算的(例如,如图3中伪代码的第4-27行所示)。
在410,第t次迭代中参与方在该状态下的动作的增量策略(例如,
Figure BDA0002837529610000171
)基于第(t-1)次迭代中参与方在该状态下的动作的遗憾值来计算,而不是第(t-1)次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值。在一些实施例中,在第t次迭代中参与方在该状态下的动作的增量策略是根据式(8)基于在第(t-1)次迭代中参与方在该状态下的动作的遗憾值来计算的,而不是第(t-1)次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值。例如,在第t次迭代中参与方在该状态下的动作的增量策略是根据以下式基于在第(t-1)次迭代中参与方在该状态下的动作的遗憾值来计算的,而不是第(t-1)次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值:
Figure BDA0002837529610000172
其中,a表示动作,Ii表示参与方的状态,
Figure BDA0002837529610000173
表示在第t次迭代中参与方在该状态下的动作的增量策略,
Figure BDA0002837529610000174
表示在第(t-1)次迭代中参与方在该状态下的动作的遗憾值,
Figure BDA0002837529610000175
|A(Ii)|表示参与方在该状态下的总可用动作的数量。
在412,在第t次迭代中参与方在该状态下的动作的迭代策略基于在第(t-1)次迭代中参与方在该状态下的动作的迭代策略和在第t次迭代中参与方在该状态下的动作的增量策略的加权和来计算。例如,在第t次迭代中参与方在该状态下的动作的迭代策略是根据式(9)基于在第(t-1)次迭代中参与方在该状态下的动作的迭代策略和在第t次迭代中参与方在该状态下的动作的增量策略的加权和来计算的。在一些实施例中,在第(t-1)次迭代中参与方在该状态下的动作的迭代策略和在第t次迭代中参与方在该状态下的动作的增量策略的加权和包括:由第t次迭代中的第一学习率缩放(scale)的在第(t-1)次迭代中参与方在该状态下的动作的迭代策略和由第t次迭代中的第二学习率缩放的在第t次迭代中参与方在该状态下的动作的增量策略的总和。当t接近无穷大时,第一学习率接近1;当t接近无穷大时,第二学习率接近0。在一些实施例中,第一学习率为(t-1)/t,第二学习率为1/t。
在414,第t次迭代中参与方在该状态下的动作的迭代策略被存储,例如,用以计算第(t+1)次迭代中参与方在该状态下的动作的迭代策略。在一些实施例中,第t次迭代中参与方在该状态下的动作的迭代策略可被存储在存储器中(例如,在存储器中的表格中或者其他数据结构中)。在一些实施例中,在第t次迭代中参与方在该状态下的动作的迭代策略可以被神经网络存储。例如,神经网络可被用以学习在第t次迭代中参与方在该状态下的动作的迭代策略,例如,用以预测第(t+1)次迭代中参与方在该状态下的动作的迭代策略。在一些实施例中,相比于原始CFR,流式CFR算法只需要一半的存储大小或单个神经网络而不是双神经网络来跟踪关键信息,同时收敛到原始CFR产生的可比较结果。
在416,响应于确定收敛条件得到满足,第t次迭代中参与方在该状态下的动作的迭代策略被输出。在一些实施例中,在第t次迭代中参与方在该状态下的动作的迭代策略可以被用以近似纳什均衡并且用作CFR算法的输出。在一些实施例中,参与方在该状态下的动作的迭代策略可以包括由IIG建模的现实场景中玩家的一系列动作。例如,在协作产品服务推荐场景中,参与方在该状态下的动作的迭代策略可以包括,例如,响应于由第二玩家提供的信息的一系列动作,基于第一玩家的信息、给客户的相应产品服务推荐以及由第二玩家提供的信息。参与方在该状态下的动作的迭代策略可以包括由IIG建模的其他现实场景中的其他信息。
图5描绘了示出根据本文的实施例的计算机实现的用于提供与所描述的算法、方法、功能、处理、流程和程序相关联的计算功能的系统的示例的框图。图5是示出根据本公开的实施例的计算机实现的用于提供与所描述的算法、方法、功能、处理、流程和程序相关联的计算功能的系统500的示例的框图。在所示的实施例中,系统500包括计算机502和网络530。
所示的计算机502旨在包含任何计算设备,例如服务器、台式计算机、膝上型计算机/笔记本计算机、无线数据端口、智能电话、个人数据助理(PDA)、平板计算机、这些设备中的一个或多个处理器、另一计算设备或计算设备的组合,包括计算设备的物理或反事实实例、或计算设备的物理或反事实实例的组合。另外,计算机502可以包括输入设备,例如小键盘、键盘、触摸屏,另一输入设备或可以接受用户信息的输入设备的组合,以及传达与计算机502的操作相关联的信息的输出设备,包括图形类型的用户界面(UI)(或GUI)或其他UI上的数字数据、视觉、音频、另一种类型的信息或各种类型的信息的组合。
计算机502可以在分布式计算系统中充当客户端、网络组件、服务器、数据库的角色或另一持续性设备、另一角色或用于执行本公开中描述的主题的角色的组合。所示的计算机502可通信地与网络530耦接。在一些实施例中,计算机502的一个或多个组件可以被配置为在包括基于云计算的环境、本地环境、全局环境、另一环境或环境组合的环境中操作。
在高级别上,计算机502是可操作用于接收、发送、处理、存储或管理与所描述的主题相关联的数据和信息的电子计算设备。根据一些实施例,计算机502还可包括服务器或与服务器可通信地耦接,包括应用服务器、电子邮件服务器、网络服务器、高速缓存服务器、流数据服务器、另一服务器或服务器的组合。
计算机502可以通过网络530(例如,来自另一计算机502上执行的客户端软件应用)接收请求,并通过使用软件应用或软件应用的组合处理接收的请求来响应接收的请求。另外,还可以从内部用户(例如,从命令控制台或通过另一内部访问方法)、外部或第三方或者其他实体、个人、系统或计算机向计算机502发送请求。
计算机502的每个组件可以使用系统总线503进行通信。在一些实施例中,计算机502的任何或所有组件,包括硬件、软件或者硬件和软件的组合,可以使用应用编程接口(API)512、服务层513、或者API 512和服务层513的组合通过系统总线503进行接口连接。API 512可以包括用于例程、数据结构和对象类的规范。API 512可以是独立于计算机语言的或依赖于计算机语言的,并且是指完整的接口、单个函数或甚至一组API。服务层513向计算机502或可通信地耦接到计算机502的其他组件(无论是否示出)提供软件服务。使用服务层513的所有服务客户可访问计算机502的功能诸如由服务层513提供的软件服务通过定义的接口提供可重用的、定义的功能。例如,该接口可以是用以JAVA、C++、另一种计算语言、或以可扩展标记语言(XML)格式、另一种格式或多种格式的组合提供数据的计算机语言的组合编写的软件。虽然示出为计算机502的集成组件,但是替代实施例可以将API 512或服务层513示出为与计算机502的其他组件有关的独立组件或可通信地耦接到计算机502的其他组件(无论是否示出)。此外,在不脱离本公开的范围的情况下,API 512或服务层513的任何或所有部分可以被实现为另一软件模块、企业应用或硬件模块的子模块(a child or asub-module)。
计算机502包括接口504。尽管示出为单个接口504,但是可以根据计算机502的特定需要、期望或特定实施例使用两个或更多个接口504。接口504被计算机502用来与在分布式环境中通信地链接到网络530的另一计算系统(无论是否示出)进行通信。通常,接口504可操作地与网络530通信,并且包括以软件、硬件或者软件和硬件的组合编码的逻辑。更具体地说,接口504可以包括支持与通信相关联的一个或多个通信协议的软件,以使得网络530或接口504的硬件可操作地在所示计算机502之内和所示计算机502之外通信物理信号。
计算机502包括处理器505。尽管示出为单个处理器505,但是可以根据计算机502的特定需要、期望或特定实施例使用两个或更多个处理器505。通常,处理器505执行指令并操纵数据以执行计算机502的操作以及本公开中所描述的任何算法、方法、功能、处理、流程和程序。
计算机502还包括数据库506,该数据库506可以保存用于计算机502的数据、通信地链接到网络530的另一组件(无论是否示出)的数据、或者计算机502和另一组件的组合的数据。例如,数据库506可以是存储与本公开一致的存储数据的内存、常规数据库或另一类型的数据库。在一些实施例中,根据计算机502的特定需要、期望或特定实施例以及所描述的功能,数据库506可以是两个或更多个不同数据库类型的组合(例如,混合内存和常规数据库)。尽管被示为单个数据库506,但是可以根据计算机502的特定需求、期望或特定实施例以及所描述的功能来使用相似或不同类型的两个或更多个数据库。尽管数据库506被示为计算机502的集成组件,但在替代实施例中,数据库506可以在计算机502的外部。作为示例,数据库506可以包括存储流式CFR算法的迭代策略的上述存储空间516。
计算机502还包括存储器507,该存储器507可以保存用于计算机502的数据、通信地链接到网络530的另一组件(无论是否示出)的数据、或者计算机502和另一组件的组合的数据。存储器507可以存储与本公开一致的任何数据。在一些实施例中,根据计算机502的特定需要、期望或特定实施例以及所描述的功能,存储器507可以是两种或更多种不同类型的存储器的组合(例如,半导体和磁存储设备的组合)。尽管被示为单个存储器507,但是可以根据计算机502的特定需求、期望或特定实施例以及所描述的功能来使用相似或不同类型的两个或更多个存储器507。尽管存储器507被示为计算机502的集成组件,但在替代实施例中,存储器507可以在计算机502的外部。
应用508是算法软件引擎,其提供根据计算机502的特定需要、期望或特定实施例的功能,特别是关于本公开中描述的功能。例如,应用508可以用作一个或多个组件、模块或应用。此外,尽管被示为单个应用508,但是应用508可以被实现为计算机502上的多个应用508。另外,尽管被示为与计算机502集成,但是在替代实施例中,应用508可以在计算机502的外部。
计算机502还可以包括电源514。电源514可包括可被配置为用户可更换的可充电电池或用户不可更换的不可充电电池。在一些实施例中,电源514可以包括功率转换或管理电路(包括充电、备用或另一电源管理功能)。在一些实施例中,电源514可以包括电源插头,以允许将计算机502插入壁式插座或另一电源中,从而例如为计算机502供电或为可充电电池充电。
可以存在与包含计算机502的计算机系统关联或在其外部的任何数量的计算机502,每个计算机502通过网络530进行通信。此外,在不脱离本公开的范围的情况下,术语“客户端”、“用户”或其他适当的术语可以适当地互换使用。此外,本公开预期许多用户可以使用一个计算机502,或者一个用户可以使用多个计算机502。
图6是根据本文的实施例的装置600的模块示例的图示。在一些实施例中,装置600可以为软件实现应用生成动作选择方针,该软件实现应用在包括由应用支持的执行设备以及一个或多个其他参与方的环境中执行动作。例如,装置600可以执行用于软件实现应用的计算机实现方法,以生成软件实现应用来生成要在环境中执行的可操作输出,其中,该环境包括由应用支持的应用方以及一个或多个其他参与方。在一些实施例中,该方法用表示不完美信息博弈(IIG)的数据来表示环境、参与方的可能动作以及应用可获得的关于其他参与方的不完美信息,其中,应用通过以迭代的方式(例如,通过执行两次或更多次迭代)执行反事实遗憾最小化(CFR)以在参与方之间的策略交互中进行动作选择方针搜索来确定可操作输出。
装置600可以对应于上述实施例,装置600包括以下:识别模块601,在多次迭代中的每一次以及对于当前迭代中执行设备在一个状态下的多个可能动作中的每一个动作,其中,执行设备的状态是由执行设备所采取的动作的历史导致的,用于识别在前一次迭代中参与方在一个状态下的动作的迭代动作选择方针,其中,在前一次迭代中参与方在该状态下的动作的迭代动作选择方针表示在前一次迭代中参与方在该状态下采取该动作的概率;第一计算模块602,用于基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针来计算在前一次迭代中参与方在该状态下的动作的遗憾值,其中,执行设备在该状态下的动作的遗憾值表示在该状态下采取该动作后执行设备的增益与执行设备在该状态下的增益之间的差;第二计算模块603,用于基于在前一次迭代中参与方在该状态下的动作的遗憾值,而不是在前一次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值,计算当前迭代中参与方在该状态下的动作的增量动作选择方针;第三计算模块604,用于基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针和在当前迭代中参与方在该状态下的动作的增量动作选择方针的加权和,计算在当前迭代中参与方在该状态下的动作的迭代动作选择方针;以及存储模块605,用于存储在当前迭代中参与方在该状态下的动作的迭代动作选择方针。
在可选实施例中,IIG表示涉及参与方和第二参与方的协作产品服务推荐服务,其中,该参与方对第二参与方的信息具有有限访问权,其中,该参与方的状态包括由第二参与方提供的信息的历史,该参与方的动作包括响应于第二参与方提供的信息的历史的动作,以向客户提供产品服务推荐。
在可选实施例中,装置600还包括:确定模块606,用于确定是否满足收敛条件;以及输出模块607,响应于确定满足收敛条件,输出当前迭代中参与方在该状态下的动作的迭代动作选择方针。
在可选实施例中,基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针来计算在前一次迭代中参与方在该状态下的动作的遗憾值包括:基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针来计算在前一次迭代中参与方在该状态下的动作的遗憾值,而不是在前一次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值。
在可选实施例中,基于在前一次迭代中在参与方在该状态下的动作的迭代动作选择方针来计算在前一次迭代中参与方在该状态下的动作的遗憾值包括:基于参与方在该状态下的动作的反事实值与该参与方的状态的反事实值之间的差,计算在前一次迭代中参与方在该状态下的动作的遗憾值,其中,参与方在该状态下的动作的反事实值和该参与方的状态的反事实值是通过递归地遍历表示包括在前一次迭代中由应用支持的执行设备以及一个或多个其他参与方的环境的博弈树来计算的。
在可选实施例中,在前一次迭代中参与方在该状态下的动作的迭代动作选择方针和在当前迭代中参与方在该状态下的动作的增量动作选择方针的加权和包括:由当前迭代中的第一学习率缩放的在前一次迭代中参与方在该状态下的动作的迭代动作选择方针和由当前迭代中的第二学习率缩放的在当前迭代中参与方在该状态下的动作的增量动作选择方针的和,其中,在迭代次数t接近无穷大时,第一学习率接近1,当t接近无穷大时,第二学习率接近0。
在可选实施例中,第一学习率为(t-1)/t,而第二学习率为1/t。
在可选实施例中,在当前迭代中参与方在该状态下的动作的增量动作选择方针是根据以下式基于在前一次迭代中参与方在该状态下的动作的遗憾值,而不是在前一次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值来计算:
Figure BDA0002837529610000251
其中,a表示动作,Ii表示参与方的状态,
Figure BDA0002837529610000252
表示在当前迭代中参与方在该状态下的动作的增量动作选择方针,
Figure BDA0002837529610000253
表示在前一次迭代中参与方在该状态下的动作的遗憾值,
Figure BDA0002837529610000254
|A(Ii)|表示参与方在该状态下的总可用动作的数量。
在可选实施例中,装置600还包括:初始化模块608,用于基于均匀随机动作选择方针来在第一次迭代中初始化参与方在该状态下的动作的迭代动作选择方针。
在先前实施例中所示的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型实施例设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、摄像电话、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏机、平板电脑、可穿戴设备,或这些设备的任何组合。
对于装置中每个模块的功能和作用的实施过程,可以参考前述方法中相应步骤的实施过程。为了简单起见,这里省略了细节。
由于装置实施例基本上对应于方法实施例,因此对于相关部分,可以参考方法实施例中的相关描述。前面描述的装置实施例仅仅是示例。被描述为独立部分的模块可以是物理上独立的或者不是物理上独立的,显示为模块的部分可以是物理模块或者不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。部分或全部模块可基于实际需求来选择,以达到本文的解决方案的目的。本领域的普通技术人员无需创造性的努力即可理解和实现本申请的实施例。
再次参考图6,图6可被解释为示出数据处理装置的内部功能模块和结构,该数据处理装置用于为软件实现应用生成动作选择方针,该软件实现应用在包括由应用支持的执行设备以及一个或多个其他参与方的环境中执行动作。在一些实施例中,数据处理装置可被用于在两个或更多个玩家之间的策略交互中执行用于动作选择方针搜索的反事实遗憾最小化(CFR)。在一些实施例中,两个或更多个玩家之间的策略交互可以由包含两个或更多个玩家的不完美信息博弈(IIG)来建模。在一些实施例中,数据处理装置可以执行用于软件实现应用的计算机实现方法,以生成要在环境中执行的可操作输出,其中该环境包括由应用支持的应用方以及一个或多个其他参与方,该方法利用表示不完美信息博弈(IIG)的数据来表示环境、参与方的可能动作、以及应用可获得的关于其他参与方的不完美信息,其中应用通过以迭代方式执行反事实遗憾最小化(CFR)以在参与方之间的策略交互中进行策略搜索来确定可操作输出。执行主体本质上可以是电子设备,电子设备包括以下:一个或多个处理器以及存储器,该存储器被配置成存储一个或多个处理器的可执行指令。
一个或多个处理器被配置成,在多次迭代中的每一次以及对于在当前迭代中执行设备在一个状态下的多个可能动作中的每一个动作,其中,执行设备的状态是由执行设备采取的动作的历史导致的,识别在前一次迭代中参与方在一个状态下的动作的迭代动作选择方针,其中,在前一次迭代中参与方在一个状态下的动作的迭代动作选择方针表示在前一次迭代中参与方在该状态下采取该动作的概率;基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针,计算在前一次迭代中参与方在该状态下的动作的遗憾值,其中,执行设备在该状态下的动作的遗憾值表示执行设备在该状态下采取该动作后的增益与执行设备在该状态下的增益之间的差;基于在前一次迭代中参与方在该状态下的动作的遗憾值,而不是在前一次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值,计算在当前迭代中参与方在该状态下的动作的增量动作选择方针;基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针和在当前迭代中参与方在该状态下的动作的增量动作选择方针的加权和,计算在当前迭代中参与方在该状态下的动作的迭代动作选择方针;以及存储在当前迭代中参与方在该状态下的动作的迭代动作选择方针。
可选地,IIG表示涉及参与方和第二参与方的协作产品服务推荐服务,其中,该参与方对第二参与方的信息具有有限访问权,其中,该参与方的状态包括由第二参与方提供的信息的历史,该参与方的动作包括响应于由第二参与方提供的信息历史的动作,以向客户提供产品服务推荐。
可选地,一个或多个处理器被配置为,响应于确定满足收敛条件,输出在当前迭代中参与方在该状态下的该动作的迭代动作选择方针。
可选地,基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针计算在前一次迭代中参与方在该状态下的动作的遗憾值包括:基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针,计算在前一次迭代中参与方在该状态下的动作的遗憾值,而不是在前一次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值。
可选地,基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针计算在前一次迭代中参与方在该状态下的动作的遗憾值包括:基于参与方在该状态下的动作的反事实值与参与方的状态的反事实值之间的差来计算在前一次迭代中参与方在该状态下的动作的遗憾值,其中,参与方在该状态下的动作的反事实值和参与方的状态的反事实值是通过递归地遍历表示包括在前一次迭代中由应用支持的执行设备以及一个或多个其他参与方的环境的博弈树来计算的。
可选地,在前一次迭代中参与方在该状态下的动作的迭代动作选择方针和在当前迭代中参与方在该状态下的动作的增量动作选择方针的加权和包括:由当前迭代中的第一学习率缩放的在前一次迭代中参与方在该状态下的动作的迭代动作选择方针和由当前迭代中的第二学习率缩放的在当前迭代中参与方在该状态下的动作的增量动作选择方针的和,其中,在迭代次数t接近无穷大时,第一学习率接近1,当t接近无穷大时,第二学习率接近0。
可选地,第一学习率为(t-1)/t,第二学习率为1/t。
可选地,在当前迭代中参与方在该状态下的动作的增量动作选择方针是根据以下式基于在前一次迭代中参与方在该状态下的动作的遗憾值,而不是在前一次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值来计算:
Figure BDA0002837529610000281
其中,a表示动作,Ii表示参与方的状态,
Figure BDA0002837529610000282
表示在当前迭代中参与方在该状态下的动作的增量动作选择方针,
Figure BDA0002837529610000283
表示在前一次迭代中参与方在该状态下的动作的遗憾值,
Figure BDA0002837529610000284
|A(Ii)|表示参与方在该状态下的总可用动作的数量。
可选地,一个或多个处理器被配置为,基于均匀随机动作选择方针来在第一次迭代中初始化参与方在该状态下的动作的迭代动作选择方针。
本文中描述的技术产生一种或多种技术效果。在一些实施例中,所描述的技术可以由执行设备执行,以生成动作选择方针,从而在包括执行设备以及一个或多个其他设备的环境中完成任务。在一些实施例中,所描述的技术可以确定软件实现应用的动作选择方针,该软件实现应用在包括由应用支持的执行设备以及一个或多个其他参与方的环境中执行动作。在一些实施例中,所描述的技术可被用于自动控制、机器人或涉及动作选择的任何其他应用中。
在一些实施例中,所描述的采样技术可以帮助以更有效的方式找到例如资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理等的现实场景的更好策略,所述策略可以由各参与方之间的策略交互(例如,涉及两个或更多个参与方的IIG)来建模或表示。在一些实施例中,所描述的技术可以提高反事实遗憾最小化(CFR)算法在寻找纳什(Nash)均衡以求解代表一个或多个现实场景的博弈时的收敛速度。在一些实施例中,所描述的技术可以在CFR算法寻找由IIG建模的现实场景的最佳策略时提高计算效率并减少计算量,例如,在针对CFR算法的每次迭代更新动作选择方针和遗憾值时,通过使用增量动作选择方针,而不是累计遗憾或平均动作。在一些实施例中,所描述的技术节省存储空间并提供更快的收敛。在一些实施例中,所描述的技术可以仅是现有CFR算法所需的存储空间的量的一半,同时收敛到由原始CFR产生的可比较结果。公开的流式CFR算法可以被用于大型博弈,即使有存储限制。
所描述的主题的实施例可以单独地或组合地包括一个或多个特征。
例如,在第一实施例中,一种用于软件实现应用的计算机实现方法,以生成在环境中执行的可操作输出,其中,该环境包括由该应用支持的应用参与方以及一个或多个其他参与方,该方法用表示不完美信息博弈(IIG)的数据来表示该环境、参与方的可能动作以及应用可获得的关于其他参与方的不完美信息,其中,应用通过以迭代方式执行反事实遗憾最小化(CFR)以在参与方之间的策略交互中进行策略搜索来确定可操作输出,其中,执行CFR包括:执行两次或更多次迭代;以及在第t次迭代中,其中t>1;识别在第(t-1)次迭代中参与方在一个状态下的动作的迭代策略,其中,在第(t-1)次迭代中参与方在该状态下的动作的迭代策略表示在第(t-1)次迭代中参与方在该状态下采取该动作的概率;基于在第(t-1)次迭代中参与方在该状态下的动作的迭代策略,计算在第(t-1)次迭代中参与方在该状态下的动作的遗憾值;基于在第(t-1)次迭代中参与方在该状态下的动作的遗憾值,而不是在第(t-1)次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值,计算在第t次迭代中参与方在该状态下的动作的增量策略;基于在第(t-1)次迭代中参与方在该状态下的动作的迭代策略和在第t次迭代中参与方在该状态下的动作的增量策略的加权和,计算在第t次迭代中参与方在该状态下的动作的迭代策略;以及存储在第t次迭代中参与方在该状态下的动作的迭代策略。
在第二实施例中,一种执行设备的计算机实现方法,用于生成动作选择方针,以在包括执行设备以及一个或多个其他设备的环境中完成任务,该方法包括:在多个迭代中的每一次以及对于当前迭代中执行设备在该状态下的多个可能动作中的每一个动作,其中,执行设备的状态是由执行设备所采取的动作的历史导致的,识别在前一次迭代中执行设备在该状态下的动作的迭代动作选择方针,其中,在前一次迭代中执行设备在该状态下的动作的迭代动作选择方针表示在前一次迭代中执行设备在该状态下采取该动作的概率;基于在前一次迭代中执行设备的在该状态下的动作的迭代动作选择方针,计算在前一次迭代中执行设备在该状态下的动作的遗憾值,其中,在执行设备在该状态下的动作的遗憾值表示执行设备在该状态下采取该动作之后的增益与执行设备在该状态下的增益之间的差;基于在前一次迭代中执行设备在该状态下的动作的遗憾值,而不是在前一次迭代之前的任何迭代中执行设备在该状态下的动作的任何遗憾值,计算在当前迭代中执行设备在该状态下的动作的增量动作选择方针;基于在前一次迭代中执行设备在该状态下的动作的迭代动作选择方针和在当前迭代中执行设备在该状态下的动作的增量动作选择方针的加权和,计算在当前迭代中执行设备在该状态下的动作的迭代动作选择方针;以及存储在当前迭代中执行设备在该状态下的动作的迭代动作选择方针。
上述和其他所描述的实施例可以各自可选地包括一个或多个以下特征:
第一特征,与以下特征中的任一个特征可组合的,其中,IIG表示涉及参与方和第二参与方的协作产品服务推荐服务,其中,该参与方对第二参与方的信息具有有限访问权,其中,该参与方的状态包括由第二参与方提供的信息的历史,该参与方的动作包括响应于第二参与方提供的信息的历史的动作,以向客户提供产品服务推荐。
第二特征,与以下特征中的任一特征可组合的,还包括:响应于确定收敛条件得到满足,输出在当前迭代中参与方在该状态下的动作的迭代动作选择方针。
第三特征,与以下特征中的任一特征可组合的,其中,基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针计算在前一次迭代中参与方在该状态下的动作的遗憾值包括:基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针,计算在前一次迭代中参与方在该状态下的动作的遗憾值,而不是在前一次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值。
第四特征,与以下特征中的任一特征可组合的,其中,基于在前一次迭代中参与方在该状态下的动作的迭代动作选择方针计算在前一次迭代中参与方在该状态下的动作的遗憾值包括:基于参与方在该状态下的动作的反事实值与参与方的状态的反事实值之间的差,计算在前一次迭代中参与方在该状态下的动作的遗憾值,其中,参与方在该状态下的动作的反事实值和参与方的状态的反事实值是通过递归地遍历表示包括在前一次迭代中由应用支持的执行设备以及一个或多个其他参与方的环境的博弈树来计算。
第五特征,与以下特征中的任一特征可组合的,其中,在前一次迭代中参与方在该状态下的动作的迭代动作选择方针和在当前迭代中参与方在该状态下的动作的增量动作选择方针的加权和包括:由当前迭代中的第一学习率缩放的在前一次迭代中参与方在该状态下的动作的迭代动作选择方针和由当前迭代中的第二学习率缩放的在当前迭代中参与方在该状态下的动作的增量动作选择方针的和,其中,在迭代次数t接近无穷大时,第一学习率接近1,当t接近无穷大时,第二学习率接近0。
第六特征,与以下特征中的任一特征可组合的,其中,第一学习率为(t-1)/t,而第二学习率为1/t。
第七特征,与以下特征中的任一特征可组合的,在当前迭代中参与方在该状态下的动作的增量动作选择方针是根据以下式基于在前一次迭代中参与方在该状态下的动作的遗憾值,而不是在前一次迭代之前的任何迭代中参与方在该状态下的动作的任何遗憾值来计算:
Figure BDA0002837529610000321
其中,a表示动作,Ii表示参与方的状态,
Figure BDA0002837529610000322
表示在当前迭代中参与方在该状态下的动作的增量动作选择方针,
Figure BDA0002837529610000323
表示在前一次迭代中参与方在该状态下的动作的遗憾值,
Figure BDA0002837529610000324
Figure BDA0002837529610000325
|A(Ii)|表示参与方在该状态下的总可用动作的数量。
第八特征,与以下特征中的任一特征可组合的,还包括:基于均匀随机动作选择方针,在第一次迭代中初始化参与方在该状态下的动作的迭代动作选择方针。
第九特征,与以下特征中的任一特征可组合的,还包括,响应于确定满足收敛条件,根据在当前迭代中执行设备在该状态下的动作的迭代动作选择方针,控制执行设备的操作。
在本文中描述的主题的实施例以及动作和操作可以以数字电子电路、有形实现的计算机软件或固件、计算机硬件(包括本文中公开的结构及其结构等同物)、或者它们中的一个或多个的组合实现。本文中描述的主题的实施例可以实现为一个或多个计算机程序,例如,一个或多个计算机程序指令模块,编码在计算机程序载体上,用于由数据处理装置执行或控制数据处理装置的操作。例如,计算机程序载体可以包括具有编码在其上或者存储在其上的指令的一个或多个计算机存储介质。载体可以是有形的非暂态计算机可读介质,诸如磁盘、磁光盘或者光盘、固态驱动器、随机存储区存储器(RAM)、只读存储器(ROM)、或者其他类型的介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
计算机程序,也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或演绎性语言、说明或程序性语言;它可以配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由数据通信网络互联的在一个或多个位置的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。
用于执行计算机程序的处理器包括例如通用微处理器和专用微处理器以及任何种类的数字计算机的任一个或多个处理器。通常,处理器将从耦接至该处理器的非暂态计算机可读介质接收用于执行的计算机程序的指令以及数据。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或者多处理器或计算机。数据处理装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
本文中描述的过程和逻辑流程可通过一台或多台计算机或处理器执行一个或多个计算机程序来进行,以通过对输入数据进行运算并生成输出进行操作。过程和逻辑流程也可以由例如FPGA、ASIC、GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用或专用微处理器或者两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个存储设备,以从一个或多个存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以是例如磁盘、磁光盘或光盘、固态驱动器、或者任何其他类型的非暂态计算机可读介质。但是,计算机不需要具有这样的设备。因此,计算机可以耦接至一个或多个存储设备,诸如本地和/或远程的一个或多个存储器。例如,计算机可以包括作为计算机的组成部件的一个或多个本地存储器,或者计算机可以耦接至处于云网络中的一个或多个远程存储器。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
组件可以通过诸如直接或经由一个或多个中间组件彼此交互性地电连接或光学连接而彼此耦接。如果一个组件集成到另一个组件中,部件也可以耦接至彼此。例如,集成到处理器(例如,L2缓存组件)中的存储组件耦接至处理器。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)轮流发送文本消息或其他形式的消息并接收来自用户的响应消息来与用户交互。
本文使用与系统、装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包含许多具体实施细节,但是这些不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文中在多个单独实施例的上下文中描述的多个特定特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些情况下,多任务并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或者打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

Claims (9)

1.一种执行设备的计算机实现方法,用于产生动作选择方针,以在包括所述执行设备以及一个或多个其他设备的环境中完成任务,所述方法包括:
在多次迭代中的每一次以及对于当前迭代中所述执行设备在一种状态下的多个可能动作中的每一个动作,其中,所述执行设备的所述状态是由所述执行设备所采取的所述动作的历史导致的,
识别在前一次迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针,其中,在所述前一次迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针表示在所述前一次迭代中所述执行设备在所述状态下采取所述动作的概率;
基于在所述前一次迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针,计算在所述前一次迭代中所述执行设备在所述状态下的所述动作的遗憾值,其中,所述执行设备在所述状态下的所述动作的遗憾值表示所述执行设备在所述状态下采取所述动作之后的增益与所述执行设备在所述状态下的增益之间的差;
基于在所述前一次迭代中所述执行设备在所述状态下的所述动作的遗憾值,而不是在所述前一次迭代之前的任何迭代中所述执行设备在所述状态下的所述动作的任何遗憾值,计算在所述当前迭代中所述执行设备在所述状态下的所述动作的增量动作选择方针;
基于在所述前一次迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针和在所述当前迭代中所述执行设备在所述状态下的所述动作的增量动作选择方针的加权和,计算在所述当前迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针;以及
存储在所述当前迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针。
2.根据权利要求1所述的方法,还包括,响应于确定满足收敛条件,根据在所述当前迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针,控制所述执行设备的操作。
3.根据任一前述权利要求的方法,其中,基于在所述前一次迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针,计算在所述前一次迭代中所述执行设备在所述状态下的所述动作的遗憾值包括:基于在所述前一次迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针,计算在所述前一次迭代中所述执行设备在所述状态下的所述动作的遗憾值,而不是在所述前一次迭代之前的任何迭代中所述执行设备在所述状态下的所述动作的任何遗憾值。
4.根据任一前述权利要求的方法,其中,基于在所述前一次迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针,计算在所述前一次迭代中所述执行设备在所述状态下的所述动作的遗憾值包括:基于所述执行设备在所述状态下的所述动作的反事实值与所述执行设备的所述状态的反事实值之间的差,计算在所述前一次迭代中所述执行设备在所述状态下的所述动作的遗憾值,其中,所述执行设备在所述状态下的所述动作的反事实值和所述执行设备的所述状态的反事实值是通过递归地遍历表示包括在所述前一次迭代中由应用支持的所述执行设备以及一个或多个其他设备的环境的博弈树来计算的。
5.根据任一前述权利要求的方法,其中,在所述前一次迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针和在所述当前迭代中所述执行设备在所述状态下的所述动作的增量动作选择方针的加权和包括:
由所述当前迭代中的第一学习率缩放的在所述前一次迭代中所述执行设备在所述状态下的所述动作的迭代动作选择方针和由所述当前迭代中的第二学习率缩放的在所述当前迭代中所述执行设备在所述状态下的所述动作的增量动作选择方针的和,其中,在迭代次数t接近无穷大时,所述第一学习率接近1,当t接近无穷大时,所述第二学习率接近0。
6.根据权利要求5所述的方法,其中,所述第一学习率为(t-1)/t,而所述第二学习率为1/t。
7.根据任一前述权利要求所述的方法,还包括:基于均匀随机动作选择方针,在第一次迭代中初始化所述执行设备在所述状态下的所述动作的迭代动作选择方针。
8.一种用于产生动作选择方针的系统,用于在包括执行设备以及一个或多个其他设备的环境中完成任务,所述系统包括:
一个或多个处理器;以及
一个或多个计算机可读存储器,耦接至所述一个或多个处理器,并且其上存储有指令,所述指令能够由所述一个或多个处理器执行以执行权利要求1-7中的任一项所述的方法。
9.一种用于产生动作选择方针的装置,用于在包括执行设备以及一个或多个其他设备的环境中完成任务,所述装置包括用于执行权利要求1-7中的任一项所述的方法的多个模块。
CN201980040187.9A 2019-05-15 2019-05-15 确定执行设备的动作选择方针的方法和装置 Active CN112292698B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/086975 WO2020227954A1 (en) 2019-05-15 2019-05-15 Determining action selection policies of an execution device

Publications (2)

Publication Number Publication Date
CN112292698A true CN112292698A (zh) 2021-01-29
CN112292698B CN112292698B (zh) 2024-09-13

Family

ID=71611776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980040187.9A Active CN112292698B (zh) 2019-05-15 2019-05-15 确定执行设备的动作选择方针的方法和装置

Country Status (5)

Country Link
US (1) US10719358B1 (zh)
EP (1) EP3762875A1 (zh)
CN (1) CN112292698B (zh)
SG (1) SG11202002910RA (zh)
WO (1) WO2020227954A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220121968A1 (en) * 2020-10-16 2022-04-21 Adobe Inc. Forecasting and learning accurate and efficient target policy parameters for dynamic processes in non-stationary environments
CN114580642B (zh) * 2022-03-17 2023-04-07 中国科学院自动化研究所 构建博弈ai模型和数据处理的方法、装置、设备及介质

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288418A1 (en) * 2006-06-10 2007-12-13 Simon Kevin John Pope Intelligence analysis method and system
US20080306887A1 (en) * 2007-06-07 2008-12-11 Elad Eliezer Hazan Method for machine learning with state information
CN101834618A (zh) * 2009-03-13 2010-09-15 富士通株式会社 Turbo解码方法和Turbo解码器
EP2296395A1 (en) * 2009-09-09 2011-03-16 Deutsche Telekom AG System and method to derive deployment strategies for metropolitan wireless networks using game theory
US20130060606A1 (en) * 2011-09-02 2013-03-07 International Business Machines Corporation Efficient contracting with asymmetric information
US20130110750A1 (en) * 2011-09-28 2013-05-02 Causata Inc. Online temporal difference learning from incomplete customer interaction histories
US20130246208A1 (en) * 2012-03-16 2013-09-19 Microsoft Corporation Allocation of computational resources with policy selection
WO2013176784A1 (en) * 2012-05-24 2013-11-28 University Of Southern California Optimal strategies in security games
CN103559363A (zh) * 2013-11-15 2014-02-05 南京大学 一种不完美信息扩展式博弈中计算最佳反应策略的方法
US20140081717A1 (en) * 2011-03-04 2014-03-20 Tian Lu Method and system for robust social choices and vote elicitation
CN106296006A (zh) * 2016-08-10 2017-01-04 哈尔滨工业大学深圳研究生院 非完备信息博弈中风险与收益均衡的最少遗憾的评估方法
CN106548493A (zh) * 2016-11-03 2017-03-29 亮风台(上海)信息科技有限公司 一种图匹配的方法及系统
CN106998240A (zh) * 2016-12-30 2017-08-01 上海华为技术有限公司 一种译码方法及译码器
US20170236359A1 (en) * 2012-09-18 2017-08-17 John G. Lovell, Sr. Game of chance allowing user participation in outcome selection
CN107111917A (zh) * 2014-07-16 2017-08-29 必得豪斯有限公司 用于改进博弈游戏的系统和方法
CN108446801A (zh) * 2018-03-22 2018-08-24 成都大象分形智能科技有限公司 一种多人信息非对称博弈游戏决策生成系统
CN108494410A (zh) * 2018-03-30 2018-09-04 北京联想核芯科技有限公司 译码方法、装置、设备及介质
CN108710109A (zh) * 2018-05-11 2018-10-26 清华大学 一种车载雷达频段分配方法及系统
CN109361482A (zh) * 2018-09-04 2019-02-19 中国人民解放军陆军工程大学 一种基于非合作博弈确定多用户选择信道感知顺序的方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8545332B2 (en) 2012-02-02 2013-10-01 International Business Machines Corporation Optimal policy determination using repeated stackelberg games with unknown player preferences
US20140039913A1 (en) * 2012-07-31 2014-02-06 Tuomas W. Sandholm Medical treatment planning via sequential games
JP6675562B2 (ja) 2015-08-11 2020-04-01 株式会社フォワードサイエンスラボラトリ 三重水素吸収材、重水中からの三重水素の分離方法
US10057367B2 (en) 2016-03-02 2018-08-21 Huawei Technologies Canada Co., Ltd. Systems and methods for data caching in a communications network
US10694526B2 (en) 2016-09-30 2020-06-23 Drexel University Adaptive pursuit learning method to mitigate small-cell interference through directionality
US11138513B2 (en) 2017-06-13 2021-10-05 Princeton University Dynamic learning system
US20190122140A1 (en) 2017-10-20 2019-04-25 STATGRAF Research LLP. Data analysis and rendering
US20190163515A1 (en) 2017-11-24 2019-05-30 Wipro Limited Method and system for resolving anomaly events occurring in a virtual environment in real-time
CN108537339A (zh) * 2018-04-11 2018-09-14 中国电子科技集团公司第二十九研究所 一种对局策略获取方法及装置
US20190392309A1 (en) 2018-06-21 2019-12-26 Denso International America, Inc. LSTM Training For Neural Network Based Course Of Action Selection

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288418A1 (en) * 2006-06-10 2007-12-13 Simon Kevin John Pope Intelligence analysis method and system
US20080306887A1 (en) * 2007-06-07 2008-12-11 Elad Eliezer Hazan Method for machine learning with state information
CN101834618A (zh) * 2009-03-13 2010-09-15 富士通株式会社 Turbo解码方法和Turbo解码器
EP2296395A1 (en) * 2009-09-09 2011-03-16 Deutsche Telekom AG System and method to derive deployment strategies for metropolitan wireless networks using game theory
US20140081717A1 (en) * 2011-03-04 2014-03-20 Tian Lu Method and system for robust social choices and vote elicitation
US20130060606A1 (en) * 2011-09-02 2013-03-07 International Business Machines Corporation Efficient contracting with asymmetric information
US20130110750A1 (en) * 2011-09-28 2013-05-02 Causata Inc. Online temporal difference learning from incomplete customer interaction histories
US20130246208A1 (en) * 2012-03-16 2013-09-19 Microsoft Corporation Allocation of computational resources with policy selection
WO2013176784A1 (en) * 2012-05-24 2013-11-28 University Of Southern California Optimal strategies in security games
US20170236359A1 (en) * 2012-09-18 2017-08-17 John G. Lovell, Sr. Game of chance allowing user participation in outcome selection
CN103559363A (zh) * 2013-11-15 2014-02-05 南京大学 一种不完美信息扩展式博弈中计算最佳反应策略的方法
CN107111917A (zh) * 2014-07-16 2017-08-29 必得豪斯有限公司 用于改进博弈游戏的系统和方法
CN106296006A (zh) * 2016-08-10 2017-01-04 哈尔滨工业大学深圳研究生院 非完备信息博弈中风险与收益均衡的最少遗憾的评估方法
CN106548493A (zh) * 2016-11-03 2017-03-29 亮风台(上海)信息科技有限公司 一种图匹配的方法及系统
CN106998240A (zh) * 2016-12-30 2017-08-01 上海华为技术有限公司 一种译码方法及译码器
CN108446801A (zh) * 2018-03-22 2018-08-24 成都大象分形智能科技有限公司 一种多人信息非对称博弈游戏决策生成系统
CN108494410A (zh) * 2018-03-30 2018-09-04 北京联想核芯科技有限公司 译码方法、装置、设备及介质
CN108710109A (zh) * 2018-05-11 2018-10-26 清华大学 一种车载雷达频段分配方法及系统
CN109361482A (zh) * 2018-09-04 2019-02-19 中国人民解放军陆军工程大学 一种基于非合作博弈确定多用户选择信道感知顺序的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HUI LI ET AL.: "《Double Neural Counterfactual Regret Minimization》", 《HTTPS://ARXIV.ORG/PDF/1812.10607.PDF》, pages 1 - 20 *
JOHANNES HEINRICH ET AL.: "《Deep Reinforcement Learning from Self-Play inImperfect-Information Games》", 《HTTPS://ARXIV.ORG/PDF/1603.01121V2.PDF》, pages 1 - 10 *

Also Published As

Publication number Publication date
EP3762875A4 (en) 2021-01-13
SG11202002910RA (en) 2020-12-30
EP3762875A1 (en) 2021-01-13
CN112292698B (zh) 2024-09-13
WO2020227954A1 (en) 2020-11-19
US10719358B1 (en) 2020-07-21

Similar Documents

Publication Publication Date Title
US11157316B1 (en) Determining action selection policies of an execution device
CN112292696B (zh) 确定执行设备的动作选择方针的方法和装置
JP7219228B2 (ja) 当事者の間の戦略的対話における戦略探索
CN112639841B (zh) 用于在多方策略互动中进行策略搜索的采样方案
CN112292699B (zh) 确定执行设备的动作选择方针的方法和装置
US11204803B2 (en) Determining action selection policies of an execution device
CN112292698B (zh) 确定执行设备的动作选择方针的方法和装置
CN112470123B (zh) 确定执行设备的动作选择方针
TWI770671B (zh) 用於產生動作選擇方針的方法、用於為軟體實現應用產生動作選擇方針的系統和裝置
TW202125398A (zh) 確定執行設備的動作選擇方針
CN112041875B (zh) 确定执行设备的动作选择方针

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant