本發(fā)明涉及的是一種車間生產(chǎn)調(diào)度領(lǐng)域的技術(shù),具體是一種基于de(differentialevolutionalgorithm,差分進(jìn)化算法)和l-bfgs-b(alimitedmemoryquasi-newtonalgorithmwithsimpleboundsonthevariables)混合算法對(duì)柔性化車間生產(chǎn)任務(wù)調(diào)度進(jìn)行優(yōu)化的方法。
背景技術(shù):
調(diào)度是制造生產(chǎn)過程中的核心組成部分,其用于解決生產(chǎn)中怎么做的問題。它需給出各道工序何時(shí)、何地由何人作業(yè),以達(dá)到指定性能指標(biāo)的最優(yōu)。其中,柔性化生產(chǎn)車間調(diào)度問題是一類更接近于生產(chǎn)實(shí)際的調(diào)度問題,得到廣泛的研究。它是指每道工序可在一臺(tái)或多臺(tái)調(diào)度機(jī)器上加工,加工過程有多條工藝路線可供選擇,相比于傳統(tǒng)車間調(diào)度問題,它突破了機(jī)器約束和加工工藝路線固定的限制,是更為復(fù)雜的一類車間調(diào)度問題。
目前,對(duì)于求解這類問題的算法可分為三類:1)精確算法;2)啟發(fā)式算法;3)進(jìn)化類算法。其中,精確算法對(duì)求解問題有較多的限制,一般針對(duì)特定的問題,求解效率較低。啟發(fā)式算法雖然求解速度較快,但解質(zhì)量較差。因此這兩類方法難以滿足實(shí)際調(diào)度問題的求解需求。故目前進(jìn)化類算法因求解效率較快及質(zhì)量較高的優(yōu)點(diǎn),使之成為用來解決這類問題最有效的方法之一。
de是由stornr和pricek提出來的一種采用浮點(diǎn)矢量編碼,可對(duì)非線性和不可微的連續(xù)空間進(jìn)行啟發(fā)式隨機(jī)搜索的優(yōu)化算法。其具備實(shí)現(xiàn)簡單、收斂迅速、易于使用且魯棒性高的特性。目前已有學(xué)者開展了de算法求解車間調(diào)度問題的研究。但是de算法存在進(jìn)化前期收斂速度較快,進(jìn)化后期收斂速度明顯變慢的特征。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的上述不足,提出了一種基于de和l-bfgs-b混合算法的柔性化車間任務(wù)調(diào)度優(yōu)化方法,以拖期最小化作為優(yōu)化目標(biāo),考慮了設(shè)備與操作員兩種資源的多種約束情況,能夠提升生產(chǎn)效率。
本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
本發(fā)明通過建立柔性化車間任務(wù)調(diào)度問題模型并進(jìn)行優(yōu)化后得到優(yōu)化廣義目標(biāo)函數(shù),然后通過de與l-bfgs-b混合算法求解優(yōu)化廣義目標(biāo)函數(shù),實(shí)現(xiàn)車間任務(wù)調(diào)度的優(yōu)化。
所述的柔性化車間任務(wù)調(diào)度問題模型為:
優(yōu)化目標(biāo)為拖期最小化,目標(biāo)函數(shù)具體為:
所述目標(biāo)函數(shù)的約束條件有:
約束1:
約束2:
約束3:
約束2和約束3表示工序在時(shí)間上的約束,其用來滿足加工順序的約束,使得各工序之間滿足加工順序;
約束4:
約束5:
約束6:
該柔性化車間任務(wù)調(diào)度問題模型中:
sti表示任務(wù)i的生產(chǎn)開始時(shí)間;
mi表示在設(shè)備mi上對(duì)任務(wù)i作業(yè);
oi表示任務(wù)i由操作員oi生產(chǎn);
fti表示任務(wù)i的生產(chǎn)完成時(shí)間,有
mcnum表示第num臺(tái)設(shè)備的生產(chǎn)能力,一共m臺(tái)設(shè)備;
在進(jìn)行優(yōu)化求解前需基于高斯函數(shù)對(duì)所述模型的布爾邏輯函數(shù)進(jìn)行光滑連續(xù)化,并基于罰函數(shù)法將所述的模型優(yōu)化為廣義目標(biāo)函數(shù),具體包括以下步驟:
步驟1:基于高斯函數(shù)光滑連續(xù)化布爾邏輯函數(shù)。
在調(diào)度規(guī)劃模型中,常常存在部分函數(shù)關(guān)系無法用數(shù)學(xué)形式化描述,需用布爾函數(shù)邏輯判斷代替的情形,如j(num,mi)函數(shù),其表示當(dāng)mi=num時(shí),值為1,反之為0。當(dāng)滿足特定條件時(shí),給出一個(gè)數(shù)值為1的脈沖。該函數(shù)存在不連續(xù)不可微的特點(diǎn),因?qū)嶋H需要我們往往希望用光滑連續(xù)化的理想化數(shù)學(xué)模型描述該函數(shù)。因此提出了基于高斯函數(shù)光滑連續(xù)化布爾邏輯函數(shù)的方法。
高斯函數(shù)即為正態(tài)分布函數(shù)為:
為描述布爾函數(shù)b(x)在x=m時(shí)存在一個(gè)數(shù)值為1的脈沖,其理想化表示為
因此,對(duì)所述模型的約束中存在的布爾邏輯函數(shù)sk(oi,mi),j(num,mi),c1(oi,oj)和c2(mi,mj)進(jìn)行轉(zhuǎn)換,具體包括:
a)j(num,mi)轉(zhuǎn)換:
當(dāng)mi=num時(shí),j(num,mi)=1,故
b)c1(oi,oj)轉(zhuǎn)換:
當(dāng)i=j(luò),即oi=oj時(shí),c1(oi,oj)=1,故
c)c2(mi,mj)轉(zhuǎn)換:
當(dāng)i=j(luò),即mi=mj時(shí),c2(mi,mj)=1,故
d)sk(oi,mi)轉(zhuǎn)換:當(dāng)oi和mi滿足某個(gè)映射關(guān)系時(shí),約束sk(oi,mi)會(huì)出現(xiàn)一個(gè)脈沖,映射關(guān)系有限,故可對(duì)這有限個(gè)脈沖函數(shù)一一進(jìn)行連續(xù)化變換;
設(shè)共ti個(gè)映射集合,可用值對(duì)集合{(voi1,vmi1),...,(voit,vmit),...,(voiti,vmiti)}表示,其中voit和vmit為一個(gè)映射關(guān)系:
當(dāng)i=j(luò),即oi=oj時(shí),c1(oi,oj)=1,則
步驟2:基于罰函數(shù)法對(duì)數(shù)學(xué)模型優(yōu)化,優(yōu)化后的廣義目標(biāo)函數(shù)為:
其中:各罰函數(shù)的懲罰力度分別是
所述的基于de與l-bfgs-b混合算法,下文以de-lbfgsb表示該混合算法,有算法參數(shù):f,cr1,cr2,size,maxg,m,std_tol,prob,tol,其中f為縮放因子,cr1為收斂前期雜交概率,cr2為收斂中后期雜交概率,size為種群規(guī)模,maxg為最大迭代數(shù),m指定了存儲(chǔ)序列的大小,std_tol為收斂標(biāo)準(zhǔn)差閾值,prob為概率選擇閾值,tol為容忍系數(shù)。
所述de-lbfgsb算法的步驟為:
步驟1:初始化當(dāng)前種群代數(shù)g=0并設(shè)定算法參數(shù):
設(shè)置initial_flag=true,ind_opt=1010,指定容量大小為m的適應(yīng)值序列型存儲(chǔ)容器fitness,通過
步驟2:判斷第g代種群迭代數(shù)大小或第g代種群中個(gè)體的收斂標(biāo)準(zhǔn)差閾值,若到達(dá)結(jié)束條件g=maxg或std(pop(g))<tol,得到最優(yōu)解,結(jié)束算法,否則繼續(xù)以下操作;
步驟3:變異操作;
將步驟2中的種群集合作為當(dāng)前種群集合pop(g),通過vi(g+1)=xr1(g)+f*(xr2(g)-xr3(g))依次對(duì)種群集合pop(g)中每個(gè)個(gè)體進(jìn)行處理,獲得變異種群集合pop_muta(g+1)={v1(g+1),v2(g+1),...,vsize(g+1)};
步驟4:交叉操作;
通過
pop_trial(g+1)={u1(g+1),u2(g+1),...,usize(g+1)};
步驟5:選擇操作;
通過貪婪算法
步驟6:將下一代g+1種群最優(yōu)適應(yīng)值添加到適應(yīng)度集合fitness中,更新最近m代種群最優(yōu)適應(yīng)值;
步驟7:若initial_flag=true,計(jì)算適應(yīng)度集合fitness的標(biāo)準(zhǔn)差,記為calc_std;若calc_std<std_tol,則設(shè)置initial_flag=false并跳至步驟9,反之執(zhí)行步驟2;
步驟8:若initial_flag=false,將當(dāng)前最優(yōu)適應(yīng)值cur_opt與ind_opt比較,若cur_opt<ind_opt,產(chǎn)生[0,1]均勻分布隨機(jī)數(shù)rand_num,并且rand_num<prob,執(zhí)行步驟9,反之跳至步驟2;
步驟9:對(duì)于第g+1代種群,選取三個(gè)個(gè)體,包括最優(yōu)個(gè)體和兩個(gè)隨機(jī)選取的個(gè)體,將三個(gè)個(gè)體依次設(shè)置為l-bfgs-b算法的迭代初始值尋找最優(yōu)適應(yīng)值,經(jīng)l-bfgs-b算法優(yōu)化后,三個(gè)個(gè)體插入下一代種群集合pop(g+1)對(duì)應(yīng)位置,讓cr1=cr2并用當(dāng)前最優(yōu)適應(yīng)值更新ind_opt后跳轉(zhuǎn)步驟2。
技術(shù)效果
與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)效果包括:
1)針對(duì)柔性化車間任務(wù)調(diào)度問題建立了數(shù)學(xué)規(guī)劃模型,以延期最小化作為優(yōu)化目標(biāo),并考慮了設(shè)備與操作員兩種資源約束的情況,更符合生產(chǎn)實(shí)際,調(diào)度問題模型具備很強(qiáng)的實(shí)際性;
2)對(duì)于調(diào)度規(guī)劃問題中存在布爾邏輯函數(shù)使得規(guī)劃模型不連續(xù)不可微以及存在非線性約束條件的問題,首先提出了基于高斯函數(shù)光滑連續(xù)化布爾邏輯函數(shù)的方法,基于極限逼近的思想,將布爾邏輯函數(shù)用基于高斯函數(shù)的演化函數(shù)進(jìn)行替代,然后采用罰函數(shù)法將問題優(yōu)化為帶有簡單邊界約束的連續(xù)光滑型非線性規(guī)劃問題;
3)提出了de-lbfgsb混合全局最優(yōu)化算法,提出的de-lbfgsb算法相比于其余常用算法在收斂速度上具有十分顯著優(yōu)勢(shì),能夠快速收斂至滿意解,此外提出算法在全局尋優(yōu)性能上也具有十分理想的效果。
附圖說明
圖1為本發(fā)明方法流程圖;
圖2為高斯函數(shù)圖像族示意圖;
圖3.1~3.4為本發(fā)明中混合算法400代內(nèi)的進(jìn)化曲線,各子圖所示分別為當(dāng)前迭代次數(shù)下4次相互獨(dú)立的實(shí)驗(yàn)。
具體實(shí)施方式
本實(shí)施例基于某航天企業(yè)柔性化作業(yè)車間生產(chǎn)調(diào)度問題進(jìn)行說明。
如下表1給出了某航天企業(yè)柔性化作業(yè)車間的周計(jì)劃生產(chǎn)任務(wù)數(shù)據(jù)。目前車間共有37個(gè)操作員,20臺(tái)作業(yè)設(shè)備,每臺(tái)設(shè)備日產(chǎn)能為12小時(shí)。對(duì)各零部件基于工藝信息表分解后有90道作業(yè)工序,有270個(gè)決策變量。
表1某航天企業(yè)柔性化作業(yè)車間的周計(jì)劃生產(chǎn)任務(wù)
如圖1所示,針對(duì)該實(shí)例,基于de-lbfgsb算法的調(diào)度方法包括以下步驟:
步驟1:建立柔性化車間任務(wù)調(diào)度問題模型;
該問題的數(shù)學(xué)規(guī)劃模型為:優(yōu)化目標(biāo)為拖期最小化,目標(biāo)函數(shù)具體為
所述目標(biāo)函數(shù)的約束條件有:
1)操作員技能約束:
2)工序在時(shí)間上的約束:
3)設(shè)備生產(chǎn)能力約束:
4)工人操作任務(wù)約束:
5)設(shè)備操作任務(wù)約束:
步驟2:基于高斯函數(shù)與罰函數(shù)法對(duì)數(shù)學(xué)模型進(jìn)行光滑連續(xù)化。
步驟2.1:基于高斯函數(shù)光滑連續(xù)化布爾邏輯函數(shù);
所述的高斯函樹
為描述布爾函數(shù)b(x)在x=m時(shí)存在一個(gè)數(shù)值為1的脈沖,采用高斯函數(shù)
通過高斯函數(shù)對(duì)約束
a)j(num,mi)轉(zhuǎn)換:
當(dāng)mi=num時(shí),j(num,mi)=1,故
b)c1(oi,oj)轉(zhuǎn)換:
當(dāng)i=j(luò),即oi=oj時(shí),c1(oi,oj)=1,故
c)c2(mi,mj)轉(zhuǎn)換:
當(dāng)i=j(luò),即mi=mj時(shí),c2(mi,mj)=1,故
d)sk(oi,mi)轉(zhuǎn)換:設(shè)共ti個(gè)映射集合,可用值對(duì)集合
當(dāng)i=j(luò),即oi=oj時(shí),c1(oi,oj)=1,則
步驟2.2:基于罰函數(shù)法對(duì)數(shù)學(xué)模型優(yōu)化。
所述的優(yōu)化后的廣義目標(biāo)函數(shù)為:
minimize
步驟3:基于de-lbfgsb算法求解優(yōu)化廣義目標(biāo)函數(shù)。
步驟3.1:初始化當(dāng)前種群代數(shù)g=0并設(shè)定算法參數(shù):
設(shè)置initial_flag=true,ind_opt=1010,指定容量大小為m的適應(yīng)值序列型存儲(chǔ)容器fitness,通過
遍歷整個(gè)種群完成初始化,其中i=1,2,...,size。
步驟3.2:判斷當(dāng)前種群代數(shù)或當(dāng)前種群中個(gè)體的收斂標(biāo)準(zhǔn)差閾值,若到達(dá)結(jié)束條件
g=maxg或std(pop(g))<tol,得到最優(yōu)解,結(jié)束算法,否則繼續(xù)以下操作;
步驟3.3:將步驟3.2中的種群集合作為當(dāng)前種群集合pop(g),通過vi(g+1)=xr1(g)+f*(xr2(g)-xr3(g))依次對(duì)種群集合pop(g)中每個(gè)個(gè)體進(jìn)行變異操作,獲得變異種群集合pop_muta(g+1)={v1(g+1),v2(g+1),...,vsize(g+1)};
步驟3.4:通過
步驟3.5:通過貪婪算法
步驟3.6:將下一代g+1種群最優(yōu)適應(yīng)值添加到適應(yīng)度集合fitness中,更新最近m代種群最優(yōu)適應(yīng)值;
步驟3.7:若initial_flag=true,計(jì)算適應(yīng)度集合fitness的標(biāo)準(zhǔn)差,記為calc_std;若calc_std<std_tol,則設(shè)置initial_flag=false并跳至步驟3.9,反之執(zhí)行步驟3.2;
步驟3.8:若initial_flag=false,將當(dāng)前最優(yōu)適應(yīng)值cur_opt與ind_opt比較,若cur_opt<ind_opt,產(chǎn)生[0,1]均勻分布隨機(jī)數(shù)rand_num,并且rand_num<prob,執(zhí)行步驟3.9,反之跳至步驟3.2;
步驟3.9:對(duì)于第g+1代種群,選取三個(gè)個(gè)體,包括最優(yōu)個(gè)體和兩個(gè)隨機(jī)選取的個(gè)體,將三個(gè)個(gè)體依次設(shè)置為l-bfgs-b算法的迭代初始值尋找最優(yōu)適應(yīng)值,經(jīng)l-bfgs-b算法優(yōu)化后,三個(gè)個(gè)體插入下一代種群集合pop(g+1)對(duì)應(yīng)位置,讓cr1=cr2并用當(dāng)前最優(yōu)適應(yīng)值更新ind_opt后跳轉(zhuǎn)步驟3.2。
對(duì)本實(shí)施例,因需要最小化優(yōu)化廣義目標(biāo)函數(shù),故以優(yōu)化廣義目標(biāo)函數(shù)值作為算法效果的評(píng)價(jià)指標(biāo),記為解質(zhì)量q,以此來度量優(yōu)化效果。
q=z′=f′(st,m,o,α,β,μ,σ,λ),其中:st為開始生產(chǎn)時(shí)間向量,指定了各工序開始加工的時(shí)間;m為加工設(shè)備向量,指定了各工序所在的設(shè)備;o為操作員向量,指定了各工序分配的操作員;q值越小,反映求解質(zhì)量越好。
將本實(shí)施例與常用于優(yōu)化的ga算法、pso算法、l-bfgs-b算法、de算法以及de算法的變體,如jde算法和mde_pbx算法,進(jìn)行了優(yōu)化效果對(duì)比。
在經(jīng)過多次不斷調(diào)整參數(shù)的實(shí)驗(yàn)后,各方法參數(shù)取值設(shè)定如下:
罰函數(shù)懲罰力度:
本實(shí)施例參數(shù):f=(0.5,1.0),cr1=0.7,cr2=0.1,size=450,m=10,std_tol=10,prob=0.8,tol=0.01;
de算法參數(shù):f=(0.5,1.0),交叉概率cr=0.7,size=450,tol=0.01;
l-bfgs-b算法參數(shù):m=10,結(jié)束條件因子factr=107,投影梯度閾值pgtol=10-5,步長epsilon=10-8,maxg=15000;
ga算法參數(shù):變異率mutation=0.05,交叉率crossrate=0.7,size=450;
pso算法參數(shù):size=450,加速系數(shù)c1=c2=2.0,慣性因子w=0.7298,最大速度vmax=0.5;
jde算法參數(shù):fl=0.1,fu=0.9,和τ1=τ2=0.1,size=450,差分變異策略
strategy=best/1/bin;
mde_pbx算法參數(shù):size=450,p%最優(yōu)個(gè)體pbest=15,n=1.5,目標(biāo)函數(shù)終止條件ftol=10-6,個(gè)體終止條件xtol=10-6;
表2給出了本實(shí)施例混合算法與其余算法在兩種迭代次數(shù)的設(shè)置下平均求解質(zhì)量的對(duì)比分析結(jié)果,平均求解質(zhì)量用
表2求解質(zhì)量比較
從表2中收斂速度可以看出,本實(shí)施例的混合算法與其余算法相比在收斂速度上具有明顯優(yōu)勢(shì),在相同的迭代次數(shù)下,能夠快速收斂得到較優(yōu)解。將本實(shí)施例的混合算法與de算法和l-bfgs-b算法對(duì)比,它們的收斂效果差距顯著,de算法運(yùn)行400代后平均解質(zhì)量為92.03,而l-bfgs-b算法的平均解質(zhì)量為4777.14,可知對(duì)于本實(shí)施例需求解的問題l-bfgs-b算法不能有效解決,l-bfgs-b算法容易收斂于局部極值,受初始搜索方向影響大,解質(zhì)量差;同時(shí)將本實(shí)施例的混合算法與其他算法相比,效果最為接近的兩個(gè)算法分別是mde_pbx算法和ga算法,平均解質(zhì)量分別為-124.52和-90.88,與本實(shí)施例的混合算法平均解質(zhì)量-146.90仍然具有一定的差距。因此,本實(shí)施例混合算法能夠快速收斂得到全局較優(yōu)解,在de算法和l-bfgs-b算法的尋優(yōu)基礎(chǔ)上改進(jìn)十分顯著。
在全局優(yōu)化性能上,從表2中給出結(jié)果可見看出本實(shí)施例的混合算法相比其他算法具有全局優(yōu)化性能優(yōu)勢(shì),在4000次迭代后,只有g(shù)a算法的平均解質(zhì)量優(yōu)于本實(shí)施例的混合算法,并且可知對(duì)于大數(shù)算法,其全局尋優(yōu)性能并不會(huì)相差太多,解質(zhì)量都優(yōu)于-120;而且絕大多數(shù)算法相對(duì)于在迭代400次時(shí)解質(zhì)量有提升明顯,而本實(shí)施例的混合算法在迭代次數(shù)為4000時(shí)與400時(shí)的解質(zhì)量差異很小,這說明本文提出方法能夠在很短的迭代次數(shù)內(nèi)進(jìn)入收斂后期階段;而迭代次數(shù)為4000時(shí),尋優(yōu)時(shí)間為迭代次數(shù)400次的10倍左右;對(duì)于本實(shí)施例求解得問題,在cpu配置為3.3ghz并且每個(gè)程序采用獨(dú)立單線程計(jì)算的方式下,各算法4000代平均計(jì)算時(shí)間為5至6個(gè)小時(shí),難以在實(shí)際生產(chǎn)調(diào)度中得到應(yīng)用。綜上,本實(shí)施例的混合算法相對(duì)于其他算法在全局尋優(yōu)能力上任具有優(yōu)勢(shì),并且相比于de算法、jde算法和mde_pbx算法有更好的全局尋優(yōu)性能。
如圖3.1~3.4所示,分別為當(dāng)前迭代次數(shù)下4次相互獨(dú)立的實(shí)驗(yàn):
因初始解質(zhì)量與進(jìn)化后期解質(zhì)量在數(shù)值上相差過大,故需將求解質(zhì)量q映射為優(yōu)化程度d,使得d能夠代表進(jìn)化的收斂過程并且進(jìn)化初期值與進(jìn)化后期值不至相差過大。由于對(duì)數(shù)函數(shù)具有單調(diào)遞增且上升平緩的特征,而且q+170>1,因此給出d的定義d=ln(q+170);
本實(shí)施例的混合算法在前期收斂非常迅速,其呈現(xiàn)為階梯形突變狀的收斂特征,分析原始數(shù)據(jù)得知,當(dāng)出現(xiàn)階梯下降后,接著會(huì)有一段平坦期的原因是de算法在這段區(qū)間內(nèi)進(jìn)行隨機(jī)搜索能夠跳出當(dāng)前極值點(diǎn)且解質(zhì)量更優(yōu)的個(gè)體,之后l-bfgs-b算法以該新個(gè)體作為初始解,并沿著新方向收斂,這時(shí)候又會(huì)出現(xiàn)一個(gè)階梯形狀下降,大體上算法在240代已經(jīng)進(jìn)入收斂后期狀態(tài),其呈現(xiàn)曲線平緩,緩慢甚至不下降的特征。因此,本實(shí)施例的混合算法相比其他算法收斂更為迅速的原因是:在前期de算法本身有較好的收斂速度,而在收斂中期時(shí),相比于其他算法,本實(shí)施例的混合算法借助于l-bfgs-b算法加快了尋優(yōu)收斂的速度,能夠在較短時(shí)間內(nèi)收斂于較優(yōu)解。
上述具體實(shí)施可由本領(lǐng)域技術(shù)人員在不背離本發(fā)明原理和宗旨的前提下以不同的方式對(duì)其進(jìn)行局部調(diào)整,本發(fā)明的保護(hù)范圍以權(quán)利要求書為準(zhǔn)且不由上述具體實(shí)施所限,在其范圍內(nèi)的各個(gè)實(shí)現(xiàn)方案均受本發(fā)明之約束。