美文网首页
1.DP(动态规划)

1.DP(动态规划)

作者: JarvisTH | 来源:发表于2020-09-06 19:42 被阅读0次

一、DP定义

动态规划是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。

二、区别

  • 贪心处理的问题是:后一阶段的最优状态依赖于前一阶段的一个最优状态。
  • 暴力搜索处理的问题是:后一阶段的最优状态依赖于前一阶段的多个状态,但和更之前的状态没关系;状态没重叠。
DP处于两者之间:后一阶段的最优状态依赖于之前阶段的一个或多个状态,但和更之前的状态没有关系;有重叠子问题。

三、理解

解决DP问题的核心是找到最优子结构,这种结构可以把次优的路径否决掉,重叠状态是否决掉这些次优路径的一个结果。

找到最优子结构->把次优的路径否决掉->重叠状态保存->复杂度k^n变kn。

四、什么问题可以用DP?

首先能状态合并/有状态转移方程才行。每个问题的状态转移方程都不一样。

如果问题本身没有这种structure,则不能用动态规划,也就是说不能否决掉一些路径,那么只能暴力搜索了。

五、应用DP

  • 建立状态转移方程
  • 缓存并复用以往结果
  • 按顺序从小往大算:这里的“小”和“大”对应的是问题的规模,在这里也就是我们要从f(0)、f(1)、···到f(n)依次计算。

参考:https://www.zhihu.com/question/39948290
https://zhuanlan.zhihu.com/p/27033169

相关文章

  • 1.DP(动态规划)

    一、DP定义 动态规划是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最...

  • Algorithm进阶计划 -- 动态规划(上)

    动态规划动态规划的基本原理动态规划的运用 1. 动态规划的基本原理 动态规划(Dynamic Programmi...

  • 4. 动态规划算法

    1. 动态规划算法总结2. 漫画:什么是动态规划?3.算法之动态规划4. 动态规划-算法

  • 动态规划 Dynamic Programming

    从运筹学和算法的角度综合介绍动态规划 算法分类总结动态规划与静态规划的关系浅析静态规划和动态规划动态规划解非线性规...

  • 《数据结构与算法之美》27——初识动态规划

    前言 今天开始学习动态规划,一共有三节,分别是:初识动态规划、动态规划理论、动态规划实战。今天这一节就是初识动态规...

  • 算法3:动态规划

    5.动态规划5.1 什么是动态规划?5.2 自底向上的动态规划:5.3 自顶向下的动态规划5.4 0-1背包问题:...

  • 动态规划

    动态规划(Dynamic Programming) 本文包括: 动态规划定义 状态转移方程 动态规划算法步骤 最长...

  • Dynamic Programming(动态规划)类算法分析随笔

    #动态规划 关于动态规划,先摘一段[wiki][1]的描述: ``` 动态规划(英语:Dynamic progra...

  • 什么是动态规划

    目录 动态规划解决了什么 什么是动态规划 典型的动态规划 1. 动态规划解决了什么 的思想就是将大问题拆分成小问题...

  • 斐波那契数列

    递归解法 动态规划解法1 动态规划解法2

网友评论

      本文标题:1.DP(动态规划)

      本文链接:https://www.haomeiwen.com/subject/yczcektx.html