王全武,徐震浩,顧幸生
(華東理工大學能源化工過程智能制造教育部重點實驗室,上海 200237)
批量調(diào)度問題是指將大批量的工件分成若干個子批進行生產(chǎn),以獲得較短的生產(chǎn)時間。這類優(yōu)化問題由Reiter 等[1-2]提出并廣泛應(yīng)用,以提高生產(chǎn)效率。Huang 等[3]構(gòu)建了多目標等子批作業(yè)車間調(diào)度問題的模型,并提出了一種混合蟻群優(yōu)化算法進行求解。Andrzej 等[4]針對二階段柔性作業(yè)車間問題,建立了二階段柔性作業(yè)車間分批調(diào)度模型。Juan[5]針對柔性作業(yè)車間環(huán)境下的批量分割和批量調(diào)度問題,提出了一種新穎的約束編程方法,可以兼顧批次分割和工件調(diào)度,適用于多種生產(chǎn)系統(tǒng)。
多處理機組合生產(chǎn)問題是指工件在每個生產(chǎn)階段需要多臺機器同時協(xié)同加工。Drozdowski 等[6]對多處理機任務(wù)的調(diào)度問題進行了闡述,并進行了分類分析和研究。Jiang 等[7]對多目標分布式混合流水車間組合生產(chǎn)批量調(diào)度問題進行了研究。Chen 等[8]對該類問題進行了擴展,針對每道工序,引入了柔性加工機器集,得到最優(yōu)的機器組合和生產(chǎn)順序。呂媛媛等[9]提出了一種改進的多目標粒子群算法,引入了外部種群尋優(yōu)機制,解決了多處理機任務(wù)的車間調(diào)度問題。Liu 等[10]以求解最小化完工時間為目標,研究了帶有子模塊懲罰的多處理機調(diào)度問題,并提出了基于Lovasz 擴展的近似算法。Moghaddam 等[11]提出了一種新型免疫遺傳算法以及一種新型的編碼機制。
頭 腦 風 暴 優(yōu) 化 算 法(Brain Storm Optimization Algorithm,BSO)是由Shi[12]提出的一種新穎的啟發(fā)式算法。曹國剛等[13]將頭腦風暴算法與單純性搜索法相結(jié)合提出了一種新的配準方法,有效地提高了醫(yī)學配準精度,同時縮短了配準時間。李怡敏等[14]將密集聚類算法與頭腦風暴優(yōu)化算法相結(jié)合,在綜合考慮航跡長度和威脅環(huán)境的條件下,實現(xiàn)低空范圍內(nèi)的航線規(guī)劃。李捷等[15]引入隨機分組策略和群縱橫交叉機制,加強了算法的收斂性,同時避免過早陷入局部最優(yōu)。
到目前為止,已有許多學者對多處理機組合調(diào)度問題進行了研究,但是針對作業(yè)車間環(huán)境下多處理機任務(wù)組合的批量調(diào)度問題的研究成果較少。因此,本文針對作業(yè)車間環(huán)境下考慮機器的準備時間的問題,提出了基于機器負荷的可變分批方式,建立了作業(yè)車間的可變分批調(diào)度模型,并提出了改進的頭腦風暴優(yōu)化算法。
多處理機組合生產(chǎn)的作業(yè)車間批量調(diào)度問題(Multiprocessor Combined Batch Scheduling Problem,MCBSP)是經(jīng)典的作業(yè)車間批量調(diào)度問題的拓展。n種類型的工件,每種類型的工件有w個,每個階段的加工過程需要同時占用多臺處理機,一臺處理機在某一時刻只能進行具有同批次任務(wù)的加工,且該批次的任務(wù)一旦開始,就不允許中斷。只有整個子批都完成加工,才可以進行下一道工序的加工。針對以上問題,建立作業(yè)車間組合生產(chǎn)的非混排批量調(diào)度模型,使系統(tǒng)的最大流程時間最小。該問題需要滿足如下假設(shè):
(1)不考慮機器故障,機器在零時刻準備就緒;
(2)同一臺機器的某一時刻只能加工一種類型的工件;
(3)同一批次內(nèi)只能包含一種類型的工件;
(4)同一批次的工件一旦開始不得中斷,且工序間不允許搶占加工;
(5)每種類型的工件的工藝路線固定;
(6)不考慮工件在不同機器上加工的運輸時間。
1.2.1 下標定義
1.2.2 參數(shù)定義
1.2.3 決策變量
1.2.4 調(diào)度目標與約束條件
任意一種工件的總數(shù)量都等于它任意一道工序所分的每一個子批所包含的工件數(shù)量之和,即
每個子批所包含的工件數(shù),由該工序的所有機器的負荷最小值、以及剩余未加工工件數(shù)量共同決定:
工序j第p個子批中的最后一個工件所對應(yīng)的上一道工序的批次號s受限于上一道工序已經(jīng)加工的工件數(shù)量和:
工件i第j道工序的第p個子批的開始加工時間,根據(jù)工件與機器的特性,存在以下4 種情況:
(1)當j> 1,時p=,1 工件 第ij道工序第一個子批的開始加工時間取決于機器集中的各臺機器的釋放時間和第j? 1道 工序上第s個子批完工時間的最大值。
BSO 算法是一種全局優(yōu)化的啟發(fā)式算法,靈感來自于人類的頭腦風暴過程,其中心思想是聚集一群具有不同背景的人進行頭腦風暴,通過思想交流、觀點融合來共同解決問題。每一次迭代過程類似于一次頭腦風暴的過程,個體相當于是問題的解決方案。
基本BSO 算法存在著一些弊端,由于新想法的產(chǎn)生都是以原有的想法為線索,所以最優(yōu)解的質(zhì)量比較依賴于初始種群。為了提高初始種群的質(zhì)量,在初始種群的產(chǎn)生過程中引入了貪婪思想。貪婪思想是受迭代貪婪算法的啟發(fā),尋找在插入工件加工序列中,時間增加最小的點作為插入點插入指定工件,直到所有工件的所有工序都考慮到。在分類方面,每次頭腦風暴過程結(jié)束后,需要對個體進行評估,保證各組長是種群中最優(yōu)秀的個體,每個組長按照能力來決定各自小組組員的數(shù)量,組員被隨機分配到各小組中。在種群更新方面,為了解決基本BSO算法的弊端,引入動態(tài)組內(nèi)組間討論機制,組間討論可以找到局部最優(yōu)解,組內(nèi)討論則整合局部最優(yōu)解,找出全局最優(yōu)解。圖1 示出了具有貪婪思想的頭腦風暴優(yōu)化算法(BrainStormOptimizationAlgorithm withGreedyThought,BSOGT)的流程圖。
圖1 BSOGT 算法流程圖Fig.1 FlowchartofBSOGT
2.2.1 逆序POX 交叉重組操作 交叉操作是指兩個父代個體經(jīng)過迭代更新后使得染色體基因發(fā)生了互換,產(chǎn)生兩個新個體的過程。張超勇等[16]描述了基本POX 交叉重組操作的規(guī)則,并基于改進POX 交叉操作的遺傳算法解決了經(jīng)典的作業(yè)車間調(diào)度問題。交叉操作可以產(chǎn)生盡可能多的新個體,提高算法的搜索能力。本文在基本POX 交叉操作的基礎(chǔ)上增加了染色體逆序的操作,提出了逆序POX 交叉重組操作(ReversePrecedenceOperationCrossover,RPOX),操作步驟如圖2 所示。圖中數(shù)字分別表示工件和工序的編碼,編碼長度與每種工件的工序數(shù)量有關(guān),是所有工件所需要的加工工序數(shù)量之和。其中,編碼序列中的數(shù)字代表每種類型工件的編號,出現(xiàn)的次數(shù)代表著該類型工件的工序編號。
圖2 逆序交叉重組操作Fig.2 Reverseprecedenceoperationcrossover
2.2.2 環(huán) 變 異 操 作 環(huán) 變 異 操 作(Ring Mutation Operation,RMO)是將個體圍成一個環(huán),保證每個基因作為變異起點的概率相等。該操作清除了傳統(tǒng)的變異方式所產(chǎn)生的變異盲區(qū),加強了個體中首尾基因的聯(lián)系,增加產(chǎn)生優(yōu)質(zhì)個體的概率。環(huán)變異操作示意圖如圖3 所示。操作步驟如下:
圖3 環(huán)變異操作Fig.3 Ringmutationoperation
(1)將待變異的染色體的首尾相接連成一個環(huán);
(3)將劣環(huán)進行逆序操作,并且將其首尾相接連成一個環(huán),即逆序劣環(huán);
(4)在優(yōu)環(huán)中,隨機選擇一個點作為變異基因的插入點,并且隨機在逆序劣環(huán)上選擇一個點將其拆開;
(5)將拆開的逆序劣環(huán)插入到優(yōu)環(huán)中去,形成一個新的個體。
2.2.3 生成初始種群的方法(IEG) 針對初始種群的生成采用半隨機生成、半引入貪婪思想的方式,取前半部分基因作為隨機生成的基因,對后半部分基因引入貪婪思想,一次插入到可能的位置中,取插入該基因后生產(chǎn)周期增加的最小的點作為基因最后的插入點,直到完成所有工件的調(diào)度。
2.2.5 組間討論 組間討論的次數(shù)隨著進化代數(shù)的增加而減小,如式(13)所示:
其中:Ntex為當前組間討論次數(shù);Nmi為算法的最多迭代次數(shù);Nci為當前算法迭代次數(shù)。
組間討論有3 種個體更新的方式:
(1)組長革命(LeaderRevolution,LR)。隨機生成一條染色體,將其與每個小組的組長進行比較,如果新生成的染色體比組長好,則用來替換組長。
(2) 組 長 交 流( Team Leader Communication,TLC)。隨機選取兩個組,將兩個組長進行RPOX 操作,如果子代個體質(zhì)量優(yōu)于父代,則替換之。
(3)組 員 交 流(Team Member Communication,TMC)。隨機選擇兩個小組,在其中各隨機選擇一個個體,將這兩個個體進行RPOX 操作,保留質(zhì)量好的那個子代,再將其與父代染色體進行比較,如果優(yōu)于父代染色體,則替換之。
2.2.6 組內(nèi)討論(In-groupDiscussion,IND) 組內(nèi)討論的次數(shù)隨著算法迭代次數(shù)的增加而增加,即動態(tài)改變,如式(14)所示:
其中:Nt_in為當前組內(nèi)討論次數(shù);Nm_t為組內(nèi)討論次數(shù)的上限;Nc_i為當前迭代次數(shù);Nm_i為總的迭代次數(shù)。這樣可以在搜索后期著重細致搜索,找到更加優(yōu)質(zhì)的解。
更新種群的方式有如下3 種:
(1)組長革命(LR)。將組長通過RMO 操作生成新個體,若其質(zhì)量比原個體好,則替換之。
(2)組員革命(TMR)。在本組中隨機選擇一個組員,采用RMO 操作產(chǎn)生新個體,如果新個體優(yōu)于該組員以及組長,則用其替換組員與組長。
(3)組員交流(TMC)。在本組中隨機選擇兩個成員,進行RPOX 操作產(chǎn)生兩個新個體,取最優(yōu)個體,分別與父代個體進行比較,將質(zhì)量差的個體替換掉。若最優(yōu)子代個體比組長的質(zhì)量好,則用最優(yōu)子代個體替代組長。
頭腦風暴優(yōu)化算法具有新穎、參數(shù)少等特點,且應(yīng)用在其他種類優(yōu)化問題中都得到了較好的效果,故本文采用該算法探索其在批量調(diào)度問題中的應(yīng)用。
以一個具體的6 種工件、4 道工序的生產(chǎn)系統(tǒng)為例,表1 和表2 分別示出了工件與機器的信息。其中,BH表示該種類型工件的總數(shù),Jm表示工件的機器集合,PTm與Tm分別表示準備時間與加工時間。Oi表示第道i工序,Pmax表示機器的最大負荷。圖4示出了調(diào)度方案的甘特圖,其中淺灰色方塊代表了各臺機器加工不同類型工件的準備時間,其他顏色方塊表示了不同種類工件在各臺機器的加工時間,方塊上面的JP-Q-k表示工件P的第Q個階段的第k個子批。
表1 工件加工的信息Table1 Informationofjobprocessing
表2 機器的最大負荷Table2 Maximumloadsofthemachines
由圖4 可知,該系統(tǒng)有6 個工件、4 個加工階段,按照參與某個工件的所有機器的負荷的最小值與當前未加工工件的剩余數(shù)量進行分批操作。Job1 有3 個加工階段,第1 個階段由M4 和M5 組合加工,按照生產(chǎn)計劃,Job1 的第1 個階段從250 時刻開始分成3 個子批進行加工。第1 個子批在M4 和M5 上的加工完成時間分別為370 和394,所以該子批的第1 個階段完工時刻為394。同理,第2 個子批和第3 個子批的完工時間分別為538 和610。第2 個加工階段只有M3 參與,由于M3 的機器負載大于第1 個階段的最小機器負載,所以必須在538 時刻才可以開始第2 個階段的加工。同上,每個階段每個子批的批量以及加工開始時間都要考慮機器約束和工件約束。
圖4 多處理機組合生產(chǎn)的甘特圖Fig.4 GanttchartofMCBSP
由于本文研究的調(diào)度問題是隨著生產(chǎn)系統(tǒng)的改變而新出現(xiàn)的,沒有標準的Benchmark 算例庫,故采用隨機生成算例。機器準備時間的范圍為(1,10),單位加工時間為(5,25)。機器數(shù)量(m)、準備時間(Setuptime)、工件加工時間(Processtime)、相同種類工件數(shù)量( Pi ec)e以及總工序數(shù)量(Totalprocess)的選取范圍如表3 所示,其中 Total pr ocess=n×m× Piece,n和stage 分別為工件的類型和階段數(shù)量。
由于此類批量調(diào)度問題不同于傳統(tǒng)的作業(yè)車間調(diào)度問題,不同種類的工件數(shù)量不盡相同,從而會導(dǎo)致總的工序數(shù)量極速增大。即使針對只有6 種類型工件的生產(chǎn)系統(tǒng)(如表3 中 6× 4規(guī)模),需要調(diào)度的總工序數(shù)量也會達到360 個。
表3 不同規(guī)模算例工序總數(shù)統(tǒng)計表Table3 Statisticaltableofthetotalprocessfordifferentscalecalculationexamples
BSOGT 算法的參數(shù)設(shè)置對于算法的尋優(yōu)效果、收斂性以及運算速度有著很大的影響,本文采用響應(yīng)面分析方法來確定其參數(shù)。以3.1 節(jié)算例庫中的10×10 算例為例進行實驗,每組實驗獨立運行5 次,取5 次運行Makespan 的平均值(AVG)作為響應(yīng)值。利用Design-Expert10.0 軟件,以AVG 作為評價指標,其二次多項式模型的方差分析結(jié)果如表4 所示。表中VS(VarianceSource)表示方差來源,MS(Main Square)表示均方,F(xiàn)D(FreedomDegree)表示自由度,SS(SumSquare)表示平方和P。<0 .0 5,說明回歸模型高度顯著;P> 0.05,說明模型失擬性不顯著,回歸模型擬合程度高。
表4 AVG 的二次多項式模型的方差分析Table4 ANOVAofquadraticpolynomialmodelforAVG
由3 種因素的P值可判斷3 個實驗因素對AVG有著顯著的影響;該模型的決定系數(shù)與校正決定系數(shù)均接近1,說明該擬合回歸模型具有較高的可靠性。擬合的殘差正態(tài)概率分布圖、預(yù)測與實際的對比圖分別如圖5 和圖6 所示。由擬合結(jié)果可知,殘差值較為均勻地分布在直線兩側(cè),實際數(shù)據(jù)較為均勻地分布在擬合直線上下兩側(cè),說明擬合效果很好。
圖5 殘差正態(tài)概率分布圖Fig.5 Externallystudentizedresiduals
圖6 模型預(yù)測值和實際值比較Fig.6 Comparison between predicted and actual value of the model
根據(jù)回歸模型分析結(jié)果,選取種群規(guī)模population size=100,組長個數(shù)Nldr=,6 相對變異步P長mut=0 .2。
2.2.3 節(jié)中提出了嵌入貪婪機制的IEG。為了說明其性能,將IEG 與隨機的方式(RandomlyGenerate,RG)、基于反向?qū)W習機制(OppositionBasedLearning,OBL)的方式進行了比較。采用3.1 節(jié)中的數(shù)據(jù)集,使用BSOGT 算法,取所有初始種群的makespan 的平均值(AVG)作為目標。AVG 值越小,說明初始種群的質(zhì)量越高。AVG 計算公式如式(15)所示。
其中:Ii表示第i個個體的質(zhì)量;p為種群規(guī)模。表5示出了不同方式下的初始種群的質(zhì)量。
由表5 可以看出,針對數(shù)據(jù)集中的算例,IEG 方式得到的AVG 比其他兩種方式的AVG 要小。在IEG 中,個體當中有一半的基因是隨機生成的,有一半的基因是引入貪婪思想后生成的,因此當有新基因插入到當前序列中時,應(yīng)該選擇所有可能的插入位置中使生產(chǎn)周期增量最小的插入位置。即在一半隨機生成的基因中,每增加一個基因,該基因插入到個體中的位置,對于整個系統(tǒng)的影響都是最小的,所以相對于RG、OBL 方式,IEG 方式可以大大改善初始種群的質(zhì)量。
表5 初始種群質(zhì)量分析Table5 Qualityanalysisofinitialindividual
考慮到機器容量的限制,針對一致分批(CM),工件分批時需考慮參與其加工的所有機器的容量。針對不分批和等量分批的方式,由于機器容量的限制,需要對工件進行分批處理;由于某些工件的總數(shù)會導(dǎo)致無法對工件進行等量分批,如某種類型工件數(shù)量為15 個,而機器負載容量為2 個,實際上無法采用等量分批。該情況下的等量分批實質(zhì)就是一致分批。因此本文只對可變分批(VM)與一致分批的影響進行分析。獨立進行10 次實驗,取最小值。同時,采用機器空置率的平均值(AverageMachineVacancy Rate,AMVR)來衡量機器的運行效率。AMVR 的計算如式(16)所示:
其中:PTj為機器的j實際生產(chǎn)時間;ET j、S Tj分別為機器j的加工過程結(jié)束時間、開始時間。實驗結(jié)果如表6 所示,部分算例不同分批方式的甘特圖如圖7 所示。
由表6 可以看出,以 6× 4算例為例,一致分批比可變分批的生產(chǎn)周期平均多出11.00%。并且針對大多數(shù)的算例,可變分批相比于一致分批可以縮短生產(chǎn)周期。這是因為可變分批方式可以使工件在生產(chǎn)過程中靈活地進行分批,減少了待加工工件的等待時間和機器的空閑時間,進而縮短了生產(chǎn)周期。因此,本文提出的可變分批相比于一致分批更有優(yōu)勢。
表6 不同分批方式的對比Table6 Comparisonofdifferentbatchmodes
取不同規(guī)模的算例進行測試。將BSOGT 與MA[17]、ICA[18]以及BSO[12]進行比較,每種算例獨立運行10 次,分別以相對百分比偏差(RPD)、最優(yōu)相對誤差(BRE)、最差相對誤差(WRE)作為性能指標,如式(17)~式(19)所示。
式中:MAX、MIN、AVG、Best 分別表示最大值、最小值、平均值和最優(yōu)值。對比結(jié)果如表7 所示。
從表7 可以看出,針對 15× 7 、5 0× 15算例,所有算法的性能指標都接近0,說明當算例規(guī)模較小時,所有算法均可以找到最優(yōu)解,性能差別不大。隨著規(guī)模的增大,ICA、MA、BSO3 種算法的RPD、BRE、WRE 指標都在變大。RPD 增大,說明算法的尋優(yōu)能力減弱,而BRE 和WRE 的增大反映了算法的穩(wěn)定性變差。BSOGT 算法在大部分算例中的RPD、BRE、WRE 都小于其他3 種算法,且隨著算例規(guī)模的增大,BSOGT 算法的優(yōu)勢更明顯。圖7 示出了兩組不同規(guī)模算例的算法收斂曲線。由于BSOGT引入了動態(tài)的組內(nèi)、組間討論機制,故BSOGT 在算法進化的初期有著較快的收斂速度,注重全局搜索,而在算法迭代后期,注重局部搜索,有著較好的尋優(yōu)能力。
表7 算法性能對比表Table7 Performancecomparisonofalgorithms
圖7 不同算法的收斂曲線Fig.7 Convergencesofdifferentalgorithms
綜上所述,引入貪婪思想來生成初始種群,動態(tài)的組內(nèi)、組間討論策略以及改進的變異操作使得BSOGT算法無論是初始種群的質(zhì)量,還是收斂速度以及尋優(yōu)質(zhì)量都優(yōu)于其他算法。
本文針對作業(yè)車間環(huán)境下多處理機組合生產(chǎn)的批量調(diào)度問題,考慮了機器的準備時間以及機器的加工負載,提出了可變分批方式,建立了調(diào)度模型。針對基本頭腦風暴算法收斂速度慢,容易陷入局部最優(yōu)的缺陷,提出了改進的頭腦風暴算法,優(yōu)化建立的數(shù)學模型。為了提高初始種群的質(zhì)量,引入了貪婪思想。將BSOGT 進化過程分為組內(nèi)討論和組間討論兩個階段。組內(nèi)討論通過組員與組員、組員與組長的相互交流來更新高質(zhì)量的個體;組間討論通過組長與組長、不同組的組員之間的交流來更新高質(zhì)量的個體。每次迭代中組內(nèi)討論次數(shù)隨著迭代次數(shù)的增加而增多,組間討論次數(shù)隨著迭代次數(shù)的增加而減少。使得在搜索開始階段,加強廣泛搜索,充分發(fā)現(xiàn)潛在的全局最優(yōu);而在搜索后期,著重細致搜索,加速收斂。