石 慶 民
(新鄉學院人事處 河南 新鄉 453000)
異構并行機調度(Unrelated parallel machine scheduling,UPMS)是實際生產制造過程中常見的一類調度問題,具有廣泛的工程應用背景,例如:云計算、半導體加工、紡織生產等[1-2]。傳統的UPMS問題多以時間指標為優化目標,如makespan、提前/拖期總和等。現如今,低碳節能調度已成為實現低碳制造的重要途徑,并已引起社會各界的廣泛關注[3]。與此同時,快速響應客戶需求也構成了企業競爭力的重要組成部分。因此,研究以能耗和延遲成本為目標的UPMS問題具有較高的理論意義和應用價值。
UPMS已經被證明是具有NP-hard性質的組合優化問題,因而設計有效的求解算法成為這一領域的研究重點。目前,求解UPMS問題的算法分為三類:精確求解算法、啟發式算法和現代優化算法[4]。精確求解算法包括分枝定界、動態規劃等,這類算法能夠獲得該問題的精確解,但實用性較弱,無法在合理的時間內求解中大規模算例[5]。啟發式算法是利用調度規則對問題進行快速求解,具有運算時間短、求解精度較高等優點,但該類算法對問題的設置具有嚴格限制,通用性較差[6]。近年來,隨著現代優化算法的快速發展,學者們逐步開始使用智能算法來求解這一問題,相關算法包括遺傳算法、禁忌搜索算法、模擬退火算法等。研究表明,這類算法能夠在較短的時間內獲得中大規模算例的滿意解,且具有較強的通用性[7]。因此,本文基于基本煙花算法(Firework algorithm,FWA)設計了改進算法用于求解考慮節能的異構并行機調度問題。
FWA是Tan等[8]提出的新型現代優化算法,屬于群智能優化算法,該算法受煙花爆炸行為的啟發通過煙花爆炸生成火花這一過程實現迭代進化。FWA具有收斂速度快、求解精度高等優點,目前已經在數據挖掘、神經網絡訓練、車輛路徑規劃等多個方面獲得了成功應用[9]。即便如此,FWA在中大規模測試問題的求解過程中仍然存在易陷入局部最優、收斂速度慢等缺點。因此,提升FWA的尋優性能仍然是該鄰域的一個重難點。
基于以上研究內容,本文考慮一類加工時間可控的并行機調度問題,并以能耗和拖期懲罰成本為優化目標構建了混合整數線性規劃(Mixed Integer Linear Programming,MILP)模型。算法設計中創建了特定的編解碼方法以表示問題的解,同時融入了反向學習初始化方法以提升初始解的質量,并構建了基于變鄰域搜索算法的局部優化流程用以強化基本算法的尋優性能。仿真測試中,利用正交實驗對算法參數進行校驗,并將HFWA的優化結果與多種經典的優化算法進行比較,測試結果驗證了HFWA的可行性和有效性。
在UPMS-ETC問題中,假設有n個任務需要在m臺機器上加工,各個機器存在多種不同的加工速度,各機器在不同加工速度下的能耗存在差異性。此外,已知各個訂單的交貨期,晚于規定的時間交貨將會產生延遲懲罰成本。
本文以最小化所有任務的加工能耗成本和延遲懲罰成本總和為目標,決策內容包含以下三點:1) 各個機器所加工的任務集合;2) 各個機器上加工任務的排序;3) 各任務的加工速度。
為了構建UPMS-ETC問題的MILP模型,定義以下數學符號。
問題參數:
m:機器總數,i∈{1,2,…,m}。
n:任務總數,v∈{1,2,…,n}。
l:加工位置編號,l∈{1,2,…,n},各臺機器均設有n個加工位置。
Qi:機器i可選的速度類別總數,s∈{1,2,…,Qi}。
lv:任務v的標準加工時間。
ris:機器i以第s種加工速度的取值。
tvis:任務v在機器i上以速度ris加工時相應的加工時間,tvis=lv/ris。
eis:機器i在單位時間內以速度ris運行所產生的能耗。
dv:任務v的交貨期。
Cv:任務v的完成時間。
τv:任務v的延誤時間,τv=max{0,Cv-dv}。
μv:任務v單位時間的延誤懲罰成本。
決策變量:
xvils:0-1變量,任務v在機器i以速度ris進行加工,xvils取值為1;否則,xvils取值為0。
Bil:機器i上位置l任務開始加工的時間。
基于以上問題描述和符號定義,構建了UPMS-ETC問題的MILP模型。
目標函數:
(1)
約束條件:
(2)

(3)

(4)
τv≥Bi,l+tvis·xvils-(1-xvils)·M-dj
i∈{1,2,…,m},s∈{1,2,…,Qi},v∈{1,2,…,n},
l∈{1,2,…,n}
(5)
τv≥0v∈{1,2,…,n}
(6)
xvils∈{0,1},i∈{1,2,…,m},s∈{1,2,…,Qi},
v∈{1,2,…,n},l∈{1,2,…,n}
(7)
式(1)表示目標函數,即所有任務的加工能耗成本和延誤懲罰成本之和;式(2)用于確保各個加工任務所選的加工機器、加工位置和加工速度的唯一性;式(3)表示各臺機器上每個加工位置處最多只能安排一個加工任務;式(4)用于計算機器i上位置l處加工任務的開始時間;式(5)-式(6)用于計算各個任務的延誤時間;式(7)定義了決策變量的取值范圍。
FWA以煙花表示待優化問題的解,并通過煙花爆炸生成火花這一過程迭代進化。首先依據各煙花個體的評價函數值計算相應的爆炸火花數目和爆炸半徑數值;其次,采用均分分布和高斯分布生成新個體;最后,利用選擇規則構建新種群以進入下一次迭代。具體實現步驟歸納如下:
Step1初始化算法參數,利用隨機方法構建初始種群并對每個煙花個體進行評價。
Step2依據評價函數計算當前種群中各個煙花的爆炸火花數目和爆炸半徑。
Step3利用均分分布和高斯分布生成爆炸火花和高斯變異火花。
Step4利用煙花、爆炸火花和高斯變異火花構建候選種群,并依據篩選規則生成新種群。
Step5判斷是否滿足終止條件。若滿足則停止迭代搜索并輸出當前最優解;否則,轉Step 2。
FWA的核心內容包含以下四點:(1) 計算爆炸火花數目和爆炸半徑;(2) 生成爆炸火花;(3) 生成高斯變異火花;(4) 基于選擇規則構建新種群。
計算爆炸火花數目和爆炸半徑:以N表示煙花數目,以xi表示當前種群中的第i個煙花,N個煙花數目生成的爆炸火花總數記為SN。以最小化問題為例,對于煙花xi,以符號fi表示其評價函數值,以Si和Ri表示由xi生成的爆炸火花數目和相應的爆炸半徑。Si和Ri的計算公式歸納如下:
(8)
(9)
式中:fmax和fmin分別表示當前煙花種群中最大和最小的評價函數值;A表示基本爆炸半徑,需要預先設定;ε為機器最小值,用以避免除零操作。同時,為了對上述Si計算公式做修正以確保優勢煙花個體生成的火花數不過多、劣勢煙花個體生成的火花數不過少,修正公式為:
(10)