鄧文瀚,張 銘,王李進(jìn),鐘一文*
(1.福建農(nóng)林大學(xué)計算機(jī)與信息學(xué)院,福州 350002;2.智慧農(nóng)林福建省高等學(xué)校重點實驗室(福建農(nóng)林大學(xué)),福州 350002)
設(shè)施布局問題(Facility Layout Problem,F(xiàn)LP)是一種NP-困難的優(yōu)化問題,最早由文獻(xiàn)[1]提出。FLP 在現(xiàn)實生活中有許多應(yīng)用,例如制造系統(tǒng)、印刷電路板、物流系統(tǒng)和倉庫等的布局優(yōu)化。尤其是在制造系統(tǒng)上,F(xiàn)LP 應(yīng)用十分廣泛,而在制造系統(tǒng)中,F(xiàn)LP 最重要的優(yōu)化指標(biāo)是材料處理成本[2]。在FLP中,設(shè)施可以是便于執(zhí)行任何操作的任何實體,比如機(jī)床、工作臺、機(jī)械車間、部門和倉庫等[3]。FLP 的目標(biāo)是在一個有約束條件(比如工廠的形狀、設(shè)施放置次序的取向以及設(shè)施的pick-up/drop-off 點)的工廠區(qū)域內(nèi)找到一個最優(yōu)的設(shè)施布局,使材料處理成本最小。如文獻(xiàn)[4]所述,材料處理成本占制造公司總運營成本的20%~50%,占產(chǎn)品制造總成本的15%~70%,因此,求解FLP對于公司降低這些成本并提高其生產(chǎn)率非常重要。
FLP 可以根據(jù)設(shè)施的形狀和尺寸、物料搬運系統(tǒng)和流動等因素進(jìn)行分類[5]。根據(jù)設(shè)施的形狀和尺寸是否固定[3],F(xiàn)LP可以分為兩類:1)僅考慮設(shè)施面積的不等形面積設(shè)施布局問題;2)考慮設(shè)施具體形狀的機(jī)器布局問題(Machine Layout Problem,MLP)[6]。關(guān)于不等形面積設(shè)施布局,文獻(xiàn)[7-9]分別提出了基于粒子群優(yōu)化算法、螢火蟲算法和模擬退火(Simulated Annealing,SA)算法的求解策略。針對FLP,文獻(xiàn)[10]采用文化基因算法求解;文獻(xiàn)[11]使用線性規(guī)劃的三階段法求解。根據(jù)物料搬運系統(tǒng)的流動方式,Luggen 進(jìn)一步將FLP 細(xì)分為四類:單行布局(Single-line layout)、閉環(huán)布局(Closed loop layout)、階梯布局(Ladder layout)、開放場布局(Open field layout),如圖1[6]所示。其中閉環(huán)布局模式提供了一種簡化的中央物料搬運路徑方式,并創(chuàng)建了模塊化結(jié)構(gòu),使得布局變動及擴(kuò)展更為靈活,因此,與之對應(yīng)的閉環(huán)布局問題(Closed-Loop Layout Problem,CLLP)成為近年來的研究熱點。
圖1 設(shè)施布局的4種情況Fig.1 Four cases of facility layout
作為混合變量優(yōu)化問題,CLLP的物料搬運路徑是一個大小可調(diào)的矩形環(huán),優(yōu)化的結(jié)果必須同時獲得設(shè)施的最佳放置次序和矩形環(huán)的最佳尺寸。文獻(xiàn)[12]提出了具有精確距離的CLLP,并設(shè)計了混合整數(shù)線性規(guī)劃(Mixed Integer Linear Programming,MILP)方法來解決。由于CLLP 是NP-困難的,MILP 只能求解規(guī)模很小的問題,所以更多的學(xué)者采用元啟發(fā)式搜索算法。代表性的方法有SA 算法[6]、改進(jìn)的遷徙鳥優(yōu)化(Modified Migrating Birds Optimization,MMBO)算法[13]及基于隨機(jī)鍵的布谷鳥搜索(Cuckoo Search based on Random Key coding,RKCS)算法[14]等。對于CLLP 的兩個優(yōu)化目標(biāo),目前已有的啟發(fā)式算法大多通過設(shè)計不同的搜索方法以確定設(shè)施的最佳放置次序,而對于矩形環(huán)的大小,通常采用基于枚舉的方式,計算效率較低且浪費計算資源。
群體增量學(xué)習(xí)(Population-Based Incremental Learning,PBIL)算法是美國卡內(nèi)基梅隆大學(xué)Baluja[15]提出的基于統(tǒng)計學(xué)習(xí)理論的群體進(jìn)化算法。作為分布式估計算法的分支,PBIL 通過統(tǒng)計學(xué)習(xí)的方式建立解空間個體分布的概率模型,然后對概率模型進(jìn)行采樣以產(chǎn)生新的群體,從而實現(xiàn)群體的進(jìn)化。PBIL 結(jié)合了遺傳算法和競爭學(xué)習(xí)機(jī)制的優(yōu)點,具有較強(qiáng)的全局搜索能力和較快的收斂速度,可以很好地解決連續(xù)優(yōu)化和組合優(yōu)化問題[16]。本文針對CLLP的問題特征,并結(jié)合PBIL 的優(yōu)點,提出了一種混合群體增量學(xué)習(xí)(Hybrid PBIL,HPBIL)算法。首先,在設(shè)計基于概率分布的CLLP 求解框架基礎(chǔ)上,為解決現(xiàn)有算法使用枚舉方法尋找最優(yōu)矩形環(huán)大小而造成求解效率低下的問題,HPBIL 算法分別使用離散群體增量學(xué)習(xí)(Discrete PBIL,DPBIL)算子和連續(xù)群體增量學(xué)習(xí)(Continuous PBIL,CPBIL)算子同時對設(shè)施放置次序和矩形環(huán)大小進(jìn)行優(yōu)化,在保證算法全局收斂的前提下提高了搜索效率;其次,為進(jìn)一步提高算法的局部求精能力,算法融入基于交換的局部搜索算子在解空間中進(jìn)行精細(xì)搜索;最后,HPBIL 算法在13 個測試用例中獲得了9 個新的最優(yōu)布局,與現(xiàn)有的元啟發(fā)式算法相比,HPBIL 算法可在更短的時間內(nèi)獲得更好的結(jié)果。
本文的主要工作如下:
1)針對現(xiàn)有算法在求解CLLP 上存在的不足,從CLLP 的問題特征出發(fā),采用離散結(jié)構(gòu)和連續(xù)結(jié)構(gòu)方法分而治之,同時滿足獲得設(shè)施最佳放置次序和矩形環(huán)最佳尺寸的約束條件,在保證算法精度的同時提高計算效率;
2)根據(jù)算法迭代過程設(shè)計局部精細(xì)搜索算子增強(qiáng)算法的局部探索能力;
3)為CLLP 設(shè)計出有效的解決方案的同時擴(kuò)展PBIL 的應(yīng)用領(lǐng)域及研究思路。
在CLLP中,有一個尺寸大小可變的矩形物料搬運路徑和一組固定的矩形塊狀設(shè)施[3]。用h和v分別表示矩形物料搬運路徑的水平長度和豎直長度。每個設(shè)施都有一個pick-up/drop-off 點,用來確定物料的進(jìn)出位置。設(shè)施大小固定,pickup/drop-off 點位于設(shè)施側(cè)邊的中間且設(shè)施可以放置在矩形環(huán)的內(nèi)部和外部。假設(shè)有n個設(shè)施,每個設(shè)施i都有一個固定的長度li和寬度wi。用一個n×n的對稱矩陣F表示設(shè)施之間的物料流,其中fij表示設(shè)施i與設(shè)施j之間的物料流。CLLP 的優(yōu)化目標(biāo)是通過合理布局使設(shè)施之間的加權(quán)物料流之和最小,數(shù)學(xué)模型如下:
其中,dij表示設(shè)施i與設(shè)施j之間的最短距離。
如圖2 所示,沿著矩形環(huán)放置的兩個設(shè)施之間的最短距離有4 種情況:a)設(shè)施i和設(shè)施j在同一條邊上;b)設(shè)施i和設(shè)施j在相鄰邊上;c)設(shè)施i和實施j在平行的兩條水平方向的邊上;d)設(shè)施i和設(shè)施j在平行的兩條豎直方向的邊上。用(xi,yi)代表設(shè)施i的pick-up/drop-off 點。關(guān)于Case 1 和Case 2,設(shè)施間最短距離的計算公式為:
圖2 精確距離的4種情況Fig.2 Four case of exact distance
關(guān)于Case 3,設(shè)施i和設(shè)施j最短距離計算公式為:
關(guān)于Case 4,設(shè)施i和設(shè)施j最短距離計算公式為:
由于CLLP 是NP-困難的,元啟發(fā)式算法是一個有效的解決方案。文獻(xiàn)[6]最早設(shè)計CLLP來作為開放場布局的替代方案,并提出了SA 算法來解決。在SA 算法中,矩形環(huán)的大小h和v從一個較大的初始值開始,依次單位長度遞減,直至達(dá)到停止條件。在每次遞減過程中,都會得到一個用(h,v)表示的矩形環(huán),然后在該矩形環(huán)上采用SA算法尋找最優(yōu)的設(shè)施放置次序。需要注意的是,由于矩形環(huán)有4 條邊,每個設(shè)施可以放在邊的內(nèi)側(cè)或者外側(cè),所以共有8 個側(cè)面可以放置設(shè)施,如圖3 所示。為了書寫方便,將矩形的8 個側(cè)面分別定義為side1、side2、side3、side4、side5、side6、side7 和side8。為了將一個設(shè)施放置次序和一個矩形環(huán)映射為一個布局,文獻(xiàn)[6]給出了一種放置策略,從左上角起,按順時針方向,根據(jù)先放內(nèi)側(cè)再放外側(cè)的規(guī)則放置設(shè)施,放置順序依次是side1→side2→side3→side4→side5→side6→side7→side8。
圖3 矩形環(huán)的8個側(cè)面Fig.3 Eight sides of a rectangle loop
文獻(xiàn)[13]提出MMBO 算法來求解CLLP。MMBO 算法同樣采用枚舉方法尋找矩形環(huán)的大小,從一個初始值開始,依次減小矩形環(huán)的大小,然后遷徙鳥算法的進(jìn)化規(guī)則通過尋找當(dāng)前最好的設(shè)施放置次序。在MMBO 算法中,設(shè)施的放置策略與文獻(xiàn)[6]不同:在放置設(shè)施時,它的第一個設(shè)施放在side8邊上,也就是矩形環(huán)的左上角,且第一個設(shè)施的pick-up/drop-off點坐標(biāo)為(0,v),同時按順時針方向先外側(cè)再內(nèi)側(cè)的方式放置剩下設(shè)施,依次是side2→side1→side4→side3→side6→side5→side8→side7。
文獻(xiàn)[14]提出的RKCS 算法,采用與文獻(xiàn)[6]和文獻(xiàn)[13]類似的策略尋找矩形環(huán)的大小:在算法中,矩形環(huán)的初始大小h和v為所有設(shè)施最長邊之和的一半,用最小設(shè)施邊的長度minlength作為算法的終止條件,即當(dāng)h和v遞減到minlength時,算法結(jié)束。同樣在每次遞減的程序中,利用布谷鳥算法的搜索規(guī)則尋找當(dāng)前矩形環(huán)大小的最優(yōu)設(shè)施放置次序。其設(shè)施放置策略是將第一個設(shè)施放在side8 邊的左上角,pick-up/drop-off 點坐標(biāo)為(0,v),同時按順時針方向先內(nèi)側(cè)再外側(cè)方式放置剩下設(shè)施,依次是side1→side2→side3→side4→side5→side6→side7→side8。
綜上,目前已有解決CLLP的元啟發(fā)式算法大多通過預(yù)設(shè)矩形環(huán)大小的范圍,然后通過枚舉的方法遍歷所有矩形環(huán),并在每一個矩形環(huán)上使用不同的搜索策略尋找優(yōu)質(zhì)設(shè)施放置次序。其中,采用枚舉方式產(chǎn)生的放置次序在后續(xù)進(jìn)化過程中大部分被淘汰,產(chǎn)生了數(shù)目眾多的不必要計算;另外一方面,算法的復(fù)雜度也會隨著問題規(guī)模的擴(kuò)大而快速增長,極大地制約了求解算法的適用范圍及效率。
PBIL 作為一種隨機(jī)優(yōu)化技術(shù),通過構(gòu)建概率模型來搜索潛在優(yōu)質(zhì)解空間。算法主要組成部分是一個概率向量P=(p1,p2,…,pi,…,pn),用來表示解空間的概率模型,其中pi表示第i個等位基因的取值為1 的概率。PBIL 算法迭代的具體過程如下。
算法1 基本PBIL算法。
算法1 中最優(yōu)個體數(shù)目M小于種群的個體數(shù)N。更新概率向量的公式如下:
其中:α表示學(xué)習(xí)速率,xk表示第k個優(yōu)質(zhì)解。
基本PBIL 算法可以擴(kuò)展到組合優(yōu)化問題和連續(xù)優(yōu)化問題求解。針對組合優(yōu)化問題:文獻(xiàn)[17]用PBIL 算法求解著色旅行商問題;文獻(xiàn)[18]用PBIL 算法和局部搜索算法來優(yōu)化本體匹配問題;文獻(xiàn)[19]提出一種基于虛擬區(qū)域的PBIL 算法來優(yōu)化片上網(wǎng)絡(luò)的任務(wù)匹配問題;文獻(xiàn)[20]將PBIL 算法用于復(fù)雜工程系統(tǒng)中故障診斷等。同樣PBIL 算法在連續(xù)優(yōu)化問題也得到了廣泛應(yīng)用,例如:文獻(xiàn)[21]將PBIL 算法擴(kuò)展到連續(xù)搜索空間問題上;文獻(xiàn)[22]用M-PBIL算法求解多目標(biāo)證券投資組合問題;文獻(xiàn)[23]用PBIL 算法求解電磁器件的多目標(biāo)優(yōu)化問題等。
CLLP是一個混合變量優(yōu)化問題,作為優(yōu)化目標(biāo)的兩個組成部分,搜索設(shè)施最佳放置次序是一個組合優(yōu)化問題,而搜索矩形環(huán)的最佳形狀是一個連續(xù)優(yōu)化問題。針對該問題的求解特征,設(shè)計離散的PBIL 算子以搜索設(shè)施的最佳放置次序,用連續(xù)的PBIL 來搜索矩形環(huán)的大小。針對PBIL 單純概率指引帶來的搜索粒度較大的問題,引入增強(qiáng)的局部搜索算子,提高算法的求精能力。
文獻(xiàn)[24]針對排列類型的問題進(jìn)行了研究,給出了每個等位基因的取值并將二進(jìn)制PBIL 擴(kuò)展為整數(shù)編碼的方法,該設(shè)計思想被本文用于構(gòu)造設(shè)施放置次序問題中。在DPBIL中,首先計算每個設(shè)施在特定位置的累積概率,并通過輪盤賭方式確定每個設(shè)施的選取順序。具體算法描述如算法2。其中:pm是表示采樣概率模型的n×n二維數(shù)組,pm[i][j]表示設(shè)施i放置在第j個位置的概率,集合R存儲尚未選擇的設(shè)施,列表List存儲構(gòu)造出的設(shè)施放置次序,變量L是集合R中剩余設(shè)施數(shù)。算法中第4)~10)行計算R中每個設(shè)施的累積概率,第11)行用生成的隨機(jī)數(shù)來判斷設(shè)施位于哪一個區(qū)間,第12)~19)行用輪盤賭的方式對R中每個設(shè)施進(jìn)行選擇,直至所有的設(shè)施被選擇完畢。算法第15)行將選中的設(shè)施從R中刪除,保證一個設(shè)施只能被選擇一次。算法2 中涉及兩重循環(huán),其時間復(fù)雜度為O(n2)。
算法2 離散PBIL構(gòu)造設(shè)施放置次序。
Sebag 等[21]提出了一個服從高斯分布的連續(xù)PBIL 算法,將算法應(yīng)用擴(kuò)展到了連續(xù)搜索空間。本文將借鑒此方法構(gòu)造閉環(huán)矩形大小。在高斯分布N(X,σ)中數(shù)學(xué)期望X代表個體,標(biāo)準(zhǔn)差σ控制著種群的多樣性。在每一次迭代中,Xt根據(jù)當(dāng)前種群中最好的兩個個體和最差的個體的線性組合進(jìn)行更新:
σ的更新則根據(jù)當(dāng)前種群的平均值與個體差值進(jìn)行計算:
根據(jù)式(7),定義矩形環(huán)大小的求解公式:
其中,HV表示矩形環(huán)的h和v。由此可得一個服從高斯分布N(X,σ)的矩形環(huán)。
在CPBIL 搜索中,通過基于高斯分布的概率性學(xué)習(xí)及群體協(xié)同進(jìn)化過程,引導(dǎo)算法找到優(yōu)質(zhì)的矩陣環(huán)組合。
局部搜索(Local Search,LS)是解決最優(yōu)化問題的一種啟發(fā)式算法,結(jié)構(gòu)簡單容易實現(xiàn)。在HPBIL算法框架中,當(dāng)種群完成一次搜索后,通過置換方式產(chǎn)生鄰域解,并采用貪婪方式接受。具體算法步驟如下。
算法3 LS。
輸入:當(dāng)前解s;
輸出:改進(jìn)的解s′。
在LS 算法中,第2)、第4)行通過迭代減少h和v的大小,尋找更好的矩形環(huán),5)~6)行根據(jù)當(dāng)前的h和v的大小以及當(dāng)前設(shè)施的放置次序產(chǎn)生新解,如果新解優(yōu)于舊解,就在這個矩形環(huán)上用基于兩兩交換設(shè)施放置次序的爬山算法對新解進(jìn)行改進(jìn),直到無法生成可行解,LS 算法結(jié)束,目的是在好的矩形環(huán)上集中更多的計算資源,增加算法的求精能力。在算法3中,基于兩兩交換設(shè)施放置次序的爬山算法的時間復(fù)雜度為O(n2),因此總的時間復(fù)雜度為O(h×v×n2)。
HPBIL 算法在基本PBIL 算法框架下,首先構(gòu)造矩陣環(huán)采樣的概率模型,分別采用DPBIL 和CPBIL 生成設(shè)施放置次序和矩陣環(huán)大小,并調(diào)用局部搜索過程加強(qiáng)算法求精能力。算法具體流程如算法4。其中,hvm是矩形環(huán)采樣概率模型的2×2 二維數(shù)組。在算法第1)行對pm和hvm進(jìn)行了初始化。pm的每個元素的初始值為1/n,hvm的每個元素的初始值為為設(shè)施i的pick-up/drop-off 點所在邊的長度。算法的第5)行和第6)行分別用離散PBIL 和連續(xù)PBIL 來生成設(shè)施放置次序和矩形環(huán)的h和v。第7)行通過生成的設(shè)施放置次序和矩形環(huán)的h和v來產(chǎn)生一個可行解。鑒于構(gòu)造型算法的求精能力存在不足,算法的9)~12)行調(diào)用LS算法來改進(jìn)每一代最好的top個解,一方面增強(qiáng)算法的求精能力,另一方面,使算法在好的矩形環(huán)上集中更多的計算資源。第13)行按照解的評價值從小到大排序,第14)和15)行更新當(dāng)前最優(yōu)解。最后在算法17)行和18)行,通過概率更新公式對概率模型進(jìn)行更新。在HPBIL 算法中,第7)行為通過矩形環(huán)大小和放置次序產(chǎn)生新解,該方法將解映射到布局的時間復(fù)雜性為O(n),第17)行和第18)行為更新概率模型,時間復(fù)雜度分別為M×n和2×n,所以HPBIL 算法的時間復(fù)雜度為O(G×N×(n2+n)+G×top×h×v×n2+G×M×n+2×G×n),可以近似為O(G×(N+top×h×v)×n2)。
算法4 HPBIL。
輸入:學(xué)習(xí)速率α,優(yōu)勢個體數(shù)目M,種群數(shù)量N,迭代次數(shù)G;
輸出:最優(yōu)解Best。
為了驗證HPBIL算法的有效性,對HPBIL進(jìn)行了測試,表1 是實驗所使用的13 個測試實例,其中:D4、D6、D8、D10、D12這5 個測試實例來自Das[25];R14、R16、R18 這3 個測試實例來自Rajasekharan[26];剩下的5 個測試實例由文獻(xiàn)[14]生成。表1列出了當(dāng)前每個測試實例的最佳解和文獻(xiàn)出處。
表1 測試實例基本信息Tab.1 Basic information of test instances
HPBIL 算法由Java 語言實現(xiàn),在聯(lián)想筆記本Intel Core i5-5200U @2.20 GHz 上進(jìn)行實驗,在HPBIL 算法中設(shè)置種群規(guī)模為200,算法的最大迭代次數(shù)為500,每代中對最好的個體用局部搜索算法進(jìn)行優(yōu)化,在每個測試實例上運行30 次,在算法中有兩個直接影響算法性能的兩個重要參數(shù):學(xué)習(xí)速率α和優(yōu)勢個體數(shù)量M。其中,α控制種群優(yōu)勢個體的學(xué)習(xí)速率,影響種群在解空間的搜索能力,α越大,算法的學(xué)習(xí)速率越高,收斂速度也越快,但同時也更容易陷入局部最優(yōu)解;反之α的值越小,算法的學(xué)習(xí)速率減慢,搜索能力增強(qiáng),但收斂速度也相應(yīng)減慢[15]。對于優(yōu)勢個體數(shù)量M,值越小表示優(yōu)勢個體數(shù)量越少,算法的趨同性越高,算法多樣性相應(yīng)越低;而反之M值越大,個體更新影響幅度增加,從而減低算法收斂速度;并且當(dāng)優(yōu)勢個體數(shù)量和種群數(shù)量的比值超過一定的上界范圍,算法的時間復(fù)雜度隨之增加[27]。為了合理選擇參數(shù)α和M,令α取值范圍為{0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9},M的取值范圍為{10,20,30,40,50,60,70,80,90,100}。在參數(shù)設(shè)置中,采用控制變量法分別將α和M在D4、D6、D8、D10、D12、R14、R16、R18、K20、K25、K30、K40 這12 個實例上運行10 次求平均值,實驗結(jié)果如圖4 和圖5 所示。從圖中可以看出當(dāng)α=0.2 和M=70 時,算法取得最小平均值,同時從圖4可以看出當(dāng)α越大,算法的求精能力越低。因此將α=0.2和M=70作為HPBIL的最終參數(shù)。
圖4 參數(shù)α對算法的影響Fig.4 Influence of parameters α on the algorithm
圖5 參數(shù)M對算法的影響Fig.5 Influence of parameters M on the algorithm
為了表明HPBIL 的算法性能,將算法與采用整數(shù)線性規(guī)劃的MILP[12]、遷徙鳥進(jìn)化的MMBO[13]以及當(dāng)前取得最優(yōu)解的算法RKCS[14]進(jìn)行比較。其中MMBO 的算法參數(shù)分別設(shè)置為解集數(shù)目51,鄰居數(shù)目45,變異概率0.3;RKCS的參數(shù)設(shè)置為鳥巢數(shù)等于設(shè)施的數(shù)量,被拋棄的鳥巢概率0.34,階躍縮放因子0.05,并且在R18、K20、K25 這3 個測試實例上采用了其他不同的參數(shù)設(shè)定。比較結(jié)果如表2所示。
在表2 中“—”表示算法在該測試用例上沒有實驗數(shù)據(jù),并將最好解用粗體表示。從表2可以看出HPBIL分別在D10、D12、R14、R16、R18 實例和D6、D8、D10、D12、R14、R16、R18、K20、K25、K30 實例上找到比MILP 和MMBO 更好的解。而對比于RKCS,HPBIL 在除D4、D8 和D12 外的10 個問題上找到更好的解。通過比較算法的平均尋優(yōu)能力可以看出,HPBIL算法在D6、D8、D10、D12、R14、R16、R18、K20、K25、K30、K40、K50 這12 個測試實例上有更好的平均尋優(yōu)能力,雖然在D4、D6 這兩個測試實例上,HPBIL 算法的平均計算效率不如RKCS,但在其他的測試實例上,HPBIL 算法的平均計算效率都要優(yōu)于RKCS,尤其在大規(guī)模測試實例K30、K40、K50 上,RKCS 的平均計算時間分別為1 030.48 s、2 389.74 s 和4 158.26 s,這樣的計算時間無疑是很不理想的。而HPBIL 算法在K30、K40、K50 測試實例上的平均計算時間分別為42.351 s、169.18 s 和320.04 s,可以看出HPBIL 算法的計算效率要比RKCS 算法快幾個數(shù)量級。為了表明HPBIL 算法結(jié)論的科學(xué)性,使用了Wilcoxon 秩和檢驗。Wilcoxon 秩和檢驗一般比較兩個算法之間的值,當(dāng)?shù)贸龅膒值小于0.05時,則表明兩個算法之間存在顯著性差異。通過比較HPBIL 和RKCS的平均值,檢驗所得出的R+、R-和p值分別為78、0 和0.002。結(jié)果表明HPBIL算法顯著優(yōu)于RKCS的。
表2 幾種算法的性能比較Tab.2 Performance comparison of different algorithms
由于PBIL 算法是群體進(jìn)化算法中的一種,為了驗證HPBIL算法在求解CLLP問題相較于其他進(jìn)化算法的優(yōu)越性,在與HPBIL 相同評價次數(shù)的情況下,與差分進(jìn)化(Differential Evolution,DE)算法進(jìn)行比較。實驗結(jié)果如表3 所示,表3 中帶“*”表示DE 的結(jié)果優(yōu)于RKCS,并且為了突出比較結(jié)果,將更優(yōu)的算法結(jié)果加粗表示。從表3 中可以看出:除了在D8、D10、D12 這3 個測試實例上HPBIL 算法的平均尋優(yōu)能力弱于DE算法,在其他測試實例上HPBIL算法都要優(yōu)于DE算法;尤其在K40、K50 這兩個測試實例上,HPBIL 算法的計算效率要比DE算法高。為了表明結(jié)果的科學(xué)性,使用Wilcoxon秩和檢驗比較HPBIL 和DE 的平均值,檢驗所得出的R+、R-和p值分別為71、7 和0.021,結(jié)果表明HPBIL 算法是顯著優(yōu)越于DE的。
表3 本文算法與差分進(jìn)化算法的性能比較Tab.3 Performance comparison of the proposed algorithm with differential evolution algorithm
值得說明的是,這里使用的DE算法對CLLP問題的求解,除了經(jīng)典DE算法框架外,采用了隨機(jī)鍵表示來獲得設(shè)施放置次序,并同時對設(shè)施放置次序和矩形環(huán)大小尋優(yōu),DE 的整體性能明顯優(yōu)于MILP、SA、MMBO 和RKCS。這說明本文針對CLLP 問題所設(shè)計的同時優(yōu)化設(shè)施放置次序和矩形環(huán)大小的策略具有算法普適性,可擴(kuò)展于多數(shù)解決該問題的方法中;另一方面,通過算法之間的對比可以發(fā)現(xiàn),PBIL 所基于的概率計算方式簡單高效且具備競爭學(xué)習(xí)的優(yōu)點,在解決CLLP方面較之其他算法具有更好的性能。
為了直觀展示HPBIL 的算法性能,給出D10、D12、R14、R16、R18、K20 這6 個測試實例放置布局圖,如圖6~11 所示。從這些圖可以看出,在每一個實例中,得到的布局圖均充分利用了矩形環(huán)的8 個側(cè)面,結(jié)構(gòu)非常緊湊,空間利用率得到極大提升。
圖6 D10實例的最優(yōu)布局Fig.6 Optimal layout of D10 instance
圖7 D12實例的最優(yōu)布局Fig.7 Optimal layout of D12 instance
圖8 R14實例的最優(yōu)布局Fig.8 Optimal layout of R14 instance
圖9 R16實例的最優(yōu)布局Fig.9 Optimal layout of R16 instance
圖10 R18實例的最優(yōu)布局Fig.10 Optimal layout of R18 instance
圖11 K20實例的最優(yōu)布局Fig.11 Optimal layout of K20 instance
本文對求解CLLP 的PBIL 算法進(jìn)行了研究,提出了一個HPBIL 算法,算法首先混合了離散PBIL 和連續(xù)PBIL 操作,可同時對設(shè)施的放置次序和矩形環(huán)大小進(jìn)行優(yōu)化。該操作方法克服了傳統(tǒng)經(jīng)典算法的高計算復(fù)雜度的缺點,極大地提高了求解CLLP 的效率,并且可推廣至其他啟發(fā)式算法框架中;另一方面,HPBIL混合了局部搜索算法,用局部搜索算法對每一代的部分最優(yōu)解進(jìn)行進(jìn)一步優(yōu)化,提高了算法的求精能力。仿真結(jié)果表明HPBIL 算法在求解CLLP 算法時具有良好的性能,總體性能明顯優(yōu)于其他算法。
PBIL 算法是一個單變量分布估計算法,并沒有考慮變量之間的關(guān)系,然而CLLP中設(shè)施的放置次序之間可能存在依賴關(guān)系。所以,使用多變量分布估計算法求解CLLP是未來的研究方向之一,另外,元啟發(fā)式算法在求解組合優(yōu)化和連續(xù)優(yōu)化問題時需要不同的設(shè)計方案,另外一個可能的方向是混合多種啟發(fā)式算法圍繞CLLP的混合優(yōu)化屬性進(jìn)行針對性研究。