主要内容

createGridWorld

为强化学习创建一个二维网格世界

描述

例子

吉瓦=createGridWorld(n创建网格世界吉瓦大小-借-n默认操作为[N';'S';'E';'W']

吉瓦=createGridWorld(n移动创建网格世界吉瓦大小-借-n使用指定的操作移动

例子

全部折叠

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

  1. 以边界为界的五乘五网格世界,有4种可能的行动(北=1,南=2,东=3,西=4)。

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

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

  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: [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(年代t一个te2idx(GW,"[2,4]"), state2idx(吉瓦,“(4,4)”):) = 1;

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

nS =元素个数(GW.States);nA =元素个数(GW.Actions);GW。R=-1*ones(nS,nS,nA); GW.R(state2idx(GW,"[2,4]"), state2idx(吉瓦,“(4,4)”),:)=5;GW.R(:,状态2Idx(GW,GW.终端状态),:)=10;

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

env = rlMDPEnv (GW)
env=rlMDPEnv,属性为:模型:[1x1 rl.env.GridWorld]ResetFcn:[]

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

地块(环境)

输入参数

全部折叠

网格世界的行数,指定为标量。

网格世界的列数,指定为标量。

操作名称,指定为“标准”“国王”.当移动设置为

  • “标准”,行动如下:[N';'S';'E';'W']

  • “国王”,行动如下:[' N ',“S”;“E”;“W”;“东北”;“西北”;“SE”;“西南”)

输出参数

全部折叠

二维网格世界,返回为GridWorld对象,其属性如下所示。有关更多信息,请参见创建自定义网格世界环境

网格世界的大小,指定为(m, n)向量。

当前状态的名称,指定为字符串。

状态名,指定为长度的字符串向量n

操作名称,指定为字符串向量。长度行动向量由移动论点

行动是长度为的字符串向量:

  • 4、如果移动指定为“标准”

  • 八个移动指定为“国王”

状态转移矩阵,指定为一个三维数组,它确定agent在环境中的可能移动。状态转移矩阵T是否有一个概率矩阵表示agent从当前状态移动的可能性年代到任何可能的下一个状态年代通过行动一个T是由,

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

T是:

  • 一个K-借-K4数组,如果移动指定为“标准”在这里Kn

  • 一个K-借-K8数组,如果移动指定为“国王”

奖励转换矩阵,指定为一个3-D数组,决定了代理在环境中执行一个动作后获得多少奖励。R具有与状态转移矩阵相同的形状和大小T.奖励转移矩阵R是由,

r R 年代 年代 一个

R是:

  • 一个K-借-K4数组,如果移动指定为“标准”在这里Kn

  • 一个K-借-K8数组,如果移动指定为“国王”

在网格世界中无法访问的状态名,指定为字符串向量。

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

介绍了R2019a