張 琪,楊曉英
(河南科技大學(xué) 機(jī)電工程學(xué)院,河南 洛陽 471003)
重型裝備是典型的單件離散型產(chǎn)品,部件關(guān)聯(lián)性強(qiáng),加工與裝配具有很強(qiáng)的并行性。傳統(tǒng)的機(jī)械作業(yè)車間調(diào)度(job-shop scheduling problem,JSSP)通常把零件加工與產(chǎn)品裝配分開,主要針對純加工或純裝配調(diào)度進(jìn)行研究,難以應(yīng)對產(chǎn)品內(nèi)在加工與裝配的并行處理關(guān)系。綜合作業(yè)調(diào)度(CJSSP)是具有實際應(yīng)用背景的生產(chǎn)調(diào)度問題,充分考慮產(chǎn)品加工與裝配的并行性,將分階段調(diào)度模型轉(zhuǎn)化為產(chǎn)品制造鏈調(diào)度[1]。因此,對重型裝備綜合作業(yè)調(diào)度問題進(jìn)行深入研究具有重要意義。
CJSSP研究對象主要為大型復(fù)雜產(chǎn)品,其生產(chǎn)調(diào)度要遵循嚴(yán)格的裝配順序約束,一般以單個產(chǎn)品最小生產(chǎn)周期為優(yōu)化目標(biāo)[2-4]。多產(chǎn)品綜合作業(yè)調(diào)度方面,梁艷杰等[5]的研究以多個產(chǎn)品總完工時間最小為優(yōu)化目標(biāo),未能體現(xiàn)不同產(chǎn)品對交貨期需求的差異性。謝志強(qiáng)等[6]按產(chǎn)品交貨期設(shè)置優(yōu)先級,按優(yōu)先級順序完成多產(chǎn)品綜合作業(yè)調(diào)度,該方法可高效求解小規(guī)模調(diào)度問題,但在大規(guī)模調(diào)度問題中難以取得最優(yōu)解。
截止目前,智能算法在JSSP研究上已趨于成熟,但是關(guān)于CJSSP的研究尚有不足,由于CJSSP對產(chǎn)品工藝結(jié)構(gòu)依賴過高,智能算法研究重點集中于編碼設(shè)計方面。趙詩奎等[7]設(shè)計出了一種分區(qū)編碼方式,雖能有效求解CJSSP問題,但減少了初始種群的多樣性。石飛等[8]為避免分區(qū)編碼方式遺漏解空間問題,采用了鄰接矩陣修復(fù)方法,確保了初始解空間的完整性。王福吉等[9]設(shè)計了基于可行域搜索的遺傳算法,在可行域內(nèi)進(jìn)行了交叉、變異操作,但縮小了搜索范圍,不利于搜索全局最優(yōu)解。智能算法在CJSSP問題應(yīng)用上多采用遺傳算法[10-12]。SEIDGAR H等[13]采用帝國競爭算法對裝配作業(yè)車間進(jìn)行了研究。蔣南云等[14]設(shè)計混合智能算法對可重入綜合作業(yè)調(diào)度進(jìn)行了研究,建立了雙層作業(yè)計劃。
上述學(xué)者雖對CJSSP問題有一定研究,但在多產(chǎn)品綜合作業(yè)調(diào)度方面的研究仍有不足,難以實現(xiàn)對各個產(chǎn)品的高效調(diào)度;智能算法研究在編碼設(shè)計上難以保證解空間的完整性,有時設(shè)計過于繁瑣,對CJSSP問題的應(yīng)用研究尚有欠缺。
針對上述存在的問題,本文以某重型裝備為研究對象,針對不同交貨期下的多產(chǎn)品綜合作業(yè)調(diào)度問題,以加工成本、精準(zhǔn)交付、跨車間轉(zhuǎn)運次數(shù)為優(yōu)化目標(biāo),建立多產(chǎn)品綜合作業(yè)調(diào)度優(yōu)化模型,設(shè)計改進(jìn)量子遺傳算法對模型求解;同時設(shè)計基于裝配約束的編碼方式,使染色體滿足裝配約束關(guān)系,最終確定各工序最佳執(zhí)行時間,以提高重型裝備生產(chǎn)調(diào)度的精益性指標(biāo)。
通常,重型裝備是定制化生產(chǎn)的大型產(chǎn)品,由機(jī)械工廠(車間)按訂單組織生產(chǎn),由物料經(jīng)非連續(xù)移動加工裝配而成,生產(chǎn)設(shè)備以通用型為主,跨車間生產(chǎn)[15]。由于生產(chǎn)環(huán)境復(fù)雜多變,零件跨車間生產(chǎn)容易造成生產(chǎn)混亂,應(yīng)盡量減少零件跨車間的轉(zhuǎn)運次數(shù)。重型裝備各部件關(guān)聯(lián)性強(qiáng),一般將產(chǎn)品分解為部件,根據(jù)訂單交貨期設(shè)定各部件排產(chǎn)優(yōu)先級,按優(yōu)先級從高到低進(jìn)行排產(chǎn),生成可行的作業(yè)計劃。
精益生產(chǎn)強(qiáng)調(diào)“消除浪費,降低成本”的理念,上述排產(chǎn)方式只考慮交貨期單一指標(biāo),且這種方式生成的作業(yè)計劃很難確保訂單精準(zhǔn)交付。訂單提前完工會產(chǎn)生庫存,造成浪費;拖期完工又會給企業(yè)帶來額外費用,影響客戶滿意度,難以實現(xiàn)生產(chǎn)調(diào)度精益性目標(biāo)。
重型裝備通常在多訂單并行條件下組織生產(chǎn),由于設(shè)備資源有限,產(chǎn)品對設(shè)備資源的不良占用會影響到其他產(chǎn)品的生產(chǎn)進(jìn)度,導(dǎo)致訂單不能按期交付,直接影響企業(yè)核心競爭力。多產(chǎn)品綜合作業(yè)調(diào)度不同于單個產(chǎn)品綜合作業(yè)調(diào)度,不能以產(chǎn)品完工時間最短為優(yōu)化目標(biāo),需要合理安排各個產(chǎn)品每道工序的最佳執(zhí)行時間,實現(xiàn)訂單精準(zhǔn)交付,對求解精度要求更高。重型裝備生產(chǎn)調(diào)度要合理安排每個車間加工任務(wù),使每個產(chǎn)品訂單都能精準(zhǔn)交付且成本最低。
n個產(chǎn)品需要在多個車間加工裝配,每個產(chǎn)品由o個工件組成,每個工件有q道工序,每道工序根據(jù)其工藝特點可在不同車間的設(shè)備上加工,工件的加工順序嚴(yán)格按照工藝約束。
要求工件各工序?qū)?yīng)合適的機(jī)床,確定最優(yōu)調(diào)度方案,在生產(chǎn)中滿足以下假設(shè):
(1)工件的每道工序只能在一臺設(shè)備上加工;
(2)在工件的緊前工件加工完成后才可開始加工;
(3)一臺設(shè)備同時只能加工一道工序;
(4)加工過程中設(shè)備沒有故障發(fā)生;
(5)零件的轉(zhuǎn)運時間忽略不計。
相關(guān)符號及定義如表1所示。
表1 符號定義
綜合考慮產(chǎn)品內(nèi)部加工裝配約束關(guān)系,筆者以加工成本、精準(zhǔn)交付、跨車間轉(zhuǎn)運次數(shù)為優(yōu)化目標(biāo),建立多產(chǎn)品綜合作業(yè)調(diào)度優(yōu)化模型。
目標(biāo)函數(shù)表示為:
f=λ1f1+λ2f2+λ3f3
(1)
式中:λi—目標(biāo)函數(shù)加權(quán)系數(shù);fi—第i個目標(biāo)函數(shù)。
(1)加工成本。重型裝備生產(chǎn)要考慮生產(chǎn)成本,以成本最低為目標(biāo),最小加工成本表示為:
(2)
(2)精準(zhǔn)交付。產(chǎn)品訂單應(yīng)滿足交貨期要求,提前或拖期完工都會給企業(yè)帶來損失。設(shè)置提前/拖期懲罰函數(shù),若產(chǎn)品訂單實際完工時間與交貨期出現(xiàn)偏差會產(chǎn)生懲罰值,通過減小懲罰值實現(xiàn)產(chǎn)品精準(zhǔn)交付,提前/拖期懲罰函數(shù)表示為:
(3)
(3)跨車間轉(zhuǎn)運次數(shù)。重型裝備生產(chǎn)過程復(fù)雜多變,應(yīng)盡量減少零件跨車間轉(zhuǎn)運次數(shù),避免造成生產(chǎn)混亂,最小跨車間轉(zhuǎn)運次數(shù)表示為:
(4)
為使多產(chǎn)品綜合作業(yè)調(diào)度優(yōu)化模型有效求解,設(shè)置約束條件如下:
(5)
Sik1j≥Civ(v∈Bik)
(6)
(7)
(Sikrj,Cikrj)∩(Sxyzj,Cxyzj)=φ
(8)
式(5)限制了工件i的每道工序,要求其只能在一臺設(shè)備上加工;
式(6)限制了工件i第一道工序的開工時間,要求其不小于工件i緊前工件集的完工時間;
式(7)限制了工件的后道工序開始時間,要求其不早于前道工序的完工時間;
式(8)限制了每臺設(shè)備,要求其同時只能加工一個工件。
量子遺傳算法(QGA)在遺傳算法(GA)的基礎(chǔ)上融入量子計算,量子位編碼方式增加了解空間的多樣性。但是種群通過量子旋轉(zhuǎn)門向最優(yōu)個體逼近時,若沒有更好的解出現(xiàn),易陷入局部最優(yōu)。模擬退火算法(SA)有很好的局部優(yōu)化效果,以一定概率接受劣解。
改進(jìn)量子遺傳算法(SQGA)將SA與QGA結(jié)合,在種群迭代時易跳出局部最優(yōu),提高了算法全局搜索能力。同時,設(shè)計基于裝配約束的編碼方式和自適應(yīng)旋轉(zhuǎn)角,使其可以更平穩(wěn)求解綜合作業(yè)調(diào)度問題。
CJSSP問題編碼的關(guān)鍵是保證染色體在解碼時滿足裝配約束,避免不可行解產(chǎn)生。本文設(shè)計基于裝配約束的工序-設(shè)備-父節(jié)點3層編碼方式,確保解碼時染色體的可行性和解空間的完整性。
一條量子位編碼染色體表示如下:
工序編碼中,將十進(jìn)制數(shù)值從小到大依次排列,將原位置索引值填入排列后的位置即得到工序編碼。設(shè)工序i轉(zhuǎn)化后對應(yīng)的十進(jìn)制數(shù)值為yi,可選設(shè)備的數(shù)量為wi,則工序i的設(shè)備編碼為mod(yi,wi)+1。父節(jié)點編碼為每道工序?qū)?yīng)所屬工件的緊后工件編號,根節(jié)點的父節(jié)點編碼記為0。
設(shè)某產(chǎn)品由3個工件組成,每個工件1道工序,工序可選設(shè)備數(shù)均為2,在2臺設(shè)備上加工。
產(chǎn)品結(jié)構(gòu)如圖1所示。
圖1 產(chǎn)品結(jié)構(gòu)
假設(shè)基于該產(chǎn)品設(shè)計的某條染色體在進(jìn)行量子位測定時,量子位編碼根據(jù)概率幅轉(zhuǎn)換為二進(jìn)制串101101,以此為例:
解碼時,首先通過三層編碼結(jié)構(gòu)轉(zhuǎn)換確保染色體的可行性,使其滿足產(chǎn)品內(nèi)部裝配順序約束。
具體操作如圖2所示。
圖2 三層編碼轉(zhuǎn)換操作
圖2中,對工序編碼從左至右進(jìn)行遍歷,若在第三層父節(jié)點編碼中含有該工序?qū)?yīng)編碼信息則跳過,否則刪除該工序編碼對應(yīng)索引位置的三層編碼信息,并將刪除的三層編碼信息重新依次記錄在新集合中。重復(fù)以上操作直至三層編碼為空,即可得到符合裝配約束的新染色體。
由于染色體轉(zhuǎn)換前的編碼是隨機(jī)的,通過三層編碼結(jié)構(gòu)轉(zhuǎn)換為滿足裝配約束染色體的解空間是完整的。根據(jù)新染色體序列從左至右進(jìn)行解碼,即可得到符合裝配約束的各工序執(zhí)行時間。
QGA中采用量子旋轉(zhuǎn)門作用于染色體,通過改變量子位編碼的概率幅更新染色體,實現(xiàn)種群進(jìn)化,其更新如下:
(9)
式中:U—量子旋轉(zhuǎn)門;θ—量子旋轉(zhuǎn)角。
θ值影響種群收斂速度,太大會導(dǎo)致早熟,反之導(dǎo)致收斂過慢。θ取值一般為0.01π~0.05π,為使種群收斂速度更平緩,本文設(shè)計自適應(yīng)調(diào)整θ為:
(10)
式中:fitnessn—個體n的適應(yīng)度值;fmin—種群中最小適應(yīng)度值,也是文中最佳個體適應(yīng)度值;fmax—種群中最大適應(yīng)度值;Δθ—0.05π。
與最佳個體適應(yīng)度值越接近的個體,說明其性能優(yōu)良,采用較小的θ值,降低收斂速度;反之,采用較大θ值。
量子位更新結(jié)束后,筆者取適應(yīng)度值較好的前20%個體進(jìn)行退火操作,以加快收斂速度;采用Pauli-X門互換αi和βi的概率幅,從而改變量子位測量值,完成鄰域搜索。
設(shè)每個量子位進(jìn)行Pauli-X門轉(zhuǎn)換的概率為0.1,轉(zhuǎn)換過程如下:
(11)
式中:X—Pauli-X門。
將鄰域搜索后的最佳個體與之前最佳個體進(jìn)行對比,按照Metropolis準(zhǔn)則確定新個體接受概率,即:
(12)
式中:P—新個體接受概率;f(a)—鄰域搜索前最佳個體適應(yīng)度值;f(b)—鄰域搜索后最佳個體適應(yīng)度值;T—退火溫度,T=D×T0;D—溫度衰減參數(shù);T0—初始溫度。
模型求解過程中,依據(jù)適應(yīng)度函數(shù)去評定個體的好壞,適應(yīng)度函數(shù)一般由目標(biāo)函數(shù)進(jìn)行尺度變換演變生成。由于目標(biāo)函數(shù)式(1)是由3個目標(biāo)加權(quán)組合而成,單位不統(tǒng)一,在加權(quán)組合前要進(jìn)行標(biāo)準(zhǔn)化處理,化為無量綱形式,適應(yīng)度函數(shù)式為:
(13)
(14)
改進(jìn)量子遺傳算法(SQGA)將量子遺傳算法(QGA)與模擬退火算法(SA)結(jié)合,具體算法流程如下:
Step1初始化量子位編碼,產(chǎn)生隨機(jī)初始種群Q0;
Step2將Q0進(jìn)行測定、轉(zhuǎn)化,得到種群S0;
Step4進(jìn)行適應(yīng)度計算,保留最佳個體Pb;
Step5量子門旋轉(zhuǎn),得到新的種群S;
Step6將S經(jīng)染色體轉(zhuǎn)換,進(jìn)行適應(yīng)度計算,保留新的最佳個體Pb;
Step8判斷是否滿足終止條件,如果滿足轉(zhuǎn)向Step9,否則種群迭代次數(shù)加1,轉(zhuǎn)向Step5;
Step9算法搜索結(jié)束,輸出最優(yōu)解。
改進(jìn)量子遺傳算法的算法流程圖如圖3所示。
圖3 算法流程圖
筆者采用MATLAB R2014a進(jìn)行實驗。算法參數(shù)設(shè)置如下:種群規(guī)模100,迭代次數(shù)200,GA交叉概率Pc=0.85,變異概率Pm=0.2,QGA固定旋轉(zhuǎn)角,SQGA溫度衰減參數(shù)D=0.95,初始溫度T0=100,終止溫度Tmin=1。
實例驗證首先對標(biāo)準(zhǔn)算例仿真,驗證SQGA算法性能,再將算法應(yīng)用到重型機(jī)械企業(yè)的生產(chǎn)實例中。
目前,對CJSSP基準(zhǔn)測試問題研究較少,為驗證改進(jìn)量子遺傳算法的有效性,筆者采用文獻(xiàn)[11]中的10個算例測試,以makespan為優(yōu)化目標(biāo),使產(chǎn)品完工時間最短。
產(chǎn)品結(jié)構(gòu)如圖4所示。
圖4 算例產(chǎn)品結(jié)構(gòu)
筆者采用GA、QGA、AQGA、SQGA算法進(jìn)行實驗且都采用本文設(shè)計的基于裝配約束的編碼方式,其中,AQGA在QGA的基礎(chǔ)上加入自適應(yīng)旋轉(zhuǎn)角,算法其余部分相同。
每個算例仿真實驗次數(shù)為10次,以最優(yōu)解(Optimal)、最優(yōu)解占比(Ratio)、平均收斂代數(shù)(Gen)為衡量指標(biāo)。
具體數(shù)據(jù)如表2所示。
由表2可知:
表2 不同算法數(shù)據(jù)對比
(1)Optimal指標(biāo)上,SQGA效果最好,求解精度最高,10個算例均能取得最優(yōu)解;QGA和AQGA尋優(yōu)效果接近,僅在Orb3C算例沒能收斂至最優(yōu);GA尋優(yōu)效果最差,但大部分算例也能收斂至最優(yōu)??芍疚脑O(shè)計基于裝配約束的編碼方式在CJSSP問題上具有非常好的效果;
(2)Ratio指標(biāo)上,SQGA在Orb3C、Orb4C、Orb6C 3個算例上分別為0.8、0.9、0.8,其余算例為1,均優(yōu)于GA、QGA、AQGA,說明SQGA求解過程平穩(wěn),該算法有較好的穩(wěn)定性;
(3)Gen指標(biāo)上,SQGA僅在Orb3C算例沒取得最小值,但尋優(yōu)效果均優(yōu)于其余3種算法。整體上,SQGA算法收斂速度最快。此外,AQGA僅在Orb2C和Orb3C兩個算例上的平均收斂代數(shù)大于QGA;在Orb3C算例上,AQGA尋優(yōu)效果優(yōu)于QGA,說明QGA采用自適應(yīng)旋轉(zhuǎn)角可以提高收斂速度。
綜合以上3項指標(biāo),可見4種算法中性能最好的為SQGA,其次為AQGA、QGA、GA;綜合10個算例,SQGA相比QGA,平均收斂代數(shù)減少18.6%,平均最優(yōu)解占例增加26%,SGQA具有更好的收斂效果和求解精度。
筆者以Ft10C為例進(jìn)行說明,其最優(yōu)結(jié)果甘特圖如圖5所示。
圖5 Ft10C甘特圖數(shù)字—工件號;橫坐標(biāo)—加工時間;縱坐標(biāo)—機(jī)器號
由圖5可知:4種算法均能取得Ft10C,其中算例最優(yōu)完工時間1 985。
算法最優(yōu)收斂曲線如圖6所示。
圖6 Ft10C不同算法收斂曲線
由圖6可知:SQGA算法在11代收斂至最優(yōu),GA、QGA、AQGA分別在25、20、16代收斂至最優(yōu);由此可見,SQGA收斂效果最好,驗證了改進(jìn)機(jī)理的合理性和有效性。
4.2.1 實例數(shù)據(jù)
現(xiàn)有Φ7×3.5 m半自磨機(jī)1臺,Φ5.5×1.8 m半自磨機(jī)2臺,以二班制方式生產(chǎn),每班8 h,交貨期分別為25 d和35 d。
半自磨機(jī)產(chǎn)品結(jié)構(gòu)如圖7所示。
圖7 半自磨產(chǎn)品結(jié)構(gòu)
半自磨機(jī)由主軸承、筒體、大齒輪3大零部件構(gòu)成,產(chǎn)品拖期一天扣除合同金額千分之一,拖期懲罰系數(shù)FC1取450,FC2、FC3取350;產(chǎn)品提前完工會占用庫存、設(shè)備資源。經(jīng)綜合考慮,筆者設(shè)置提前懲罰系數(shù)ECi為200。
實例中設(shè)備信息如表3所示。
表3 設(shè)備信息
由表3可知:M1~M6屬于數(shù)一車間,M7~M11屬于數(shù)二車間,M12~M14屬于粗加車間,半自磨機(jī)在數(shù)一、數(shù)二、粗加3個車間進(jìn)行生產(chǎn)。
工序可選擇機(jī)床和加工時間如表4所示。
表4 工序信息
4.2.2 實例仿真
實例仿真以式(13)為適應(yīng)度函數(shù),根據(jù)目標(biāo)重要程度設(shè)置權(quán)重λ1=0.4,λ2=0.4,λ3=0.2,以保證相應(yīng)指標(biāo)達(dá)到最優(yōu),采用SQGA算法對多產(chǎn)品綜合調(diào)度模型進(jìn)行求解。
半自磨機(jī)排產(chǎn)調(diào)度甘特圖如圖8所示。
圖8 半自磨機(jī)排產(chǎn)調(diào)度甘特圖
圖8中,A代表7 m×3.5 m半自磨機(jī),B和C代表5.5 m×1.8 m半自磨機(jī),字母后的數(shù)字代表工件,如:A2表示7 m×3.5 m半自磨機(jī)的第2個部件主軸承。
SQGA算法的收斂曲線如圖9所示。
圖9 SQGA收斂曲線
4.2.3 效果分析
目前,該企業(yè)采用APS制定作業(yè)計劃,將產(chǎn)品分解為部件,每個部件根據(jù)交貨期緊迫度設(shè)定排產(chǎn)優(yōu)先級,按照排產(chǎn)優(yōu)先級進(jìn)行排產(chǎn)。即當(dāng)某個部件排產(chǎn)完成后,才開始為優(yōu)先級低的部件排產(chǎn),這樣使得解空間縮小,很難排出較好的調(diào)度結(jié)果。采用綜合調(diào)度對產(chǎn)品進(jìn)行排產(chǎn),可以將產(chǎn)品分階段調(diào)度變?yōu)楫a(chǎn)品鏈調(diào)度,有效縮短產(chǎn)品生產(chǎn)周期。
筆者將SQGA+綜合作業(yè)調(diào)度與企業(yè)采用的APS+部件優(yōu)先級調(diào)度進(jìn)行對比,結(jié)果如表5所示。
表5 數(shù)據(jù)對比
由表5可見:SQGA+綜合調(diào)度方法使加工成本減少了7.8%,跨車間轉(zhuǎn)運次數(shù)減少了30.4%,產(chǎn)品達(dá)到精準(zhǔn)交付,提高了機(jī)械工廠(車間)的生產(chǎn)調(diào)度精益性指標(biāo)。
針對重型裝備加工與裝配集成調(diào)度精益性不足的問題,綜合考慮加工成本、精準(zhǔn)交付、跨車間轉(zhuǎn)運次數(shù)等目標(biāo),筆者建立了多產(chǎn)品綜合作業(yè)調(diào)度優(yōu)化模型;為使模型得到有效求解,筆者設(shè)計了改進(jìn)量子遺傳算法;針對量子遺傳算法易陷入局部最優(yōu)的缺點,將其與模擬退火算法相結(jié)合,提高了算法的搜索精度;在編碼方式上設(shè)計了一種基于裝配約束的工序-設(shè)備-父節(jié)點三層編碼結(jié)構(gòu),使染色體在解碼時,既能夠滿足裝配約束關(guān)系,又能夠滿足解空間的完整性;最后,通過算例和生產(chǎn)實例對算法和模型的效果進(jìn)行了驗證。
研究結(jié)果表明:與傳統(tǒng)量子遺傳算法相比,改進(jìn)量子遺傳算法具有更好的尋優(yōu)效果,收斂速度和求解精度更優(yōu),可高效求解綜合作業(yè)調(diào)度問題。此外,該模型和算法可以提高重型裝備精益化生產(chǎn)調(diào)度指標(biāo),為重型裝備精益化生產(chǎn)提供理論依據(jù)。
在接下來的研究中,筆者將以魯棒性為目標(biāo),對多產(chǎn)品綜合作業(yè)調(diào)度進(jìn)行研究,以應(yīng)對重型裝備生產(chǎn)過程中的突發(fā)情況對調(diào)度計劃帶來的不良影響。