Dynamic Programming
2018-02-12 本文已影响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的包,能装下的物体的最大价值。