主要内容

rlFiniteSetSpec

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

描述

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

创建

描述

例子

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

属性

全部展开

对环境的一组有效的行动或观察,指定为下列之一:

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

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

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

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

此属性是只读的。

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

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

此属性是只读的。

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

对象的功能

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

例子

全部折叠

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

打开模型。

mdl ='rlsimplepeneylummodel';Open_System(MDL)

创造rlNumericSpecrlFiniteSetSpec分别用于观察和动作信息的对象。

ObsInfo = rlnumericspec([3 1])3观察的%载体:SIN(θ),cos(θ),d(θ)/ dt
obsInfo = rlNumericSpec with properties: LowerLimit: -Inf UpperLimit: Inf Name: [0x0 string] Description: [0x0 string] Dimension: [3 1] DataType: "double"
actInfo = 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属性:型号:rlsimplepentulummodel agentblock:rlsimpleveptulummodel / rl代理resetfcn:[] UseFastrest:ON

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

env。ResetFcn = @(in) setVariable(in,'theta0'randn,“工作区”,mdl)
env = 金宝appsimulinkenvwithangent with属性:型号:rlsimplepentulummodel agentblock:rlsimplevepulummodel / rl代理resetfcn:@(in)setVariable(In,'theta0',Randn,'工作区',mdl)usefastrestart:上

如果您的强化学习代理的行动者有多个输出,每个输出具有一个离散动作空间,您可以使用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