有n个独立的作业由m台相同的机器进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但不可间断、拆分。多机调度问题要求给出一种作业调度方案,使所给出的n个作业在尽可能短的时间内由m台机器加工处理完成。
例如,7个独立的作业由3台机器加工处理,各作业的处理时间为 {2,14,4,6,16,5,3}。最短完成时间为17,3台机器的作业调度分别为:
机器1:{16};机器2:{14,3};机器3:{6,5,4,2}。
实验原理
对多机调度问题,可以设计多种贪心策略,如:
最长处理时间作业优先的贪心策略。
最短处理时间作业优先的贪心策略。
作业到达时间优先的贪心策略。
不难证明,采用最长处理时间作业优先的贪心策略,可以得到此问题的最优解。
// suanfa.cpp : 此文件包含 “main” 函数。程序执行将在此处开始并结束。
//
//#include"pch.h"
//#include"iostream"
//#include"cstdio"
//#include"cmath"
//#include"cstring"
//#include"algorithm"
//using namespace std;
//int a[105], b[105], c, d, i, j, m, n, p, q;
//bool fun(const int &x, const int &y