摘 要:針對工業(yè)生產(chǎn)中常見的二維不規(guī)則排樣問題,提出運用粒子群算法求解的方法。將BL算法和NFP算法結(jié)合,作為排樣定位策略;對工件的入排順序和入排角度進行編碼,進行粒子群算法優(yōu)化求解,并通過交叉替代傳統(tǒng)的插值改進粒子位置更新過程,滿足排樣的離散問題求解;通過添加粒子的變異過程,避免陷入局部最優(yōu)解。算例排樣結(jié)果驗證了該算法的有效性。
關(guān)鍵詞:二維不規(guī)則排樣;BL算法;NFP算法;粒子群算法
中圖分類號:TP391 文獻標志碼:B 文章編號:1671-5276(2024)04-0165-04
Two-dimensional Irregular Layout Based on Particle Swarm Optimization Algorithm
LYU Wanlin, YOU Youpeng
(College of Mechanical and Electrical Engineering, Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)
Abstract:A method to solve the common two-dimensional irregular layout problem in industrial production by particle swarm optimization algorithm is proposed. BL algorithm and NFP algorithm are combined as the positioning strategy.The input order and input angle of the workpiece are coded, and the particle swarm optimization algorithm is used to optimize the solution. By replacing the traditional interpolation with intersection, the process of particle position updating is improved to solve the discrete problem of layout. The mutation process of particles is added to avoid the local optimal solution. The sample layout result verifies the effectiveness of the proposed algorithm.
Keywords:two-dimensional irregular layout; BL algorithm; NFP algorithm; particle swarm optimization algorithm
0 引言
二維不規(guī)則排樣問題是在給定的原材料板材上,擺放各種不規(guī)則的工件,找出工件的最優(yōu)排布,使得板料的利用率最高。二維不規(guī)則排樣要求工件必須排布在板材內(nèi),各個工件互不重疊,工件之間的間隙盡量小,以達到節(jié)約材料、提高效益的目的。該問題在服裝裁剪、印刷、鈑金零件切割等方面應用廣泛,是工業(yè)生產(chǎn)加工中的重要環(huán)節(jié)。
二維不規(guī)則排樣問題屬于復雜的非確定性多項式(nondeterministic polynomial, NP)完全問題,具有很高的計算復雜度,國內(nèi)外也相繼提供了一些解決方案。秦振浩[1]對不規(guī)則工件生成最小包絡矩形,將其轉(zhuǎn)化為矩形件排樣問題,應用群遺傳算法在全局范圍內(nèi)搜尋可行解。UMETANI等[2]提出了針對光柵化模型,在水平和垂直方向交替重復進行直線搜索的坐標下降啟發(fā)式算法。劉虓[3]提出了一種基于矢量格式的零件靠接算法,依據(jù)最小勢能原理進行不規(guī)則零件排樣。王莉[4]以最低水平線算法為定位策略,將遺傳算法和模擬退火算法結(jié)合進行求解。劉海明等[5]提出了基于排擠機制的小生境遺傳算法,來進行不規(guī)則圖形的排序優(yōu)化。陳燕等[6]針對小批量圓形件的排樣問題,提出了順序分組啟發(fā)式算法與遞歸算法相結(jié)合的排樣方案。羅強等[7]提出了基于復合評價因子的改進遺傳算法求解矩形排樣問題改善了遺傳算法的局部搜索能力。
對于二維不規(guī)則零件排樣問題的求解,一般分為兩部分:在給定入排順序和角度情況下,對不同工件之間碰撞的檢測和定位策略的設計;對工件入排順序和入排角度的優(yōu)化求解。本文將從這兩部分對算法進行設計與改進。
1 BL-NFP算法
排樣過程中,為了最大化利用板料空間,需要保證不同工件間間隙盡量小,且不能重合,即需要確定一個工件相對于另一個工件的最佳位置,本文采用基于BL算法和NFP算法的融合算法作為工件的定位算法。
1.1 BL算法
BL算法是排樣問題中常用的定位算法,如圖1所示,先將工件放置于板料的右上角處,向左平移至極限位置,之后向下平移至極限位置,該算法讓工件放置位置盡可能接近板料的左下角。
1.2 NFP算法
如圖2所示,給定兩個工件A和工件B,工件A固定,將工件B繞工件A環(huán)繞一周,工件B的角度保持不變,取工件B上任意一點p,p在環(huán)繞的過程中走過的軌跡,即為臨界多邊形NFPAB。取工件B上不同的點p,形成的臨界多邊形形狀相同,本文取工件B的下頂點作為參考點。當參考點定位在該臨界多邊形上時,工件A與工件B之間貼合。在該臨界多邊形上搜索,可計算出工件B的最佳擺放位置。
1.3 BL-NFP算法
本文的BL-NFP算法將BL算法與NFP算法相結(jié)合,在NFP算法計算出的臨界多邊形上選擇一個左下的極限位置來放置工件。設有工件A和工件B,求出工件B環(huán)繞工件A形成的NFPAB,如圖3(a)所示。工件B放置于該臨界多邊形上的一些位置時會超出板料的范圍,這些位置是不可用的。因此,需求解出工件B在內(nèi)部圍繞板料形成的NFPB,如圖3(b)所示。將兩個NFP進行合并處理,可獲得新的NFP多邊形,在該NFP多邊形上,依照向左向下原則,可找到一個較好的位置來放置工件B,如圖4所示。
2 粒子群算法
BL-NFP算法解決了在板料上已放置一些工件的情況下,向板料上添加工件時該工件的最優(yōu)定位位置的計算。在實際應用中,工件入排的順序和角度也對排樣效果有很大的影響。為此,本文通過粒子群算法來對工件的入排順序和角度進行優(yōu)化求解。
2.1 不規(guī)則零件的預處理
為減少對入排角度進行優(yōu)化求解的復雜度,需保證工件在初始位置時的OBB包圍盒面積最小,即先求出工件的OBB包圍盒,確定包圍盒各邊的朝向,并將其旋轉(zhuǎn)至合適的角度。OBB包圍盒的具體求解過程詳見參考文獻[8]。
2.2 粒子群算法
對于入排順序和入排角度的計算,大部分研究采用遺傳算法和模擬退火算法來進行優(yōu)化求解,也取得了比較好的結(jié)果,但是遺傳算法的局部搜索能力較差,而模擬退火算法容易陷入局部最優(yōu)解。針對這兩個問題,本文采用粒子群算法來進行排樣問題的求解。粒子群算法(particle swarm optimization,PSO)是由EBERHART和KENNEDY提出的一種進化計算方法,它起源于對鳥群覓食行為的模擬,是一種基于群智能的優(yōu)化算法。粒子群算法初始化一群隨機粒子(解),通過迭代找到最優(yōu)解,在每一次迭代的過程中,粒子會記錄該粒子到達過的最優(yōu)位置pbest,群體會更新群體到達過的最優(yōu)位置gbest,并根據(jù)這兩個值來進行迭代[9]。本文中粒子的位置為一組工件的入排順序和入排角度,所有的粒子都保存最優(yōu)解的相關(guān)信息,它有更多的機會得到全局最優(yōu)解。
2.3 算法流程
算法的整體流程如圖5所示。
該算法的整體步驟如下。
1)粒子位置的編碼及優(yōu)化
在排樣問題中,粒子的位置編碼包含工件入排的順序和角度。有n個工件,記其編號為1—n,則將粒子位置編碼為{(p1,r1),(p2,r2),…,(pn,rn)},其中pi的數(shù)值表示的是第i個放入排樣的工件對應的工件號,若旋轉(zhuǎn)的角度以30°為基準,ri表示對工件旋轉(zhuǎn)ri×30°。
以20個工件為例,對這20個工件排序,它的可能的解共有20!個,這個解空間是龐大的。為了解決這個問題,本文也對粒子群算法的編碼進行了優(yōu)化,不再將某個順序編碼pi與工件號對應,而是通過預處理,將順序編碼pi與工件的類型相對應,即{p1,p2,…,pn中pi指的是在第i個排入的工件的型號,這避免了同種工件之間進行排列產(chǎn)生的效率浪費。假設同樣是20個工件,共有4種工件,每種5個,那么它的解空間的大小是20!/(5?。?sup>4,只有原先方案的兩億分之一,這將大大提高排樣搜索的效率。
2)適應度函數(shù)的計算
適應度函數(shù)是用于表示粒子在某個位置排樣優(yōu)劣的指標,適應度越高,說明該位置對應的入排順序和角度排樣效果越好。對于某一粒子,本文算法會依次將工件旋轉(zhuǎn)至對應角度,之后通過BL-NFP算法對該工件進行定位。將所有的工件都放置好后,進行該粒子位置適應度的計算。本文對粒子的適應性函數(shù)為
式中:W為板料的寬度;L為板料的長度,xmax和ymax分別表示該粒子中所有工件頂點在x方向上的最大值和y方向的最大值,即所有工件組成的包絡矩形的面積,α是適應度系數(shù)。該函數(shù)表示工件是否緊湊對適應度的影響,工件之間排布越緊湊、間隙越小,則xmax和ymax值越小,計算出的工件實際占用的區(qū)域面積越小,適應度則越高。
3)粒子之間的交叉變異
粒子群算法中,每一個粒子都有記憶功能,除了記錄當前排樣的順序和角度,該粒子會有一個單獨的空間來記錄其經(jīng)歷過的最優(yōu)位置pbest,它表示該粒子到達過的適應度最高的位置。同時,有一個全局最優(yōu)位置gbest,它表示的全體粒子經(jīng)歷過的最優(yōu)位置。
對于每一個粒子的位置,在計算出當前的適應度后,算法會對個體最優(yōu)位置pbest和群體最優(yōu)位置gbest進行更新,并開始迭代生成新一代的粒子的位置。粒子群算法的速度迭代公式為
式中:vkid表示第k次迭代粒子i速度矢量在d(x,y,z)方向上的速度分量;xkid表示第k次迭代粒子i在d方向上的位置分量;xk-1id表示在第k-1次迭代粒子i在d方向上的位置分量;αk-1id表示在第k-1次迭代粒子i在d方向上的位置分量;c1、c2表示加速度常數(shù),調(diào)節(jié)學習最大步長;r1、r2表示兩個隨機參數(shù),取值范圍[0,1],以增加搜索的隨機性;w表示慣性權(quán)重,非負數(shù),用來調(diào)節(jié)對解空間的搜素范圍。該式的第一部分表示該粒子的先前速度,第二部分表示該粒子當前位置與自身歷史最佳位置pbest的距離,第三部分表示該粒子當前位置與群體最佳位置gbest的距離。位置更新公式為
粒子群算法的思想是,下一時刻的速度受個體最優(yōu)解和群體最優(yōu)解影響,在較優(yōu)解附近尋找更優(yōu)解,慢慢找出全局最優(yōu)解。
但是,該式只適用于變量連續(xù)的情況,即x在pbest和gbest之間連續(xù)。本文中粒子位置表示工件入排順序和角度,不同位置是不連續(xù)的,在pbest和gbest兩個位置中間迭代新的位置無法直接使用位置更新公式來計算。針對該問題,本文采用交叉、變異來進行粒子位置的迭代。假設有8個工件需要進行排樣,其中有兩個工件型號相同,其類型為1,其余工件型號不同,為2—7,工件旋轉(zhuǎn)的基準為90°。在第k次迭代后,粒子m的個體最優(yōu)位置為pbest,如圖6所示。群體的最優(yōu)位置為gbest,如圖7所示。
第i個方框內(nèi)的第1個數(shù)為該方案中第i個進行排樣的工件型號,第2個數(shù)為排樣前對工件進行旋轉(zhuǎn)的系數(shù)。
為了在兩者中間迭代一個新的粒子,首先是隨機生成一個大于0小于8的交叉系數(shù),記為p。本例中為4,則在新生成的粒子中,前4個元素與gbest的前4個元素相同,之后將pbest中型號被使用過的元素進行刪除,之后將未被刪除元素的型號依次填入新粒子的剩余元素中,具體過程如圖8所示。對于重復的工件型號1,會有單獨的數(shù)據(jù)結(jié)構(gòu)記錄該型號還需被放入的件數(shù)。本例中新粒子后4個元素的旋轉(zhuǎn)系數(shù)并不與個體最優(yōu)解中相對應的完全一致,它是由隨機函數(shù)在群體最優(yōu)解和個體最優(yōu)解中相對應的兩個元素旋轉(zhuǎn)系數(shù)中隨機選擇。
為了避免陷入局部最優(yōu)解,該算法中還有一個變量pmutaion,表示變異的概率,它是人工設定的值,在迭代的過程中,有一定概率不進行交叉求解,而是對當前粒子進行變異,如圖9所示。它不進行pbest和gbest之間的交叉變異,而是通過對當前粒子某兩個或多個順序進行交換來生成新粒子,以防止程序過早收斂陷入局部最優(yōu)解。
3 實驗與驗證
為了驗證算法的可行性和有效性,采用C++語言實現(xiàn)了本文的排樣算法,并用ESICUP提供的測試用例進行了測試。表1為算法相關(guān)參數(shù)的配置。
圖10和圖11分別為本文算法對BLAZ樣例和TROUSERS樣例的求解結(jié)果。對于BLAZ樣例,該方案對板料的占用率為64.30%,工件總面積對占用面積的比值,即材料利用率為78.01%;對于TROUSERS樣例,板料占用率為72.19%,材料利用率為91.45%。
4 結(jié)語
針對在工業(yè)生產(chǎn)中廣泛存在的二維不規(guī)則排樣問題,本文提出了基于BL-NFP的粒子群算法求解。首先將BL-NFP算法作為排樣定位策略;對工件的排樣順序和排樣角度進行粒子位置編碼,并根據(jù)二維不規(guī)則排樣中存在工件重復的特點對編碼進行了創(chuàng)新;改進了粒子位置更新過程,以交叉替代傳統(tǒng)的插值,使得算法能滿足排樣的離散問題求解;添加了粒子的變異過程,避免陷入局部最優(yōu)解。通過ESICUP測試用例的排樣試驗,驗證了該算法的有效性。
參考文獻:
[1] 秦振浩. 基于多種群遺傳算法和剩余矩形匹配算法不規(guī)則件優(yōu)化排樣[J]. 現(xiàn)代工業(yè)經(jīng)濟和信息化,2022,12(9):222-224.
[2] UMETANI S,MURAKAMI S. Coordinate descent heuristics for the irregular strip packing problem of rasterized shapes[J]. European Journal of Operational Research,2022,303(3):1009-1026.
[3] 劉虓. 基于HAPE的二維不規(guī)則零件排樣算法及其性能研究[D]. 廣州:華南理工大學,,2011.
[4] 王莉. 矩形件排樣問題的遺傳模擬退火混合求解算法[J]. 鍛壓技術(shù),2021,46(8):70-76.
[5] 劉海明,周炯,吳忻生. 應用臨界多邊形方法與小生境遺傳算法求解不規(guī)則排樣問題[J]. 小型微型計算機系統(tǒng),2016,37(5): 1002-1007.
[6] 陳燕,謝琪琦,劉詠,等. 圓形件下料順序分組啟發(fā)式算法的設計與實現(xiàn)[J]. 圖學學報,2017,38(1):5-9.
[7] 羅強,李世紅,袁躍蘭,等. 基于復合評價因子的改進遺傳算法求解矩形件排樣問題[J]. 鍛壓技術(shù),2018,43(2):172-181.
[8] 譚同德,吳強,趙紅領,等. OBB層次包圍盒構(gòu)造方法的改進[J]. 計算機工程與應用,2008,44(5):79-81,95.
[9] 王仕存,唐敦兵,朱海華,等. 基于改進粒子群算法求解分布式多工廠生產(chǎn)調(diào)度問題[J]. 機械制造與自動化,2021,50(4):9-13.
收稿日期:2023-02-13