主要内容

rlMDPEnv

建立强化学习的马尔可夫决策过程环境

描述

马尔可夫决策过程是一种离散时间随机控制过程。它提供了一个数学框架,用于在结果部分随机和部分在决策者控制下的情况下建模决策。mdp对于研究使用强化学习解决的优化问题是有用的。使用rlMDPEnv在MATLAB中创建一个用于强化学习的马尔可夫决策过程环境®

创建

描述

例子

env= rlMDPEnv (MDP创造一个强化学习环境env与指定的MDP模型。

输入参数

全部展开

马尔可夫决策过程模型,具体如下:

属性

全部展开

马尔可夫决策过程模型,指定为GridWorld对象或GenericMDP对象。

Reset函数,指定为函数句柄。

对象的功能

getActionInfo 从强化学习环境或代理获取动作数据规范
getObservationInfo 从强化学习环境或agent获取观测数据规范
sim卡 在指定的环境中模拟训练过的强化学习代理
火车 在指定的环境中训练强化学习代理
validateEnvironment 验证自定义强化学习环境

例子

全部折叠

对于这个例子,考虑一个5乘5的网格世界,规则如下:

  1. 一个5 × 5的网格世界,有4种可能的行动(北= 1,南= 2,东= 3,西= 4)。

  2. 代理从单元格[2,1](第二行,第一列)开始。

  3. 如果agent在单元格[5,5](蓝色)到达终端状态,则得到+10的奖励。

  4. 该环境包含一个从细胞[2,4]到细胞[4,4]的特殊跳跃,带有+5奖励。

  5. agent被细胞[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: [25x1 string] Actions: [4x1 string] T: [25x25x4 double] R: [25x25x4 double] ObstacleStates: [0x1 string] TerminalStates: [0x1 string]

现在,设置初始状态,终端状态和障碍状态。

GW。现状后=(2, 1)的;GW。TerminalStates =“[5,5]”;GW。ObstacleStates = [“[3 3]”“[3,4]”“[3,5]”“[4 3]”];

更新障碍状态的状态转移矩阵,并设置跨越障碍状态的规则。

updateStateTranstionForObstacles (GW) GW。T (state2idx(吉瓦,”“(2、4))::) = 0;GW。T (state2idx(吉瓦,”“(2、4)), state2idx(吉瓦,“(4,4)”):) = 1;

接下来,在奖励转换矩阵中定义奖励。

nS =元素个数(GW.States);nA =元素个数(GW.Actions);GW。R = 1 * 1 (nS, nS, nA);GW。R (state2idx(吉瓦,”“(2、4)), state2idx(吉瓦,“(4,4)”):) = 5;GW.R (:, state2idx (GW, GW.TerminalStates):) = 10;

现在,使用rlMDPEnv创建网格世界环境使用GridWorld对象吉瓦

env = rlMDPEnv (GW)
env = rlMDPEnv with properties:GridWorld] ResetFcn: []

控件可以可视化网格世界环境情节函数。

情节(env)

介绍了R2019a