sim卡
在指定的环境中模拟训练过的强化学习代理
描述
例子
模拟强化学习环境
使用为该环境配置的代理模拟强化学习环境。对于本例,加载已经配置的环境和代理。环境是一个离散的车极环境创建与rlPredefinedEnv
.代理是一个策略梯度(rlPGAgent
)代理。有关本例中使用的环境和代理的更多信息,请参见训练PG代理人平衡车杆系统.
rng (0)可重复性%负载RLSimExample.matenv
env = cartpoledistteaction with properties: Gravity: 9.8000 MassCart: 1 MassPole: 0.1000 Length: 0.5000 MaxForce: 10 Ts: 0.0200 thetathresholdraans: 0.2094 XThreshold: 2.4000 RewardForNotFalling: 1 pentyforfalling: -5 State: [4×1 double]
代理
AgentOptions: [1×1 rl.option. agent = rpgagent . properties:rlPGAgentOptions] UseExplorationPolicy: 1 ObservationInfo: [1×1 rl.util.rlNumericSpec] ActionInfo: [1×1 rl.util.rlFiniteSetSpec] SampleTime: 0.1000
通常,你训练代理使用火车
并对所训练的智能体进行环境模拟,以测试其性能。对于本例,使用加载的代理模拟环境。配置模拟选项,指定模拟运行100步。
simOpts = rlSimulationOptions(“MaxSteps”, 100);
对于本例中使用的预定义的车杆环境。你可以用情节
生成车杆系统的可视化。当您模拟环境时,这个图会自动更新,以便您可以在模拟过程中观察系统的发展。
情节(env)
模拟环境。
experience = sim(env,agent,simOpts)
经验=带有字段的结构:观察:[1×1 struct]动作:[1×1 struct]奖励:[1×1 timeseries] IsDone: [1×1 timeseries] SimulationInfo: [1×1 struct]
输出结构经验
记录从环境中收集到的观察,行动和奖励,以及在模拟过程中收集到的其他数据。每个字段包含一个timeseries
的对象或结构timeseries
数据对象。例如,体验。行动
是一个timeseries
包含代理在模拟的每一步对车-杆系统的作用。
体验。行动
ans =带有字段的结构:CartPoleAction: [1×1 timeseries]
用多代理模拟Sim万博1manbetxulink环境
模拟为本例中使用的Simulink®模型创建的环境万博1manbetx训练多个代理执行协作任务,使用在那个例子中训练过的特工。
在MATLAB®工作区中加载代理。
负载rlCollaborativeTaskAgents
创造一个环境rlCollaborativeTask
万博1manbetxSimulink®模型,它有两个代理块。由于两个块使用的代理(agentA
而且agentB
)已经在工作空间中,您不需要通过它们的观察和操作规范来创建环境。
env = rl万博1manbetxSimulinkEnv(“rlCollaborativeTask”,[“rlCollaborativeTask /代理”,“B rlCollaborativeTask /代理”]);
控件所需的参数rlCollaborativeTask
万博1manbetxSimulink®模型要运行。
rlCollaborativeTaskParams
模拟人工智能对环境的影响,节省人工智能的经验xpr
.
xpr = sim(env,[agentA agentB]);
策划两个代理人的行动。
次要情节(2,1,1);情节(xpr (1) .Action.forces)次要情节(2,1,2);情节(xpr (2) .Action.forces)
输入参数
env
- - - - - -环境
强化学习环境对象
代理行为的环境,指定为下列强化学习环境对象之一:
一个预定义的MATLAB®或仿真万博1manbetx软件®使用
rlPredefinedEnv
.这种环境不支持同时训练多个代理。万博1manbetx一个自定义的MATLAB环境,您创建的函数,如
rlFunctionEnv
或rlCreateEnvTemplate
.这种环境不支持同时训练多个代理。万博1manbetx您创建的自定义Si万博1manbetxmulink环境
rl万博1manbetxSimulinkEnv
.这种环境支持同时训练多个代理。万博1manbetx
有关创建和配置环境的更多信息,请参见:
当env
是一个Si万博1manbetxmulink环境,调用sim卡
编译并模拟与环境相关的模型。
代理
- - - - - -代理
强化学习代理对象|代理对象数组
要模拟的代理,指定为强化学习代理对象,如rlACAgent
或rlDDPGAgent
,或作为这类对象的数组。
如果env
是否创建了多代理环境rl万博1manbetxSimulinkEnv
,将代理指定为数组。数组中代理的顺序必须与用于创建的代理顺序匹配env
.MATLAB环境不支持多代理模拟。万博1manbetx
有关如何创建和配置用于强化学习的代理的详细信息,请参见强化学习代理.
simOpts
- - - - - -模拟选项
rlSimulationOptions
对象
输出参数
经验
-模拟结果
结构|结构数组
模拟结果,作为结构或结构数组返回。数组中的行数等于类指定的模拟数NumSimulations
选择rlSimulationOptions
.数组中的列数就是代理的数量。每个的字段经验
结构如下。
观察
——观察
结构
从环境中收集的观察结果,作为结构返回,其中包含与环境中指定的观察结果相对应的字段。每个字段包含一个timeseries
的长度N+ 1,其中N为模拟步骤数。
要获得给定模拟步骤的当前观察值和下一个观察值,可以使用如下代码,假设字段之一观察
是obs1
.
Obs = getSamples(experience. observe .obs1,1:N);NextObs = getSamples(experience. observe .obs1,2:N+1);
sim卡
为培训产生经验。
行动
——行动
结构
由代理计算的操作作为结构返回,该结构具有与环境中指定的操作信号对应的字段。每个字段包含一个timeseries
的长度N,在那里N为模拟步骤数。
奖励
——奖励
timeseries
在模拟的每一个步骤的奖励,返回为timeseries
的长度N,在那里N为模拟步骤数。
结束
-指示剧集终止的标志
timeseries
标志,指示事件的终止,返回为timeseries
标量逻辑信号的。根据配置环境时为事件终止指定的条件,该标志由环境在每一步设置。当环境将此标志设置为1时,模拟终止。
SimulationInfo
-模拟过程中收集的信息
结构|向量万博1manbetx仿真软件。SimulationOutput
对象
在模拟过程中收集的信息,作为以下之一返回:
对于MATLAB环境,一种包含字段的结构
SimulationError
.该结构包含模拟过程中发生的任何错误。对于Si万博1manbetxmulink环境,a
万博1manbetx仿真软件。SimulationOutput
包含模拟数据的对象。记录的数据包括模型配置为日志记录的任何信号和状态、模拟元数据以及发生的任何错误。
版本历史
Beispiel offnen
Sie haben eine geänderte Version dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
MATLAB-Befehl
Sie haben auf einen Link geklickt, der diesem MATLAB-Befehl entspricht:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。