本發(fā)明屬于工業(yè)數(shù)控設(shè)備自動化技術(shù)領(lǐng)域,涉及一種應(yīng)用于裁床裁剪分床的方法。
背景技術(shù):
中國是人口大國,是世界上最大的服裝生產(chǎn)國和消費國。近年來隨著人民幣匯率的波動,企業(yè)雇用工人的成本和生產(chǎn)原材料的成本越來越高,導致企業(yè)生存越來越困難。尤其是近年來物價迅速上漲,出現(xiàn)了勞動力缺口大,招工難的問題。服裝行業(yè)是傳統(tǒng)的勞動密集型的企業(yè),生存發(fā)展就更加的困難。因此,企業(yè)要想在激烈的市場競爭和生產(chǎn)成本上漲的環(huán)境下屹立不倒,就必須從降低生產(chǎn)成本的角度出發(fā),提高企業(yè)的生產(chǎn)效益。伴隨著工業(yè)自動化進程的加速,服裝行業(yè)也就自然而然的融入了現(xiàn)代工業(yè)自動化生產(chǎn)技術(shù),機器換人成為了必然的趨勢。從而裁床的應(yīng)用越來越普遍,其不僅能夠降低人工生產(chǎn)成本,而且還提高了原材料的利用率和生產(chǎn)效率。
如今,裁床系統(tǒng)的技術(shù)發(fā)展日趨成熟,從控制軟件到底層硬件控制板的技術(shù)都相當完善,各種實際應(yīng)用中的工藝難題都得到了很好地解決,實際生產(chǎn)制造中也印證了其高效的性能。目前,我國裁床在中小型企業(yè)中的銷量占有很大比重,由于一些成熟的裁床控制軟件成本高昂,保密性強,所以中小型企業(yè)只能望而卻步。針對裁床控制軟件目前遇到的種種難題,我國也研發(fā)了一些擁有自主知識產(chǎn)權(quán)的裁床控制軟件,其中也集成了分床的功能。裁剪分床主要包括以下幾個方面:(1)生產(chǎn)訂單裁剪分床床數(shù)。裁剪分床床數(shù)決定了裁剪工時的消耗;(2)每床需要鋪的號型種類,每個號型鋪布的件數(shù)。在生產(chǎn)條件允許的范圍內(nèi),套排號型種類越多越節(jié)約原材料;(3)每床需要鋪布料的層數(shù)。在生產(chǎn)條件允許的鋪布層數(shù)范圍內(nèi),鋪布層數(shù)越大,裁剪的效率就會越高。
但是現(xiàn)有的裁床控制軟件的分床功能大多都是基于一些人工經(jīng)驗分床的方法,效率比較低、裁剪數(shù)量誤差比較大,并不是很理想,而且針對一些復雜的訂單并不一定能得出具體的方案。針對上述問題,本發(fā)明引入現(xiàn)代智能優(yōu)化算法,設(shè)計一種基于自適應(yīng)加速因子粒子群優(yōu)化(sapso)算法的裁剪分床方法,能夠快速的求解符合要求的裁剪方案,而且誤差比較小,能夠很好地解決分床時間長,裁剪數(shù)量誤差較大的問題,具有很好的發(fā)展前景。
技術(shù)實現(xiàn)要素:
為了克服目前確定裁剪分床方式的耗時長、誤差大、效率低的不足,本發(fā)明引入現(xiàn)代智能優(yōu)化算法,提供一種基于sapso算法的裁剪分床方法,提高了分床方案確定的效率,減少了用料預算,并且減小了裁剪數(shù)量誤差。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種基于自適應(yīng)加速因子粒子群優(yōu)化算法的裁剪分床方法,包括以下步驟:
第一步,對裁剪分床設(shè)定初始限制條件和sapso算法的參數(shù):首先由用戶設(shè)定每床鋪布層數(shù)cnt的上限cntmax和下限cntmin,每層布可裁剪總件數(shù)t的上限tmax和下限tmin,每個號型樣片每床排的數(shù)量pb的上限pbmax,各號型樣片所需裁剪的數(shù)量si;算法的自適應(yīng)加速因子正整數(shù)參數(shù)γ,認知因子c1,社會因子c2,算法迭代過程中層數(shù)粒子速度向量的最大限度vcmax、配比粒子速度向量的最大限幅vbmax;
第二步,根據(jù)用戶設(shè)定的初始限制條件,計算出可能的分床數(shù)量:根據(jù)各號型樣片所需裁剪數(shù)量計算出所需裁剪數(shù)量總和s,平均每床鋪布層數(shù)laver,平均每層布裁剪件數(shù)taver,從而計算出所需分床數(shù)量bed的上限bedmax和下限bedmin;
第三步,采用sapso化算法搜索,過程如下:
由于確定出來的分床床數(shù)bed是在一個有限的范圍內(nèi),所以先搜索床數(shù)小的分床方案,如果床數(shù)小的方案符合要求,則不再去搜索床數(shù)大的情況。如果床數(shù)小的方案不符合要求,再去搜索床數(shù)大的分床方案。在某一分床床數(shù)情況下,采用sapso算法搜索鋪布層數(shù)。
3.1)以各床上的鋪布層數(shù)作為粒子的位置,給各床在搜索空間ωk內(nèi)隨機初始化一個層數(shù),同理初始化m個粒子{cnt1,cnt2···cntm},以及速度向量值{v1,v2···vm},以各號型樣片誤差平方和為適應(yīng)值fvalue。令各個粒子的個體歷史最優(yōu)pbesti=cnti,i=1,2,···,m,粒子的全局最優(yōu)gbest=cnt1;
3.2)再采用sapso算法搜索在對應(yīng)鋪布層數(shù)下,使fvalue最小的配比pb:其搜索過程為:
3.2.1)將第j種號型樣片在各床上的配比作為粒子的位置pbi,在搜索空間ψk內(nèi),給該號型樣片在各床上的配比隨機初始化一個值,同理初始化m個粒子{pb1,pb2···pbm},速度向量值{vb1,vb2···vbm},令每個粒子的個體歷史最優(yōu)pbest1i=pbi,粒子的全局最優(yōu)gbest1=ceil(pb1);
3.2.2)根據(jù)速度更新公式:
來計算粒子尋優(yōu)的速度向量值,判斷速度絕對值是否小于等于最大速度值vbmax,如果超過了,則令
3.2.3)再根據(jù)位置更新公式:
計算粒子下一次尋優(yōu)的位置
3.2.4)計算所有粒子的適應(yīng)值fvalue1i:
fvalue1i=[ceil(pbi)×cnti-dj]
其中ceil表示向上取整,通過比較前后兩次適應(yīng)值的大小來更新各粒子的歷史最優(yōu)pbest1i,以及全局最優(yōu)解gbest1i。
3.2.5)繼續(xù)迭代,即迭代次數(shù)n1=n1+1,若迭代次數(shù)達到設(shè)定值n1,給出所有號型樣片對應(yīng)鋪布層數(shù)下的最優(yōu)配比gbest1j,結(jié)束搜索;否則轉(zhuǎn)到步驟3.2.2)繼續(xù)搜索;同理搜索其他號型樣片在各床上的配比;
3.3)再根據(jù)鋪布層數(shù)粒子的速度更新公式:
來計算粒子尋優(yōu)的速度向量值,判斷速度絕對值是否小于等于最大速度值vcmax,如果超過了,則令
3.4)再根據(jù)位置更新公式:
計算粒子下一次尋優(yōu)的位置
3.5)然后計算所有粒子的適應(yīng)值fvaluei:
通過比較前后兩次適應(yīng)值的大小來更新pbesti和gbest;
3.6)繼續(xù)迭代,即迭代次數(shù)n=n+1,若迭代次數(shù)達到設(shè)定值n,則給出所有號型樣片最優(yōu)的鋪布層數(shù)gbest和對應(yīng)的所有號型的最優(yōu)配比gbest1i,結(jié)束搜索;否則轉(zhuǎn)到步驟3.2)繼續(xù)搜索。
進一步,所述第二步中,根據(jù)各號型樣片所需裁剪的件數(shù)計算出各號型樣片所需裁剪件數(shù)的總和:
s=∑si
平均每床鋪布層數(shù):
平均每層布裁剪的件數(shù):
根據(jù)以上結(jié)果計算出所需分床數(shù)量bedi的上限:
所需的分床數(shù)量下限:
其中ceil和floor分別表示向上取整和向下取整。
再進一步,所述第三步中,自適應(yīng)加速因子粒子群優(yōu)化算法的速度更新公式中,自適應(yīng)加速因子
再進一步,在步驟3.2.4)中,由于實際分床中,配比值必須是整數(shù),所以需要將配比值pb向上取整后再求對應(yīng)適應(yīng)值
fvalue1i=[ceil(pbi)×cnti-dj]
以更新各粒子的歷史最優(yōu)pbest1i,以及全局最優(yōu)解gbest1i。
本發(fā)明的有益效果主要表現(xiàn)在:在對初始限制參數(shù)設(shè)定后,采用sapso算法來搜索最優(yōu)解,搜索速度快,效率高,誤差小,用料預算更少;在實際分床問題中,鋪布層數(shù)和配比都必須是整數(shù),為了保證能夠得出分床方案,而且誤差盡可能小,本發(fā)明設(shè)計了一種解決方法,很好地解決了這個問題。
附圖說明
圖1為本發(fā)明的求解流程圖。
圖2為搜索層數(shù)的算法流程圖。
圖3為搜索配比的算法流程圖。
圖4為等量優(yōu)化分床方法求解結(jié)果示意圖。
圖5為sapso算法求解結(jié)果的示意圖。
圖6位sapso算法和pso算法適應(yīng)度曲線(實線—sapso,虛線—pso)。
具體實施方案
下面結(jié)合附圖以及具體實例對本發(fā)明作進一步描述。
參照圖1~圖6,一種基于自適應(yīng)加速因子粒子群優(yōu)化算法的裁剪分床方法,包括以下步驟:
第一步,對裁剪分床設(shè)定初始限制條件和sapso算法的參數(shù):如圖1所示,由用戶設(shè)定每床鋪布層數(shù)cnt的上限cntmax=500和下限cntmin=50,每層布可裁剪總件數(shù)t的上限tmax=8和下限tmin=0,每個號型樣片每床排的數(shù)量pb的上限pbmax=2,各號型樣片所需裁剪的數(shù)量si;自適應(yīng)加速因子正整數(shù)參數(shù)γ=100,認知因子c1=2,社會因子c2=2,算法迭代過程中鋪布層數(shù)粒子速度向量的最大限度vcmax=20、配比粒子速度向量的最大限幅vbmax=2。
第二步,根據(jù)各號型樣片所需裁剪的件數(shù)s1=566、s2=651、s3=788、s4=684、s5=395,計算出各號型樣片所需裁剪件數(shù)的總和
s=∑si=566+651+788+684+395=3084
平均每床鋪布層數(shù)
平均每層布裁剪的件數(shù)
根據(jù)以上結(jié)果計算出所需分床數(shù)量bedi的上限
所需的分床數(shù)量下限
其中ceil和floor分別表示向上取整和向下取整。
第三步,根據(jù)計算所得分床數(shù)bed,以bed=3為例。算法流程如圖2所示,
3.1)以各床上的鋪布層數(shù)作為粒子的位置,給各床在搜索空間ωk內(nèi)隨機初始化一個層數(shù),同理初始化20個粒子{cnt1={101,346,289},cnt2={469,89,251}···cnt20={207,62,258}},以及速度向量值{v1={87,302,175},v2={402,119,290}···v20={208,46,140}},以各號型樣片誤差平方和為適應(yīng)值fvalue。令每個粒子的個體歷史最優(yōu)pbest1={101,346,289},pbest2={469,89,251}······pbest20={207,62,258},粒子的全局最優(yōu)gbest={101,346,289}。
3.2)再采用sapso算法搜索在對應(yīng)鋪布層數(shù)下,使fvalue最小的配比pb:其算法搜索過程如圖3所示,
3.2.1)將第j種號型樣片在各床上的配比作為粒子的位置pbi,在搜索空間ψk內(nèi),給該號型樣片在各床上的配比隨機初始化一個值,同理初始化20個粒子的位置值pb1={1.6294,1.8116,0.2540},pb2={1.8268,1.2647,0.1951},···,pb20={0.6808,1.1705,0.4476};以及速度值vb1={1.5025,0.5102,1.0118},vb2={1.3982,1.7818,1.9186},···,vb20={1.9923,0.1564,0.8854},令每個粒子的個體歷史最優(yōu)pbest1i=pbi,粒子的全局最優(yōu)gbest1=ceil(pb1)。
3.2.2)根據(jù)速度更新公式:
來計算粒子尋優(yōu)的速度向量值,判斷速度絕對值是否小于等于最大速度值2,如果大于2,就令
3.2.3)再根據(jù)位置更新公式:
計算粒子下一次尋優(yōu)的位置
3.2.4)計算所有粒子的適應(yīng)值fvalue1i:
fvalue1i=[ceil(pbi)×cnti-dj]
通過比較前后兩次適應(yīng)值的大小來更新各粒子的歷史最優(yōu)pbest1i,以及全局最優(yōu)解gbest1i。
3.2.5)迭代次數(shù)n1=n1+1,若迭代次數(shù)達到設(shè)定值n1,給出所有號型樣片對應(yīng)鋪布層數(shù)下的最優(yōu)配比gbest1j,結(jié)束搜索;否則轉(zhuǎn)到步驟3.2.2)繼續(xù)搜索。同理搜索其他號型樣片在各床上的配比。
3.3)再根據(jù)鋪布層數(shù)粒子的速度更新公式:
來計算粒子尋優(yōu)的速度向量值,判斷速度絕對值是否小于等于最大速度值20,如果超過20,則令
3.4)再根據(jù)位置更新公式:
計算粒子下一次尋優(yōu)的位置
3.5)然后計算所有粒子的適應(yīng)值fvaluei:
通過比較前后兩次適應(yīng)值的大小來更新pbesti和gbest。
3.6)迭代次數(shù)n=n+1,若迭代次數(shù)達到設(shè)定值n,給出所有號型樣片輸出最優(yōu)的鋪布層數(shù)gbest和對應(yīng)的所有號型的最優(yōu)配比gbest1i,結(jié)束搜索;否則轉(zhuǎn)到步驟3.2)繼續(xù)搜索。
參照圖5,本發(fā)明的分床效果圖,與圖4的等量優(yōu)化分床方法形成對比,在相同的生產(chǎn)條件下,針對同一生產(chǎn)訂單,本發(fā)明得出的分床方案用料預算更少,裁剪的誤差更小。參照圖6可知,sapso算法搜索收斂速度更快,效率更高。