/*
name: 批處理作業排程問題
author: 巧若拙
date: 17-07-17 14:12
description:
問題描述:
給定n個作業,集合j=(j1,j2,j3)。每乙個作業ji都有兩項任務分別在2臺機器上完成。每個作業必須先有機器1處理,然後再由機器2處理。
作業ji需要機器j的處理時間為tji。對於乙個確定的作業排程,設fji是作業i在機器j上完成處理時間。
則所有作業在機器2上完成處理時間和f=f2i,稱為該作業排程的完成時間和。
簡單描述:
對於給定的n個作業,指定最佳作業排程方案,使其完成時間和達到最小。
*/#include#includeusing namespace std;
const int n = 3; //作業的個數
int map[n+1][2] = ,,,};//記錄作業時間安排表
int p[n+1], bestp[n+1];//分別儲存當前作業排程和最優排程
int f2[n+1];//機器2依次完成每項作業的時間
int f1, f, bestf; //分別儲存機器1完成作業時間,機器2完成作業總用時和當前最優時間值
void backtrace(int t); //遞迴回溯
int main()
backtrace(1);
cout << bestf << endl;
for (int i=1; i<=n; i++)
cout << endl;
// system("pause");
return 0;
}void backtrace(int t) //遞迴回溯,t表示第t號作業
bestf = f;
}else
f1 -= map[p[i]][0];
f -= f2[t];}}
}
批處理作業排程問題
給定n個作業的集合j 每乙個作業有兩項任務分別在兩台機器上完成。每個作業必須先由機器1處理,再由機器2處理。作業ji需要機器j的處理時間為tji,i 1,2,n,j 1,2。對於乙個確定的作業排程,設fji是作業i在機器j上完成處理的時間。則所有作業在機器2上完成處理的時間和f f21 f22 f2...
批處理作業排程
tji 機器1機器2 作業12 1作業231 作業32 3 這3個作業的6種可能的排程方案是1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 它們所相應的完成時間和分別是 19,18 20 21 19 19 最佳排程方案是1,3,2,其完成時間和為18。void flowsho...
回溯法 批處理作業排程 回溯法 批處理作業排程
問題描述 給定n個作業的集合j j1,j2,jn 每乙個作業ji都有兩項任務分別在2臺機器上完成。每個作業必須先有機器1處理,然後再由機器2處理。作業ji需要機器j的處理時間為tji。對於乙個確定的作業排程,設fji是作業i在機器j上完成處理時間。則所有作業在機器2上完成處理時間和f f2i,稱為該...