Dynamic Programming

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的包,能装下的物体的最大价值。

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

推荐阅读更多精彩内容