1

参考 Sutton 和 Barto 的 RL 书,第 2 版,Ch-3,pg-60。

这是 5x5 网格世界和每个状态的值: gridoworld with state values

使用 Bellman Backup 方程,可以计算每个状态的值:

这是中间 (3,3) 单元格的计算:

状态值的计算

使用来自上、下、左和右单元格的值,以及具有pi = 1/4 所有转换概率的随机策略p(s',r|s,a) = 1,计算成立。

但是角落细胞呢?

比如说,左上角的 3.3。那怎么计算呢?

仅使用较低的 (1.5) 和正确的 (8.8) 值是行不通的。另外,必须考虑的是,当智能体执行上左动作时,它仍然在网格上,但获得了 -1 的奖励。

你能帮我计算角落单元格的值吗?阅读 github 实现也无济于事。

4

1 回答 1

0

左上角的值约为 (0.9*(8.8+1.5) + (-1+0.9*3.3)*2) /4。等于 3.3025。

1: 0.9*(8.8+1.5) 因为 gamma 0.9,如果代理没有脱离网格并且没有从特殊状态 A 或 B 转换,则 r = 0,并且对于左移和下移,v(s') 分别为 8.8 和 1.5。

2: (-1+0.9*3.3)*2 因为 r = -1 如果代理离开网格(AKA 向左或向上移动),0.9 因为那是伽玛,3.3 因为 v(s') = v(s) 因为代理仍然存在如果它离开电网,则处于其先前的状态。时间 2,因为有 2 种可能性(左/上移动)让代理离开网格。

3:第 1 部分和第 2 部分的 div 总和除以 1/4,因为 pi(a|s) = 1/4 对于所有操作。

于 2020-09-22T19:39:25.027 回答