給定n個作業的集合j=(j1,j2,...,jn)。每乙個作業ji都有兩項任務分別在2臺機器上完成。每個作業必須先由機器1處理,然後再由機器2處理。作業ji需要機器j的處理時間為tji;i=1,2,...n;j=1,2。對於乙個確定的作業排程,設fji是作業i在機器j上完成處理的時間。則所有作業在機器2上完成處理的時間和f=f21+f21+...+f2n成為該作業排程的完成時間和。
批處理作業排程問題要求對於給定的n個作業,制定最佳作業排程方案,使其完成時間和達到最小。
分析:批處理作業排程問題要從n個作業的所有排列中找出最小完成時間和的作業排程,所以批處理作業排程的解空間是一顆排列樹。按照回溯法搜尋排列樹的演算法框架,設開始時x=[1,2,...,n]是所給的n個作業,則相應的排列樹由x[1:n]的所有排列構成。
遞迴回溯
#include using namespace std;
class flowshop;
int flow(int **,int, int );
void swap(int &a, int &b)
class flowshop
;void flowshop::backtrack(int i)
else
for(int j=i; j<=n; ++j) // 因為問題的解空間是一顆由x[1:n]的所有排列構成的排列樹
回溯法 批處理作業排程 回溯法 批處理作業排程
問題描述 給定n個作業的集合j j1,j2,jn 每乙個作業ji都有兩項任務分別在2臺機器上完成。每個作業必須先有機器1處理,然後再由機器2處理。作業ji需要機器j的處理時間為tji。對於乙個確定的作業排程,設fji是作業i在機器j上完成處理時間。則所有作業在機器2上完成處理時間和f f2i,稱為該...
批處理作業排程問題 回溯法
給定n個作業,集合j j1,j2,j3 每乙個作業ji都有兩項任務分別在2臺機器上完成。每個作業必須先有機器1處理,然後再由機器2處理。作業ji需要機器j的處理時間為tji。對於乙個確定的作業排程,設fji是作業i在機器j上完成處理時間。則所有作業在機器2上完成處理時間和,稱為該作業排程的完成時間和...
批處理作業排程(回溯法)
1.問題描述 給定n個作業,集合j j1,j2,j3 每乙個作業ji都有兩項任務分別在2臺機器上完成。每個作業必須先有機器1處理,然後再由機器2處理。作業ji需要機器j的處理時間為tji。對於乙個確定的作業排程,設fji是作業i在機器j上完成處理時間。則所有作業在機器2上完成處理時間和,稱為該作業排...