递推和动态规划的区别?
递推和动态规划的区别?
动态规划学了一段时间, 也尝试过去网上各种寻求动态规划的本质, 但是题做得少还是理解的不够透彻, 最近一段时间随着理解的深入觉得dp和递推越来越像但是大佬们告诉我是两码事儿, 我听不太懂, 希望有大神可以帮我解答......
邓鋆
严格的划分的话:
递推 是一种计算机算法,通常用来将一个递推函数 转化成一个线性或多项式时间(取决于递推函数的参数个数)的求解程序。
动态规划 是一个运筹学算法,通常可以用来将一个满足特定条件的决策最优化问题 转化成一个递推函数。
也就是说,动态规划解决的问题,通常都可以使用递推进行编码实现。如果问题本身就是个递推公式(譬如求斐波那契数列),那就不应该称作是动态规划。
递推函数 也不一定必须用递推求解,特定类型的递推函数的求解 除了递推以外,还有母函数、矩阵求幂等方法。只是大部分动态规划问题可能不满足这些解法的前提,必须用递推才能进行求解。
作者:邓鋆
链接:https://www.zhihu.com/question/53102141/answer/1434119192
总结:
比较难的具体的问题 --动态规划--> 状态转移方程(递推函数) --递推算法--> 线性求解的具体程序