主要内容

sim卡

在指定环境中模拟经过培训的强化学习代理

描述

例子

经验= sim卡(env代理人使用默认模拟选项在环境中模拟一个或多个强化学习代理。

经验= sim卡(代理人env执行与前面语法相同的模拟。

env= sim卡(___西蒙普茨使用“模拟选项”对象西蒙普茨.使用模拟选项来指定参数,例如每个模拟的步骤数或要运行的模拟数。在前面语法中的任何输入参数之后使用此语法。

例子

全部崩溃

使用为该环境配置的代理模拟强化学习环境。对于本例,加载已经配置好的环境和代理。该环境是一个离散的车杆环境创建rlPredefinedEnv. 代理是一个策略梯度(rlPGAgent)有关此示例中使用的环境和代理的更多信息,请参阅培训PG代理以平衡车柱系统

rng (0)%的再现性负载RLSimExample.matenv
env=CartPoleDiscreation属性:重力:9.8000质量Cart:1质量杆:0.1000长度:0.5000最大作用力:10 Ts:0.0200 Threshold弧度:0.2094 X阈值:2.4000不下降的奖励:1下降的惩罚:-5状态:[4x1加倍]
代理
agent=rlPGAgent,属性为:AgentOptions:[1x1 rl.option.rlPGAgentOptions]

通常,您使用火车并模拟环境来测试训练后的agent的性能。对于本例,使用加载的代理模拟环境。配置模拟选项,指定模拟运行100步。

simOpts = rlSimulationOptions (“MaxSteps”,100);

对于本示例中使用的预定义购物车杆环境,您可以使用情节生成车杆系统的可视化。当您模拟环境时,这个情节会自动更新,以便您可以在模拟过程中观察系统的发展。

地块(环境)

Figure Cart Pole Visualizer包含一个轴对象。轴对象包含6个类型为线、多边形的对象。

模拟环境。

经验= sim (env,代理simOpts)

Figure Cart Pole Visualizer包含一个轴对象。轴对象包含6个类型为线、多边形的对象。

经历=带字段的结构:观察:[1x1 struct]动作:[1x1 struct]奖励:[1x1 timeseries] IsDone: [1x1 timeseries] SimulationInfo: [1x1 struct]

产出结构经验记录从环境中收集的观察结果、行动和奖励以及在模拟过程中收集的其他数据。每个字段包含timeseries物体或结构timeseries数据对象。例如,经验、行动是一个timeseries包含代理在模拟的每个步骤中对车杆系统施加的动作。

经验、行动
ans=带字段的结构:CartPoleAction:[1x1时间序列]

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

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

负载rlCollaborativeTaskAgents

创造一个环境rlCollaborativeTask金宝appSimulink®模型,具有两个代理块。因为两个区块使用的代理(agentAagentB)如果已在工作区中,则无需通过其观察和操作规范来创建环境。

env=rlSi金宝appmulinkEnv(“rlCollaborativeTask”,[“rlCollaborativeTask/代理A”“rlCollaborativeTask/Agent B”]);

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

rlCollaborativeTaskParams

在环境中模拟代理,保存体验xpr

xpr=sim(env,[agentA agentB]);

策划两个特工的行动。

子地块(2,1,1);地块(xpr(1).作用力)子地块(2,1,2);地块(xpr(2).作用力)

图中包含2个轴对象。坐标轴对象1,标题为时间序列图:力包含2个楼梯类型的对象。坐标轴物体2,标题为时间序列图:力包含2个楼梯类型的物体。

输入参数

全部崩溃

代理行为的环境,指定为以下强化学习环境对象之一:

  • 预定义的MATLAB®或仿真金宝app软件®使用创建的环境rlPredefinedEnv。这种环境不支持同时培训多个代理。金宝app

  • 使用以下函数创建的自定义MATLAB环境:rlFunctionEnvrlCreateEnvTemplate。这种环境不支持同时培训多个代理。金宝app

  • 使用创建的自定义S金宝appimulink环境rl金宝appSimulinkEnv。这种环境支持同时培训多个代理。金宝app

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

什么时候env是Simu金宝applink环境,调用sim卡编译并模拟与环境关联的模型。

要模拟的代理,指定为强化学习代理对象,例如rlACAgentrlDDPGAgent,或作为此类对象的数组。

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

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

模拟选项,指定为模拟选项对象。使用这个参数指定选项,例如:

  • 每个模拟的步骤数

  • 要运行的模拟数

有关详细信息,请参见模拟选项

输出参数

全部崩溃

模拟结果,作为结构或结构数组返回。数组中的行数等于NumSimulations选择模拟选项。数组中的列数是代理数。每个列的字段经验结构如下。

从环境中收集的观察结果,作为一个结构返回,该结构具有与环境中指定的观察结果相对应的字段。每个字段包含一个timeseries长度N+1,在哪里N是模拟步骤的数量。

要获取给定模拟步骤的当前观测值和下一个观测值,请使用如下代码,假设观察obs1

奥林匹克广播服务公司= getSamples (experience.Observation.obs1, 1: N);NextObs = getSamples (experience.Observation.obs1, 2: N + 1);
如果您正在使用这些值编写自己的训练算法,那么这些值将非常有用sim卡为培训积累经验。

由代理计算的操作,作为结构返回,其字段对应于环境中指定的操作信号。每个字段包含timeseries长度N哪里N是模拟步骤的数量。

模拟中每一步的奖励,以timeseries长度N哪里N是模拟步骤的数量。

表示剧集终止的标志,返回为timeseries标量逻辑信号。此标志由环境根据您在配置环境时为事件终止指定的条件在每一步设置。当环境将此标志设置为1时,模拟终止。

在模拟过程中收集的信息,返回如下其中之一:

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

  • 对于Si金宝appmulink环境,a金宝app仿真软件。SimulationOutput对象,该对象包含模拟数据。记录的数据包括模型配置为日志、模拟元数据和发生的任何错误的任何信号和状态。

介绍了R2019a