算法导论复习(七) 动态规划

动态规划一般用来求解最优化问题 

设计一个动态规划算法一般有以下四步:

  1. 描述一个最优解的结构特征。
  2. 递归地定义最优解的值。
  3. 计算最优解的值,通常采用自底向上的方法。
  4. 利用计算出的信息构造出一个最优解。

算法导论复习(七) 动态规划_第1张图片

钢条切割问题

算法导论复习(七) 动态规划_第2张图片算法导论复习(七) 动态规划_第3张图片

体现了动态规划的一个重要性质:最优子结构性

算法导论复习(七) 动态规划_第4张图片算法导论复习(七) 动态规划_第5张图片算法导论复习(七) 动态规划_第6张图片其实自顶向下的动态规划就是在递归的基础上将计算好的结果记录下来

我们再来看看自下而上的求解

算法导论复习(七) 动态规划_第7张图片

通常,自顶向下法和自底向上法具有相同的渐近运行时间

算法导论复习(七) 动态规划_第8张图片我们还可以记录切割的位置

算法导论复习(七) 动态规划_第9张图片算法导论复习(七) 动态规划_第10张图片切割方案如上

矩阵链乘法

算法导论复习(七) 动态规划_第11张图片 算法导论复习(七) 动态规划_第12张图片我们先来了解一下矩阵的乘法运算​​​​​​​

算法导论复习(七) 动态规划_第13张图片算法导论复习(七) 动态规划_第14张图片算法导论复习(七) 动态规划_第15张图片算法导论复习(七) 动态规划_第16张图片算法导论复习(七) 动态规划_第17张图片算法导论复习(七) 动态规划_第18张图片算法导论复习(七) 动态规划_第19张图片

你可能感兴趣的:(算法导论复习,算法,动态规划)