李永鈺,馬 良,劉 勇
上海理工大學 管理學院,上海 200093
目前智能優(yōu)化算法發(fā)展迅速,出現(xiàn)了許多具有代表性的優(yōu)化算法。其中,受生物學原理的啟發(fā)提出的群體智能優(yōu)化算法是一類較為常見的優(yōu)化算法,它們是從自然界群居生物的覓食、繁殖等行為或群體捕獵及生存策略中獲得靈感,設計模型對問題進行求解的優(yōu)化算法,例如蟻群優(yōu)化算法、粒子群優(yōu)化算法、鯨魚優(yōu)化算法和哈里斯鷹優(yōu)化算法等。自上述算法提出以來,眾多學者針對其不足提出改進,并將其應用于解決不同類型的優(yōu)化問題[1]。例如文獻[2]將粒子群優(yōu)化算法進行改進,并應用于關聯(lián)規(guī)則挖掘領域;文獻[3]利用改進群智能優(yōu)化算法,進行全局域中混沌局部的同步搜索,實現(xiàn)海上物流配送路徑優(yōu)化。
此外,還有受物理學原理的啟發(fā)提出的優(yōu)化算法。模擬退火算法就是一個經典的基于物理學原理的優(yōu)化算法,其核心思想是模擬金屬熱浴之后的緩慢降溫(退火)達到能量最低態(tài)(即常溫固態(tài))的過程,以隨機“跳阱”策略克服局部搜索法的缺陷,搜索優(yōu)化問題的全局最優(yōu)解[4];引力搜索算法是受到牛頓萬有引力定律的啟發(fā)而提出的優(yōu)化算法,其讓種群粒子具有質量,且質量根據(jù)粒子的適應度值進行計算[5];隨機分形搜索算法利用分形的擴散特性進行尋優(yōu),算法的擴散過程采用高斯隨機游走方式來開發(fā)問題的搜索空間,而更新過程則分別對個體的分量及個體本身采用相應的更新策略來進行更新,以此進行全局搜索和局部搜索[6]。隨著求解的問題逐漸呈現(xiàn)出大規(guī)模、高難度和不確定性等特點,近年來不斷有新型智能優(yōu)化算法提出,用于解決不同類型的優(yōu)化問題。
Lichtenberg 算法(Lichtenberg algorithm,LA)是由Pereira等人于2021年提出的一種新型智能優(yōu)化算法[7],它是受閃電傳播這一物理現(xiàn)象啟發(fā)而產生的,算法以Lichtenberg 圖形(Lichtenberg figure,LF)來模擬閃電在空中生成的圖形。LF是分形圖的一種。與其他基于物理學原理的智能優(yōu)化算法相比,LA算法具有概念簡單、容易實現(xiàn)等優(yōu)點。
目前,對LA算法的研究還處于起步階段。文獻[7]將LA算法應用于對復合材料機械結構的復雜逆損傷問題進行識別和評價,將其與遺傳算法和向日葵優(yōu)化算法進行對比。實驗證明,LA算法可以有效地識別損傷,而且即使在噪聲響應低和損傷嚴重性大的特定情況下,它也能夠檢測到損傷。文獻[8]首次將LA 算法應用于識別薄板類結構裂紋的問題,用LA 算法生成表征裂紋的變量,若存在裂紋,則識別其擴展方向和強度。實驗結果表明LA算法在表征邊緣裂紋的擴展方向和強度方面展現(xiàn)出了優(yōu)異的效果。文獻[9]使用LA 算法對假肢結構模型參數(shù)進行優(yōu)化,并與粒子群優(yōu)化算法進行了對比,驗證了LA算法的優(yōu)良性能。不僅如此,假肢結構還可以根據(jù)用戶需求進行制造和使用,并且可以利用LA算法分析各參數(shù)對假肢結構體的影響,并制作出最適合使用者的假肢結構。
上述研究成果表明了LA算法在求解工程應用問題上良好的效果。與此同時,LA算法和其他智能優(yōu)化算法一樣,也存在著過早收斂、易陷入局部最優(yōu)等問題。針對上述問題,本文提出融合分區(qū)導向搜索與自適應擴散更新的新型Lichtenberg算法(novel Lichtenberg algorithm,NLA),分別將螺旋系數(shù)和Levy因子融入對中心區(qū)域和邊緣區(qū)域粒子的更新中,增強算法的全局搜索能力;然后利用群體粒子的位置和適應度值信息進行自適應擴散更新,提高算法跳出局部最優(yōu)的能力。
LA算法是一種基于群體和軌跡的優(yōu)化算法。算法預先生成LF,算法的尋優(yōu)過程即為對LF 進行放縮、旋轉、產生二次分形圖三種變換操作,從而實現(xiàn)對構成LF的粒子位置進行更新。上述變換操作完成后,隨機選取構成LF 的部分粒子進行適應度值評估,僅保留適應度值最優(yōu)的一個粒子,作為下一次迭代的初始點。當算法達到預設最大迭代次數(shù)時,算法停止,輸出最優(yōu)解。LA算法包括初始化LF和基于LF的變換操作兩個階段。
Turner提出,LF可以通過許多粒子的隨機生長過程模擬產生[10]。擴散限制聚集(diffusion limited aggregation,DLA)模型是一種隨機的團簇生長模型,由Witten 和Sander模擬固體顆粒的團簇生長數(shù)值模型而提出,這種模型會導致復雜的混沌行為[11]。通常可以用分形幾何圖形來刻畫,因此本文選取DLA模型構造LF。
構成分形圖的粒子的位置更新通過作用在分形圖上的放縮、旋轉、產生二次分形圖的變換操作實現(xiàn)。
1.2.1 放縮
放縮操作即對初始化生成的分形圖的大小乘以一個0~1之間的隨機數(shù),稱為放縮系數(shù)。分形圖的原始大小即為待優(yōu)化問題搜索空間的大小。在每次迭代時,分形圖都會以不同的大小繪制出來。這一操作縮短了每次迭代時各個點之間的距離,且僅改變分形圖的形狀大小,其余特征均不改變,提高了LA算法的搜索效率。
1.2.2 旋轉
旋轉操作即對分形圖進行隨機旋轉。隨機給定一個旋轉角度,并根據(jù)笛卡爾坐標旋轉方程對整個圖形進行旋轉。這僅適用于對二維和三維分形圖進行旋轉。
笛卡爾二維坐標旋轉方程如式(1),α表示旋轉角度。
其中,x、y分別表示構成分形圖的一個粒子在平面直角坐標系的橫坐標和縱坐標值,x′、y′分別是粒子經旋轉操作后的橫、縱坐標值。
笛卡爾三維坐標旋轉方程如式(2),γ、β、α分別是作用在x、y、z軸上的旋轉角度。
其中,x、y、z分別表示構成分形圖的一個粒子在空間直角坐標系的橫坐標值、縱坐標值和豎坐標值,x′、y′、z′分別是粒子經旋轉操作后的橫、縱、豎坐標值。
由于旋轉角度的隨機性,使得粒子在每次迭代時的位置都是不同的,增加了分形圖粒子位置的多樣性,避免了簡單的重復操作,有利于算法跳出局部最優(yōu)。
1.2.3 生成二次分形圖
生成二次分形圖這一變換操作利用局部搜索改進系數(shù)(ref)來實現(xiàn),ref是介于0~1之間的隨機數(shù)。該操作會在原分形圖的基礎上產生一個新的分形圖,即為二次分形圖,其大小通常是原圖的0~100%。新生成的二次分形圖與原圖有相同的初始迭代點、放縮系數(shù)和旋轉角度。如果改進系數(shù)為0,算法在本次迭代過程中將一直在同一個分形圖上進行尋優(yōu),不會產生二次分形圖,經改進系數(shù)作用后產生的二次圖將會大大提高算法的局部搜索能力。圖1 為初始化形成的LF 經過放縮、旋轉和產生二次分形圖操作后的LF,藍色部分的圖形為初始化的LF,紅色部分為二次分形圖。
圖1 進行放縮、旋轉和產生二次分形圖后的LFFig.1 LF after retracting,rotating and generating quadratic fractals
基本LA 算法中個體的位置會受到當前位置、目標位置和群體其他個體位置的共同影響,這表示構成分形圖的所有個體都影響每個個體的下一個位置。因此LA算法的全局搜索能力相對有所不足,也就是說LA算法易出現(xiàn)在局部最優(yōu)值附近停滯的情況。而算法前期需要大范圍的全局搜索來找到所有可能的解。分形圖作為混沌形態(tài)具有以下特征:遠離中心吸引子的一切運動都趨向于中心,屬于“穩(wěn)定”的方向;一切到達中心吸引子內的運動都互相排斥,對應于“不穩(wěn)定”方向,因此算法的迭代尋優(yōu)過程就是粒子不斷趨向中心吸引子的過程??紤]到粒子所處區(qū)域的不同表現(xiàn)出的差異性,對搜索空間的尋優(yōu)過程也應當劃分成不同區(qū)域各自進行更新。文獻[12]將群體劃分為兩部分,分別采取worker phase和breeder phase兩種更新規(guī)則進行更新。雖然該更新策略具有較強的開發(fā)能力,但是它存在“過度開發(fā)”問題,會極易導致粒子陷入局部最優(yōu)。在此基礎上,設計分區(qū)導向搜索策略。根據(jù)個體的適應度值將整個搜索空間劃分為兩個區(qū)域來指導個體尋優(yōu),群體中適應度值排名前20%的個體離中心吸引子更近,構成中心區(qū)域;剩下80%的個體離中心吸引子較遠,構成邊緣區(qū)域。由于中心區(qū)域和邊緣區(qū)域在搜索空間處于不同的區(qū)域,需要分別設計針對性的更新方法。結合螺旋系數(shù)的周期趨向性和Levy 變異的隨機性,實現(xiàn)中心區(qū)域的個體向最優(yōu)位置靠攏,同時邊緣區(qū)域的個體由子空間到整體解空間進行全局搜索。
2.1.1 中心螺旋搜索
由于中心區(qū)域的粒子適應度值較優(yōu),離全局最優(yōu)的位置較近,說明它們正沿著正確的搜索方向搜索。為了使它們更快地趨向到全局最優(yōu)位置,要求這些粒子能夠在搜索空間內進行充分的探索,擴大搜索范圍。因此,在更新過程中以全局最優(yōu)粒子和中心區(qū)域的最優(yōu)粒子為導向,將鯨魚優(yōu)化算法的螺旋搜索系數(shù)ebmcos(2πm)進行改進,步長因子b由固定值改為隨迭代次數(shù)改變的動態(tài)步長因子,賦予其動態(tài)趨向性,可以動態(tài)改變個體的位置更新步長,使得中心區(qū)域的粒子在迭代前期可以大范圍地探索最優(yōu)位置,更新范圍也隨著迭代次數(shù)的增加而隨之減小,迭代后期可以圍繞目標位置進行周期性精細搜索。步長因子b定義如下:
加入了動態(tài)步長因子b的螺旋搜索系數(shù)可以加快粒子趨向中心吸引子這一過程,從而提升算法尋優(yōu)精度,加快收斂速度。對中心區(qū)域粒子更新的數(shù)學表達式如式(3)所示:
其中,gbest是全局最優(yōu)粒子,為中心區(qū)域中適應度值最優(yōu)的粒子,ebmcos(2πm)為螺旋搜索系數(shù)。圖2是模擬粒子進行周期性螺旋搜索的軌跡圖,通過圖2可以直觀地看出當前粒子以步長x=ebmcos(2πm)向全局最優(yōu)粒子螺旋式靠近。其中,t為當前迭代次數(shù),n_iter為最大迭代次數(shù)。
圖2 螺旋搜索軌跡圖Fig.2 Spiral search trajectory graph
2.1.2 邊緣擾動搜索
邊緣粒子由于適應度值較差,遠離中心吸引子,這些粒子的搜索方向和步長均需要重新調整,它們需要探索更廣闊的區(qū)域,才能向全局最優(yōu)靠近。受文獻[13]提出的對布谷鳥算法的最優(yōu)鳥窩位置進行分階段動態(tài)擾動的啟發(fā),提出一種改進的邊緣擾動搜索策略,通過引入Levy 飛行機制,利用Levy 飛行方向和步長的不確定性對粒子位置增加擾動,提高群體的多樣性?;镜腖evy飛行機制在尋優(yōu)過程中雖然加強了算法的全局搜索能力,但是還會存在陷入局部最優(yōu)的問題。針對上述問題,引入sign函數(shù),利用sign函數(shù)的分段特征,強化當前粒子的隨機學習過程。sign函數(shù)表達式如下:
Levy分布的數(shù)學表達式如下:
其中,u、v均為0 到1 之間服從均勻分布的隨機數(shù),ω=1.5。
邊緣擾動策略的公式如下:
其中,Xrand_1(t)是從邊緣粒子中隨機選擇的,βmin=0.2,θ是(0,2]服從均勻分布的隨機數(shù)。當sign函數(shù)取值為1時,個體由子空間到整體解空間進行Levy全局搜索,大范圍搜尋最優(yōu)位置;當sign 函數(shù)取值為0 時,個體保持當前位置不變;當sign函數(shù)取值為-1 時,產生邊緣擾動搜索反向解,通過動態(tài)地調整搜索方向,可以避免算法陷入局部最優(yōu)、搜索停滯的情況,幫助算法脫離局部極值。sign 函數(shù)的三種取值會使個體有三種不同的搜索方向進行選擇,有效避免了迭代后期種群多樣性下降,算法易早熟收斂的問題。在二維搜索空間中,假設群體規(guī)模為50,搜索空間為[-100,100],繪制了不同迭代時刻的個體分布圖,如圖3所示。
圖3 不同迭代時刻的個體分布圖Fig.3 Individual distribution map at different iterations
迭代初期粒子分布在[-100,50]區(qū)間,隨著迭代次數(shù)增加,粒子逐漸向全局最優(yōu)附近靠攏,主要分布在[-0.1,0.1]區(qū)間。由圖3可以看出,迭代初期群體多樣性較高,個體分布在搜索空間的廣闊區(qū)域內,可以大范圍地搜尋最優(yōu)解,確定后期搜索的大方向;隨著迭代次數(shù)的增加,個體不斷向全局最優(yōu)靠攏,種群多樣性也隨之降低。進一步證明將螺旋搜索系數(shù)和Levy變異相結合可以加強算法的全局搜索能力,上述兩種更新策略相結合是切實可行的。
在LA 算法原有的更新操作中,構成分形圖的各粒子之間沒有信息交互,單純依靠對分形圖進行放縮、旋轉等操作實現(xiàn)粒子的位置更新,因此算法尋優(yōu)能力較弱。適應度值是反映個體與全局最優(yōu)之間關系的重要參數(shù),適應度值較優(yōu)的粒子所攜帶的位置信息更有利于算法進行尋優(yōu),因此如果能在個體更新時充分利用群體粒子的適應度值,可以有效提高算法跳出局部最優(yōu)的能力[14]。但需要注意的是,如果構成分形圖的粒子集中于某一方向進行搜索,很可能陷入局部最優(yōu),為了避免這種情況的發(fā)生,需要確定一個合適的選擇概率,既要保證大部分粒子向全局最優(yōu)方向進行搜索,也要保證小部分粒子的獨立搜索能力。文獻[15]提出的具備觀測觸發(fā)機制的透鏡成像學習,嵌入一種基于迭代次數(shù)和最優(yōu)適應度值的觀測算子,來觀測算法是否陷入局部最優(yōu)。
本文在此基礎上,提出了自適應擴散對算法進行改進,引入累積概率隨機選擇群體粒子與當前粒子進行交互,累積概率作為調節(jié)參數(shù),使得個體根據(jù)種群所處的實際環(huán)境以及自身的適應度值動態(tài)調節(jié),避免算法后期易陷入局部最優(yōu)的問題。自適應擴散策略如式(10)所示:
其中,r是服從[0,1]均勻分布的隨機數(shù),X(k,j)是按累積概率從群體中隨機選擇的一個粒子在其維度j上的值,隨機粒子k的具體選擇方法見式(12),fitnessk是粒子k的適應度值。通過對隨機粒子k與當前粒子的適應度值進行比較,選擇更優(yōu)的個體作為導向進行擴散更新。
其中,rand_num是[0,1]服從均勻分布的隨機數(shù),Ci是累積概率。每次更新時,先計算群體每個粒子的累積概率Ci,然后生成rand_num,并判斷rand_num落在哪一個累積概率區(qū)間,則該粒子就被選中為X(k,j)。Ci的數(shù)學表達式如式(13)所示:
通過概率選擇的隨機性,當前個體與其他個體間的信息交流更加豐富,個體在探索階段會根據(jù)收集到的信息自適應調節(jié)自己的搜索方向,避免隨機選擇粒子所造成的盲目跟隨,使得粒子能有效跳出當前區(qū)域。
NLA 算法采用分區(qū)導向搜索和自適應擴散對算法進行改進,下面給出NLA算法的實現(xiàn)步驟和偽代碼,并對NLA算法進行時間復雜度分析。
NLA算法的主要計算步驟如下:
步驟1初始化NLA算法參數(shù),隨機生成初始解,計算適應度值并擇優(yōu)保存作為生成LF的初始點。
步驟2生成LF(本文只在步驟2生成一次分形圖,后續(xù)迭代均在此分形圖基礎上進行),并對其進行放縮、旋轉、產生二次分形圖的變換操作。
步驟3分別從原LF 和生成的二次LF 中隨機選擇相同數(shù)量的粒子,其個數(shù)為群體規(guī)模的1/2。
步驟4將步驟3 選擇出的粒子按照適應度值劃分為兩組,進行分區(qū)導向搜索。
步驟5計算更新后的適應度值,并按照式(7)進行自適應擴散更新。
步驟6計算每個粒子更新后的位置和適應度值,將適應度值最優(yōu)的粒子保存,作為下一次迭代的初始點。
步驟7重復步驟2~步驟6的更新迭代過程,達到預設最大迭代次數(shù)時,終止NLA算法并輸出最優(yōu)解。
LA 算法的時間復雜度如下:假設群體規(guī)模為N,搜索空間維度為D,則LA初始化分形圖的時間復雜度為O(N×D),對分形圖進行放縮、旋轉、產生二次分形圖的變換操作的時間復雜度為O(N),計算個體適應度值的時間復雜度為O(N×D),LA 總的時間復雜度為O(N×D)。
同理,進行中心螺旋搜索的時間復雜度為O(N×D),進行邊緣擾動搜索的時間復雜度為O(N×D),采取自適應擴散更新策略的時間復雜度為O(N×D),因此NLA 算法總的時間復雜度為O(N×D)。因為NLA 算法和LA 算法的時間復雜度處于同一水平,所以上述改進策略并未對基本LA算法產生負面影響。
為了驗證本文所提NLA 算法的有效性,采用CEC2021測試函數(shù)和20個不同特點的高維測試函數(shù)進行數(shù)值實驗。仿真實驗基于Intel?CoreTMi7-8565U CPU@1.80 GHz 2.00 GHz,16.0 GB內存,以及Win10操作系統(tǒng),仿真軟件為MATLAB R2020b。
將NLA 算法與基本LA 算法[7]、粒子群優(yōu)化算法(particle swarm optimization,PSO)[16]、差分進化算法(differential evolution,DE)[17]、鯨魚優(yōu)化算法(whale optimizaiton algorithm,WOA)[18]、金鷹優(yōu)化算法(golden eagle optimization,GEO)[19]、食肉植物算法(carnivorous plant algorithm,CPA)[20]進行比較,算法參數(shù)設置見表1。其中NLA 算法各參數(shù)的含義如下:Np為生成LF 的預設粒子數(shù),Rc為生成LF 的預設半徑,refinement(ref)為生成二次分形圖的比例系數(shù)。
表1 各算法參數(shù)設置Table 1 Experimental parameter settings of each algorithm
本文對CEC2021 函數(shù)的尋優(yōu)實驗參考文獻[21]進行。CEC2021 測試函數(shù)是對表2 中10 個基本函數(shù)施加3種不同的變換操作而產生,3種變換操作包含Bias(偏差)、Shift(移位)和Rotation(旋轉),對每種操作都有添加和不添加2種選擇,共8種不同的組合方式,如表3(0代表不添加此變換,1代表添加此變換),總計10×8=80個不同的函數(shù),進行變換操作后的函數(shù)最優(yōu)值不變。本文選取表3 中勾選的4 種組合方式進行20 維函數(shù)的測試實驗。迭代次數(shù)為200 次,種群規(guī)模為50,每個算法獨立運行30 次,實驗結果如表4 所示。由表4 可知,對于大部分函數(shù)來說,DE 和GEO 求得結果的平均值較大,說明DE 和GEO 尋優(yōu)能力的不足,而且跳出局部最優(yōu)的能力較弱。NLA算法在最優(yōu)值、平均值、標準差這3 個指標上不僅是上述7 種算法中最好的,而且它取得了全部函數(shù)的理論最優(yōu)值,收斂精度更高,尋優(yōu)穩(wěn)定性也更強。對單峰函數(shù)F1尋優(yōu)時,PSO的最優(yōu)值8.32E-05,WOA的最優(yōu)值5.21E-33,而NLA算法的最優(yōu)值是0;對添加Bias和Rotation操作的尋優(yōu)難度大的函數(shù),NLA算法相較于其他6種智能優(yōu)化算法,在求解精度上具有明顯的優(yōu)勢,對于函數(shù)F2~F4,NLA 算法和WOA 均找到了最優(yōu)值,但NLA 算法較于WOA,在平均值和標準差上均有數(shù)百個量級的優(yōu)勢;另外,無論是對于單峰函數(shù)、基礎函數(shù)、混合函數(shù)還是組合函數(shù),NLA算法在測試函數(shù)上的尋優(yōu)結果均優(yōu)于LA算法,而且NLA算法的標準差均為0,說明NLA算法相較于基本LA算法,具有更穩(wěn)定的尋優(yōu)能力。根據(jù)上述實驗結果分析,本文提出的改進算法具有更高的求解精度和更穩(wěn)定的尋優(yōu)能力。
表2 CEC2021測試函數(shù)Table 2 CEC2021 test functions
表3 作用于基礎函數(shù)上的8種組合變換Table 3 Eight combined transformations acted on basic functions
本文選取了部分函數(shù)的迭代尋優(yōu)結果繪制了收斂曲線,由于大部分函數(shù)的收斂曲線較為相似,只挑選兩種具有代表性的呈現(xiàn),其中縱坐標取以10為底的對數(shù),如圖4所示。由收斂曲線可知,NLA算法無論是在求解精度還是收斂速度上,都明顯優(yōu)于其他算法。針對F3,雖然WOA算法也收斂到了最優(yōu)值,但NLA算法的收斂速度明顯更快;針對F1 這個尋優(yōu)難度大的函數(shù),NLA算法也表現(xiàn)出了優(yōu)越的性能,可以快速地收斂到最優(yōu)值,而且NLA算法在迭代初期就達到了WOA算法的求解精度,這說明分區(qū)導向搜索加強了算法的全局搜索能力,此后基于自適應擴散的作用,使得算法跳出局部最優(yōu)繼續(xù)進行搜索,最終收斂到最優(yōu)值。NLA 算法在初始階段的適應度值就優(yōu)于其他對比算法,說明分區(qū)導向搜索一定程度上提高了算法的全局搜索性能。綜合對表4和圖4的分析,NLA算法針對復雜的函數(shù)優(yōu)化問題具有較好的求解精度和收斂速度,性能提升較大,是一種高效的算法。
表4 20維測試函數(shù)結果Table 4 Results for 20 dimensional functions
表4 (續(xù))
圖4 CEC函數(shù)收斂曲線對比Fig.4 Comparison of CEC functions convergence curves
本文將上述7 種算法進行1 000 維函數(shù)的對比實驗,分別在20個高維測試函數(shù)上獨立運行30次,具體函數(shù)信息見表5。所有算法的群體規(guī)模設為50,迭代次數(shù)設為200,實驗結果如表6所示。從表6可以看出,NLA算法是7 種算法中尋優(yōu)結果最優(yōu)的。對于這20 個測試函數(shù),NLA算法能夠找到除函數(shù)f5 和f7 外其他所有函數(shù)的理論最優(yōu)值,并且得到的最優(yōu)值、標準差都為理論最優(yōu)值。對于尋優(yōu)難度較大的f5,NLA 算法雖未取得其理論最優(yōu)值,但尋優(yōu)精度比LA 算法提高了十幾個量級;對于f7,雖然上述算法都無法找到其理論最優(yōu)值,但NLA算法的最優(yōu)值更接近理論最優(yōu)值,與LA算法相比,NLA算法找到的最優(yōu)值提高了11個數(shù)量級的精度,且比其他對比算法有數(shù)個量級的提升;對于尋優(yōu)難度較大的函數(shù)f19,大多數(shù)算法的尋優(yōu)精度都很低,而NLA算法收斂到理論最優(yōu)解,說明本文所提改進策略能夠提高算法跳出局部最優(yōu)的能力。同時從表5 的標準差可知,NLA 算法在17 個測試函數(shù)上得到的標準差都為0,說明NLA算法具有較強的穩(wěn)定性。
表5 基礎函數(shù)Table 5 Basic functions
表6 高維測試函數(shù)結果Table 6 Results for high-dimensional test functions
表6 (續(xù))
為了更加直觀地對比各算法的收斂精度和收斂速度,本文根據(jù)迭代次數(shù)和適應度值繪制了測試函數(shù)的收斂曲線圖像,其中縱坐標取以10 為底的對數(shù),如圖5 所示。由收斂曲線可知,基本LA 算法在迭代前期的尋優(yōu)性能較差,而在后期也陷入了局部最優(yōu),而NLA算法在整個迭代過程中,尋優(yōu)性能良好,不斷向最優(yōu)解收斂。具體來說,對于f1,NLA算法的最優(yōu)值在迭代過程中呈現(xiàn)指數(shù)級的下降速度,其收斂速度要遠優(yōu)于其他算法,其后期也表現(xiàn)出了較強的局部搜索能力;對于f5,NLA算法在前期更側重于對搜索空間進行開發(fā),因此放慢了收斂速度,但是在算法后期粒子找到最優(yōu)區(qū)域以后,算法較強的尋優(yōu)能力使得算法快速收斂;對于f7,算法在迭代前期對搜索空間進行充分的探索,但在搜索后期,收斂速度減慢,但最終的收斂精度仍高于其他對比算法;對于f17,NLA算法的表現(xiàn)相當優(yōu)異,僅用了幾次迭代就收斂到最優(yōu)值,雖然WOA算法也找到理論最優(yōu)值,但NLA算法的分區(qū)導向搜索和自適應擴散使得算法在迭代初期大范圍地搜索,確定潛在最優(yōu)解所在位置,迭代后期收斂速度加快,算法快速趨向于優(yōu)秀粒子,逐漸收斂到最優(yōu)值。針對大部分函數(shù),NLA 算法的收斂精度要明顯優(yōu)于其他算法。綜上,NLA 算法優(yōu)化高維函數(shù)的可行性和有效性得以證明。
圖5 高維函數(shù)收斂曲線對比Fig.5 Comparison of high-dimensional functions convergence curves
Wilcoxon 秩和檢驗是一種非參數(shù)統(tǒng)計檢驗方法,可以針對復雜的數(shù)據(jù)分布進行檢驗,因此本文選取Wilcoxon 秩和檢驗方法進一步驗證各算法之間差異性是否顯著。選取NLA 算法在CEC2021 測試函數(shù)集上的運行結果與LA、PSO、DE、WOA、GEO、CPA的運行結果進行Wilcoxon 秩和檢驗并計算p-value,由于篇幅限制,僅列出部分10 維函數(shù)的實驗結果,如表7 所示。當p-value 值小于5%時,說明兩種算法的差異性顯著,反之,則沒有。由實驗結果可知,大部分的p-value值都是小于5%的,因此可以認為NLA算法對CEC2021函數(shù)上的尋優(yōu)性能優(yōu)勢是明顯的,進一步證明了本文所提NLA算法的有效性。
表7 Wilcoxon秩和檢驗結果Table 7 Wilcoxon rank sum test result
為了驗證NLA 算法的有效性,將NLA 算法與其自身的兩個變體進行測試,兩個變體為僅加入分區(qū)導向搜索策略的LA 算法(LA1)和僅加入自適應擴散更新的LA算法(LA2)。本文選取f5、f7 這兩個尋優(yōu)難度較大的高維函數(shù)和CEC2021 的兩個函數(shù)進行尋優(yōu)對比,分別為不添加任何變換操作[000]的F5 和僅添加旋轉操作[001]的F9,其參數(shù)設置與上述實驗完全相同。三種算法的對比結果如表8所示。
表8 不同改進策略對比結果Table 8 Comparison of different improvement strategies
由表8所示結果可以看出,針對函數(shù)F5,僅使用分區(qū)導向搜索的LA1和僅使用自適應擴散的LA2都找到了最優(yōu)值,但其平均值和標準差較差,而NLA算法結合了兩種策略的優(yōu)勢,既能找到最優(yōu)值,且均值和方差均達到最優(yōu)效果;而對函數(shù)F9,融入分區(qū)導向搜索的LA1算法的尋優(yōu)結果與最優(yōu)值很接近,穩(wěn)定性也較好,融入自適應擴散的LA2算法找到了最優(yōu)值,但尋優(yōu)效果不穩(wěn)定,NLA 算法展現(xiàn)了良好的尋優(yōu)效果。針對f5、f7 這兩個尋優(yōu)難度大的函數(shù),采用兩種改進策略結合的NLA算法的尋優(yōu)精度和穩(wěn)定性要優(yōu)于采用單一改進策略的LA算法。通過對比LA、LA1、LA2的尋優(yōu)效果,兩種改進策略對算法的性能均有一定程度的提升,其中融入分區(qū)導向搜索的LA 算法(LA1)的尋優(yōu)穩(wěn)定性更好,融入自適應擴散的LA 算法(LA2)的尋優(yōu)精度更好,找到的最優(yōu)值也與NLA算法更為接近。而結合兩種改進策略的NLA算法對基本LA算法性能提升更大。
本文針對LA 算法在求解復雜函數(shù)優(yōu)化問題時,尋優(yōu)精度低、收斂速度慢、易陷入局部最優(yōu)等問題,從混沌與分形的角度出發(fā),結合復雜系統(tǒng)的內在特征,提出融合分區(qū)導向搜索與自適應擴散更新的新型Lichtenberg算法(NLA)。首先,將構成分形圖的粒子根據(jù)適應度值進行分區(qū),靠近吸引子的那部分中心粒子采用螺旋搜索,遠離吸引子的那部分邊緣粒子采用擾動搜索,加強算法的全局搜索能力。然后,結合復雜系統(tǒng)各部分之間的交互依存特征,充分利用各粒子的位置和適應度值信息,進行自適應擴散更新,避免算法陷入局部最優(yōu)。為驗證NLA 算法的性能,選取了CEC2021 測試函數(shù)以及20個不同特點的高維函數(shù)進行數(shù)值實驗。結果證明,與LA、PSO、DE、WOA、GEO、CPA 相比,本文提出的NLA算法在優(yōu)化復雜函數(shù)和高維函數(shù)時尋優(yōu)精度高,穩(wěn)定性更強,顯示了良好的效果。將NLA 算法應用于智慧醫(yī)療系統(tǒng)資源調度是進一步的工作。