主要内容

createGridWorld

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

描述

例子

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

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

例子

全部折叠

在这个例子中,考虑一个5 * 5的网格世界,遵循以下规则:

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

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

  3. 如果智能体到达单元格[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] ProbabilityTolerance: 8.8818e-16

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

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 = number (GW.States);nA = number (GW.Actions);GW。R=-1*ones(nS,nS,nA); GW.R(state2idx(GW,”“(2、4)), state2idx(吉瓦,“(4,4)”),:) = 5;GW. r (:,state2idx(GW,GW. terminalstates),:) = 10;

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

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

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

情节(env)

输入参数

全部折叠

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

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

操作名,指定为任意一种“标准”“国王”.当移动设置为

  • “标准”,动作为[' N '; ' S ' E '; ' W ']

  • “国王”,动作为[' N ',“S”;“E”;“W”;“东北”;“西北”;“SE”;“西南”)

输出参数

全部折叠

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

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

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

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

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

行动长度为:

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

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

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

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

T是:

  • 一个K——- - - - - -K-by-4数组,如果移动指定为“标准”.在这里,Kn

  • 一个K——- - - - - -K-by-8数组,如果移动指定为“国王”

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

r R 年代 年代 一个 )

R是:

  • 一个K——- - - - - -K-by-4数组,如果移动指定为“标准”.在这里,Kn

  • 一个K——- - - - - -K-by-8数组,如果移动指定为“国王”

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

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

版本历史

在R2019a中引入