流水作業排程問題
n個作業在2
臺機器上m1和
m2組成的流水線上完成加工。每個作業加工的順序都是先在
m1上加工,後在
m2上加工。在兩台機器上加工的時間分別為ai和
bi。解:流水作業排程:
根據johnson法則
使用結構體陣列f1[j] 存放a[i]使用結構體陣列f2[k] 存放a[i]>=b[i]的作業
對f1[j]根據a[j]進行公升序排列
對f2[k]根據b[k]進行降序排列。
遍歷兩個結構體陣列,依次求時間
取兩個機器執行時間的較大值作為作業用時。
#include #include using namespace std;
struct node;
bool cmp1(node p,node q)
int main() }
sort(f1,f1+j,cmp1);//公升序
sort(f2,f2+k,cmp2);//降序
int first=0;//機器a作業
int secend=0;//機器b作業
for(i=0;isecend?first:secend)+f1[i].b;//兩個機器作業取大值 }
for(i=0;isecend?first:secend)+f2[i].b;
} printf("%d\n",secend);
}
流水作業排程問題
n個作業在2臺機器上m1和m2組成的流水線上完成加工。每個作業加工的順序都是先在m1上加工,後在m2上加工。在兩台機器上加工的時間分別為ai和bi。目標 確定這n個作業的加工順序,使得從第一台作業開始加工,到最後乙個作業完成加工所需要的時間最少。假設要對集合s中的作業進行加工,當m1開始加工時,假設...
流水作業排程問題
n個作業要在由2臺機器m1和m2組成的流水線上完成加工。每個作業加工的順序都是先在m1上加工,然後在m2上加工。m1和m2加工作業i所需的時間分別為a i 和b i 流水作業排程問題要求確定這n個作業的最優加工順序,使得從第乙個作業在機器m1上開始加工,到最後乙個作業在機器m2上加工完成所需的時間最...
流水作業排程問題
有n個作業要在兩台機器m1和m2組成的流水線上完成加工。每個作業i 都必須先花時間ai 在m1上加工,然後花時間bi 在m2上加工。求解n個作業的加工順序,使得總的加工時間最短。最優排程 讓m1沒有空閒,m2的空閒時間盡量短。設s1 為 a b的作業集合,s2為 a b 的作業集合,將s1的作業按a...