exponenta event banner

rlMDPEnv

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

Описание

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

Создание

Синтаксис

env = rlMDPEnv(MDP)

Описание

пример

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

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

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

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

Для получения дополнительной информации о создании объектов GridWorld смотрите createGridWorld.

Свойства

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

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

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

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

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: [25×1 string]
           Actions: [4×1 string]
                 T: [25×25×4 double]
                 R: [25×25×4 double]
    ObstacleStates: [0×1 string]
    TerminalStates: [0×1 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: [1×1 rl.env.GridWorld]
    ResetFcn: []

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

plot(env)

Введенный в R2019a