《强化学习:原理与Python实现 》 —2.4.3 求解Bellman最优方程
【摘要】 本节书摘来自华章计算机《强化学习:原理与Python实现》 一书中第二章,第2.4.3节,作者肖智清。
2.4.3 求解Bellman最优方程
对于悬崖寻路这样的数值环境,可以使用线性规划求解。线性规划问题的标准形式为:
其中目标函数中状态价值的系数已经被固定为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最优方程
求得最优动作价值后,可以用argmax计算出最优确定策略,代码清单2-10给出了从最优动作价值函数计算最优确定策略的代码。运行结果表明,计算得到的最优策略就是代码清单2-5给出的策略。
代码清单2-10 用最优动作价值确定最优确定性策略
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)