一.动态规划中的几个点
1.状态(类比于函数),也就是确定要得出最优解最少需要多少个变量,需要确保的是保证变量的数目尽量少,而且得出的最优解正确
2.状态转移(类比于递归的理解):状态转移需要一个递推方程,状态的初值--递推的边界,
因为递归的速度很慢 ,所以我们就把递归变成for循环,可以提高效率,但是for循环的顺序的处理是关键。
3.求解--数组(顺序),记忆化搜索
求解方法一;数组的递推:可以避免递归的慢速,数组的维数就是状态中的参数(所以需要考虑降维的问题),
这种实现方法,for循环的顺序也是关键
求解方法二:记忆化搜索;当求出每个状态的顺序很难确定,那么就用递归,这并不是一般的递归,一般的递归速度慢,就是因为做了大量的重复计算,
使用记忆化搜索,当做到重复计算的时候,就返回之前算过的值,而不是再进行计算,这就是记忆化搜索.(这需要多开一个数组,用空间换取时间)。
4.特征;最优子结构:就是考虑怎么把当前状态拆开的问题?
5.优化:
注意优化的代价一定要小,否则优化就没有什么意义。具体的优化因为题目而异。没有通用的方法。
时间: 2024-11-29 07:17:00