主要内容

rlfinitesetspec.

为强化学习环境创建离散动作或观察数据规范

描述

一个rlfinitesetspec.对象指定用于强化学习环境的离散动作或观测数据规范。

创建

描述

规范= rlFiniteSetSpec (元素使用离散的操作或观察组创建数据规范,设置元素属性。

属性

展开全部

为环境设置的有效操作或观察,指定为以下内容之一:

  • Vector—为单个动作或单个观察指定有效的数值。

  • 单元格数组 - 当您有多个动作或观察时,指定有效的数值组合。单元格数组的每个条目必须具有相同的尺寸。

的名字rlfinitesetspec.对象,指定为字符串。使用此属性为有限集设置有意义的名称。

对。的描述rlfinitesetspec.对象,指定为字符串。使用此属性可指定有限集值的有意义的描述。

此属性是只读的。

每个元素的大小,指定为一个向量。

如果您指定元素作为向量,然后[1 1]。否则,如果您指定单元格数组,那么表示条目的大小元素

此属性是只读的。

有关数据类型的信息,指定为字符串。

对象功能

Rl金宝appsimulinkenv. 使用动态模型创建强化学习环境金宝app
rlFunctionEnv 使用函数指定自定义强化学习环境动态
rlrepresentation (不推荐)强化学习代理的模型表示

例子

全部收缩

对于这个例子,请考虑Rlsimplepentulummodel.金宝app仿真软件模型。这个模型是一个简单的无摩擦摆,它最初悬挂在一个向下的位置。

打开模型。

mdl =“rlSimplePendulumModel”;open_system (mdl)

创建rlnumericspec.rlfinitesetspec.分别为观察对象和动作信息。

obsInfo = rlNumericSpec([3 1])3个向量的% sin cos d /dt
obsInfo = rlnumericspec与属性:lowerlimit:-inf上唇:inf name:[0x0字符串]描述:[0x0字符串]尺寸:[3 1]数据类型:“double”
Actinfo = rlfinitesetspec([ -  2 0 2])扭矩的%3可能的值:-2 nm,0 nm和2nm
ActInfo = rlfinitesetspec,具有属性:元素:[3x1 double]名称:[0x0字符串]描述:[0x0字符串]尺寸:[1 1]数据类型:“DOUBLE”

您可以使用DOT表示法为分配属性值rlnumericspec.rlfinitesetspec.对象。

ObsInfo.name =.'观察';Actinfo.name =.'扭矩';

分配代理块路径信息,并使用先前步骤中提取的信息创建用于Simulink模型的增强学习环境。金宝app

agentBlk = [mdl'/ rl代理'];Env = Rl金宝appsimulinkenv(MDL,AppertBlk,Obsinfo,Actinfo)
Env = 金宝appSimulinkenvwithAgent with属性:型号:rlsimplepentulummodel agentblock:rlsimpleveptulummodel / rl代理resetfcn:[] UseFastrest:ON

您还可以使用点表示法包含重置功能。对于此示例,随机初始化Theta0.在模型工作区中。

env.resetfcn = @(in)setVariable(在,“theta0”,randn,'工作区'mdl)
env = 金宝appSimulinkEnvWithAgent with properties: Model: rlSimplePendulumModel AgentBlock: rlSimplePendulumModel/RL Agent ResetFcn: @(in)setVariable(in,'theta0',randn,'Workspace',mdl) UseFastRestart: on

如果钢筋学习代理的演员具有多个输出,则每个输出都有一个离散的动作空间,您可以使用一个离散的动作空间指定可能的离散动作组合rlfinitesetspec.对象。

假设双输出系统的有效值是[1 2]对于第一个输出和20 30 [10]对于第二个输出。为所有可能的输入组合创建一个离散的动作空间规范。

actionspec = rlfinitesetspec({[11 10],[110],[1 30],......[2 10],[2 20],[2 30]})
actionspec = rlfinitesetspec,具有属性:元素:{6x1 cell}名称:[0x0字符串]描述:[0x0字符串]尺寸:[1 2]数据类型:“double”
在R2019A介绍