9.20几个贪心问题的总结

1.最优装载问题

按区间最右端从小到大排序,如果能放下就直接放,不用考虑“暂时不放这个,从而使后面的能够放下”这种情况。

2.区间选点问题

还是按最右端从小到大排序,排好序后在每个区间选点时,尽可能的选最后的点,因为这样一个点就可以覆盖尽可能多的区间。如果一个区间要包含多个点,那就按位置从后往前选点。

3.区间覆盖问题

按照左端点从小到大排序,然后选择与已覆盖区域相接的,右边界最远的区间

4.流水作业调度问题(johnson 算法)

问题描述:有n个作业要在两台机器A和B上完成,每个作业必须先花时间ai在A上加工,再花时间bi在B上加工。确定n个作业的加工顺序,使得从作业1在机器A上开始加工,到作业n在B上加工完成为止,用时最短。
johnson算法:
1.Mi=min{ai,bi}
2.将M从小到大排序
3.将排序好的M从左到右开始处理
4.如果Mi=ai,则将该工件从右往左依次放置
5.如果Mi=bi,则将该工件从左往右依次放置
6.得到的顺序即为作业的加工顺序
7.然后通过模拟计算加工时间即可

5.带期限和罚款的单位时间任务调度

前提:每个任务需要一个单位时间来完成
将任务按照重要程度从大到小排序,然后按照排好的顺序,依次对任务进行安排,安排的规则为:使处理任务i的时间既在i的时间要求d[i]之内,又尽量靠后;如果i的截止时间之前已经没有空余时间,则放弃处理该任务,因为我们不可能去放弃重要的任务节约时间来选择不重要的任务。
在这里插入图片描述

©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页