《强化学习:原理与Python实现 》 —2.4.3 求解Bellman最优方程

举报
华章计算机 发表于 2019/11/13 11:12:53 2019/11/13
【摘要】 本节书摘来自华章计算机《强化学习:原理与Python实现》 一书中第二章,第2.4.3节,作者肖智清。

2.4.3 求解Bellman最优方程

对于悬崖寻路这样的数值环境,可以使用线性规划求解。线性规划问题的标准形式为:

 image.png

其中目标函数中状态价值的系数已经被固定为1。也可以选择其他正实数作为系数。

代码清单2-9使用scipy.optimize.linprog() 函数来计算这个动态规划问题。这个函数的第0个参数是目标函数中各决策变量在目标函数中的系数,本例中都取1;第1个和第2个参数是形如“”这样的不等式约束的A和b的值。函数optimal_bellman() 刚开始就计算得到这些值。scipy.optimize.linprog() 还有关键字参数bounds,指定决策变量是否为有界的。本例中,决策变量都是无界的。无界也要显式指定,不可以忽略。还有关键字参数method确定优化方法。默认的优化方法不能处理不等式约束,这里选择了能够处理不等式约束的内点法(interior-point method)。

代码清单2-9 用线性规划求解Bellman最优方程

image.png

求得最优动作价值后,可以用argmax计算出最优确定策略,代码清单2-10给出了从最优动作价值函数计算最优确定策略的代码。运行结果表明,计算得到的最优策略就是代码清单2-5给出的策略。

代码清单2-10 用最优动作价值确定最优确定性策略

image.png

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。