趙 陽,唐秋華,韓大勇
(1.武漢科技大學(xué)冶金裝備及其控制教育部重點(diǎn)實(shí)驗(yàn)室,湖北 武漢,430081;2.武漢科技大學(xué)機(jī)械傳動(dòng)與制造工程湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢,430081;3.武漢科技大學(xué)生產(chǎn)系統(tǒng)工程研究所,湖北 武漢,430081)
煉鋼-連鑄生產(chǎn)過程是現(xiàn)代鋼鐵產(chǎn)品制造的重要環(huán)節(jié)。目前對(duì)于煉鋼-連鑄生產(chǎn)調(diào)度的研究通常基于理想條件,忽略了生產(chǎn)過程中可能發(fā)生的不確定事件。如果面對(duì)復(fù)雜或可變的生產(chǎn)狀況,如機(jī)器故障、爐次延遲等,確定條件下的調(diào)度方案就會(huì)變得低效甚至不可行,需要重新制定調(diào)度方案以響應(yīng)生產(chǎn)狀況的變動(dòng),即進(jìn)行重調(diào)度??焖儆行У刂贫ǔ鲂碌恼{(diào)度計(jì)劃,對(duì)于保證鋼鐵企業(yè)的生產(chǎn)穩(wěn)定和產(chǎn)品質(zhì)量具有重要意義。
煉鋼-連鑄生產(chǎn)重調(diào)度問題已受到國(guó)內(nèi)外研究人員的廣泛關(guān)注。Roy等[1]將知識(shí)模型應(yīng)用于煉鋼-連鑄生產(chǎn)過程中的調(diào)度擾動(dòng)管理。Yu等[2-3]研究了煉鋼-連鑄生產(chǎn)過程中的操作時(shí)間延遲擾動(dòng)問題,并提出了操作時(shí)間延遲擾動(dòng)的預(yù)測(cè)方法。Yu等[4]還進(jìn)一步研究了煉鋼-連鑄生產(chǎn)中的作業(yè)開始時(shí)間延遲擾動(dòng)導(dǎo)致的生產(chǎn)中斷,并對(duì)其后果和應(yīng)對(duì)策略進(jìn)行了全面分析,然而以上針對(duì)操作時(shí)間延遲擾動(dòng)所建立的模型并不適用于機(jī)器故障問題。Mao等[5]研究了煉鋼和精煉階段出現(xiàn)機(jī)器故障的煉鋼-連鑄生產(chǎn)重調(diào)度問題,并采用拉格朗日松弛法進(jìn)行求解。在上述文獻(xiàn)中,均未針對(duì)連鑄機(jī)故障下的煉鋼-連鑄生產(chǎn)重調(diào)度問題提出有效方法。
連鑄機(jī)故障是煉鋼-連鑄生產(chǎn)調(diào)度中時(shí)常會(huì)出現(xiàn)的一類具有代表性的復(fù)雜大擾動(dòng)事件,其對(duì)原調(diào)度方案的影響比較大,甚至?xí)绊憹泊斡?jì)劃[6],因此連鑄機(jī)故障下的生產(chǎn)重調(diào)度研究十分重要。王柏琳等[7]針對(duì)該問題建立了動(dòng)態(tài)約束滿足模型, 將模型分為連鑄方案修復(fù)子模型和煉鋼精煉重調(diào)度子模型,并提出了基于約束滿足的優(yōu)化方法。Long等[8]對(duì)故障連鑄機(jī)上的爐次采用人工指派的策略進(jìn)行處理,然后建立數(shù)學(xué)模型并設(shè)計(jì)一種改進(jìn)遺傳算法進(jìn)行求解。
基于上述研究,本文首先總結(jié)4種連鑄機(jī)故障下的爐次重分配策略及其對(duì)重調(diào)度的影響;其次提出一種智能分配啟發(fā)式規(guī)則,來完成故障連鑄機(jī)上爐次的重分配;然后構(gòu)建一個(gè)重調(diào)度模型,可以在連鑄機(jī)故障狀況下生成新的調(diào)度方案;再將啟發(fā)式規(guī)則融入改進(jìn)遺傳算法中求解模型;最后通過源于生產(chǎn)實(shí)際的調(diào)度案例來驗(yàn)證所提出方法的有效性。
煉鋼-連鑄生產(chǎn)過程主要分為3個(gè)階段:煉鋼、精煉、連鑄,如圖1所示。連鑄機(jī)是煉鋼-連鑄生產(chǎn)工藝中唯一以批為單位、批內(nèi)連續(xù)工作的設(shè)備,其任務(wù)是將鋼水凝固成板坯[9]。在實(shí)際生產(chǎn)中,由于鋼水溫度過低而水口結(jié)瘤、鑄坯質(zhì)量問題、上游補(bǔ)料延遲等原因會(huì)導(dǎo)致連鑄機(jī)故障,不能繼續(xù)進(jìn)行作業(yè)。此時(shí)故障機(jī)器上正在進(jìn)行澆鑄或即將開澆的澆次中的各個(gè)爐次需要進(jìn)行重分配。
將未完成的爐次分配到同一階段的其他機(jī)器上是一種常見的煉鋼-連鑄重調(diào)度策略[5],但這種策略僅適用于煉鋼和精煉階段設(shè)備故障下的重調(diào)度,卻無法滿足連鑄機(jī)故障下的生產(chǎn)調(diào)度特點(diǎn)。因?yàn)檫B鑄階段的作業(yè)是一個(gè)連續(xù)過程,且其具有以澆次為單元進(jìn)行批量加工的特殊工藝特征。澆次內(nèi)能夠連澆的爐次的鋼種必須兼容,否則會(huì)產(chǎn)生連澆成本。因此,為了最大限度地降低連澆成本,在計(jì)劃階段已經(jīng)預(yù)先確定了每一澆次中每一爐次的澆鑄順序。連鑄機(jī)發(fā)生故障后,在進(jìn)行重調(diào)度時(shí)需要重新確定故障連鑄機(jī)上每個(gè)爐次正在加工和還未開始操作的連鑄機(jī)分配和加工順序。
在實(shí)際生產(chǎn)中,常用以下策略處理故障連鑄機(jī)上的爐次。
(1)改派:(a)在故障發(fā)生時(shí),若故障機(jī)上所中斷澆次內(nèi)的爐次正處于煉鋼或精煉加工,且該澆次與非故障機(jī)上指定澆次鋼級(jí)相同,可將該爐次重新指派到相關(guān)澆次,無需改變鋼水成分;(b)在故障發(fā)生時(shí),若故障機(jī)上所中斷澆次內(nèi)的爐次正在澆鑄,其與非故障機(jī)上鋼水成分相同,則可將相關(guān)爐次剩余鋼水直接插入到相關(guān)澆次中;當(dāng)鋼級(jí)相近但兼容時(shí),存在鋼級(jí)轉(zhuǎn)換成本。
(2)改性:在故障發(fā)生時(shí),故障機(jī)上中斷澆次內(nèi)的爐次已完成精煉操作,且鋼水成分、鋼水的液相線溫度與其他鑄機(jī)上鋼水屬性不合,則通過改變煉鋼和精煉階段的加工路線,即返送回?zé)掍摶蚓珶挔t,達(dá)到改變其化學(xué)成分的目的,然后將其插入到另一個(gè)非故障連鑄機(jī)上的澆次中。
(3)等待:在故障發(fā)生時(shí),故障機(jī)上還未開始下一澆次的澆鑄且故障機(jī)停機(jī)時(shí)間不長(zhǎng),無需改變澆次計(jì)劃,不必進(jìn)行爐次重分配。
(4)報(bào)廢:故障發(fā)生時(shí),若故障機(jī)上中斷澆次內(nèi)的爐次無法采取上述任一措施,則撤銷該爐次的生產(chǎn)任務(wù),鋼水報(bào)廢。該策略在實(shí)際生產(chǎn)中很少用到。
考慮到上述分配策略對(duì)生產(chǎn)穩(wěn)定性的影響,規(guī)定其優(yōu)先級(jí)關(guān)系為:等待>改派>改性>報(bào)廢。
由于在煉鋼過程中爐次中鋼水的溫度不能低于其液相線溫度,即等待時(shí)間不能過長(zhǎng),因此本文采用基于等待時(shí)間最小化的爐次重分配規(guī)則,如圖2所示。
圖2 爐次重分配規(guī)則
在進(jìn)行爐次重分配時(shí),需注意以下條件:①在制定重調(diào)度計(jì)劃時(shí),每個(gè)澆次存在澆次內(nèi)最大爐次數(shù)的限制;②如果決定改變一個(gè)爐次的化學(xué)成分,那么重調(diào)度時(shí)可在煉鋼或精煉階段相應(yīng)地改變其成分,而已經(jīng)完成精煉的爐次,則只能重回精煉爐,改變其成分;③為保證溫度要求,部分爐次需要回精煉階段重新加熱;④如果爐次的生產(chǎn)任務(wù)被取消,則所有已完成的操作應(yīng)保留在新的計(jì)劃中,而后續(xù)操作應(yīng)取消。
基于上述準(zhǔn)則,將所有需要進(jìn)行重分配的爐次構(gòu)成一個(gè)集合。在該集合中,依照各爐次原定澆鑄開始時(shí)間的非減順序,逐個(gè)進(jìn)行重分配策略判定,繼而確定其在新澆次中所處的爐次順序。
當(dāng)連鑄機(jī)發(fā)生故障時(shí),煉鋼-連鑄生產(chǎn)的每道工序處在三種狀態(tài)之一:已完成、正在進(jìn)行和未開始。如果一個(gè)爐次的所有工序都已完成,稱其為已完成爐次;如果某爐次的某道工序正在進(jìn)行或仍有工序未開始,稱其為正在加工爐次;如果某爐次所有工序都未開始,稱其為未開始爐次;將正在加工爐次和未開始爐次統(tǒng)稱為還未完成爐次。
基于上述思想,并假定已重新分配各爐次所屬澆次,且相關(guān)爐次在規(guī)定澆次內(nèi)的順序已定,則連鑄機(jī)故障時(shí)生產(chǎn)重調(diào)度模型構(gòu)建如下。
s階段序號(hào),s∈{1,2,…,S}。
m機(jī)器序號(hào),m∈{1,2,…,M}。
Ms階段s的機(jī)器集合。
i爐次序號(hào),i∈{1,2,…,I}。
k澆次序號(hào),k∈{1,2,…,K}。
oi爐次i的操作序號(hào),oi∈{1,2,…,O(i)}。
soioi操作的階段序號(hào)。
tsoi爐次i在階段s的oi操作的加工時(shí)間。
βoi重調(diào)度開始時(shí)刻操作oi的生產(chǎn)狀態(tài)標(biāo)志。如果操作oi還未開始,則βoi=0;如果操作oi正在進(jìn)行,則βoi=1;如果操作oi已經(jīng)完成,則βoi=2。
ψ 包含所有需要重調(diào)度的爐次集合,即故障發(fā)生時(shí)刻已開始加工澆次內(nèi)的爐次,以及還未開始的其他澆次。
Ωm鑄機(jī)m上所有澆次集合。
Ik澆次重組后第k澆次中所有爐次集合,|Ik|表示澆次內(nèi)總爐次數(shù)。
lb(k) 第k澆次中第一爐的爐次序號(hào)。
le(k) 第k澆次中最后一爐的爐次序號(hào)。
re同一連鑄機(jī)上相鄰兩澆次間的準(zhǔn)備時(shí)間。
st′oi初始調(diào)度中爐次i的操作oi的開始時(shí)間。
et′oi初始調(diào)度中爐次i的操作oi的完成時(shí)間。
y′m,oi在初始調(diào)度中爐次i的操作oi分配給機(jī)器m加工則為1,否則為0。
U足夠大的正整數(shù)。
λ目標(biāo)函數(shù)權(quán)重。
重調(diào)度決策變量:
ym,oi0-1變量。當(dāng)且僅當(dāng)爐次i的操作oi在機(jī)器m上加工時(shí)為1,否則為0。
zm,i,i′0-1變量。當(dāng)且僅當(dāng)爐次i和i′在機(jī)器m上加工且i先加工時(shí)為1,否則為0。
stoi重調(diào)度后爐次i的操作oi的開始時(shí)間。
etoi重調(diào)度后爐次i的操作oi的完成時(shí)間。
當(dāng)機(jī)器發(fā)生故障時(shí),已開始但未完工的爐次只可能處于兩種狀態(tài):正在某設(shè)備上加工和等待加工。對(duì)于正在設(shè)備上加工的爐次,即當(dāng)βoi=1時(shí),stoi=st′oi,ym,oi=y′m,oi,?i∈ψ,?m∈{1,2,…,M},?oi∈{1,2,…,O(i)},還需要確定下一個(gè)操作的加工設(shè)備以及在該設(shè)備上的開始和結(jié)束時(shí)間。對(duì)于等待加工的爐次,即當(dāng)βoi=0時(shí),在重調(diào)度中只需確定其下一個(gè)操作的加工設(shè)備以及在該設(shè)備上的開始和結(jié)束時(shí)間。對(duì)于已經(jīng)完成的爐次,在重調(diào)度中不需改變其狀態(tài),即當(dāng)βoi=2時(shí),stoi=st′oi,etot=et′oi,ym,oi=y′m,oi,?i∈ψ,?m∈{1,2,…,M},?oi∈{1,2,…,O(i)}。
基于以上描述和分析,在本節(jié)中建立連鑄機(jī)故障下的煉鋼-連鑄生產(chǎn)重調(diào)度問題數(shù)學(xué)模型。以下為模型假設(shè):①初始調(diào)度是已知的,其中包括每一階段所指派的機(jī)器分配、加工順序以及在各個(gè)機(jī)器上的加工時(shí)間;②重調(diào)度的對(duì)象是故障發(fā)生時(shí)刻最后一個(gè)階段尚未加工完的已開始澆次或未開始澆次內(nèi)的所有爐次;③每一爐次在各階段的加工設(shè)備上的加工時(shí)間已知;④各爐次的加工工藝路徑確定;⑤一個(gè)重組澆次內(nèi)的爐次必須連澆連鑄;⑥調(diào)度過程中運(yùn)輸時(shí)間包含在相應(yīng)的操作時(shí)間內(nèi)。
煉鋼-連鑄生產(chǎn)重調(diào)度需要同時(shí)兼顧兩個(gè)目標(biāo):最小化最大完工時(shí)間和最小化各爐次的總流程時(shí)間。前一目的是保證生產(chǎn)效率,后一目的是縮短鋼水的周轉(zhuǎn)時(shí)間,減少能量損失。由于二者之間存在量綱差異,為簡(jiǎn)化目標(biāo)函數(shù),分別對(duì)其進(jìn)行歸一化處理,詳情如式(1)~式(3)所示。
f1=Cmax
(1)
(2)
(3)
?i∈ψ,?oi∈{1,2,…,O(i)-1}
(4)
zm,i,i′+zm,i′,i=ym,oiym,oi′,
?(i≠i′)∈ψ,?m∈{1,2,…,M},
?oi∈{1,2,…,O(i)-1}
(5)
stoi+1-etoi≥0,
?i∈ψ,?oi∈{1,2,…,O(i)-1}
(6)
sto′i′-etoi+(3-ym,o′i′-ym,oi-zm,i,i′)U≥0,
?(i≠i′)∈ψ,?m∈{1,2,…,M},
?oi∈{1,2,…,O(i)-1},
?o′i′∈{1,2,…,O(i′)-1}
(7)
etO(i)+re≤stO(i′),i=le(k),i′=lb(k+1),
?k∈{1,2,…,|Ωm|-1}
(8)
etO(i)=stO(i+1),
?(i,i+1)∈Ik,?k∈{1,2,…,K}
(9)
Cmax≥etO(i),?i∈{1,2,…,I}
(10)
ym,O(i)=1,?i∈Ik,k∈Ωm,m∈Ms
(11)
stoi≥0,etoi≥0,
?i∈ψ,?oi∈{1,2,…,O(i)}
(12)
ym,oi∈{0,1},?i∈ψ,?oi∈{1,2,…,O(i)},
?m∈{1,2,…,M}
(13)
zm,i,i′∈{0,1},?(i≠i′)∈ψ,
?m∈{1,2,…,M}
(14)
式(4)表示爐次的每一個(gè)操作只能進(jìn)行一次;式(5)表示同一操作中不同爐次存在優(yōu)先關(guān)系約束;式(6)表示同一臺(tái)機(jī)器在同一時(shí)刻只能加工一個(gè)爐次;式(7)表示爐次前一操作完成,后一操作才能開始;式(8)為相鄰兩澆次之間的準(zhǔn)備時(shí)間約束;式(9)為連澆連鑄約束;式(10)表示最后一個(gè)完成加工的爐次的完成時(shí)間不超過最大加工時(shí)間;式(11)表示鑄機(jī)上的爐次分配及加工順序已知。
由于煉鋼-連鑄生產(chǎn)重調(diào)度為NP-hard問題,模型求解較難,因此設(shè)計(jì)一個(gè)改進(jìn)遺傳算法,并加入啟發(fā)式解碼方法進(jìn)一步優(yōu)化解的質(zhì)量。算法的具體流程如圖3所示。
因?yàn)楦鳡t次的連鑄機(jī)和澆鑄順序已經(jīng)確定,故連鑄階段調(diào)度信息無需加入編碼過程。鑒于爐次在連鑄機(jī)上的分配已定,為了滿足澆次內(nèi)各爐次的連澆約束,在算法設(shè)計(jì)中采用回溯法倒排[10]方式進(jìn)行種群的編碼和初始化。
圖3 改進(jìn)遺傳算法流程
針對(duì)煉鋼和精煉這兩個(gè)階段,采用雙段整數(shù)編碼,第一段表示全部爐次在煉鋼和精煉階段的加工順序,第二段表示各爐次在每道工序上的機(jī)器序號(hào)。由于各爐次已經(jīng)完成加工部分的信息可以忽略,為了減少編碼的冗余性,僅需對(duì)未完成加工部分進(jìn)行編碼。以圖4為例,連鑄機(jī)CC2故障發(fā)生時(shí)刻,各爐次操作呈現(xiàn)出已完成、正在加工、還未開始3種狀態(tài)。甘特圖中灰色部分表示某爐次在該階段已經(jīng)完成的操作和機(jī)器分配,白色部分表示正在加工的操作和機(jī)器分配,紅色部分表示還未開始的操作和機(jī)器分配。編號(hào)“3.8”中,3為澆次序號(hào),8為爐次序號(hào),其余類推。機(jī)器分配中,序號(hào)1~4分別代表LD1、LD2、LF1、LF2。染色體中,爐次加工順序編碼為(3,4,7,2,8,3,4),可見爐次(7,2,8)僅需進(jìn)行精煉操作,而爐次(3,4)尚需煉鋼和精煉兩種操作。
圖4 編碼示意圖
Step1由于故障鑄機(jī)上爐次的澆鑄順序和機(jī)器分配由重分配規(guī)則確定,而其他爐次的澆鑄順序在初始計(jì)劃中已經(jīng)確定,因此解碼時(shí)只需要確定連鑄機(jī)上爐次的開始與結(jié)束時(shí)間。具體方法是,首先確定每個(gè)澆次的開澆時(shí)間和澆次內(nèi)爐次的加工時(shí)間,然后根據(jù)約束條件(8)和(9)即可確定連鑄階段各爐次的開始和結(jié)束時(shí)間,其中,已完成澆鑄的爐次信息已知。由此就可以得到連鑄階段的調(diào)度信息,進(jìn)入下一步。
Step2依照所有爐次最后階段開始時(shí)間的非減順序,構(gòu)建爐次序列ξ。
Step3從序列ξ中取出第一個(gè)爐次i,如果該爐次是正在加工的爐次,進(jìn)入Step 4,否則進(jìn)入Step 5。
Step4使用“前向解碼”,即從煉鋼階段開始,順推各爐次在各階段的開始、結(jié)束時(shí)間和機(jī)器分配。
Step4.1令oi=1;
Step4.2如果oi Step4.3如果βoi≠2,則進(jìn)入Step 4.4,否則令stoi=st′oi,etoi=et′oi,moi=m′oi,機(jī)器moi加工下一爐次的最早可用時(shí)間更新為ηm=etoi,然后進(jìn)入Step 4.6; Step4.4如果βoi≠1,則進(jìn)入Step 4.5,否則令stoi=st′oi,moi=m′oi,etoi=stoi+tsoi,機(jī)器moi加工下一爐次的最早可用時(shí)間更新為ηm=etoi,然后進(jìn)入Step 4.6; Step4.5如果βoi≠0,則進(jìn)入Step 4.6,否則找出etoi-1和moi-1,令stoi=max{etoi-1,ηm},etoi=stoi+tsoi,機(jī)器moi加工下一爐次的最早可用時(shí)間更新為ηm=etoi,然后進(jìn)入Step 4.6; Step4.6令oi=oi+1,返回Step 4.2。 Step5使用“后向解碼”,從連鑄階段開始,倒推能滿足連澆連鑄約束的各爐次開始和結(jié)束時(shí)間。 Step5.1令oi=O(i)-1; Step5.2如果oi≥1,則進(jìn)入Step 5.3,否則進(jìn)入Step 6; Step5.3找出stoi+1和moi+1,令etoi=stoi+1,stoi=max{etoi-tsoi,ηm},機(jī)器moi加工下一爐次的最早可用時(shí)間更新為ηm=etoi; Step5.4令oi=oi-1,返回Step 5.2。 Step6從序列ξ中刪除第一個(gè)爐次i,如果ξ為空,結(jié)束算法,否則返回Step 3。 采用輪盤賭法進(jìn)行選擇操作,并采用精英策略將最好的父代復(fù)制給子代。由于重調(diào)度對(duì)已完成加工的爐次的操作不予改變,因此對(duì)于一個(gè)染色體,將以大概率優(yōu)先選擇直接受到連鑄機(jī)故障影響的爐次進(jìn)行交叉和變異操作。交叉操作采用整數(shù)分段式交叉,即對(duì)于爐次的加工順序和機(jī)器分配分別進(jìn)行交叉操作。變異過程為:①隨機(jī)產(chǎn)生一個(gè)非負(fù)數(shù);②在染色體中隨機(jī)選擇一個(gè)基因位置,改變等位基因;③重復(fù)上一步驟,直到變異基因的數(shù)目等于隨機(jī)產(chǎn)生的非負(fù)數(shù)。 在交叉、變異過程中,新產(chǎn)生的解可能不可行,例如某爐次重復(fù)次數(shù)與所需操作數(shù)不等。為淘汰不可行解,對(duì)其進(jìn)行懲罰,即根據(jù)下式計(jì)算適應(yīng)度值: (15) 式中:f(x)為x的目標(biāo)函數(shù)值;R是足夠大的懲罰系數(shù);0-1變量Vi(x)刻畫調(diào)度計(jì)劃的可行性,Vi(x)=0時(shí),x中爐次i為可行解,否則為不可行解。 為了驗(yàn)證本文模型與算法是否可行,從現(xiàn)場(chǎng)采集某煉鋼廠的實(shí)際生產(chǎn)數(shù)據(jù)進(jìn)行對(duì)比實(shí)驗(yàn)分析。結(jié)合該廠日常生產(chǎn)鋼種信息,選取了較具代表性的Q235鋼種常規(guī)等級(jí)的薄板坯加工任務(wù)訂單,其生產(chǎn)設(shè)備信息如下:煉鋼階段,LD爐3臺(tái),加工時(shí)間為70 min/臺(tái);精煉階段,LF爐2臺(tái),加工時(shí)間為45 min/臺(tái),RH爐1臺(tái),加工時(shí)間為30~40 min/臺(tái);連鑄階段,連鑄機(jī)(CC)3臺(tái),加工時(shí)間為51~64 min/臺(tái)。 對(duì)于給定的一個(gè)澆次計(jì)劃k∈{1,2,3,4,5,6},依次執(zhí)行下列過程(見圖5),其中精煉階段有鋼包處理和真空處理兩種不同的工藝,且每種工藝相互獨(dú)立。 圖5 初始調(diào)度甘特圖 為了對(duì)比分析的有效性,本實(shí)驗(yàn)只考慮同一種板型Q235鋼種的薄板坯訂單任務(wù),并同時(shí)調(diào)用中板坯和薄板坯3臺(tái)鑄機(jī)。具體參數(shù)有:階段s∈{1,2,3,4},每階段機(jī)器集合Ms={3,2,1,3},澆次數(shù)k∈{1,2,3,4,5,6},澆次內(nèi)的爐次數(shù)Ik={1,3,4,1,5,4}。其中,澆次1、2、3為特殊要求訂單,需要經(jīng)過兩重精煉,其他澆次均為一重精煉。調(diào)度任務(wù)即對(duì)6個(gè)澆次18個(gè)爐次的訂單任務(wù)進(jìn)行計(jì)劃排產(chǎn),生產(chǎn)設(shè)備總數(shù)M=9臺(tái)。各爐次在不同階段的加工時(shí)間是固定的,連鑄階段相鄰澆次之間需要一定的準(zhǔn)備時(shí)間,但各爐次的連鑄時(shí)間卻各不相同,要根據(jù)具體的爐容量和澆次而定。澆次間準(zhǔn)備時(shí)間re=60 min。為了便于比較,目標(biāo)函數(shù)中權(quán)重系數(shù)均取λ=0.4。 實(shí)驗(yàn)采用MATLAB編程,PC運(yùn)行環(huán)境:2.6 GHz CPU和4 GB內(nèi)存。為了與所提出的改進(jìn)遺傳算法進(jìn)行比較,本文還采用CPLEX軟件對(duì)模型求解,由于其求解速度較慢,CPU運(yùn)行終止時(shí)間設(shè)定為5 min,運(yùn)行環(huán)境同上。 由于遺傳算法性能受參數(shù)影響較大,故需要通過多因素方差分析確定最優(yōu)的參數(shù)組合。種群規(guī)模、交叉概率、變異概率各考慮3個(gè)參數(shù)水平,種群規(guī)模設(shè)為(20,40,60),交叉概率設(shè)為(0.7,0.8,0.9),變異概率設(shè)為(0.1,0.2,0.3)。設(shè)計(jì)正交試驗(yàn),對(duì)每個(gè)參數(shù)組合單獨(dú)運(yùn)行10次,取其平均值作為最終結(jié)果,然后用Minitab軟件對(duì)所求結(jié)果進(jìn)行方差分析。結(jié)果表明,3個(gè)參數(shù)對(duì)目標(biāo)函數(shù)的影響程度從高到低依次為:種群規(guī)模>交叉概率>變異概率,最終選取的參數(shù)水平為:種群規(guī)模40,交叉概率0.7,變異概率0.3。 假設(shè)連鑄機(jī)CC3在400 min時(shí)發(fā)生故障,500 min時(shí)可以再次投入使用。圖6所示為融入了重分配規(guī)則的改進(jìn)遺傳算法的模型求解結(jié)果。圖中深灰色部分表示當(dāng)CC3發(fā)生故障時(shí)已經(jīng)完成的爐次,紅色部分表示連鑄機(jī)故障持續(xù)時(shí)間。通過實(shí)驗(yàn)可以得出,調(diào)度計(jì)劃中不存在時(shí)間沖突和非故障機(jī)澆次中斷,因此,當(dāng)煉鋼-連鑄生產(chǎn)過程中出現(xiàn)連鑄機(jī)故障導(dǎo)致原調(diào)度計(jì)劃不可行時(shí),運(yùn)用該算法可以得到較好的解決方案。 為了驗(yàn)證本文提出的爐次重分配規(guī)則的有效性,將融入該規(guī)則的重調(diào)度最大完工時(shí)間(Cmax)與文獻(xiàn)[8]中采用單一的人工指派策略分配故障機(jī)上爐次的Cmax進(jìn)行對(duì)比,試驗(yàn)結(jié)果如表1所示。 表1 不同爐次重分配規(guī)則的比較 從表1中可以看出,與人工分配策略相比,在重調(diào)度過程中融入所提出的重分配規(guī)則后,所獲得的最大完工時(shí)間明顯縮短。 考慮到影響調(diào)度結(jié)果的主要因素為故障機(jī)器、故障發(fā)生時(shí)刻以及故障持續(xù)時(shí)間, 為進(jìn)一步驗(yàn)證算法的有效性和求解質(zhì)量,共生成12組對(duì)比試驗(yàn)案例,其中故障開始和結(jié)束時(shí)間隨機(jī)生成,開始時(shí)間區(qū)間為[150,480],結(jié)束時(shí)間區(qū)間為[210,600]。為了保證實(shí)驗(yàn)的公平性與準(zhǔn)確性,每組實(shí)驗(yàn)均采用相同迭代次數(shù)作為終止條件,并將本文算法所得最佳解與通過CPLEX軟件在給定時(shí)間內(nèi)獲得的解(即下界)進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果見表2。 表2 本文算法的性能測(cè)試指標(biāo) 由表2可見,采用融合重分配規(guī)則的遺傳算法所求最佳解與下界值基本一致,每個(gè)案例求解時(shí)間不超過0.2 s,表明本文算法的計(jì)算效率較高,能夠?qū)崟r(shí)響應(yīng)連鑄機(jī)故障的擾動(dòng)事件,快速給出可行的新方案,從而滿足實(shí)際生產(chǎn)調(diào)度要求。 在煉鋼-連鑄生產(chǎn)過程中,不同于其他機(jī)器故障,連鑄機(jī)故障下的重調(diào)度首先需為故障機(jī)上每個(gè)未完成爐次重新分配澆鑄順序和連鑄機(jī)。因此,本文參考實(shí)際生產(chǎn)中調(diào)度人員經(jīng)常使用的爐次重分配策略,提出了一種基于等待時(shí)間最小化的啟發(fā)式規(guī)則對(duì)故障連鑄機(jī)上的爐次進(jìn)行重分配?;谥胤峙浜蟮臓t次澆鑄順序與連鑄機(jī)安排建立了重調(diào)度模型,以便生成新的調(diào)度計(jì)劃。然后設(shè)計(jì)了融合重分配規(guī)則的改進(jìn)遺傳算法求解該模型。最后通過來源于實(shí)際生產(chǎn)中的算例驗(yàn)證了所提出的方法在連鑄機(jī)故障時(shí)進(jìn)行生產(chǎn)重調(diào)度的有效性。3.3 算子設(shè)計(jì)
3.4 考慮可行性的適應(yīng)度值計(jì)算
4 實(shí)驗(yàn)與結(jié)果分析
5 結(jié)語