zoukankan      html  css  js  c++  java
  • 动态规划和贪心选择算法区别

    区别:
    动态规划
    全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解。
    条件:最优子结构;重叠子问题。
    方法:自底向上构造子问题的解。
    例子:子序列最大和问题,滑雪问题

    贪心算法
    条件:每一步的最优解一定依赖上一步的最优解。
    方法:从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。
    存在问题:
    (1)不能保证求得的最后解是最佳的;
    (2)不能用来求最大最小解的问题;比如钱币分为1元3元4元,要拿6元钱,贪心的话,先拿4,再拿两个1,一共3张钱;实际最优却是两张3元就够了。
    “贪心”特性:它对解空间树的遍历不需要自底向上,而只需要自根开始,选择最优的路,一直走到底就可以了。这样,与动态规划相比,它的代价只取决于子问题的数目,而选择数目总为1。
    例子:哈夫曼树,钱币组合,设置雷达问题
    ========================
    联系:
    (1)都是一种递推算法;
    (2)贪心和动态规划本质上是对子问题树的一种修剪。两种算法要求问题都具有的一个性质就是“子问题最优性”。即组成最优解的每一个子问题的解,对于这个子问题本身肯定也是最优的

  • 相关阅读:
    小程序开发经验分享汇总
    VUE插件总结
    前端开发中一些好用的chrome插件总结
    Vue-meta
    element-ui Cascader 级联选择器 点击label选中
    盘点一些跨端框架
    vue 组件自定义v-model
    mac更新node,npm版本
    数组/对象数组去重
    基于vue和svg的树形UI
  • 原文地址:https://www.cnblogs.com/codeskiller/p/6357429.html
Copyright © 2011-2022 走看看