一、DP基础

1.1DP概念

动态规划是运筹学的一个分支,是求解决策过程最优化的数学方法。
动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式取解决。

1.2 适用情况

(1)最优化原理
如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。

(2)无后效性
即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前的状态有关。

(3)有重叠子问题
即子问题之间是不独立的,一个子问题在下一个阶段决策中可能被多次使用到.(该性质并不是动态规划使用的必要条件,但是如果没有这条性质,动态规划算法同其他算法相比就不具备优势)

解决问题步骤

  • 1.拆分问题

  • 2.找状态(初始值)

  • 3.状态转移方程

1.4 DP分类