rlFiniteSetSpec

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

Описание

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

Создание

Синтаксис

spec = rlFiniteSetSpec(elements)

Описание

пример

spec = rlFiniteSetSpec(elements) создает спецификацию данных с дискретным набором, заданным elements.

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

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

Набор допустимых значений, заданных как числовой вектор.

Это эквивалентно свойству Elements.

Свойства

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

Набор допустимых значений, заданных как числовой вектор.

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

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

Размер каждого элемента, указанного как вектор.

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

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

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

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