主要内容

rlFiniteSetSpec

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

描述

一个rlFiniteSetSpecObject指定用于加强学习环境的离散动作或观察数据规范。

创建

描述

例子

规格= rlfinitesetspec(元素方法创建具有离散操作或观察集的数据规范元素财产。

属性

全部展开

环境的一组有效操作或观察结果,指定为以下其中之一:

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

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

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

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

此属性是只读的。

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

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

此属性是只读的。

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

对象的功能

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

例子

全部折叠

对于本例,请考虑RlsimplepeneLummodel.金宝appSimulink模型。该模型是一个简单的无摩擦摆,最初悬挂在向下位置。

打开模型。

mdl ='rlsimplepentulummodel';Open_System(MDL)

创建rlNumericSpecrlFiniteSetSpec分别观察和动作信息的对象。

Obsinfo = rlnumericspec([3 1])3观察的%载体:Sin(θ),cos(θ),d(θ)/ dt
obsInfo = rlNumericSpec with properties: LowerLimit: -Inf UpperLimit: Inf名称:[0x0 string]描述:[0x0 string] Dimension: [3 1] DataType: "double"
rlFiniteSetSpec([-2 0 2])% 3个可能的扭矩值:-2 Nm, 0 Nm和2 Nm
actInfo = rlFiniteSetSpec with properties: Elements: [3x1 double] Name: [0x0 string] Description: [0x0 string] Dimension: [1 1] DataType: "double"

对象的属性值可以使用点表示法rlNumericSpecrlFiniteSetSpec对象。

obsInfo。Name =“观察”;actInfo。Name =“扭矩”

分配agent块路径信息,并利用前几步提取的信息为Simulink模型创建强化学习环境。金宝app

AppletBlk = [MDL' / RL代理'];env = rl金宝appSimulinkEnv (mdl agentBlk、obsInfo actInfo)
env = 金宝appSimulinkEnvWithAgent with properties: Model: rlSimplePendulumModel AgentBlock: rlSimplePendulumModel/RL Agent ResetFcn: [] UseFastRestart: on

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

env。ResetFcn = @(in) setVariable(in,)'theta0'randn,“工作区”,mdl)
env = 金宝appsimulinkenvwithagent with properties:型号:rlsimplepentulummodel agentblock:rlsimplendepulummodel / rl代理resetfcn:@(in)setVariable(In,'theta0',Randn,'workspace',mdl)UseFastrest:On

如果强化学习代理的参与者有多个输出,每个输出都有一个离散的动作空间,则可以使用rlFiniteSetSpec目的。

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

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] Dimension: [1 2] DataType: "double"
介绍了R2019a