主要内容

SIM

在指定环境中模拟培训的钢筋学习代理

描述

例子

经验= SIM(env.代理人使用默认模拟选项模拟环境中的一个或多个加强学习代理。

经验= SIM(代理人env.执行与先前语法相同的模拟。

env.= SIM(___模拟使用模拟选项对象模拟。使用模拟选项指定每个模拟的步骤数或运行的模拟数量。在上一个语法中的任何输入参数后使用此语法。

例子

全部收缩

使用为该环境配置的代理模拟增强学习环境。对于此示例,请加载已配置的环境和代理。环境是一个分立的推车环境Rlpredefinedenv.。代理是一种政策渐变(rlpgagent.) 代理人。有关在此示例中使用的环境和代理的详细信息,请参阅火车PG代理可以平衡车杆系统

RNG(0)重复性的%加载rlsimexample.mat.env.
Env = CartpoledIscreteAcreacteAdeaction:重力:1 9.8000 Masscart:1 MassPole:0.1000
代理人
Agent = RLPGagent具有属性:AgentOptions:[1x1 rl.option.rlpgagentoptions]

通常,您使用使用的代理商火车并模拟环境以测试培训的代理的性能。对于此示例,使用加载的代理模拟环境。配置模拟选项,指定模拟运行100步。

Simopts = RlsimulationOptions('maxsteps',100);

对于在此示例中使用的预定义推车环境。您可以使用阴谋生成卡车杆系统的可视化。当您模拟环境时,此绘图会自动更新,以便在仿真期间可以观看系统的发展。

情节(env)

图车杆视觉器包含轴。轴包含6个类型的线,多边形。

模拟环境。

体验= SIM(ENV,Agent,Simopts)

图车杆视觉器包含轴。轴包含6个类型的线,多边形。

经验=结构与字段:观察:[1x1 struct]动作:[1x1 struct]奖励:[1x1次数] ISDONE:[1x1倍] SIMITIONINFO:[1x1 struct]

输出结构经验记录从环境中收集的观察,行动和奖励以及在模拟期间收集的其他数据。每个字段都包含一个时间序列对象或结构时间序列数据对象。例如,经验是A.时间序列在模拟的每个步骤中包含代理在推车系统上施加的动作。

经验
ans =.结构与字段:cartpoleaction:[1x1倍]

模拟为示例中使用的Simulink®模型创建的环境金宝app培训多个代理商执行协作任务,使用在该示例中培训的代理。

在MATLAB®工作区中加载代理。

加载rlcollaborativetaskagents.

创造一个环境rlcollaborativetask.金宝appSimulink®模型,有两个代理块。由于两个块使用的代理(Agenta.AgentB.)已经在工作区中,您无需通过他们的观察和操作规范来创建环境。

ent = rl金宝appsimulinkenv('rlcollaborativetask',[“rlcollaborativetask /代理A”“rlcollaborativetask /代理b”]);

加载所需的参数rlcollaborativetask.金宝appSimulink®模型运行。

rlcollaborativetaskparams.

模拟工人反对环境,节省了经验XPR.

XPR = SIM(env,[Agenta Agentb]);

两个代理商的绘制行动。

子图(2,1,1);绘图(XPR(1).action.Forces)子图(2,1,2);绘图(XPR(2).action.Forces)

图包含2个轴。轴1带标题时间序列图:力量包含2型楼梯的物体。带有标题时间序列的轴2:力量包含2个阶段的物体。

输入参数

全部收缩

代理法案的环境指定为以下各种钢筋学习环境对象:

  • 预定义的matlab.®或者模金宝app拟®环境创建的环境Rlpredefinedenv.。这种环境并不同时支持培训多个代理。金宝app

  • 使用诸如此类的功能创建自定义MATLAB环境rlfunctionenv.或者rlcreateenvtemplate.。这种环境并不同时支持培训多个代理。金宝app

  • 您创建的自定义Si金宝appmulink环境Rl金宝appsimulinkenv.。这种环境在同时支持培训多个代理。金宝app

有关创建和配置环境的详细信息,请参阅:

什么时候env.是一个Si金宝appmulink环境,致电SIM编译并模拟与环境关联的模型。

代理模拟,指定为加强学习代理对象,例如rlacagent.或者rlddpgagent.,或作为这些对象的阵列。

如果env.是一个创建的多代理环境Rl金宝appsimulinkenv.,将代理指定为数组。数组中的代理的顺序必须与用于创建的代理订单匹配env.。MATLAB环境不支持多代理模拟。金宝app

有关如何为强化学习创建和配置代理的更多信息,请参阅加固学习代理人

模拟选项,指定为一个RlsimulationOptions.目的。使用此参数指定选项,例如:

  • 每个模拟的步数

  • 运行的模拟数量

有关详细信息,请参阅RlsimulationOptions.

输出参数

全部收缩

仿真结果,作为结构或结构阵列返回。阵列中的行的行数等于所指定的模拟次数numsimulations.选择RlsimulationOptions.。数组中的列数是代理的数量。每个字段经验结构如下。

从环境中收集的观察,作为与环境中规定的观测相对应的字段的结构。每个字段都包含一个时间序列长度N+ 1,在哪里N是模拟步骤的数量。

为了获得当前观察和给定的模拟步骤的下一个观察,假设其中一个字段使用诸如以下内容的代码观察obs1.

Obs = GetSapples(serageServation.obs1,1,1:n);nextobs = getsavples(serageServation.obs1,2:n + 1);
如果您使用的是使用自己的培训算法,这些值可能很有用SIM为培训产生经验。

代理计算的操作,作为与环境中指定的动作信号对应的字段的结构。每个字段都包含一个时间序列长度N, 在哪里N是模拟步骤的数量。

在模拟中的每一步的奖励,作为一个返回时间序列长度N, 在哪里N是模拟步骤的数量。

指示终止集的标志,作为a返回时间序列标量逻辑信号。根据配置环境时,根据您指定episode终止的条件,在每个步骤中设置此标志。当环境将此标志设置为1时,仿真终止。

在模拟期间收集的信息,作为以下内容之一返回:

  • 对于matlab环境,包含该字段的结构SimulationError.。该结构包含在模拟期间发生的任何错误。

  • 对于Si金宝appmulink环境,a金宝appsimulink.simulationOutput.包含模拟数据的对象。录制的数据包括任何信号,并指出模型配置为日志,仿真元数据和发生的任何错误。

在R2019A介绍