动态规划和贪心法的区别
(1) 动态规划的Bellman Equation 可以写成如下形式:
其中,
代表在
时刻状态
下的价值函数。注意,在动态规划里我们假定给定状态
以及行动
,在下一时刻(
)转移到状态
的概率是
(deterministic).
(2) 如果考虑更一般化的情况(状态转移不确定,服从一定概率分布),我们可以把上面的Bellman Equation 写成如下形式(Markov decision process, MDP):
(3) 如果对于(2)中一个MDP问题,我们考虑它的时间价值,比如加上一个
(discount rate,
),那么之前的公式可以写成:
好了,到了这一步,我们可以很清楚地看到贪婪算法和DP在求解思路上的差异,对于一个如(3)中的MDP问题,每一步我们需要做的是最大化当期收益,以及未来期望收益。并且这个未来期望收益是考虑时间价值的(10年后的100块不等于现在的100块)。而贪婪算法,只考虑最大化当前收益。
什么时候这两种策略能得到同样结果?
结论1:如果我们另
, 即未来的收益是0,那么DP得到的结果和贪婪算法得到的结果是相等的。
结论2:对于
每一时刻,如果贪婪最优恰巧也是Bellman最优时,所得到的策略相同。
从数学角度上讲,如果对于问题(3)中的Bellman Equation,存在最优行动
与
:
并且
的话,我们也可以说在
推荐阅读
- 在路上|在路上开廉价车和豪车的区别,看看网友的真实体会
- 啥是微信开发WEB前端
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 软件产品与传统商品、软件行业与传统行业的区别是啥
- |有种粗心叫“错把喉癌当成咽喉炎”,医生通俗告诉你两者区别在哪
- 动态规划能得到一类问题的最优解,比如背包问题用动态规划来解决,怎样证明这个解就是相对应问题的最优解呢
- Python3.4和3.5区别大么
- 计科,通信工程,电子信息工程这三个专业有啥区别
- 电子班牌和智能班牌有啥区别
- 类似于「创意周末」、「懒人周末」、「周末去哪儿」这类城市生活应用有啥区别
