码迷,mamicode.com
首页 > 编程语言 > 详细

8贪婪算法

时间:2020-01-06 17:50:16      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:col   大致   使用   最优   策略   width   开始时间   假设   一个   

内容:

  • 处理不能完成的任务:没有快速算法的问题(NP完全问题)
  • 识别NP完全问题,以免浪费时间去寻找解决它们的快速算法
  • 学习近似算法,使用它们可快速找到NP完全问题的近似解
  • 学习贪婪策略—一种非常简单的问题解决策略

1.教室调度问题

假设有如下课程表,你希望将尽可能多的课程安排在某个教室

课程开始时间结束时间
美术9:0010:00
英语9:3010:30
数学10:0011:00
计算机10:3011:30
音乐11:0012:00

因为时间冲突,因此要选出时间不冲突的课程。

  • 1.选出最早结束的课程,它就是要在这件教室上的第一堂课
  • 2.选择第一堂课结束后最早开始的课程。
  • 3.重复操作,选出符合要求的课程

贪婪算法:每步采取最优的做法。步步最优,全局最优。
虽然贪婪算法并非在任何情况下都有效,但它简单易行(优点)。

2.背包问题

假设一个小偷,背着可装35斤的背包,在商场伺机盗窃各种可装入背包的商品。

  • 1.盗窃可装入背包的最贵商品
  • 2.再盗窃还可装入背包的最贵物品,重复
    音响3000元30斤
    笔记本电脑2000元20磅
    吉他1500元15斤

    背包可装35斤,选择音响,就不能装其他物品,价值3000;选择笔记本和吉他,价值3500。
    使用贪婪算法并不能得到最优解,但非常接近。

对于小偷来说,偷到东西的价值差不多就行,没必要追求最大价值。即有些情况下,完美是优秀的敌人。有时只要找到一个能够大致解决问题的算法,那么贪婪算法正好用上。

3.集合覆盖问题

8贪婪算法

标签:col   大致   使用   最优   策略   width   开始时间   假设   一个   

原文地址:https://www.cnblogs.com/csj2018/p/12157449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!