定义
从字面意义上去看,动态规划觉得比较难,对于动态规划来说,动态规划理解了思想,掌握基本的模型,然后再加上写代码的套路,动态规划就游刃有余。
本质
求解决策过程最优化的数学方法
适用条件
1、最优化原理(最优子结构性质)
一个最优化策略具有这样的性质,不抡过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须是最优策略。简而言之,一个最优的子策略也是最优的,一个问题满足最优化原理又称其具有最优子结构性质。
2、无后效性
将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它之前各阶段的状态无法直接影响它未来的决策,而只能通过当前这个状态。换句话说,每个状态都是过去历史的一个完整总结。 这就是午后向性,又称为无后效性。
3、子问题的重叠性
动态规划算法的关键在于解决冗余,这是动态规划算法的根本目的。动态规划实质上是一种空间换时间的技术,它在实现的过程中,不得不存储产生过程中的各种状态,所以它的空间复杂度要大于其他的算法。选择动态规划算法是因为动态规划算法在空间上可以承受,而搜索算法在时间上却无法承受,所以我们舍空间而取时间。