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

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