动态规划

定义

动态规划(Dynamic programming)是用一种在数学,计算机科学和经济学中使用的,通过把愿问题分解为相对简单的子问题的方法求解复杂问题的方法。
动态规划常常适用于有重叠子问题和最优子结构性质的问题。动态规划方法的耗时少于朴素算法。

什么是最优子结构?

当问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。

什么是重叠子问题?

在用递归算法自顶向下解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。动态规划算法正是利用了这种子问题的重叠性质,对每个子问题只借一次,而后将其保存在一个表格中,在以后尽可能多🉐️利用这些子问题的解。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文来自通俗易懂算法入门书《趣学算法》。 动态规划是1957年理查德·贝尔曼在《Dynamic Programmi...
    rainchxy阅读 5,268评论 0 5
  • 目录 动态规划与分治法 2.动态规划求解的最优化问题应该具备的两个要素2.1 最优子结构2.2 子问题重叠 动态规...
    王侦阅读 5,438评论 0 1
  • 多阶段决策过程(multistep decision process)是指这样一类特殊的活动过程,过程可以按时间顺...
    碧影江白阅读 7,032评论 1 6
  • 《算法导论》这门课的老师是黄刘生和张曙,两位都是老人家了,代课很慢很没有激情,不过这一章非常有意思。更多见:iii...
    mmmwhy阅读 10,714评论 5 31
  • 动态规划和贪心算法都是用来求最优化问题,且二者都必须具有最有子结构。贪心算法可以解决的问题,动态规划都能解决,可以...
    sereny阅读 11,651评论 0 7

友情链接更多精彩内容