exponenta event banner

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 со следующими свойствами.

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

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

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

Матрица перехода состояния, заданная как массив 3-D, который определяет возможные перемещения агента в среде. Матрица перехода состояния T - матрица вероятности, указывающая, насколько вероятен переход агента из текущего состояния s в любое возможное следующее состояние s' путем выполнения действия a. T - массив S-by-S-by-A, где S - количество состояний, а A - количество действий. Оно определяется:

T (s, s ', a ) = вероятность (s' | s, a).

Сумма вероятностей перехода из нетерминального состояния s следующее за данным действием должно суммироваться до единицы. Поэтому все стохастические переходы из заданного состояния должны быть указаны одновременно.

Например, чтобы указать, что в состоянии 1 следующее действие 4 существует равная вероятность перехода в состояния 2 или 3, используйте следующее:

MDP.T(1,[2 3],4) = [0.5 0.5];

Можно также указать, что после выполнения действия существует некоторая вероятность остаться в том же состоянии. Например:

MDP.T(1,[1 2 3 4],1) = [0.25 0.25 0.25 0.25];

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

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

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

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