美文网首页AL & DS
Dynamic Programming

Dynamic Programming

作者: 程序猪小羊 | 来源:发表于2018-02-12 05:20 被阅读2次

planning all the time.
Find a polynomial time.

动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。

适用情况

【最优子结构】如果问题的最优解所包含的子问题的解也是最优的.
无后效性。即子问题的解一旦确定,就不再改变.
【重叠子问题】某些子问题会被重复计算多次 - 计算一次后 储存 - 再次遇到 查表。

而动态规划最关键的部分就是:找出转移方程。
要搞清楚的问题:动态规划只是一种解决问题的思想,使用动态规划的方法不一定是最优的解法。

斐波那契数列定义 斐波那契数列指的是这样一个数列1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...这个数列从第3项开始,每一项都等于前两项之和。

实例

斐波那契数列(Fibonacci polynomial)

背包问题

设有n件物品,每件价值Pi,每件体积Vi,求:用最大容积Vmax的包,能装下的物体的最大价值。

相关文章

  • Chapter 4

    Chapter 4: Dynamic Programming Dynamic programming comput...

  • 18/10/2019 Lecture3: Planning by

    Planning by Dynamic Programming Dynamic Programming 具有某种时...

  • 动态语言/静态语言/动态类型语言/静态类型语言的差异

    动态语言(dynamic programming language): programming behaviors...

  • Dynamic Programming

    研究生学过DP,当时觉得还挺简单的,就是从初始状态开始,找到推导公式一步步往下推嘛。但实际刷题时发现DP还是很难的...

  • dynamic programming

    本质 : 记忆化搜索避免重复计算 多重循环vs记忆化搜索多重循环:可以不用递归 可以对空间复杂度进行优化 步骤:初...

  • Dynamic Programming

    planning all the time.Find a polynomial time. 动态规划背后的基本思想...

  • Dynamic Programming

    70. Climbing Stairs : Easy198. House Robber : Easy121. ...

  • Dynamic programming

    本文针对两篇优秀动态规划文章中存在的不易理解的部分:状态、状态转移的定义和状态转移方程的编程实现部分进行个人解读。...

  • Dynamic Programming

    DP 基本有两个模板: 自上而下:先有最初的结果,求出最后的结果。 自下而上: 先有最后的结果,然后求出最初的结果...

  • Dynamic programming

    Today, I'm going to talk something detailed about dynamic...

网友评论

    本文标题:Dynamic Programming

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