石 慶 民
(新鄉(xiāng)學(xué)院人事處 河南 新鄉(xiāng) 453000)
異構(gòu)并行機(jī)調(diào)度(Unrelated parallel machine scheduling,UPMS)是實(shí)際生產(chǎn)制造過(guò)程中常見的一類調(diào)度問(wèn)題,具有廣泛的工程應(yīng)用背景,例如:云計(jì)算、半導(dǎo)體加工、紡織生產(chǎn)等[1-2]。傳統(tǒng)的UPMS問(wèn)題多以時(shí)間指標(biāo)為優(yōu)化目標(biāo),如makespan、提前/拖期總和等?,F(xiàn)如今,低碳節(jié)能調(diào)度已成為實(shí)現(xiàn)低碳制造的重要途徑,并已引起社會(huì)各界的廣泛關(guān)注[3]。與此同時(shí),快速響應(yīng)客戶需求也構(gòu)成了企業(yè)競(jìng)爭(zhēng)力的重要組成部分。因此,研究以能耗和延遲成本為目標(biāo)的UPMS問(wèn)題具有較高的理論意義和應(yīng)用價(jià)值。
UPMS已經(jīng)被證明是具有NP-hard性質(zhì)的組合優(yōu)化問(wèn)題,因而設(shè)計(jì)有效的求解算法成為這一領(lǐng)域的研究重點(diǎn)。目前,求解UPMS問(wèn)題的算法分為三類:精確求解算法、啟發(fā)式算法和現(xiàn)代優(yōu)化算法[4]。精確求解算法包括分枝定界、動(dòng)態(tài)規(guī)劃等,這類算法能夠獲得該問(wèn)題的精確解,但實(shí)用性較弱,無(wú)法在合理的時(shí)間內(nèi)求解中大規(guī)模算例[5]。啟發(fā)式算法是利用調(diào)度規(guī)則對(duì)問(wèn)題進(jìn)行快速求解,具有運(yùn)算時(shí)間短、求解精度較高等優(yōu)點(diǎn),但該類算法對(duì)問(wèn)題的設(shè)置具有嚴(yán)格限制,通用性較差[6]。近年來(lái),隨著現(xiàn)代優(yōu)化算法的快速發(fā)展,學(xué)者們逐步開始使用智能算法來(lái)求解這一問(wèn)題,相關(guān)算法包括遺傳算法、禁忌搜索算法、模擬退火算法等。研究表明,這類算法能夠在較短的時(shí)間內(nèi)獲得中大規(guī)模算例的滿意解,且具有較強(qiáng)的通用性[7]。因此,本文基于基本煙花算法(Firework algorithm,FWA)設(shè)計(jì)了改進(jìn)算法用于求解考慮節(jié)能的異構(gòu)并行機(jī)調(diào)度問(wèn)題。
FWA是Tan等[8]提出的新型現(xiàn)代優(yōu)化算法,屬于群智能優(yōu)化算法,該算法受煙花爆炸行為的啟發(fā)通過(guò)煙花爆炸生成火花這一過(guò)程實(shí)現(xiàn)迭代進(jìn)化。FWA具有收斂速度快、求解精度高等優(yōu)點(diǎn),目前已經(jīng)在數(shù)據(jù)挖掘、神經(jīng)網(wǎng)絡(luò)訓(xùn)練、車輛路徑規(guī)劃等多個(gè)方面獲得了成功應(yīng)用[9]。即便如此,F(xiàn)WA在中大規(guī)模測(cè)試問(wèn)題的求解過(guò)程中仍然存在易陷入局部最優(yōu)、收斂速度慢等缺點(diǎn)。因此,提升FWA的尋優(yōu)性能仍然是該鄰域的一個(gè)重難點(diǎn)。
基于以上研究?jī)?nèi)容,本文考慮一類加工時(shí)間可控的并行機(jī)調(diào)度問(wèn)題,并以能耗和拖期懲罰成本為優(yōu)化目標(biāo)構(gòu)建了混合整數(shù)線性規(guī)劃(Mixed Integer Linear Programming,MILP)模型。算法設(shè)計(jì)中創(chuàng)建了特定的編解碼方法以表示問(wèn)題的解,同時(shí)融入了反向?qū)W習(xí)初始化方法以提升初始解的質(zhì)量,并構(gòu)建了基于變鄰域搜索算法的局部?jī)?yōu)化流程用以強(qiáng)化基本算法的尋優(yōu)性能。仿真測(cè)試中,利用正交實(shí)驗(yàn)對(duì)算法參數(shù)進(jìn)行校驗(yàn),并將HFWA的優(yōu)化結(jié)果與多種經(jīng)典的優(yōu)化算法進(jìn)行比較,測(cè)試結(jié)果驗(yàn)證了HFWA的可行性和有效性。
在UPMS-ETC問(wèn)題中,假設(shè)有n個(gè)任務(wù)需要在m臺(tái)機(jī)器上加工,各個(gè)機(jī)器存在多種不同的加工速度,各機(jī)器在不同加工速度下的能耗存在差異性。此外,已知各個(gè)訂單的交貨期,晚于規(guī)定的時(shí)間交貨將會(huì)產(chǎn)生延遲懲罰成本。
本文以最小化所有任務(wù)的加工能耗成本和延遲懲罰成本總和為目標(biāo),決策內(nèi)容包含以下三點(diǎn):1) 各個(gè)機(jī)器所加工的任務(wù)集合;2) 各個(gè)機(jī)器上加工任務(wù)的排序;3) 各任務(wù)的加工速度。
為了構(gòu)建UPMS-ETC問(wèn)題的MILP模型,定義以下數(shù)學(xué)符號(hào)。
問(wèn)題參數(shù):
m:機(jī)器總數(shù),i∈{1,2,…,m}。
n:任務(wù)總數(shù),v∈{1,2,…,n}。
l:加工位置編號(hào),l∈{1,2,…,n},各臺(tái)機(jī)器均設(shè)有n個(gè)加工位置。
Qi:機(jī)器i可選的速度類別總數(shù),s∈{1,2,…,Qi}。
lv:任務(wù)v的標(biāo)準(zhǔn)加工時(shí)間。
ris:機(jī)器i以第s種加工速度的取值。
tvis:任務(wù)v在機(jī)器i上以速度ris加工時(shí)相應(yīng)的加工時(shí)間,tvis=lv/ris。
eis:機(jī)器i在單位時(shí)間內(nèi)以速度ris運(yùn)行所產(chǎn)生的能耗。
dv:任務(wù)v的交貨期。
Cv:任務(wù)v的完成時(shí)間。
τv:任務(wù)v的延誤時(shí)間,τv=max{0,Cv-dv}。
μv:任務(wù)v單位時(shí)間的延誤懲罰成本。
決策變量:
xvils:0-1變量,任務(wù)v在機(jī)器i以速度ris進(jìn)行加工,xvils取值為1;否則,xvils取值為0。
Bil:機(jī)器i上位置l任務(wù)開始加工的時(shí)間。
基于以上問(wèn)題描述和符號(hào)定義,構(gòu)建了UPMS-ETC問(wèn)題的MILP模型。
目標(biāo)函數(shù):
(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)表示目標(biāo)函數(shù),即所有任務(wù)的加工能耗成本和延誤懲罰成本之和;式(2)用于確保各個(gè)加工任務(wù)所選的加工機(jī)器、加工位置和加工速度的唯一性;式(3)表示各臺(tái)機(jī)器上每個(gè)加工位置處最多只能安排一個(gè)加工任務(wù);式(4)用于計(jì)算機(jī)器i上位置l處加工任務(wù)的開始時(shí)間;式(5)-式(6)用于計(jì)算各個(gè)任務(wù)的延誤時(shí)間;式(7)定義了決策變量的取值范圍。
FWA以煙花表示待優(yōu)化問(wèn)題的解,并通過(guò)煙花爆炸生成火花這一過(guò)程迭代進(jìn)化。首先依據(jù)各煙花個(gè)體的評(píng)價(jià)函數(shù)值計(jì)算相應(yīng)的爆炸火花數(shù)目和爆炸半徑數(shù)值;其次,采用均分分布和高斯分布生成新個(gè)體;最后,利用選擇規(guī)則構(gòu)建新種群以進(jìn)入下一次迭代。具體實(shí)現(xiàn)步驟歸納如下:
Step1初始化算法參數(shù),利用隨機(jī)方法構(gòu)建初始種群并對(duì)每個(gè)煙花個(gè)體進(jìn)行評(píng)價(jià)。
Step2依據(jù)評(píng)價(jià)函數(shù)計(jì)算當(dāng)前種群中各個(gè)煙花的爆炸火花數(shù)目和爆炸半徑。
Step3利用均分分布和高斯分布生成爆炸火花和高斯變異火花。
Step4利用煙花、爆炸火花和高斯變異火花構(gòu)建候選種群,并依據(jù)篩選規(guī)則生成新種群。
Step5判斷是否滿足終止條件。若滿足則停止迭代搜索并輸出當(dāng)前最優(yōu)解;否則,轉(zhuǎn)Step 2。
FWA的核心內(nèi)容包含以下四點(diǎn):(1) 計(jì)算爆炸火花數(shù)目和爆炸半徑;(2) 生成爆炸火花;(3) 生成高斯變異火花;(4) 基于選擇規(guī)則構(gòu)建新種群。
計(jì)算爆炸火花數(shù)目和爆炸半徑:以N表示煙花數(shù)目,以xi表示當(dāng)前種群中的第i個(gè)煙花,N個(gè)煙花數(shù)目生成的爆炸火花總數(shù)記為SN。以最小化問(wèn)題為例,對(duì)于煙花xi,以符號(hào)fi表示其評(píng)價(jià)函數(shù)值,以Si和Ri表示由xi生成的爆炸火花數(shù)目和相應(yīng)的爆炸半徑。Si和Ri的計(jì)算公式歸納如下:
(8)
(9)
式中:fmax和fmin分別表示當(dāng)前煙花種群中最大和最小的評(píng)價(jià)函數(shù)值;A表示基本爆炸半徑,需要預(yù)先設(shè)定;ε為機(jī)器最小值,用以避免除零操作。同時(shí),為了對(duì)上述Si計(jì)算公式做修正以確保優(yōu)勢(shì)煙花個(gè)體生成的火花數(shù)不過(guò)多、劣勢(shì)煙花個(gè)體生成的火花數(shù)不過(guò)少,修正公式為:
(10)