贪婪算法

在求解一个问题的过程中,每次选择都是当前最优解(即局部最优解,而非全局最优解)

贪婪算法使用场景:
1,遇到NP完全问题(没有快速算法的问题,即没有全局最优解)时
2,暂时没有想到更好的解法时,因为贪婪算法思路通常会相对简单

贪婪算法问题如背包问题,教室安排问题,广播问题

NP完全问题:简单定义为是,以难著称的问题,如旅行商人问题和集合覆盖问题。
例:(集合覆盖问题)
假如你需要将一则新闻广播到50个州,每个广播站都能广播一定数量的州,且都需要费用(假设费用相同),因此希望用到的广播站尽可能少。设计算法求出最小广播集合。

算法思路:假定一个州集合。每次选取一个广播,选取原则为当前广播占包含数量最多的未覆盖州。
直到需求州数目为0为止。

贪婪算法即属于近似算法的一种。判断一个近似算法的优劣标准如下:
1,速度有多快
2,得到的近似解和最优解的接近程度

如果能够判断一个问题是NP完全问题,则可以不必寻找最优解,直接使用近似算法即可。
那么,如何判断NP完全问题呢?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 代码小工蚁的#《算法图解》#学习笔记-C8贪婪算法C8 贪婪算法greedy algorithms 一、贪婪算法 ...
    代码小工蚁阅读 752评论 0 0
  • 贪婪算法 教室调度问题:不同课程的开始和结束时间都不同,要如何安排这些棵,使得尽可能多的课被安排在某间教室? 1....
    投篮手型差阅读 715评论 0 0
  • 1. 贪婪算法很简单:每步都采取最优的做法。用专业术语说,就是你每步都选择局部最优解,最终得到的就是全局最优解。 ...
    YCzhao阅读 580评论 0 1
  • 1.贪婪算法: 每一步都采用当前局部的(这里是重点)最优的做法,最终得到全局最优解;这是一种完美算法,要找到最优的...
    刘志阳阅读 697评论 0 0
  • 葵葵占数日运 | 9.7 今天我们可以全然做自己想做的事,只要对自己负起责任,哪怕周围的人都反对你的决定,只要自己...
    寅蔓K阅读 135评论 0 0