exponenta event banner

rlMDPEnv

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

Описание

Процесс решения Маркова (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: []

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

plot(env)

Представлен в R2019a