有jobNum个任务等待machineNum个处理器去完成,任务不可细分,求最优完成时间。
本质是NP问题,但是可以通过贪心法来求近似解:
策略: 对jobNum个任务按其占用处理器的时间排序,最重的任务往前排,每次选择最早空出来的处理器安排给最重的任务。
例如7个独立作业{2,14,4,16,6,5,3}
的三处理器调度为
M1: 4
M2: 2-7
M3: 5-6-3-1
CLASS JobNode
{
public:operator int() const{return time;}; //该重载用来泛型算法algorithm.sort()的操作,即按照任务需要的处理器时间来对所有任务排序
private:
int ID; // 任务的标示符
int time; //任务需要耗费的时间
}
class MachineNode
{
public:
operator int() const{return avail;}// //该重载用来泛型算法algorithm.sort()的操作,即按照处理器的空闲开始时间avil对所有的处理器来排序
private:
int I

本文探讨了一个NP问题:如何将jobNum个不可细分的任务分配给machineNum个处理器,以达到最优完成时间。通过贪心算法,对任务按占用处理器时间排序,优先分配给最早空闲的处理器。例如,对于7个任务和3个处理器的情况,可以实现有效调度以减少总完成时间。
最低0.47元/天 解锁文章
2371

被折叠的 条评论
为什么被折叠?



