Dynamaic Programming
定义&内容:
动态规划是运筹学中用于求解决策过程中的最优化数学方法。作为算法设计技术,是一种使用多阶段决策过程最优的通用方法。是解决最优化问题的重要工具。
多阶段决策过程:
- 百科:多阶段决策是指决策者在整个决策过程中做出时间上先后有别的多项决策。它通常比只需做出一项决策的单阶段决策要复杂,它或是要决策者一次确定各阶段应选择的一串最优策略,或是找出表示一个过程内连续变化的一条控制变量曲线,或是确定适合不同状态的灵活策略
- 总结:一次决策可以得到解的一部分,当做完所有决策就得到相应完整的解
什么样的问题适用DP
1)问题是由交叠的子问题所构成,大问题分解为小问题。
2)将交叠子问题的一次次求解\(\rightarrow\)子问题只求解一次,并将结果记录保存。
3)利用空间(子问题存储)来换取时间
keyword & main idea
- 求解最优化问题
- 是多阶段决策问题
- 交叠子问题(存在重复的子问题)
- 子问题存储,不求重复解
- 自底向上的方法