单机调度问题

博客探讨了一台机器处理多个作业的调度问题,旨在最大化收益。提供了两种算法:一种是近似算法,通过优先级公式prio=p/(d-currentTime-t)选择作业;另一种是动态规划结合Dijkstra算法的精确解决方案。两种算法在特定数据集上的结果相同,均为最大收益30,并给出了相同的作业处理顺序。近似算法具有多项式时间复杂度,优于精确算法。
摘要由CSDN通过智能技术生成

来自:http://topic.csdn.net/u/20090504/21/1992403a-69b0-4a97-ada5-4ef8153f2078.html?seed=1381913772

--

假设有一台机器,以及在此机器上处理的n个作业a1,a2,...,an的集合。处理作业aj所需的时间为tj,作业aj的完成带来的收益为pj,作业 aj完成的最后期限为dj。机器在一个时刻只能处理一个作业,而且如果某作业被处理,那么一定要在连续的时间内进行处理。如果某作业aj在最后期限dj之 前完成,则获得收益pj,若在最后期限之前没有完成,则没有收益。请给出一个算法,来寻找能获得最大收益的调度,假设所有作业所需的处理时间都为整数。

解:

假设数据如下:

  a1 a2 a3
a4
a5
a6
a7
t 10 8
5
7
4
2
7
p 5 4
9
4
5
1
3
d 10 39
50
47
36
11
23

法一(近似算法):

思路:每次对剩余作业重新计算优先级,选取优先级最高者投入处理。直至所有作业处理完毕。

优先级公式为prio=p/(d-currentTim

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值