在多台机器上利润下降的高效调度工作

时间:2015-09-29 15:07:04

标签: algorithm job-scheduling maximize np-complete approximate

问题:考虑M台机器上n个作业的调度问题,其中每个作业我有一个处理时间p i 并给出利润g i (t)如果在时间t完成。所有作业在时间0释放。所有g i (t)都是非递增函数。为简单起见,我们可以假设机器不是先发制人的。

对于M = 1并且线性减少利润函数。使用贪婪算法可以在O(n)中解决这个问题。但对于一般功能,它是NP完全的。

我对一般情况感兴趣。请给我任何关于问题的论文或资源材料的链接。我在互联网上搜索但没有找到任何有趣的M> 1,虽然之前有关于近似M = 1的界限的工作。

请注意,我不希望您解决此问题,但只需要解决类似问题的先前工作(如果有的话)。如果您有任何可以帮助的想法,请随时分享。

我想知道m机器和n个具有相同发布日期和一般非增加利润函数的作业对此问题的界限。我找到了一份指向这个方向的文件

http://arxiv.org/pdf/1008.4889v1.pdf

当所有作业具有相同的释放时间时,它们给出O(1)近似值。我想找到类似的问题文献以及他们用来解决问题的想法。

1 个答案:

答案 0 :(得分:2)

您可以使用例如发送规则来启动“贪婪的解决方案”。最小化

克<子> I (T <子> 0 + P <子> I )/ P <子> I

第一个空机器上的

(我在所有尚未安排的作业上运行,t 0 是第一台机器为空的时间。)

然后可以使用像Simulated Annealing这样的元启发式方法来改进此解决方案。解决方案可以表示为作业序列的元组(每个机器的一个作业序列)。关键的一点是,允许哪些“移动”来改变解决方案。也许对于这个问题,人们可以通过两个基本动作找到已经很好的解决方案:

  • 从一台机器上取一份工作,找一个新的地方插入它。
  • 在机器的作业序列中交换两个作业。