贪婪算法

 

 

  • 贪婪算法很简单:每步都采取最优的做法。【贪婪算法每步都寻找局部最优解,企图以这种方式获得全局最优解。】
  • 贪婪算法并非在任何情况下都行之有效,但它易于实现!
  • 对于NP完全问题,还没有找到快速解决方案。面临NP完全问题时,在获得精确解需要的时间太长时,可使用近似算法(approximation algorithm)。
  • 判断近似算法优劣的标准如下:速度有多快;得到的近似解与最优解的接近程度。
  • 贪婪算法易于实现、运行速度快,是不错的近似算法。
  • 贪婪算法的运行时间为O(n^2),精确算法的为O(2^n)其中n为节点数量。
  • 集合类似于列表,只是不能包含重复的元素;集合运算:并集 |、交集& 和 差集 - 。

 没办法判断问题是不是NP完全问题,但有可以参考的依据:

 

  • 在图中如果要找出经由指定几个点的最短路径,就是旅行商问题——NP完全问题。否则就是普通的最短路径问题。
  • 元素较少时算法的运行速度非常快,但随着元素数量的增加,速度会变得非常慢。
  • 涉及“所有组合”的问题通常是NP完全问题。
  • 不能将问题分成小问题,必须考虑各种可能的情况。这可能是NP完全问题。
  • 如果问题涉及序列(如旅行商问题中的城市序列)且难以解决,它可能就是NP完全问题。
  • 如果问题涉及集合(如广播台集合)且难以解决,它可能就是NP完全问题。
  • 如果问题可转换为集合覆盖问题或旅行商问题,那它肯定是NP完全问题。

 

练习:

1.下面各种算法是否是贪婪算法: 快速排序。 广度优先搜索。 狄克斯特拉算法。

2 .有个邮递员负责给20个家庭送信,需要找出经过这20个家庭的最短路径。请问这是一个NP完全问题吗?

3.一堆人中找出最大的朋友圈(即其中任何两个人都相识)是NP完全问题吗?

4.你要制作美国地图,需要用不同的颜色标出相邻的州。为此,你需要确定最少需要使用多少种颜色,才能确保任何两个相邻州的颜色都不同。请问这是NP完全问题吗?

答案:

1 ,不是;是;是。  2. 是; 3 是,4是

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值