动态规划(矩阵连乘)学习笔记
动态规划的思想:
- 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题
- 动态规划分解得到的子问题往往不是相互独立的。不同子问题的数目常常只有多项式量级
动态规划的基本要素:
- 最优子结构
- 矩阵连乘计算次序问题的最优解包含着其子问题的最优解———最优子结构性质
- 以自底向上的方式递归地从子问题的最优解逐步构造出整个问题的最优解
- 子问题的重叠性质
- 对每一个子问题只解一次,而后将其解保存在一个表格中(可急
分治法和动态规划的区别:
- 两者都是通过将整个问题逐步划分为一个个小的问题进行解决
- 分治法:每个子问题都是相互独立(因此会出现很多的重复计算)
- 动态规划:每个子问题不是相互独立,并会将子问题的解进行储存,避免重复计算,从而提高效率
- 动态规划从部分到整天,而分治思想从整体到部分
例如:
斐波那契数列:
有很多子问题会被重复计算,从而降低了效率
矩阵连乘
矩阵连乘是动态规划的一个简单的应用
下面运用了3种不同的方式,对比动态规划与递归的区别,已经动态规划思想是如何得到应用的