任務車間調度問題的混合整數規劃模型
任務車間調度問題的混合整數規劃模型
文獻[1]的7.3節講了一個任務車間調度問題。
一個車間生產套印紙張,分別套印藍綠黃三種顏色。三種紙張根據需求分別在藍、綠、黃三個機器上印刷,印刷時間如下表:
印制顏色 | 紙1 | 紙2 | 紙3 | |
機器1 | 藍 | 45 | 20 | 12 |
機器2 | 綠 | 10 | 17 | |
機器3 | 黃 | 10 | 34 | 28 |
紙張需要滿足下圖所示的印制次序:
要求安排工藝調度(即安排紙張在各個機床上的加工時間)以使得總完成時間最短。
模型及求解
從上圖可以讀出紙張的印制次序為:
Paper 1: 1 --> 3
Paper 2: 2 --> 1 -->3
Paper 3: 3--> 1 --> 2
Paper 1 不需要在機器2上加工。為一致起見,設其在機器2上的加工時間為0,加工次序為3。得到下面的加工次序矩陣。
S={
1 3 2
2 1 3
3 1 2
}
設 T[i][j] 為紙張 j 在機器 i 上的加工時長。設 t[i][j] 為紙張 j 在機器 i 上的開始加工時刻。
模型的目標是極小化總完工時間tt:
min tt //(1)
顯然tt必須大於等於三種紙張的各自完成時間:
tt >= t[S[j][3]][j]+T[S[j][3]][j] | j=1,...,3 //(2)
對任意紙張j和k, 如果 j<>k, 則他們在同一臺機器上的加工時間不可沖突:
t[i][k] >= t[i][j] + T[i][j] 或 t[i][j] >= t[i][k] + T[i][k] | i=1,...,3;j=1,...,3;k=1,..,3;j<>k
上面是兩個或約束,不可以直接寫入混合線性規劃的。解決辦法是引入二值變量u[i][j][k]和大M,把上面的邏輯轉換成兩個聯立約束:
t[i][k] >= t[i][j] + T[i][j] - M*u[i][j][k] | i=1,...,3;j=1,...,3;k=1,..,3;j<>k //(3)
t[i][j] >= t[i][k] + T[i][k] -M(1-u[i][j][k]) | i=1,...,3;j=1,...,3;k=1,..,3;j<>k //(4)
紙張需要滿足加工次序約束:
t[S[j][k+1]][j] >= t[S[j][k]][j] + T[S[j][k]][j] |j=1,...,3; k=1,...,2 //(5)
完整的+Leapms模型:
min tt //(1) subject to //tt大於等於三種紙張的各自完成時間: tt >= t[S[j][3]][j]+T[S[j][3]][j] | j=1,...,3 //(2) //對任意紙張j和k,如果j<>k,則他們在同一臺機器上的加工時間不能沖突: t[i][k] >= t[i][j] + T[i][j] - M*u[i][j][k] | i=1,...,3;j=1,...,3;k=1,..,3;j<>k //(3) t[i][j] >= t[i][k] + T[i][k] -M(1-u[i][j][k]) | i=1,...,3;j=1,...,3;k=1,..,3;j<>k //(4) //加工次序約束: t[S[j][k+1]][j] >= t[S[j][k]][j] + T[S[j][k]][j] |j=1,...,3; k=1,...,2 //(5) where M is a number T[i][j] is a number | i=1,...,3;j=1,...,3 S[i][j] is an integer | i=1,...,3;j=1,...,3 tt is a variable of nonnegative number t[i][j] is a variable of nonnegative number | i=1,...,3;j=1,...,3 u[i][j][k] is a variable of binary|i=1,...,3;j=1,...,3;k=1,..,3;j<>k data T={ 45 20 12 0 10 17 10 34 28 } S={ 1 3 2 2 1 3 3 1 2 } M=1000
求解過程
+Leapms>load Current directory is "ROOT". ......... jobshop.leap ......... please input the filename:jobshop ================================================================ 1: min tt //(1) 2: 3: subject to 4: 5: //tt大於等於三種紙張的各自完成時間: 6: tt >= t[S[j][3]][j]+T[S[j][3]][j] | j=1,...,3 //(2) 7: 8: //對任意紙張j和k,如果j<>k,則他們在同一臺機器上的加工時間不能沖突: 9: t[i][k] >= t[i][j] + T[i][j] - M*u[i][j][k] | i=1,...,3;j=1,...,3;k=1,.. ,3;j<>k //(3) 10: t[i][j] >= t[i][k] + T[i][k] -M(1-u[i][j][k]) | i=1,...,3;j=1,...,3;k=1 ,..,3;j<>k //(4) 11: 12: //加工次序約束: 13: t[S[j][k+1]][j] >= t[S[j][k]][j] + T[S[j][k]][j] |j=1,...,3; k=1,...,2 //(5) 14: 15: where 16: M is a number 17: T[i][j] is a number | i=1,...,3;j=1,...,3 18: S[i][j] is an integer | i=1,...,3;j=1,...,3 19: tt is a variable of nonnegative number 20: t[i][j] is a variable of nonnegative number | i=1,...,3;j=1,...,3 21: u[i][j][k] is a variable of binary|i=1,...,3;j=1,...,3;k=1,..,3;j<>k 22: 23: data 24: 25: T={ 26: 45 20 12 27: 0 10 17 28: 10 34 28 29: } 30: 31: S={ 32: 1 3 2 33: 2 1 3 34: 3 1 2 35: } 36: M=1000 ================================================================ >>end of the file. Parsing model: 1D 2R 3V 4O 5C 6S 7End. .................................. number of variables=28 number of constraints=45 .................................. +Leapms>mip relexed_solution=64; number_of_nodes_branched=0; memindex=(2,2) The Problem is solved to optimal as an MIP. 找到整數規劃的最優解.非零變量值和最優目標值如下: ......... t1_1* =42 t1_2* =10 t1_3* =30 t2_1* =97 t2_3* =42 t3_1* =87 t3_2* =30 t3_3* =2 tt* =97 u1_1_2* =1 u1_1_3* =1 u1_3_2* =1 u2_1_2* =1 u2_1_3* =1 u2_3_2* =1 u3_1_2* =1 u3_1_3* =1 u3_2_3* =1 ......... Objective*=97 ......... +Leapms>求解過程(按+查看)
求解結果
+Leapms>mip relexed_solution=64; number_of_nodes_branched=0; memindex=(2,2) The Problem is solved to optimal as an MIP. 找到整數規劃的最優解.非零變量值和最優目標值如下: ......... t1_1* =42 t1_2* =10 t1_3* =30 t2_1* =97 t2_3* =42 t3_1* =87 t3_2* =30 t3_3* =2 tt* =97 u1_1_2* =1 u1_1_3* =1 u1_3_2* =1 u2_1_2* =1 u2_1_3* =1 u2_3_2* =1 u3_1_2* =1 u3_1_3* =1 u3_2_3* =1 ......... Objective*=97 ......... +Leapms>
反向生成Latex數學概念模型
+Leapms提供從+Leapms模型向Latex數學概念模型的轉換。
當模型調整和測試完畢,使用+Leapms的latex命令可生成本問題的如下數學概念模型:
參考文獻
[1] Christelle Guéret, Christian Prins, Marc Sevaux. Applications of optimization with Xpress-MP (Translated and revised by Susanne Heipcke). Dash Optimization Ltd. 2000
任務車間調度問題的混合整數規劃模型