前言:今天《算法设计》讲了动态规划的原理,像往常一样,我们在这里以博客的形式作文复习。
1:在前面的文章中,我们介绍了分治法,但是不知道读者是否注意到了,如果在我们划分的子问题的集合中存在重复的情况,那么我们的求解过程中会重复的计算许多的重复性问题,那么这样显然会导致我们的计算资源浪费。那么如何解决这个问题了,下面我们将介绍动态规划来解决这个问题。
2:动态规划原理:在给定的代价和给定的条件下,我们在可行的解空间中搜索符合的条件的最优解。
3:使用动态规划的条件:问题的优化解中包含了子问题的优化解时,那么这个问题就有了优化的结构。同时具有这样的结构的问题可以让我们自下而上的求解问题。
4:动态规划的算法设计步骤:
a:分析优化解的结构。
b:递归的定义最优解的代价。
c:自下而上的计算优化解的代价并保存。并且我们获取构造最优解的信息。
d:根据最优解的信息来构建最优解。
5:使用例子:矩阵的乘法。最大子序列匹配。