rlNumericSpec

Создайте непрерывные спецификации данных о действии или наблюдении для среды обучения укрепления

Описание

Используйте rlNumericSpec, чтобы создать объект rlNumericSpec, который задает конечное множество действий или наблюдений.

Создание

Синтаксис

spec = rlNumericSpec(dimension)
spec = rlNumericSpec(dimension,Name,Value)

Описание

пример

spec = rlNumericSpec(dimension) создает спецификацию данных с формой, заданной векторным dimension.

spec = rlNumericSpec(dimension,Name,Value) аргументы пары "имя-значение" использования Свойств наборов.

Входные параметры

развернуть все

Размерность пространства данных, заданного как числовой вектор.

Это эквивалентно Свойству измерения.

Свойства

развернуть все

Нижний предел пространства данных, заданного как скаляр или матрица, одного размера как пространство данных. Когда LowerLimit задан как скаляр, rlNumericSpec применяет его ко всем записям в пространстве данных.

Верхний предел пространства данных, заданного как скаляр или матрица, одного размера как пространство данных. Когда UpperLimit задан как скаляр, rlNumericSpec применяет его ко всем записям в пространстве данных.

Имя объекта rlNumericSpec, заданного как строка.

Описание объекта rlNumericSpec, заданного как строка.

Размерность пространства данных, заданного как числовой вектор.

Информация о типе данных, заданных как строка.

Функции объекта

rlSimulinkEnvСоздайте среду обучения укрепления с помощью динамической модели, реализованной в Simulink
rlFunctionEnvЗадайте пользовательскую динамику среды обучения укрепления с помощью функций
rlRepresentationПредставление модели для агентов изучения укрепления

Примеры

свернуть все

В данном примере рассмотрите модель rlSimplePendulumModel Simulink. Модель является простым лишенным трения маятником, который первоначально зависает в нисходящем положении.

Откройте модель.

mdl = 'rlSimplePendulumModel';
open_system(mdl)

Присвойте информацию о блоке path агента и создайте rlNumericSpec и объекты rlFiniteSetSpec для получения информации о наблюдении и действии. Можно использовать запись через точку, чтобы присвоить значения свойств объектов rlFiniteSetSpec и rlNumericSpec.

agentBlk = [mdl '/RL Agent'];
obsInfo = rlNumericSpec([3 1])
obsInfo = 
  rlNumericSpec with properties:

     LowerLimit: -Inf
     UpperLimit: Inf
           Name: [0×0 string]
    Description: [0×0 string]
      Dimension: [3 1]
       DataType: "double"

actInfo = rlFiniteSetSpec([2 1])
actInfo = 
  rlFiniteSetSpec with properties:

       Elements: [2 1]
           Name: [0×0 string]
    Description: [0×0 string]
      Dimension: [1 1]
       DataType: "double"

obsInfo.Name = 'observations';
actInfo.Name = 'torque';

Создайте среду обучения укрепления для модели Simulink с помощью информации, извлеченной на предыдущих шагах.

env = rlSimulinkEnv(mdl,agentBlk,obsInfo,actInfo)
env = 
  SimulinkEnvWithAgent with properties:

             Model: "rlSimplePendulumModel"
        AgentBlock: "rlSimplePendulumModel/RL Agent"
          ResetFcn: []
    UseFastRestart: 'on'

Можно также включать функцию сброса, использующую запись через точку. В данном примере рассмотрите случайным образом инициализирующий theta0 в рабочем пространстве модели.

env.ResetFcn = @(in) setVariable(in,'theta0',randn,'Workspace',mdl)
env = 
  SimulinkEnvWithAgent with properties:

             Model: "rlSimplePendulumModel"
        AgentBlock: "rlSimplePendulumModel/RL Agent"
          ResetFcn: @(in)setVariable(in,'theta0',randn,'Workspace',mdl)
    UseFastRestart: 'on'

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте