createMDP

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

Описание

пример

MDP = createMDP(states,actions) создает модель марковского процесса принятия решений с заданными состояниями и действиями.

Примеры

свернуть все

Создайте модель MDP с восемью состояниями и двумя возможными действиями.

MDP = createMDP(8,["up";"down"]);

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

% State 1 Transition and Reward
MDP.T(1,2,1) = 1;
MDP.R(1,2,1) = 3;
MDP.T(1,3,2) = 1;
MDP.R(1,3,2) = 1;
% State 2 Transition and Reward
MDP.T(2,4,1) = 1;
MDP.R(2,4,1) = 2;
MDP.T(2,5,2) = 1;
MDP.R(2,5,2) = 1;
% State 3 Transition and Reward
MDP.T(3,5,1) = 1;
MDP.R(3,5,1) = 2;
MDP.T(3,6,2) = 1;
MDP.R(3,6,2) = 4;
% State 4 Transition and Reward
MDP.T(4,7,1) = 1;
MDP.R(4,7,1) = 3;
MDP.T(4,8,2) = 1;
MDP.R(4,8,2) = 2;
% State 5 Transition and Reward
MDP.T(5,7,1) = 1;
MDP.R(5,7,1) = 1;
MDP.T(5,8,2) = 1;
MDP.R(5,8,2) = 9;
% State 6 Transition and Reward
MDP.T(6,7,1) = 1;
MDP.R(6,7,1) = 5;
MDP.T(6,8,2) = 1;
MDP.R(6,8,2) = 1;
% State 7 Transition and Reward
MDP.T(7,7,1) = 1;
MDP.R(7,7,1) = 0;
MDP.T(7,7,2) = 1;
MDP.R(7,7,2) = 0;
% State 8 Transition and Reward
MDP.T(8,8,1) = 1;
MDP.R(8,8,1) = 0;
MDP.T(8,8,2) = 1;
MDP.R(8,8,2) = 0;

Задайте терминальные состояния модели.

MDP.TerminalStates = ["s7";"s8"];

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

свернуть все

Состояния модели, заданные как одно из следующего:

  • Положительное целое число — Задает количество состояний модели. В этом случае каждое состояние имеет имя по умолчанию, такое как "s1" для первого состояния.

  • Вектор строки — Задает имена состояния. В этом случае общее количество состояний равно длине вектора.

Действия модели, заданные как одно из следующего:

  • Положительное целое число — Задает количество действий модели. В этом случае каждое действие имеет имя по умолчанию, такое как "a1" для первого действия.

  • Вектор строки — Задает имена действия. В этом случае общее количество действий равно длине вектора.

Выходные аргументы

свернуть все

Модель MDP, возвращенная как GenericMDP объект со следующими свойствами.

Имя текущего состояния, заданного как строка.

Имена состояния, заданные как вектор строки с длиной, равняются количеству состояний.

Имена действия, заданные как вектор строки с длиной, равняются количеству действий.

Матрица переходов, заданная как трехмерный массив, который определяет возможные перемещения агента в среде. Матрица переходов T матрица вероятности, которая указывает, как, вероятно, агент переместит от текущего состояния s к любому возможному следующему s' состояния путем выполнения действия aT дают:

T(s,s',a) = probability(s'|s,a).

T S-by-S-by-A массив, где S является количеством состояний, и A является количеством действий.

Вознаградите матрицу перехода, заданную как трехмерный массив, который определяет, сколько вознаграждение агент получает после выполнения действия в среде. R имеет ту же форму и размер как матрица переходов T. Вознаграждение за перемещение от s состояния утверждать s' путем выполнения действия a дают:

r = R(s,s',a).

Терминальное состояние называет в мире сетки, заданном как вектор строки имен состояния.

Введенный в R2019a

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