浅谈动态规划dp
发布日期:2021-06-29 02:59:45 浏览次数:2 分类:技术文章

本文共 530 字,大约阅读时间需要 1 分钟。

动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。
动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。动态规划往往用于优化递归问题,例如斐波那契数列,如果运用递归的方式来求解会重复计算很多相同的子问题,利用动态规划的思想可以减少计算量。
通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,具有天然剪枝的功能,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指数增长时特别有用。

某种程度上,贪心算法和动态规划有一定的相似性都是先分解子问题。但动态规划实质上是穷举法,只是会省去重复计算,更像是一种途径和方法而不是一种特殊算法。而贪心算法每次都选择局部的最优解,并不考虑这个局部最优选择对全局的影响,最后产生整体最优解或其近似解。

转载地址:https://blog.csdn.net/z2431435/article/details/104862444 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:可视化文本操作
下一篇:寻址方式

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月18日 02时38分00秒