贪婪策略

  • 定义
  • 举个例子

定义

贪婪策略指在对问题进行求解时,在每-步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。
使用贪婪策略一般涉及最优子结构,并且自顶向下对每一个子问题计算到目前为止的最优的部分解。这也意味着贪婪算法的解,不一定是最优解,实质上得到的可能是相对近似的最优解。

在应用贪婪算法的时候,首先就要根据目标,对问题进行排序。根据排序选择最优的子集合。

举个例子

如常见的电台问题:
目标:最少的电台,覆盖最大的区域。
定义一个覆盖目标集合Y=[北京,上海,天津,广州,深圳,成都,杭州,大连]
1、首先K1-K5,遍历这五个电台分别覆盖了多少个地区:K1、K2、K3分别覆盖3个区域,K4、K5分别覆盖2个区域。那么选K1覆盖了[北京,上海,天津],还剩Y=[广州,深圳,成都,杭州,大连]没有覆盖。
2、根据Y=[广州,深圳,成都,杭州,大连],遍历剩下的K2-K5电台分别覆盖多少区域:此时K2,K3,K5分别覆盖了2个区域,K4覆盖0个区域。选择K2覆盖了[广州,深圳],还剩Y=[成都,杭州,大连]。
重复以上操作,直到所有地区被覆盖。

从上面可以看出,只是选择了到某个阶段可以取得的最优的解。
虽然贪婪算法不一定得到最优解,但至少可以得到一个近似解,简单高效。

贪婪算法(贪心算法)相关推荐

  1. matlab求解集合覆盖问题,贪心算法实践之集合覆盖问题

    介绍 贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法 贪婪算法所得到的结果不一定是最优的结果(有时候会是最优解 ...

  2. 常用十大算法 非递归二分查找、分治法、动态规划、贪心算法、回溯算法(骑士周游为例)、KMP、最小生成树算法:Prim、Kruskal、最短路径算法:Dijkstra、Floyd。

    十大算法 学完数据结构该学什么?当然是来巩固算法,下面介绍了十中比较常用的算法,希望能帮到大家. 包括:非递归二分查找.分治法.动态规划.贪心算法.回溯算法(骑士周游为例).KMP.最小生成树算法:P ...

  3. 【算法图解】 之 [贪婪算法(贪心算法)] 详解

    入门算法学习,看的第一本是深入浅出的<算法图解>一书,本博客是对<算法图解>一书的学习笔记,将书中的分享的算法示例用Python3语言实现. 如果你也想要阅读这本书,百度云盘链 ...

  4. 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题

    packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...

  5. 三十六、贪心算法--集合覆盖问题

    一.贪心算法介绍 1.贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 2.贪心算法不是对所有问题都 ...

  6. C语言 · 贪心算法

    发现蓝桥杯上好多题目涉及到贪心,决定学一学. 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择.也就是说:不从整体最优上考虑,而是在某种意义上的局部最优解.其关键是贪心策略的选择,选择的贪心 ...

  7. C++——《算法分析与设计》实验报告——贪心算法与回溯法

    实验名称: 贪心算法与回溯法 实验地点: 实验目的: 1.理解贪心算法与回溯法的概念: 2.掌握贪心算法与回溯法的基本要素: 3.掌握贪心算法与回溯法的解题步骤与算法柜架: 4.通过应用范例学习贪心算 ...

  8. 哈夫曼编码压缩率计算_程序员的算法课(8)-贪心算法:理解霍夫曼编码

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/ ...

  9. 3.Python算法之贪心算法思想

    贪心算法 1.什么是贪心算法 2.贪心算法的特点和思路 3.贪心算法的缺点 4.贪心算法的基本思路 5.贪心算法的基本过程 6.贪心算法解决"找零"问题 6.贪心算法解决" ...

  10. 贪心算法讲解(集合覆盖问题,旅行商问题求解)

    教室调度问题 假设有如下课程表,你希望将尽可能多的课程安排在某间教室上. 你没法让这些课都在这间教室上,因为有些课的上课时间有冲突. 你希望在这间教室上尽可能多的课.如何选出尽可能多且时间不冲突的课程 ...

最新文章

  1. 2022年,我该用JAX吗?GitHub 1.6万星,这个年轻的工具并不完美
  2. 心智图/思维导图(Mind Map/Mind Mapping),思维导图介绍
  3. windows安装ffmpeg
  4. 盛松成:别死盯着M2不放,社会融资规模更能反映中国实际
  5. HP 3PAR公用存储的妙用
  6. opensource项目_最佳Opensource.com:编程
  7. 关于设置table样式后,不停点击按钮table中的数据会逐渐被最后一行替换的问题...
  8. win10录屏怎么用_怎么用Win10电脑系统进行录音教你两种简单实用的方法
  9. springboot Hello World探究
  10. 一定质量的封闭气体被压缩后_螺杆压缩机转子型线设计原则及发展过程
  11. Python心得基础篇【7】面向对象进阶篇
  12. PCIE知识点-003:PCIE协议中的upstream概念
  13. EXCEL表格-利用随机函数制作抽签工具(RAND)
  14. 以地理国情调查任务为基础的地图矢量化流程研究
  15. 2019年Gartner数据中心备份和恢复解决方案魔力象限解读
  16. 【机器学习数据集】如何获得机器学习的练习数据?
  17. CFileDialog类学习
  18. cpp mysql_使用MYSQLCPPCONN连接MYSQL数据库与读写BLOB字段
  19. 中国银河证券公募基金分类体系的理论依据与规则基础
  20. 【1错笔记】psd面试——最长回文子序列 动态规划(2000字超详细解题)

热门文章

  1. 【宣讲会】网易雷火武汉大学宣讲会2019年9月12日场
  2. 世界顶级黑客大赛内情首次揭秘:有“连环计”,最后一刻把“韩国队”拉下马...
  3. 政协委员:最大愿望是让小学生步行上学
  4. 6个月的测试经验,来面试居然要18K,我一问连5K都不值。
  5. 2022年京东中秋消费数据:月饼无人问津,礼品卡券却迎来大爆发
  6. 常见的CPA项目推广引流套路小合集
  7. OkHttp配置Basic Auth
  8. 查缺补漏系统学习 EF Core 6 - 批量操作
  9. 区块链和环保的联手,能否让天灾不再可怕?
  10. fdk-aac 编译配置