zoukankan      html  css  js  c++  java
  • DP与贪心

         拜读《算法导论》至DP和贪心算法处,觉得有必要理一下思路。

         书上对DP介绍了几经典的案例,LCS,矩阵连乘与最优二叉搜索都是很经典的应用。DP是一种从下至上的优化算法,其实对于寻优,至上而下的寻优算法从理论上也是可行的,然后之下而上效率比至上而下大大提高,原因是,当我们采用至上而下的递归式时,实际上做了许多重复的运算,递归树对重复问题的运算结果其实只需运算一次,再次用到时只需读取。本人对DP的理解还不够深刻,但是已经能够体会到DP的精髓在于寻找最优子问题,即将当前问题分解成几个子问题合并的结果,并且能够证明:为了取得当前问题的最优解,其子问题也必须是最优的。贪心算法是一种特殊的DP,理论上DP能够解决贪心能解决的所有问题,但是贪心算法能够确定存在一个选择,做此选择后的结果并不会比做其他选择差,以此保证最优。

        关于DP和贪心的一个比较经典的案例是部分背包问题与0-1背包问题。

        很显然,部分背包问题没有空间浪费的问题,每一次取的物品能够保证(价值/空间)比最大,直到背包填满,理由很简单,因为能够保证选择当前(价值/空间)比最高的物品至少不会比选择(价值/空间)比小的物品更差。0-1背包问题的子问题则不能保证某一个选择比其他更优,只能从其子问题中寻找最优解。所以贪心实质上并不是一种之下而上的算法,只是说他也能够通过DP得到解决。

  • 相关阅读:
    黎活明给程序员的忠告
    servlet单实例多线程模式
    Servlet 获取多个参数
    Java Servlet学习笔记(四)Servlet客户端Http请求
    JavaWeb 后端 <二> 之 Servlet 学习笔记
    Servlet 规范笔记—基于http协议的servlet
    Servlet 规范笔记—servlet概念及结构
    看懂UML类图和时序图
    hibernate中的事务管理是怎么概念?
    Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
  • 原文地址:https://www.cnblogs.com/biyeqingfeng/p/2245799.html
Copyright © 2011-2022 走看看