基于改進(jìn)雞群算法獲得工件加工最優(yōu)調(diào)度的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于離散制造系統(tǒng)中單件小批量生產(chǎn)調(diào)度技術(shù)領(lǐng)域,用于柔性作業(yè)車間多 目標(biāo)優(yōu)化控制,具體是一種基于改進(jìn)的雞群算法獲得工件加工最優(yōu)調(diào)度的方法。
【背景技術(shù)】
[0002] 柔性作業(yè)車間調(diào)度(FlexibleJob-shopSchedulingProblem,FJSF0 是典型的 作業(yè)車間調(diào)度問題的一個(gè)擴(kuò)展,它允許工序在一組機(jī)器集上加工。由于需要考慮機(jī)器選 擇和工序排序問題使得FJSP更難處理,因此FJSP是一個(gè)NP-hard問題。FJSP包括單目 標(biāo)FJSP和多目標(biāo)FJSP。目前,單目標(biāo)FJSP得到了廣泛關(guān)注,眾多學(xué)者提出了各種智能 算法求解該類問題。但在實(shí)際生產(chǎn)中調(diào)度問題往往包含著多個(gè)相互沖突的目標(biāo),相比較 單目標(biāo)FJSP,多目標(biāo)FJSP更佳貼近生產(chǎn)實(shí)際。求解多目標(biāo)FJSP的方法主要分為兩種, 一種是通過加權(quán)和的方法將多目標(biāo)問題轉(zhuǎn)化為單目標(biāo)問題求解(Computers&In化strial Elngineering, 2010, 59 (4) : 647-662),另一種是Pareto非支配解的方法產(chǎn)生一組 Pareto非支配解,從中挑選出較為滿意的Pareto最優(yōu)解(AnnalsofOperations Research, 2010, 181(1):745-765)〇
[000引隨著群智能算法的發(fā)展,粒子群算法訊eInternationalJournal ofAdvancedManufacturingTechnology, 2013, 67巧-12):2885-2901)、人工蜂 群算法(TheInternationalJournalofAdvancedManufacturingTechnolo gy,2011,55 巧-12) : 1159-1169)、蟻群算法(計(jì)算機(jī)集成制造系統(tǒng),2011,17(3) :615-621) 等多種群體智能算法被用于求解多目標(biāo)柔性作業(yè)車間調(diào)度問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是提供一種基于改進(jìn)雞群算法獲得工件加工最優(yōu)調(diào)度的方法,解決 現(xiàn)有技術(shù)在求解多目標(biāo)柔性作業(yè)車間調(diào)度問題時(shí)算法的收斂精度低、編程難度大W及收斂 速度慢的問題。
[0005] 本發(fā)明采用的技術(shù)方案是,基于改進(jìn)的雞群算法獲得工件加工最優(yōu)調(diào)度方案,W 離散柔性制造車間進(jìn)行多工件多工藝路線加工為對(duì)象,具體包括W下步驟:
[0006] 步驟1;對(duì)多目標(biāo)柔性車間調(diào)度問題進(jìn)行數(shù)學(xué)描述,并確定優(yōu)化目標(biāo)的評(píng)價(jià)指標(biāo): 完工時(shí)間T、單臺(tái)機(jī)器最大負(fù)荷W,和所有機(jī)器總負(fù)荷W;
[0007] 步驟2;建立多目標(biāo)柔性作業(yè)車間調(diào)度的優(yōu)化目標(biāo)函數(shù);
[0008] 步驟3;確定調(diào)度優(yōu)化過程的約束條件;
[0009] 步驟4;設(shè)計(jì)Pareto改進(jìn)雞群算法;
[0010] 步驟5 ;進(jìn)行迭代運(yùn)算,輸出Pareto非支配解,對(duì)根據(jù)企業(yè)的實(shí)際需要從中選擇符 合需要的最優(yōu)解,并對(duì)其進(jìn)行解碼作為最終的調(diào)度方案。
[0011]其中,步驟2中的目標(biāo)函數(shù)如下:
[001 引 完工時(shí)間;T=MinmaxIcuJ;iGJ,jG叫,kGM
[0013] 單臺(tái)機(jī)器最大負(fù)荷
[0014] 所有機(jī)器總負(fù)荷
[0015] i為工件號(hào)、j為工序號(hào),k為機(jī)器號(hào),J為工件集,Ni為工件i的工序集,M為機(jī)器 集,m為機(jī)器數(shù),叫為工件i的總工序數(shù),n為工件數(shù);
[0016] Cyk為工件i的j道工序在機(jī)器k上加工的完成時(shí)間;
[0017]tyk為工件i的J道工序在機(jī)器k上的處理時(shí)間;
[0018] Tk為機(jī)器k的總運(yùn)行時(shí)間。
[0019] 步驟3中的約束條件包括:
[0023] 步驟4中,在描述改進(jìn)的雞群算法前先做如下假設(shè):
[0024] (1)整個(gè)雞群中存在著若干子群,每個(gè)子群都由一個(gè)公雞、若干母雞和一些小雞組 成。
[00巧](2)如何把雞群分成若干子群,W及如何確定雞的種類取決于雞自身的適應(yīng)度值。 雞群中,適應(yīng)度值最好的若干個(gè)體作為公雞,并且每只公雞都是一個(gè)子群的頭目,具有最差 適應(yīng)度值的若干個(gè)體作為小雞,剩余的個(gè)體就作為母雞。母雞隨機(jī)選擇屬于哪個(gè)子群,母雞 和小雞的母子關(guān)系也是隨機(jī)建立的。
[0026] (3)雞群中的等級(jí)制度、支配關(guān)系和母子關(guān)系一旦建立了就保持不變,直至數(shù)代W 后才更新。
[0027] (4)每個(gè)子群中的個(gè)體都圍繞該個(gè)子群中的公雞尋找食物,也可W阻止其它個(gè)體 搶奪自己的食物;并且假設(shè)小雞可W隨機(jī)偷食其他個(gè)體已經(jīng)發(fā)現(xiàn)的食物,每只小雞跟隨他 們的母親一起尋找食物。
[0028] 在解決優(yōu)化問題時(shí),雞群中的每個(gè)個(gè)體都對(duì)應(yīng)優(yōu)化問題的一個(gè)解。假設(shè)RN、HN、CN 和MN分別為公雞、母雞、小雞和媽媽母雞的個(gè)數(shù)。在整個(gè)雞群中,所有的個(gè)體數(shù)假設(shè)為N,每 個(gè)個(gè)體的位置x&da)表示第g個(gè)體的d維在第t次迭代的值。
[0029] 為了解決雞群算法在求解高維優(yōu)化問題時(shí)早熟收斂問題,提出了一種改進(jìn)的雞群 算法,對(duì)小雞的位置更新公式進(jìn)行了改進(jìn),更新公式中加入了向小雞自身所在群中的公雞 學(xué)習(xí)部分。改進(jìn)的雞群算法中個(gè)體位置更新公式如下:
[0030]a.公雞位置更新公式
[00;31] Xg,d(t+l)=Xg,d(t)*(l+Ran^(0,〇2))
[0032]
[003引式中,RamMO,。2)為均值為0,標(biāo)準(zhǔn)差為。2的一個(gè)高斯分布,e為一個(gè)很小的 常數(shù),Z為所有公雞中除去g后的任一個(gè)體。
[0034]b.母雞位置更新公式
[00;35]Xg,d(t+1) =Xg,d(t) +Ci*Rand* (Xri,d(t) -Xg,d(t))
[003引 +C2*Rand*(Xr2, d(t)-Xg, d(t))
[0037]Cl=exp((fg-fri) /(abs(fg) +e))
[003引〔2= exp ((f ,2寸8))
[003引式中,Rand為[0,1]之間均勻分布的隨機(jī)數(shù),ri為第g只母雞所在群中的公雞,r2為整個(gè)雞群中公雞和母雞中隨機(jī)選取的任意個(gè)體,且ri聲r(shí)2。
[0040]C.小雞的位置更新公式
[0041]Xg, d(t+1) =w*Xg, d(t) +FL*(Xy, d(t)-Xg, d(t)) +C*(Xr, d(t)-Xg, d(t))
[0042] 式中,y為小雞對(duì)應(yīng)的媽媽母雞,r為媽媽母雞自身所在群中的公雞,C為學(xué)習(xí)因 子,它表示小雞向自身所在群中公雞學(xué)習(xí)的程度,W為小雞的自我學(xué)習(xí)系數(shù),該與粒子群算 法中的慣性權(quán)重很相似。
[0043] 步驟5中,用Pareto改進(jìn)雞群算法求解多目標(biāo)FJSP主要包括編碼、解碼和適應(yīng)度 值計(jì)算等操作。
[0044] 編碼時(shí),每個(gè)粒子采用兩行的編碼方式,第一行表示加工工序,第二行表示工序?qū)?應(yīng)的機(jī)器,粒子的總長度等于總工序數(shù)。
[0045] 解碼就是將粒子的每一維分量根據(jù)工藝約束和順序約束,W最早允許的加工時(shí)間 逐一進(jìn)行加工,從而產(chǎn)生相應(yīng)的調(diào)度方案,生成對(duì)應(yīng)的調(diào)度甘特圖。
[0046] 適應(yīng)度值計(jì)算是根據(jù)步驟2中建立的3個(gè)目標(biāo)函數(shù),將對(duì)應(yīng)的粒子從第一列到最 后一列逐一解碼得到機(jī)器時(shí)間向量和等待時(shí)間向量,然后根據(jù)機(jī)器時(shí)間向量和等待時(shí)間向 量分別求出最大完工時(shí)間、最大機(jī)器負(fù)荷和所有機(jī)器的總負(fù)荷該3個(gè)目標(biāo)函數(shù)值。
[0047] 步驟5中具體的求解步驟如下:
[0048] 步驟5. 1;采用混合分派規(guī)則初始化雞群X,并定義相關(guān)參數(shù)RN、HN、CN、MN等,采 用快速非支配排序算法初始化Pareto非支配解集;
[0049] 步驟5. 2;計(jì)算雞群的適應(yīng)度值fitness,初始化個(gè)體當(dāng)前最好位置pbest,隨機(jī)選 取Pareto非支配集中某個(gè)粒子作為全局最好粒子;在第一次執(zhí)行本步驟時(shí)迭代次數(shù)t賦值 為1 ;
[0050] 步驟5.3;如果t%G= 1,排序fitness,建立雞群的等級(jí)制度,將雞群分為數(shù)個(gè)子 群并確定母雞和小雞的對(duì)應(yīng)關(guān)系;
[0051] 步驟5. 4;更新公雞的位置并分別計(jì)算每個(gè)個(gè)體的適應(yīng)度值,更新母雞的位置并 分別計(jì)算每個(gè)個(gè)體的適應(yīng)度值,更新小雞的位置并分別計(jì)算每個(gè)個(gè)體的適應(yīng)度值,采用 Pareto支配程序更新粒子個(gè)體歷史最好位置;
[0052] 步驟5. 5;采用Pareto支配程序更新Pareto非支配解集,并隨機(jī)選取Pareto非 支配解中任一對(duì)應(yīng)個(gè)體作為全局最優(yōu)粒子;
[005引步驟5. 6 ;迭代次數(shù)t加1,如果滿足迭代停止條件,則停止迭代,輸出最優(yōu)值,否則 轉(zhuǎn)到步驟5. 3。
[0054] 本發(fā)明的有益效果是:
[0055] 1.本發(fā)明采用混合分派規(guī)則產(chǎn)生初始化種群,可W提高初始解的質(zhì)量;
[0056] 2.本發(fā)明采用完工時(shí)間最早的啟發(fā)式規(guī)則,有利于快速得到可行解空間,大大提 高了算法的收斂速度;
[0057] 3.本發(fā)明對(duì)小雞的位置更新公式中加入了向小雞自身所在群中的公雞學(xué)習(xí)部分, 并引入了慣性權(quán)值和學(xué)習(xí)因子,在保證算法收斂速度的同時(shí)盡可能提高算法的收斂精度, 防止算法出現(xiàn)早熟收斂情況。
【附圖說明】
[0058] 圖1是粒子編碼示意圖。
[0059] 圖2是算法實(shí)現(xiàn)流程圖。
[0060] 圖3是8X8實(shí)例最優(yōu)調(diào)度甘特圖。
[0061] 圖4是10X10實(shí)例最優(yōu)調(diào)度甘特圖。
[0062] 圖5是15X10實(shí)例最優(yōu)調(diào)度甘特圖。
【具體實(shí)施方式】
[0063] 下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行進(jìn)一步說明。
[0064] 基于改進(jìn)雞群算法獲得工件加工最優(yōu)調(diào)度的方法,W離散柔性制造車間多工件多 工藝路線加工為應(yīng)用對(duì)象,具體包括W下步驟:
[0065] 步驟1 ;對(duì)柔性作業(yè)車間調(diào)度問題進(jìn)行數(shù)學(xué)描述,并確定評(píng)價(jià)指標(biāo);完工時(shí)間T、單 臺(tái)機(jī)器最大負(fù)荷W,和所有機(jī)器總負(fù)荷W。
[0066] 定義如下變量:
[0067] i為工件號(hào);
[0068] j為工序號(hào);
[006引 k為機(jī)器號(hào);
[0070] Cyk為工件i的j道工序在機(jī)器k上加工的完成時(shí)間;
[0071] tuk為工件i的j道工序在機(jī)器k上的處理時(shí)間;
[0072] Tk為機(jī)器k的總運(yùn)行時(shí)間。
[007引步驟2 ;建立優(yōu)化目標(biāo)函數(shù)。
[0074]最大完工時(shí)間;T=MinmaxIcuJ;ieJ,jeN。kGM,
[0077] 步驟3 ;建立優(yōu)化過程中的約束條件。
[0081] 步驟4;設(shè)計(jì)Pareto改進(jìn)雞群算法。