rlFiniteSetSpec

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

描述

一个rlFiniteSetSpec对象指定增强学习环境的离散操作或观测数据规范。

创建

描述

例子

规范= rlFiniteSetSpec (元素)创建具有离散操作或观察集的数据规范,设置元素财产。

属性

全部展开

环境的一组有效的行动或观察,具体如下:

  • 向量——为单个操作或单个观察指定有效的数值。

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

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

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

此属性是只读的。

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

如果您指定元素作为一个向量[1]。否则,如果指定单元格数组,则中的项的大小元素

此属性是只读的。

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

对象的功能

rl万博1manbetxSimulinkEnv 使用中实现的动态模型创建增强学习环境万博1manbetx
rlFunctionEnv 使用函数指定自定义强化学习环境动态
rlRepresentation (不推荐)用于增强学习代理的模型表示

例子

全部折叠

对于本例,考虑rlSimplePendulumModel万博1manbetx仿真软件模型。该模型是一个简单的无摩擦摆,最初是挂在向下的位置。

打开模型。

mdl =“rlSimplePendulumModel”;open_system (mdl)

分配代理块路径信息,并创建rlNumericSpecrlFiniteSetSpec对象为观察和动作信息。可以使用点符号来分配属性值rlNumericSpecrlFiniteSetSpec对象。

agentBlk = [mdl' / RL代理'];obsInfo = rlNumericSpec([3 1])
Inf Name: [0x0 string]描述:[0x0 string]维度:[3 1]数据类型:"double"
actInfo = rlFiniteSetSpec([2 1])
Name: [0x0字符串]Description: [0x0字符串]维度:[11 1]数据类型:"double"
obsInfo。Name =“观察”;actInfo。Name =“扭矩”;

使用前面步骤中提取的信息为Simulink模型创建增强学习环境。万博1manbetx

env = rl万博1manbetxSimulinkEnv (mdl agentBlk、obsInfo actInfo)
属性:Mod万博1manbetxel: "rlSimplePendulumModel" AgentBlock: "rlSimplePendulumModel/RL Agent" ResetFcn: [] UseFastRestart: 'on'

还可以使用点符号包含一个reset函数。对于本例,考虑随机初始化theta0在模型工作区中。

env。ResetFcn = @(in) setVariable(in,“theta0”randn,“工作区”mdl)
属性:Mod万博1manbetxel: "rlSimplePendulumModel" AgentBlock: "rlSimplePendulumModel/RL Agent" ResetFcn: @(in)setVariable(in,'theta0',randn,'Workspace',mdl) UseFastRestart: 'on'

如果增强学习代理的参与者有多个输出,每个输出都具有离散的操作空间,则可以使用rlFiniteSetSpec对象。

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

actionSpec = rlFiniteSetSpec({[1 10],[1 20],[1 30],[2 10],[2 20],[2 30]])
actionSpec = rlFiniteSetSpec with properties: Elements: {6x1 cell} Name: [0x0 string] Description: [0x0 string]维度:[1 2]数据类型:"double"

介绍了R2019a