图解算法 第8章 贪婪算法

本章内容

学习处理不可能完成的任务:没有快速解决的办法

学习识别np完全问题,以免浪费时间去寻找解决问题的方法

学习近似算法,使用它快速找到np问题的近似解

学习贪婪策略

教师调度问题

 

这个问题好像很难,但是其实简单的很,选出最早结束的课,然后选择第一堂课结束之后才开始的课里结束最早的。以此类推。

通过每步都选择最优解,最终的到全局最优解。

背包问题

找到一个大致解决问题的方法,因为有些问题完全解决非常困难。小偷的包里可以放下35磅的东西,画个表格

  • 你有一辆大卡车,要把大大小小的包裹运走,设计一个算法,你要将尽可能多的货物运走:把箱子从大到小排序,然后扔上车
  • 欧洲旅行,行程为7天,你还为去每个地点标上了价值表和时间。你将这次旅行价值最大化该如何设计: 价值/时间 然后依次排序。

集合覆盖问题

让全美50个州都能收到所有的电台,那你该收集哪些广播单

  • 列出广播集合 叫做幂集power set 子集为2^n.(抛硬币问题)
  • 贪婪算法 选择一个覆盖最多未覆盖州的电台,重复
  • 贪婪算法的优劣标准:速度快/和最优解近似

 np完全问题:为解决集合覆盖问题,你必须计算每个可能的集合

你需要计算所有的解,并选出最小最短的那个,这些问题都属于np问题。

扫描二维码关注公众号,回复: 2334451 查看本文章

旅行商问题:随便出发,然后选择离你最近又没去过的城市作为下一个目的地。

识别NP问题

  • 元素小运行快,元素增加,速度很慢
  • 涉及所有组合的问题
  • 不能将问题分解成小问题,必须考虑所有情况
  • 涉及序列且难以解决,可能是np问题
  • 涉及集合且难以解决,就可能是NP完全问题
  • 可转换为集合覆盖和旅行商问题,可能是NP问题

 

猜你喜欢

转载自blog.csdn.net/weixin_42199275/article/details/81169111
今日推荐