1、动态规划的定义
动态规划算法:多阶段决策过程,每步求解的问题是后面阶段求解问题的子问题,每步决策将依赖于以前步骤的决策结果;
2、使用动态规划技术的必要条件:满足优化原则
优化原则: 一个最优决策序列的任何子序列本身一定的是相对于子序列的初始和结束状态的最优决策序列;
最优解不满足优化原则的问题不能使用动态规划算法;
3、动态规划算法的要素
- 划分子问题,确定子问题边界,将问题求解转变成多步判断的过程;
- 定义优化函数,以该函数极大(或极小)值作为依据,确定是否满足优化原则;
- 列优化函数的递推方程和边界条件;
- 自底向上计算,设计备忘录(记录每一次计算的值);
- 考虑是否需要设立 标记函数(记录每个子问题的解);
- 用递归方程或备忘录估计时间复杂度;
见《算法分析与设计》第2版 - 屈婉玲;
见 配套视频教程:https://www.bilibili.com/video/BV1Ls411W7PB