rlMDPEnv

Создайте окружение марковского процесса принятия решений для обучения с подкреплением

Описание

A Марковского процесса принятия решений (MDP) является стохастическим процессом управления с дискретным временем. Это обеспечивает математическую среду для моделирования принятия решений в ситуациях, когда результаты частично случайны и частично находятся под контролем лица, принимающего решения. MDP полезны для изучения задач оптимизации, решаемых с помощью обучения с подкреплением. Использование rlMDPEnv создать окружение марковского процесса принятия решений для обучения с подкреплением в MATLAB®.

Создание

Синтаксис

Описание

пример

env = rlMDPEnv(MDP) создает окружение обучения с подкреплением env с заданным MDP модель.

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

расширить все

Модель марковского процесса принятия решений, заданная как одно из следующего:

  • GridWorld объект, созданный с помощью createGridWorld.

  • GenericMDP объект, созданный с помощью createMDP.

Свойства

расширить все

Модель марковского процесса принятия решений, заданная как GridWorld объект или GenericMDP объект.

Функция сброса, заданная как указатель на функцию.

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

getActionInfoПолучите спецификации данных о действии из окружения обучения с подкреплением или от агента
getObservationInfoПолучите спецификации данных о наблюдении из окружения обучения с подкреплением или от агента
simСимулируйте обученных агентов обучения с подкреплением в заданном окружении
trainОбучите агентов обучения с подкреплением в заданном окружении
validateEnvironmentПроверьте пользовательское окружение обучения с подкреплением

Примеры

свернуть все

В данном примере рассмотрим мир сетки 5 на 5 со следующими правилами:

  1. Мир сетки 5 на 5 ограничен границами, с 4 возможными действиями (Север = 1, Юг = 2, Восток = 3, Запад = 4).

  2. Агент стартует с камеры [2,1] (вторая строка, первый столбец).

  3. Агент получает вознаграждение + 10, если он достигает конечного состояния в камере [5,5] (синяя).

  4. Среда содержит специальный переход от камеры [2,4] к камере [4,4] с вознаграждением + 5.

  5. Агент блокируется препятствиями в камерах [3,3], [3,4], [3,5] и [4,3] (черные камеры).

  6. Все другие действия приводят к вознаграждению -1.

Во-первых, создайте GridWorld объект с использованием createGridWorld функция.

GW = createGridWorld(5,5)
GW = 
  GridWorld with properties:

          GridSize: [5 5]
      CurrentState: "[1,1]"
            States: [25x1 string]
           Actions: [4x1 string]
                 T: [25x25x4 double]
                 R: [25x25x4 double]
    ObstacleStates: [0x1 string]
    TerminalStates: [0x1 string]

Теперь установите начальное, терминальное и препятствующее состояния.

GW.CurrentState = '[2,1]';
GW.TerminalStates = '[5,5]';
GW.ObstacleStates = ["[3,3]";"[3,4]";"[3,5]";"[4,3]"];

Обновите матрицу переходов состояний для состояний препятствий и установите правило скачка над состояниями препятствий.

updateStateTranstionForObstacles(GW)
GW.T(state2idx(GW,"[2,4]"),:,:) = 0;
GW.T(state2idx(GW,"[2,4]"),state2idx(GW,"[4,4]"),:) = 1;

Затем задайте вознаграждения в матрице вознаграждений при переходе.

nS = numel(GW.States);
nA = numel(GW.Actions);
GW.R = -1*ones(nS,nS,nA);
GW.R(state2idx(GW,"[2,4]"),state2idx(GW,"[4,4]"),:) = 5;
GW.R(:,state2idx(GW,GW.TerminalStates),:) = 10;

Теперь используйте rlMDPEnv создать окружение мира сетки с помощью GridWorld GW объекта.

env = rlMDPEnv(GW)
env = 
  rlMDPEnv with properties:

       Model: [1x1 rl.env.GridWorld]
    ResetFcn: []

Вы можете визуализировать окружение мира сетки с помощью plot функция.

plot(env)

Введенный в R2019a