【算法导论】第15章,动态规划
动态规划问题的步骤
1、描述最优解的结构
2、递归定义最优解的值
3、自底向上计算最优解的值
4、由计算的结果构造最优解
一般要在第3步记录一些附加信息,
自底向上逐步计算还有另外一种方法,可以带备忘录自顶而下计算。
15.1 装配线调度
15.2 矩阵链乘法
15.3 动态规划原理
最优化问题应该具备两个元素:最优子结构,子问题重叠
发现最优子结构的方法:
1、做出一个选择:
2、假定知道哪个选择可以得到最优结果
3、确定最优选择会产生哪些子问题
4、证明子问题的解的和是母问题的解
刻画子问题空间要尽可能简洁:
在钢条切割问题中,只要知道长度即可,在矩阵乘法中,需要知道起始点和终点
15.4 最长公共子序列
15.5 最优二叉搜索树
与矩阵乘法接法相同。