繁体   English   中英

在作业调度算法期间最大化资源使用?

[英]Maximize resource usage during job scheduling algorithm?

我正在尝试为作业调度问题创建动态编程算法。 我有一组n个工作,每个工作i都有一个开始时间s(i)和结束时间f(i) 开始总是在结束之前,您可以同时进行两个作业。 我将如何创建一种算法来最大化资源繁忙时间?

您必须确定在每个点上要跟踪的状态。 一种选择是跟踪当前正在运行的作业的完成时间,在这种情况下,您可以大致如下计算最大可能的繁忙时间。

到目前为止,从一组完成时间到繁忙时间创建地图。 初始化为{null set}-> 0。

对于开始时间从高到低的每个作业:

  1. 创建一个新地图,并将所有旧时间都大于当前开始时间的旧地图中的所有条目插入其中。
  2. 对于旧映射中的每个剩余条目,请从完成时间集中删除那些小于或等于当前作业开始时间的条目。 如果新地图没有该完成时间组的条目,或者如果旧地图中与该条目相关联的值大于该组新地图中的条目的值,则将结果条目插入新地图。 现在,将当前作业的完成时间插入到集合中,并将新作业花费的时间添加到其值中。 如果新地图没有用于完成时间的结果集的条目,或者该条目的值比刚刚计算的值低,请将该集的条目和值添加到新地图。
  3. 新地图变成旧地图

最后,地图中的最大值是最大可能的繁忙时间。 如果您保留我未提及的回溯信息,则可以回溯以查找选择的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM