定义
动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了显著的效果。
适用范围
-
1最优子结构
满足最优性原理
最优的解可以被分解成子问题的最优解 -
2交叠式子问题
子问题能够被多次重复
子问题的解要能够被缓存并再利用
而 MDPs (马尔可夫决策过程)就满足这两个特性
- 贝尔曼方程是递归的形式,把问题分解成子问题
- 值函数有效的存储了子问题的解,并能够再利用
强化学习中的动态规划
使用动态规划解决强化学习问题时,要求知道 MDPs 的所有元素
评价函数
优化函数
策略评价问题
解法一
解法二
迭代解
伪代码
例子
策略的改进
评价一个给定的策略Π
上述的策略比较幸运,策略提升一次就到达了最优
一般情况下,可能需要多次迭代(策略评价/策略提升)才能到达最优策略
所以,有
证明
最优策略的收敛证明
提升停止时
此时满足贝尔曼最优方程
此时
此时 π 是一个最优策略
策略的迭代改进
值迭代
任何最优的策略都能被分解成两部分
- 最优的初始动作 A∗
- 从后继状态 S′ 开始沿着最优策略继续进行
例子
小结