使用可变资源调度

时间:2010-10-06 21:03:38

标签: algorithm scheduling

(首先,对不起我的英语,这不是我的第一语言)

我有一个任务/作业列表,每个任务必须在特定的开始时间后开始,需要运行一段时间,并且必须在特定的结束时间后完成。

我可以动态添加和删除工作人员,因此如果必须,可以同时执行2个或更多任务。我的目标是找到一个成功执行每项工作的计划,并尽可能少地使用工人。

我目前正在使用EDF(http://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling)算法并且如果无法正确安排所有作业,则递归调用具有更高工作限制的函数,但我认为这不正常,因为我不喜欢我有一个真正的方法可以衡量何时可以再次降低资源限制。

是否有任何算法可以解决我的问题或任何其他聪明的想法?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

通过将调度问题公式化为混合整数程序(MIP),可以非常有效地解决调度问题

http://en.wikipedia.org/wiki/Mixed_integer_programming#Integer_unknowns

或使用约束编程(CP)表达它

http://en.wikipedia.org/wiki/Constraint_programming

无论是MIP还是CP,您都可以找到解决问题的免费和商业解决方案。

在这两种方法中,您都在努力说明解决方案必须具备的属性,并且应用适当算法的艰苦工作留给了专门的解决方案。