微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sutton的RL书中的Gridworld:如何计算角单元的值函数?

如何解决Sutton的RL书中的Gridworld:如何计算角单元的值函数?

请参阅Sutton和Barto的RL书籍,第二版,第3章,第60页。

以下是5x5网格世界以及每个状态的值: gridoworld with state values

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

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

calculation of state value

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

但是角落单元格呢?

说,左上角为3.3。如何计算?

仅使用下(1.5)和右(8.8)值无效。另外,必须考虑到,当代理执行上下动作时,它会保留在网格上,但会收到-1的奖励。

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

解决方法

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

1:0.9 *(8.8 + 1.5),因为伽玛为0.9,如果代理未脱离网格且未从特殊状态A或B过渡,则r = 0,且左(v)和右(v)的v(s')为8.8和1.5分别移动。

2:(-1 + 0.9 * 3.3)* 2,因为如果代理人离开网格(AKA左移或上移),则r = -1,因为伽马系数是0.9,因为v(s')= v(s),所以3.3如果代理程序脱离网格,它将保持其先前的状态。乘以2,因为代理有2种可能性(向左/向上移动)离开网格。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。