问题
什么样的问题可以用动态规划解决?
解决动态规划问题的一般思考过程是什么样的?
贪心、分治、回溯、动态规划这四种算法思想又有什么区别和联系?
“一个模型三个特征”理论讲解
一个模型:多阶段决策最优解模型
一般用动态规划来解决最优问题。而解决问题的过程,需要经历多个决策阶段。每个决策阶段都对应着一组状态。然后我们寻找一组决策序列,经过这组决策序列,能够产生最终期望求解的最优值。三个特征:最优子结构、无后效性、重复子问题
a. 最优子结构
问题的最优解包含子问题的最优解
b. 无后效性
- 在推导后面阶段的状态的时候,我们只关心前面阶段的状态值,不关心这个状态是怎么一步一步推导出来的。
- 某阶段状态一旦确定,就不受之后阶段的决策影响。
c. 重复子问题
不同的决策序列,到达某个相同的阶段时,可能会产生重复的状态。