主要内容

createMDP

建立马尔可夫决策过程模型

描述

例子

MDP= createMDP (行动用指定的状态和动作创建一个马尔可夫决策过程模型。

例子

全部折叠

创建具有八个状态和两个可能操作的MDP模型。

MDP = createMDP(8,[《飞屋环游记》“向下”]);

指定状态转换及其相关奖励。

状态1转换和奖励Mdp.t (1,2,1) = 1;Mdp.r (1,2,1) = 3;Mdp.t (1,3,2) = 1;Mdp.r (1,3,2) = 1;状态2转换和奖励Mdp.t (2,4,1) = 1;Mdp.r (2,4,1) = 2;Mdp.t (2,5,2) = 1;Mdp.r (2,5,2) = 1;状态3过渡和奖励Mdp.t (3,5,1) = 1;Mdp.r (3,5,1) = 2;Mdp.t (3,6,2) = 1;Mdp.r (3,6,2) = 4;状态4过渡和奖励Mdp.t (4,7,1) = 1;Mdp.r (4,7,1) = 3;Mdp.t (4,8,2) = 1;Mdp.r (4,8,2) = 2;状态5转换和奖励Mdp.t (5,7,1) = 1;Mdp.r (5,7,1) = 1;Mdp.t (5,8,2) = 1;Mdp.r (5,8,2) = 9;状态6过渡和奖励Mdp.t (6,7,1) = 1;Mdp.r (6,7,1) = 5;Mdp.t (6,8,2) = 1;Mdp.r (6,8,2) = 1;状态7过渡和奖励Mdp.t (7,7,1) = 1;Mdp.r (7,7,1) = 0;Mdp.t (7,7,2) = 1;Mdp.r (7,7,2) = 0;状态8过渡和奖励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”对于第一种状态。

  • String vector -指定状态名。在这种情况下,状态的总数等于向量的长度。

建模动作,指定为以下之一:

  • 正整数-指定模型动作的数量。在这种情况下,每个操作都有一个默认名称,例如" a1 "第一个动作。

  • String vector -指定动作名称。在这种情况下,动作的总数等于向量的长度。

输出参数

全部折叠

MDP模型,返回为GenericMDP具有以下属性的对象。

当前状态的名称,以字符串形式指定。

状态名,指定为长度等于状态数的字符串向量。

动作名称,指定为长度等于动作数量的字符串向量。

状态转换矩阵,指定为三维数组,它决定了代理在环境中可能的运动。状态转移矩阵T是否有一个概率矩阵表示代理从当前状态移动的可能性年代到任何可能的下一个状态年代通过执行行动一个T是一个年代——- - - - - -年代——- - - - - -一个数组,年代状态数和一个是动作的数量。它由:

T 年代 年代 一个 p r o b 一个 b l t y 年代 | 年代 一个

从非终末态转移概率的总和年代一个给定动作的总和必须为1。因此,所有脱离给定状态的随机跃迁必须同时指定。

例如,表示处于状态1下面的行动4移动到状态的概率是相等的23.,使用以下方法:

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.离开这个州的奖励年代年代通过执行行动一个由:

r R 年代 年代 一个

网格世界中的终端状态名称,指定为状态名称的字符串向量。

在R2019a中引入