博弈对局决策方法和装置、电子设备及存储介质

文档序号:427725 发布日期:2021-12-24 浏览:42次 >En<

阅读说明:本技术 博弈对局决策方法和装置、电子设备及存储介质 (Game game-play decision-making method and device, electronic equipment and storage medium ) 是由 洪伟峻 林俊洪 曾广俊 林悦 于 2021-09-10 设计创作,主要内容包括:本发明公开了一种博弈对局决策方法和装置、电子设备及存储介质。其中,该方法包括:获取博弈对局在第一时刻的第一状态信息,其中,第一状态信息包括:博弈对局在第一时刻的多种博弈信息,以及博弈对局当前所处的第一决策阶段;利用当前决策模型对第一状态信息进行处理,得到第一决策结果,其中,决策结果包括:待执行动作,或,待进入的第二决策阶段;执行第一决策结果。本发明解决了通过大量人力编制精细的规则进行博弈对局决策,导致决策方法复杂度和成本就高的技术问题。(The invention discloses a game-to-game decision-making method and device, electronic equipment and a storage medium. Wherein, the method comprises the following steps: acquiring first state information of a game pair at a first moment, wherein the first state information comprises: the method comprises the following steps that various game information of game matches at a first moment and a first decision stage of the game matches at present; processing the first state information by using the current decision model to obtain a first decision result, wherein the decision result comprises: an action to be executed, or a second decision stage to be entered; and executing the first decision result. The invention solves the technical problem of high complexity and cost of a decision method caused by the fact that a great amount of manpower is used for compiling fine rules to carry out game match decision.)

博弈对局决策方法和装置、电子设备及存储介质

技术领域

本发明涉及计算机领域,具体而言,涉及一种博弈对局决策方法和装置、电子设备及存储介质。

背景技术

在卡牌游戏中,经常需要设计AI(Artificial Intelligence,人工智能)来提升游戏本身的可玩性以及玩家的游戏体验。通常更具趣味性的卡牌游戏玩法中,卡牌种类繁多,不同卡牌之间可能还会形成多种组合等,游戏本身更为复杂,这为卡牌游戏的AI设计带来了挑战。传统的基于规则的AI等在游戏变得复杂时需要实现的机器人规则也会变得越来越复杂,想要达到高端玩家的水平需要耗费大量的人力来编制精细的规则。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种博弈对局决策方法和装置、电子设备及存储介质,以至少解决通过大量人力编制精细的规则进行博弈对局决策,导致决策方法复杂度和成本就高的技术问题。

根据本发明实施例的一个方面,提供了一种博弈对局决策方法,包括:获取博弈对局在第一时刻的第一状态信息,其中,第一状态信息包括:博弈对局在第一时刻的多种博弈信息,以及博弈对局当前所处的第一决策阶段;利用当前决策模型对第一状态信息进行处理,得到第一决策结果,其中,决策结果包括:待执行动作,或,待进入的第二决策阶段;执行第一决策结果。

可选地,在第一决策结果包括:待进入的第二决策阶段的情况下,执行第一决策结果包括:获取博弈对局在第二时刻的第二状态信息,其中,第二状态信息包括:博弈对局在第二时刻的多种博弈信息,以及第二决策阶段;利用当前决策模型对第二状态信息进行处理,得到第二决策结果;执行第二决策结果。

可选地,在第一决策结果包括:待执行动作的情况下,执行第一决策结果包括:存储待执行动作;基于已存储的待执行动作的数量,确定第一决策阶段是否执行完毕;在确定第一决策阶段执行完毕的情况下,执行已存储的待执行动作。

可选地,在确定第一决策阶段未执行完毕的情况下,该方法还包括:获取博弈对局在第三时刻的第三状态信息,其中,第三状态信息包括:博弈对局在第三时刻的多种博弈信息,以及第一决策阶段;利用当前决策模型对第三状态信息进行处理,得到第三决策结果;执行第三决策结果。

可选地,基于已存储的待执行动作的数量,确定第一决策阶段是否执行完毕包括:确定第一决策阶段对应的预设数量,其中,预设数量用于表征第一决策阶段允许执行的待执行动作的数量;确定已存储的待执行动作的数量与预设数量是否相同;如果已存储的待执行动作的数量与预设数量相同,则确定第一决策阶段执行完毕;如果已存储的待执行动作的数量与预设数量不同,则确定第一决策阶段未执行完毕。

可选地,在执行已存储的待执行动作之后,该方法还包括:确定第一决策阶段之后的第三决策阶段;获取博弈对局在第四时刻的第四状态信息,其中,第四状态信息包括:博弈对局在第四时刻的多种博弈信息,以及第三决策阶段;利用当前决策模型对第四状态信息进行处理,得到第四决策结果;执行第四决策结果。

可选地,在确定第一决策阶段之后的第三决策阶段之前,该方法还包括:确定第一决策阶段是否为预设决策阶段;如果第一决策阶段是预设决策阶段,则确定第一决策阶段之后的第三决策阶段。

可选地,该方法还包括:获取多个博弈对局的历史信息,其中,历史信息包括:历史状态信息和历史决策结果;基于多个博弈对局的历史信息构建训练数据;基于近端策略优化算法,利用训练数据对当前决策模型进行训练。

可选地,历史状态信息包括:初始动作信息、已执行动作信息和得分信息,其中,基于多个博弈对局的历史信息构建训练数据包括:获取第一博弈对局的得分信息和第二博弈对局的得分信息的差值,得到第一博弈对局的历史奖励信息,其中,第一博弈对局和第二博弈对局相邻,且第一博弈对局早于第二博弈对局;基于多个博弈对局的历史状态信息、历史决策结果和历史奖励信息,得到训练数据。

可选地,基于多个博弈对局的历史状态信息、历史决策结果和历史奖励信息,得到训练数据包括:获取多个博弈对局的历史奖励信息与预设值的乘积,得到多个博弈对局的目标奖励信息;基于多个博弈对局的历史状态信息、历史决策结果和目标奖励信息,得到训练数据。

可选地,获取多个博弈对局的历史信息包括如下之一:获取交互环境中的历史游戏信息,得到多个博弈对局的历史信息,其中,交互环境用于与目标对象进行交互;获取利用历史决策模型处理得到的多个博弈对局的历史信息。

可选地,该方法还包括:接收多个处理核心发送的多个博弈对局的历史信息;将多个博弈对局的历史信息平分为多个历史信息集合,其中,多个历史信息集合与多个训练进程一一对应;通过多个训练进程基于近端策略优化算法,利用对应的训练数据对当前决策模型进行训练。

可选地,通过多个训练进程基于近端策略优化算法,利用对应的训练数据对当前决策模型进行训练包括:确定多个训练进程对应的梯度;将多个训练进程对应的梯度同步至多个训练进程;通过多个训练进程根据多个训练进程对应的梯度的平均值,对当前决策模型的参数进行更新。

可选地,通过模型池进程将训练好后的决策模型发送至多个处理核心。

可选地,该方法还包括:输出多个决策模型,其中,不同决策模型的训练时间不同;响应于对多个决策模型进行选择的选择指令,确定选择指令对应的当前决策模型。

根据本发明实施例的另一方面,还提供了一种博弈对局决策装置,包括:获取模块,用于获取博弈对局第一时刻的第一状态信息,其中,第一状态信息包括:博弈对局在第一时刻的多种博弈信息,以及博弈对局当前所处的第一决策阶段;处理模块,用于利用当前决策模型对第一状态信息进行处理,得到第一决策结果,其中,第一决策结果包括:待执行动作,或,待进入的第二决策阶段;执行模块,用于执行第一决策结果。

可选地,执行模块包括:获取单元,用于获取博弈对局在第二时刻的第二状态信息,其中,第二状态信息包括:博弈对局在第二时刻的多种博弈信息,以及第二决策阶段;处理单元,用于利用当前决策模型对第二状态信息进行处理,得到第二决策结果;执行单元,用于执行第二决策结果。

可选地,执行模块包括:存储单元,用于存储待执行动作;第一确定单元,用于基于已存储的待执行动作的数量,确定第一决策阶段是否执行完毕;执行单元,用于在确定第一决策阶段执行完毕的情况下,执行已存储的待执行动作。

可选地,获取模块还用于获取在确定第一决策阶段未执行完毕的情况下,博弈对局在第三时刻的第三状态信息,其中,第三状态信息包括:博弈对局在第三时刻的多种博弈信息,以及第一决策阶段;处理单元还用于利用当前决策模型对第三状态信息进行处理,得到第三决策结果;执行单元还用于执行第三决策结果。

可选地,第一确定单元还用于:确定第一决策阶段对应的预设数量,其中,预设数量用于表征第一决策阶段允许执行的待执行动作的数量;确定已存储的待执行动作的数量与预设数量是否相同;如果已存储的待执行动作的数量与预设数量相同,则确定第一决策阶段执行完毕;如果已存储的待执行动作的数量与预设数量不同,则确定第一决策阶段未执行完毕。

可选地,该装置还包括:第一确定模块,用于在执行已存储的待执行动作之后,确定第一决策阶段之后的第三决策阶段;获取模块还用于获取博弈对局在第四时刻的第四状态信息,其中,第四状态信息包括:博弈对局在第四时刻的多种博弈信息,以及第三决策阶段;处理模块还用于利用当前决策模型对第四状态信息进行处理,得到第四决策结果;执行模块还用于执行第四决策结果。

可选地,该装置还包括:第二确定模块,用于在确定第一决策阶段之后的第三决策阶段之前,确定第一决策阶段是否为预设决策阶段;第一确定模块还用于如果第一决策阶段是预设决策阶段,则确定第一决策阶段之后的第三决策阶段。

可选地,该装置还包括:获取模块还用于获取多个博弈对局的历史信息,其中,历史信息包括:历史状态信息和历史决策结果;构建模块,用于基于多个博弈对局的历史信息构建训练数据;训练模块,用于基于近端策略优化算法,利用训练数据对当前决策模型进行训练。

可选地,历史状态信息包括:初始动作信息、已执行动作信息和得分信息,其中,构建模块包括:第二确定单元,用于获取第一博弈对局的得分信息和第二博弈对局的得分信息的差值,得到第一博弈对局的历史奖励信息,其中,第一博弈对局和第二博弈对局相邻,且第一博弈对局早于第二博弈对局;构建单元,用于基于多个博弈对局的历史状态信息、历史决策结果和历史奖励信息,得到训练数据。

可选地,构建单元还用于:获取多个博弈对局的历史奖励信息与预设值的乘积,得到多个博弈对局的目标奖励信息;基于多个博弈对局的历史状态信息、历史决策结果和目标奖励信息,得到训练数据。

可选地,获取模块包括如下之一:第一获取单元,用于获取交互环境中的历史游戏信息,得到多个博弈对局的历史信息,其中,交互环境用于与目标对象进行交互;第二获取单元,用于获取利用历史决策模型处理得到的多个博弈对局的历史信息。

可选地,该装置还包括:接收模块,用于接收多个处理核心发送的多个博弈对局的历史信息;调度模块,用于将多个博弈对局的历史信息平分为多个历史信息集合,其中,多个历史信息集合与多个训练进程一一对应;训练模块,用于通过多个训练进程基于近端策略优化算法,利用对应的训练数据对当前决策模型进行训练。

可选地,训练模块包括:第三确定单元,用于确定多个训练进程对应的梯度;同步单元,用于将多个训练进程对应的梯度同步至多个训练进程;更新单元,用于通过多个训练进程根据多个训练进程对应的梯度的平均值,对当前决策模型的参数进行更新。

可选地,该装置包括:发送模块,用于通过模型池进程将训练好后的决策模型发送至多个处理核心。

可选地,该装置还包括:输出模块,用于输出多个决策模型,其中,不同决策模型的训练时间不同;响应模块,用于响应于对多个决策模型进行选择的选择指令,确定选择指令对应的当前决策模型。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述任意一个实施例中的博弈对局决策方法。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器运行的程序,程序被至少一个处理器运行时执行上述任意一个实施例中的博弈对局决策方法。

在本发明实施例中,通过获取博弈对局在第一时刻的第一状态信息,并利用当前决策模型对第一状态信息进行处理,得到第一决策结果,进一步通过执行第一决策结果完成第一决策阶段的决策目的。与相关技术相比,可以将博弈对局的决策过程划分为多个决策阶段,并利用当前决策模型完成决策的目的,无需根据不同博弈对局的玩法编写复杂的规则,达到了降低决策方法的复杂度和成本,提高决策空间灵活度的技术效果,进而解决了通过大量人力编制精细的规则进行博弈对局决策,导致决策方法复杂度和成本就高的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种博弈对局决策方法的流程图;

图2是根据本发明实施例的一种可选的深度强化学习训练框架的示意图;

图3是根据本发明实施例的一种博弈对局决策装置的示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,对本发明实施例中的技术名词和技术术语进行如下解释说明:

Self-play:自博弈训练方法,训练模型和环境交互时的对手是模型自身历史版本,也即,历史训练得到的模型。

PPO:Proximal Policy Optimization,近端策略优化算法,是一种广泛使用的深度强化学习算法。

有限状态机:表示有限个状态以及这些状态的转移和动作等行为的数学模型。

传统的AI主要是基于规则编写的AI,例如,行为树AI,树上的每个节点表示游戏状态的一个子集,其基本原理如下:当需要决策当前AI应该采取何种行为的时候,可以自顶向下地,通过一些条件来搜索这颗树,最终确定需要做的行为(叶节点)。又例如,有限状态机AI,可以根据给定的游戏状态转移来进行不同AI行为间的切换,其当前行为的决策显示地依赖于过去的状态。

但是,上述AI需要人工根据游戏的状态、条件设定一定的规则。如果需要构建更强、更像玩家的AI,或者游戏本身变得更为复杂,则需要耗费更多的人力去枚举可能出现的状态条件并做出相应的决策。在面对实际复杂多变的环境中,上述AI通常难以覆盖所有情况,具体就会表现出AI的行为不像玩家、容易被玩家找到缺陷等。

根据本发明实施例,提供了一种博弈对局决策方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在本发明实施例中,上述的博弈对局可以是回合制的卡牌游戏,特别的,与传统的斗地主等卡牌游戏的玩法不同,每回合出牌次数不再是固定次数,而且每次出牌数量也再是固定次数。

例如,在某个卡牌游戏中,卡牌可以为2种,分别是公共牌和功能牌。公共牌指双方在游戏中打的牌,双方都可以获得。在一局比赛中,将用到52张公共牌,分为4种花色,对应颜色绿、红、黄白、蓝紫。功能卡指玩家自行收集到的牌,在对局中如果触发功能牌,则触发特殊效果,部分主动功能牌可以增加每回合的出牌数等。

一局游戏开局后,双方从牌堆中各获取10张牌作为手牌,此外,还存在一个公共选牌区,会显示从牌堆中分配的10张牌。每回合开始后,会进入正常配对阶段,当前操作的一方需要选择一张手牌,并和公共选牌区中一张相同花色的牌进行配对打出,随后这两张牌会被放入牌库中计算得分,最终根据双方所有手牌耗尽时的得分决出胜负。

如果当前操作方的手牌均无法与公共选牌区的牌配对,则在进入正常配对阶段之前,可以进入弃牌阶段,首先丢弃一张手牌,然后从牌堆中抽取两张牌,其中一张作为自己的手牌,另一张放入公共选牌区。每个回合中弃牌阶段最多执行两次,如果弃牌阶段执行两次后,手牌仍然无法与公共选牌区的牌进行配对,则丢弃一张手牌后结束该回合。另外,如果玩家持有具备强制配对、手牌替换等功能的主动功能卡,则每回合开始后,首先进入发动主动功能牌的阶段,玩家可以选择发送主动功能卡,在主动功能卡的功能执行完毕之后,可以进入正常配对阶段。

通过上述玩法介绍可知,在该卡牌游戏中,当玩家拥有主动功能牌或进入弃牌阶段时,每回合出牌次数会大于1,并且每次出牌数量不同,例如,弃牌阶段的出牌数量是1,发送主动功能牌的阶段和正常配对阶段,出牌数可能大于1。

因此,在上述应用场景中,AI需要具有连续决策能力,而且需要决策空间高度灵活。在本发明实施例中,为了使AI决策更加泛化,将AI决策与简单的有限状态机相结合,每回合的决策过程划分为多个决策阶段,每个决策阶段只选择固定数量的手牌或进入某个决策阶段,并且通过有限状态机记录AI当前的决策阶段,使得决策空间大小和牌库牌数相当。以上述应用场景为例,可以将决策过程划分为:初始化阶段、发动主动功能牌阶段、第一次弃牌阶段、第二次弃牌阶段和正常配对阶段。

图1是根据本发明实施例的一种博弈对局决策方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,获取博弈对局在第一时刻的第一状态信息,其中,第一状态信息包括:博弈对局在第一时刻的多种博弈信息,以及博弈对局当前所处的第一决策阶段。

上述步骤中的第一时刻可以是博弈对局中需要进行AI决策的时刻,本发明实施例中的博弈对局可以划分为多个决策阶段,上述的第一决策阶段可以是博弈对局当前进入的任意一个决策阶段。

上述步骤中的博弈信息可以是博弈对局中的各种游戏信息,博弈信息可以包括:未执行动作信息、已执行动作信息和得分信息。以上述应用场景为例,博弈信息可以包括:自己的手牌信息、公共选牌区的卡牌信息、牌库中已完成的配对信息和当前得分信息。

在一种可选的实施例中,可以在第一时刻获取博弈对局中的多种博弈信息,并将每种博弈信息映射到一个多维向量中,然后与有限状态机中的第一决策阶段进行拼接,从而得到第一状态信息。以上述应用场景为例,可以将每个卡组映射到一个52维的卡组向量上,对于卡组中存在的牌,可以对应的维度置1,否则置0,例如,开局时,表示自己手牌信息的卡组向量中存在10个为1的维度,剩余42个维度为0,最终得到的第一状态信息可以是一个384维的向量。

步骤S104,利用当前决策模型对第一状态信息进行处理,得到第一决策结果,其中,决策结果包括:待执行动作,或,待进入的第二决策阶段。

上述步骤中的当前决策模型可以是使用深度强化学习算法训练得到的模型,深度强化学习是一种在交互中学习的算法,简单来说,模型会根据交互结果朝着奖励越来越大的方向优化,例如,以上述应用场景为例,可以将奖励定义为牌局得分,从而模型就可以学习到如何扩大分数优势。在本发明实施例中,当前决策模型的模型结构可以采用全连接神经网络,并且可以采用PPO对当前决策模型进行训练,以上述应用场景为例,当前决策模型可以有384个维度的输入,两层隐层且每层256个节点,58个维度的输出对应52张牌和进入第二决策阶段的决策。

以上述应用场景为例,在第一决策阶段为初始化阶段的情况下,需要经过AI决策确定接下来进入的第二决策阶段,第二决策阶段可以是发动主动功能牌的阶段、弃牌阶段或正常配对阶段;在第一决策阶段为发动主动功能牌的阶段,或弃牌阶段的情况下需要经过AI决策确定需要打出的牌;在第一决策阶段为正常配对阶段的情况下,需要经过AI决策确定需要进行配对的牌。因此,在本发明实施例中,AI决策的决策结果可以是需要打出的牌,或者进入除初始化阶段之前的决策阶段。

上述步骤中的待执行动作可以是指第一决策阶段需要打出的卡牌,第二决策阶段可以是根据有限状态机所确定的第一决策阶段之后进入的决策阶段。

在一种可选的实施例中,可以将获取到的第一状态信息输入至当前决策模型,并获取当前决策模型的输出,得到第一决策结果。

步骤S106,执行第一决策结果。

在一种可选的实施例中,通过当前决策模型得到第一决策结果之后,如果第一决策结果是待执行动作,则可以执行该待执行动作,也即,通过解码函数将该决策结果还原成具体的出牌动作,实现将AI决策选择的卡牌打出的目的;如果第一决策结果是进入第二决策阶段,则开始第二决策阶段的AI决策过程,第二决策阶段的决策过程与第一决策阶段的决策过程类似。

通过上述步骤,通过获取博弈对局在第一时刻的第一状态信息,并利用当前决策模型对第一状态信息进行处理,得到第一决策结果,进一步通过执行第一决策结果完成第一决策阶段的决策目的。与相关技术相比,可以将博弈对局的决策过程划分为多个决策阶段,并利用当前决策模型完成决策的目的,无需根据不同博弈对局的玩法编写复杂的规则,达到了降低决策方法的复杂度和成本,提高决策空间灵活度的技术效果,进而解决了通过大量人力编制精细的规则进行博弈对局决策,导致决策方法复杂度和成本就高的技术问题。

本发明上述实施例中,在第一决策结果包括:待进入的第二决策阶段的情况下,执行第一决策结果包括:获取博弈对局在第二时刻的第二状态信息,其中,第二状态信息包括:博弈对局在第二时刻的多种博弈信息,以及第二决策阶段;利用当前决策模型对第二状态信息进行处理,得到第二决策结果;执行第二决策结果。

上述步骤中的第二时刻可以是进入第二决策阶段的时刻,第二决策结果与第一决策结果类似,同样可以包括:待执行动作或进入另一个决策阶段。

需要说明的是,第二决策阶段的决策流程与第一决策阶段的决策流程(即步骤S102至步骤S106所示的流程)相似,在此不做赘述。

本发明上述实施例中,在第一决策结果包括:待执行动作的情况下,执行第一决策结果包括:存储待执行动作;基于已存储的待执行动作的数量,确定第一决策阶段是否执行完毕;在确定第一决策阶段执行完毕的情况下,执行已存储的待执行动作。

需要说明的是,由于当前决策模型输出的待执行动作为需要打出一张手牌,而不同决策阶段可以打出的手牌数量不同,因此,每次利用当前决策模型决策出一个待执行动作之后,可以将待执行动作进行存储,并将已经存储的待执行动作的数量进行判断,如果已经存储的待执行动作的数量达到第一决策阶段的最大数量,则确定第一决策阶段执行完毕,进而执行存储的所有待执行动作;如果存储的待执行动作的数量未达到第一决策阶段的最大数量,则确定第一决策阶段未执行完毕,需要利用当前决策模型继续进行决策。

本发明上述实施例中,在确定第一决策阶段未执行完毕的情况下,该方法还包括:获取博弈对局在第三时刻的第三状态信息,其中,第三状态信息包括:博弈对局在第三时刻的多种博弈信息,以及第一决策阶段;利用当前决策模型对第三状态信息进行处理,得到第三决策结果;执行第三决策结果。

上述步骤中的第三时刻可以是确定第一决策阶段未执行完毕的时刻。

在一种可选的实施例中,在确定第一决策阶段未执行完毕之后,需要利用当前决策模型继续进行决策,重新获取博弈对局中的多种博弈信息,并结合第一决策阶段生成第三状态信息,进而利用当前决策模型对第三状态信息进行处理。也即,第一决策阶段中,每次利用当前决策模型进行决策的流程都相同,在此不做赘述。

本发明上述实施例中,基于已存储的待执行动作的数量,确定第一决策阶段是否执行完毕包括:确定第一决策阶段对应的预设数量,其中,预设数量用于表征第一决策阶段允许执行的待执行动作的数量;确定已存储的待执行动作的数量与预设数量是否相同;如果已存储的待执行动作的数量与预设数量相同,则确定第一决策阶段执行完毕;如果已存储的待执行动作的数量与预设数量不同,则确定第一决策阶段未执行完毕。

在一种可选的实施例中,不同决策阶段允许打出的卡牌的数量不同,因此,可以预先针对不同决策阶段设置不同的预设数量,进而在每次利用当前决策模型进行决策之后,可以将待执行动作进行存储,并通过判断已经存储的所有待执行动作的数量是否达到预设数量来确定第一决策阶段是否执行完毕。

本发明上述实施例中,在执行已存储的待执行动作之后,该方法还包括:确定第一决策阶段之后的第三决策阶段;获取博弈对局在第四时刻的第四状态信息,其中,第四状态信息包括:博弈对局在第四时刻的多种博弈信息,以及第三决策阶段;利用当前决策模型对第四状态信息进行处理,得到第四决策结果;执行第四决策结果。

以上述应用场景为例进行说明,对于发动主动功能牌的阶段和弃牌阶段,在上述决策阶段执行完毕之后,可以继续执行正常配对阶段。在本发明实施例中,在第一决策阶段执行完毕,也即,执行已经存储的待执行动作之后,需要继续根据有限状态机的状态,确定在第一决策阶段之后执行的第三决策阶段,第三决策阶段的决策流程与第一决策阶段的决策流程(即步骤S102至步骤S106所示的流程)相似,在此不做赘述。

本发明上述实施例中,在确定第一决策阶段之后的第三决策阶段之前,该方法还包括:确定第一决策阶段是否为预设决策阶段;如果第一决策阶段是预设决策阶段,则确定第一决策阶段之后的第三决策阶段。

以上述应用场景为例进行说明,对于正常配对阶段,在正常配对阶段执行完毕之后,该回合结束,可以开始下一个回合。因此,上述步骤中的预设决策阶段可以是除正常配对阶段之外的其他阶段,也即,预设决策阶段执行完毕之后,博弈对局不会结束,需要继续进行AI决策。

在一种可选的实施例中,在第一决策阶段执行完毕之后,可以确定第一决策阶段是否为预设决策阶段,如果第一决策阶段是预设决策阶段,则表明博弈对局不会结束,需要继续进行AI决策,因此,可以基于有限状态机的状态,确定在第一决策阶段之后进行的第三决策阶段;如果第一决策阶段不是预设决策阶段,则表明博弈对局结束,需要进入其他决策阶段。

下面结合上述应用场景,对本发明上述实施例进行详细说明。假设每个决策阶段允许打出的卡牌的最大数量为2,而且玩家装备了两种主动功能牌,使用主动功能牌A时可以打出一张手牌,使用主动功能牌B时可以打出两张手牌。

在此基础上,博弈对局可以划分为如下四个决策阶段:

初始化阶段,选择是否发动主动功能牌;

发动主动功能牌A的阶段,此阶段对应的预设数量是1;

发动主动功能牌B的阶段,此阶段对应的预设数量是2;

正常配对阶段,此阶段对应的预设数量是2,而且,该阶段之前可以发动任意次数的主动功能牌,且该阶段之后回合结束。

整个回合的处理流程如下:

步骤1:设置当前所处的决策阶段为初始化阶段。

步骤2:根据当前牌局状态利用当前决策模型进行一次推理,输出一个决策结果,该决策结果可以是选择进入除初始化阶段外的某个决策阶段,或是选择一张要打出的牌。

步骤3:判断当前所处的决策阶段。若处在初始化阶段,则进入步骤4;若处在发动主动功能牌A的阶段,则进入步骤5;若处在发动主动功能牌B的阶段,则进入步骤6;若处在正常配对阶段,则进入步骤7。

步骤4:当前所处的决策阶段为初始化阶段,此时当前决策模型输出的决策结果为选择进入除初始化阶段外的某个决策阶段,并根据决策结果设置当前所处的决策阶段,然后重新执行步骤3。

步骤5:当前所处的决策阶段为发动主动功能牌A的阶段,此时当前决策模型输出的决策结果为选择某张牌,因此,可以发动功能牌A,并在游戏中将选择的牌打出,然后重新执行步骤1。

步骤6:当前所处的决策阶段为发动主动功能牌B的阶段,此时当前决策模型输出的决策结果为选择某张牌。若此前还未选择过要出的第一张牌,则记录下当前选择的这张牌,作为将要打出的两张牌中的第一张牌,然后执行步骤2;若此前已经选择过要出的第一张牌,则我们将当前选择的牌作为第二张牌,然后和第一张牌在游戏中使用主动功能牌B一并打出,然后重新执行步骤1。

步骤7:当前所处的决策阶段为正常配对阶段,此时当前决策模型输出的决策结果为选择某张牌。若当前手牌无可以与公共选牌区配对的牌时,将该牌作为弃牌在游戏中打出,然后重新执行步骤2。在当前手牌存在可配对的牌的情况下,若此前还未选择过要出的第一张牌,则记录下当前选择的这张牌,作为将要打出的两张牌中的第一牌,然后执行步骤2;若此前已经选择过要出的第一张牌,则我们将当前选择的牌作为第二张牌,然后和第一张牌在游戏中一并打出,至此回合结束。

通过上述步骤,通过结合简单的有限状态机,在引入极为少量的规则的情况下,大幅减小了决策空间的复杂度,大幅提升了训练当前决策模型的效率。

本发明上述实施例中,该方法还包括:获取多个博弈对局的历史信息,其中,历史信息包括:历史状态信息和历史决策结果;基于多个博弈对局的历史信息构建训练数据;基于近端策略优化算法,利用训练数据对当前决策模型进行训练。

上述步骤中的多个博弈对局可以是一局游戏中的多个进行过AI决策的回合,也可以是多局游戏中的多个进行过AI决策的回合,历史信息可以是AI与游戏环境,或AI与训练环境进行交互产生的原始游戏信息。由于AI训练环境不同于直接和玩家对接的游戏环境,因此,需要将获取到的原始游戏信息转换为容易被AI理解的形式,生成用于训练当前决策模型的训练数据。

需要说明的是,每次模型训练完成之后,使用新训练好的模型进行AI决策得到的决策结果,都可以作为下一次模型训练的训练数据。

通过上述步骤,通过近端策略算法对当前决策模型进行训练,使得AI可以通过大量的战斗探索学习,优化决策结果,实现高强度AI。

本发明上述实施例中,历史状态信息包括:初始动作信息、已执行动作信息和得分信息,其中,基于多个博弈对局的历史信息构建训练数据包括:获取第一博弈对局的得分信息和第二博弈对局的得分信息的差值,得到第一博弈对局的历史奖励信息,其中,第一博弈对局和第二博弈对局相邻,且第一博弈对局早于第二博弈对局;基于多个博弈对局的历史状态信息、历史决策结果和历史奖励信息,得到训练数据。

上述步骤中的初始动作信息可以是博弈对局开始时AI的卡牌信息,已执行动作信息可以是博弈对局结束时AI已执行动作的信息,得分信息可以是博弈对局结束时AI的累积得分。仍以上述应用场景为例,初始动作信息可以是每回合开始时AI的手牌信息和公共选牌区的卡牌信息,已执行动作信息可以是每回合结束时AI已打出的牌的信息,得分信息可以是每回合结束时AI的累积得分。

仍以上述应用场景为例,为了引导AI向累积奖励更大的方向训练优化,在本发明实施例中,可以从决策前后的原始游戏信息中提取奖励信息。在一种可选的实施例中,可以将两个回合之间的AI累积赢分之差作为奖励信号,例如,上回合AI累计得分超过对手6分,下一回合AI被对手反超2分,那么AI在上回合的决策对应的奖励值就是负8。也即,可以获取将两个进行过AI决策的回合之间的得分信息之差作为奖励信号。

本发明上述实施例中,基于多个历史阶段的历史状态信息、历史决策结果和历史奖励信息,得到训练数据包括:获取多个历史阶段的历史奖励信息与预设值的乘积,得到多个历史阶段的目标奖励信息;基于多个历史阶段的历史状态信息、历史决策结果和目标奖励信息,得到训练数据。

上述步骤中的预设值可以是预先设定的一个缩放常数。

在一种可选的实施例中,当前决策模型的训练过程中需要将历史奖励信息乘以预设值进行缩放后再进行训练。

本发明上述实施例中,获取多个博弈对局的历史信息包括如下之一:获取交互环境中的历史游戏信息,得到多个博弈对局的历史信息,其中,交互环境用于与目标对象进行交互;获取利用历史决策模型处理得到的多个博弈对局的历史信息。

在一种可选的实施例中,可以从AI和玩家对局的游戏环境中,获取实际游戏信息,得到多个进行过AI决策的回合的历史信息。在另一种可选的实施例中,AI可以通过self-play产生多个博弈对局的历史信息,为了使得self-play时对手越来越强大,可以定期选择一个历史决策模型作为当前决策模型的对手。

本发明上述实施例中,该方法还包括:接收多个处理核心发送的多个博弈对局的历史信息;将多个博弈对局的历史信息平分为多个历史信息集合,其中,多个历史信息集合与多个训练进程一一对应;通过多个训练进程基于近端策略优化算法,利用对应的训练数据对当前决策模型进行训练。

在一种可选的实施例中,为了满足大规模的采样和训练所需条件,本发明实施例可以构建如图2所示的深度强化学习训练框架,该框架被部署在70台CPU(CentralProcessing Unit,中央处理器)机器以及1台GPU(Graphics Processing Unit,图形处理器)机器的集群上。

其中,每台CPU机器含有45核心,每个核心对应一个工作进程用于AI self-play(如图中的智能体)和环境进行交互产生用于训练的多个博弈对局的历史信息。

GPU机器含有8张NVIDIA 2080Ti显卡,分别对应一个训练进程,每个训练进程负载均衡地从各台CPU机器中接收多个博弈对局的历史信息,也即,所有CPU机器产生的多个博弈对局的历史信息可以划分为8个历史信息集合,可选的,每个训练进程可以接收来自70*45/8=393.75个(取整后有的时393台有的是394台)工作进程发送的历史信息,并接收到的历史信息进行拼接,组成batch后使用PPO算法进行训练。

需要说明的是,在本发明实施例中,每个训练进程可以从工作进程获取每个环境和模型交互后产生的数据轨迹,轨迹长度可以取128,即128次和同一环境连续交互的数据。

本发明上述实施例中,通过多个训练进程基于近端策略优化算法,利用对应的训练数据对当前决策模型进行训练包括:确定多个训练进程对应的梯度;将多个训练进程对应的梯度同步至多个训练进程;通过多个训练进程根据多个训练进程对应的梯度的平均值,对当前决策模型的参数进行更新。

在一种可选的实施例中,不同训练进程在初始化时会保持初始参数一致,然后训练过程中接入pytorch的distributed data parallel系统,该系统会负责在每个训练进程计算出各自的梯度后通知到其他的训练进程,然后训练进程会再根据平均梯度进行模型参数的更新。

通过上述步骤,通过在模型训练的过程中同步梯度,保证每个训练进程更新后模型参数依然保持一致。

本发明上述实施例中,通过模型池进程将训练好后的决策模型发送至多个处理核心。

在一种可选的实施例中,如图2所示,GPU机器中除了训练进程还有一个模型池进程。模型池进程可以接收训练进程每次训练后更新的决策模型并发送至各个工作进程。

本发明上述实施例中,该方法还包括:输出多个决策模型,其中,不同决策模型的训练时间不同;响应于对多个决策模型进行选择的选择指令,确定选择指令对应的当前决策模型。

在一种可选的实施例中,如图2所示,模型池进程可以输出多个决策模型至多个处理核心的工作进程。可以根据模型训练时间的不同对训练出的模型进行难度分级,训练时间越长的模型强度越高,难度等级越高,以适应不同玩家水平。在实际游戏过程中,玩家可以根据自身需要对不同难度等级的决策模型进行选择,玩家选中的决策模型为当前决策模型,并且在游戏过程中,AI可以采用该决策模型进行AI决策。

仍以上述应用场景为例,最终和卡牌游戏对应的AI可以实现5种难度。

通过上述步骤,通过输出多个决策模型达到灵活调整AI难度,方便提升不同水平玩家的游戏体验。

根据本发明实施例,还提供了一种博弈对局决策装置,该装置可以执行上述实施例中的博弈对局决策方法,具体实现方案和应用场景与上述实施例相同,在此不做赘述。可选的,该装置可以部署于一个计算机终端集群中,该计算机终端集群包括:至少一个中央处理器终端和至少一个图形处理器终端,中央处理器终端用于在博弈对局中进行决策,图形处理器终端用于训练决策模型。

在本发明实施例中,该装置可以是如图2所示的深度强化学习训练框架,上述的计算机终端集群可以包括70台CPU机器以及1台GPU机器。其中,每台CPU机器含有45核心,每个核心对应一个工作进程用于AI self-play和环境进行交互产生用于训练的多个博弈对局的历史信息。GPU机器含有8张NVIDIA 2080Ti显卡,分别对应一个训练进程,每个训练进程负载均衡地从各台CPU机器中接收多个博弈对局的历史信息,并接收到的历史信息进行拼接,组成batch后使用PPO算法进行训练。

图3是根据本发明实施例的一种博弈对局决策装置的示意图,如图所示,该装置包括:

获取模块32,用于获取博弈对局第一时刻的第一状态信息,其中,第一状态信息包括:博弈对局在第一时刻的多种博弈信息,以及博弈对局当前所处的第一决策阶段。

处理模块34,用于利用当前决策模型对第一状态信息进行处理,得到第一决策结果,其中,第一决策结果包括:待执行动作,或,待进入的第二决策阶段。

执行模块36,用于执行第一决策结果。

本发明上述实施例中,执行模块包括:获取单元,用于获取博弈对局在第二时刻的第二状态信息,其中,第二状态信息包括:博弈对局在第二时刻的多种博弈信息,以及第二决策阶段;处理单元,用于利用当前决策模型对第二状态信息进行处理,得到第二决策结果;执行单元,用于执行第二决策结果。

本发明上述实施例中,执行模块包括:存储单元用于存储待执行动作;第一确定单元,用于基于已存储的待执行动作的数量,确定第一决策阶段是否执行完毕;执行单元,用于在确定第一决策阶段执行完毕的情况下,执行已存储的待执行动作。

本发明上述实施例中,获取模块还用于获取在确定第一决策阶段未执行完毕的情况下,博弈对局在第三时刻的第三状态信息,其中,第三状态信息包括:博弈对局在第三时刻的多种博弈信息,以及第一决策阶段;处理单元还用于利用当前决策模型对第三状态信息进行处理,得到第三决策结果;执行单元还用于执行第三决策结果。

本发明上述实施例中,第一确定单元还用于:确定第一决策阶段对应的预设数量,其中,预设数量用于表征第一决策阶段允许执行的待执行动作的数量;确定已存储的待执行动作的数量与预设数量是否相同;如果已存储的待执行动作的数量与预设数量相同,则确定第一决策阶段执行完毕;如果已存储的待执行动作的数量与预设数量不同,则确定第一决策阶段未执行完毕。

本发明上述实施例中,该装置还包括:第一确定模块,用于在执行已存储的待执行动作之后,确定第一决策阶段之后的第三决策阶段;获取模块还用于获取博弈对局在第四时刻的第四状态信息,其中,第四状态信息包括:博弈对局在第四时刻的多种博弈信息,以及第三决策阶段;处理模块还用于利用当前决策模型对第四状态信息进行处理,得到第四决策结果;执行模块还用于执行第四决策结果。

本发明上述实施例中,该装置还包括:第二确定模块,用于在确定第一决策阶段之后的第三决策阶段之前,确定第一决策阶段是否为预设决策阶段;第一确定模块还用于如果第一决策阶段是预设决策阶段,则确定第一决策阶段之后的第三决策阶段。

本发明上述实施例中,该装置还包括:获取模块还用于获取多个博弈对局的历史信息,其中,历史信息包括:历史状态信息和历史决策结果;构建模块,用于基于多个博弈对局的历史信息构建训练数据;训练模块,用于基于近端策略优化算法,利用训练数据对当前决策模型进行训练。

本发明上述实施例中,历史状态信息包括:初始动作信息、已执行动作信息和得分信息,其中,构建模块包括:第二确定单元,用于获取第一博弈对局的得分信息和第二博弈对局的得分信息的差值,得到第一博弈对局的历史奖励信息,其中,第一博弈对局和第二博弈对局相邻,且第一博弈对局早于第二博弈对局;构建单元,用于基于多个博弈对局的历史状态信息、历史决策结果和历史奖励信息,得到训练数据。

本发明上述实施例中,构建单元还用于:获取多个博弈对局的历史奖励信息与预设值的乘积,得到多个博弈对局的目标奖励信息;基于多个博弈对局的历史状态信息、历史决策结果和目标奖励信息,得到训练数据。

本发明上述实施例中,获取模块包括如下之一:第一获取单元,用于获取交互环境中的历史游戏信息,得到多个博弈对局的历史信息,其中,交互环境用于与目标对象进行交互;第二获取单元,用于获取利用历史决策模型处理得到的多个博弈对局的历史信息。

本发明上述实施例中,该装置还包括:接收模块,用于接收多个处理核心发送的多个博弈对局的历史信息;调度模块,用于将多个博弈对局的历史信息平分为多个历史信息集合,其中,多个历史信息集合与多个训练进程一一对应;训练模块,用于通过多个训练进程基于近端策略优化算法,利用对应的训练数据对当前决策模型进行训练。

本发明上述实施例中,训练模块包括:第三确定单元,用于确定多个训练进程对应的梯度;同步单元,用于将多个训练进程对应的梯度同步至多个训练进程;更新单元,用于通过多个训练进程根据多个训练进程对应的梯度的平均值,对当前决策模型的参数进行更新。

本发明上述实施例中,该装置包括:发送模块,用于通过模型池进程将训练好后的决策模型发送至多个处理核心。

本发明上述实施例中,该装置还包括:输出模块,用于输出多个决策模型,其中,不同决策模型的训练时间不同;响应模块,用于响应于对多个决策模型进行选择的选择指令,确定选择指令对应的当前决策模型。

根据本发明实施例,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述任意一个实施例中的博弈对局决策方法。

根据本发明实施例,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器运行的程序,程序被至少一个处理器运行时执行上述任意一个实施例中的博弈对局决策方法。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种对战信息处理方法、系统及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类