王宗山,丁洪偉,王 杰,李 波,侯 鵬,楊志軍,4
(1.云南大學 信息學院,昆明 650500;2.鄭州大學 機械與動力工程學院,鄭州 450066; 3.復旦大學 計算機科學技術學院,上海 201203;4.云南省教育廳 教育科學研究院,昆明 650021)
樽海鞘群算法(salp swarm algorithm,SSA)[1]是2017年提出的一種新型群體智能優化算法,它源于對海洋生物樽海鞘導航和群體覓食行為的模擬,通過領導、跟隨等過程,構建一種高效的尋優方案。SSA算法具有尋優機制簡單、參數設置少、全局搜索能力強等特點。文獻[1]的研究表明,SSA算法的尋優能力優于遺傳算法(genetic algorithm,GA)[2]、粒子群優化(particle swarm optimization,PSO)[3]、人工蜂群 (artificial bee colony,ABC)算法[4]等傳統智能優化算法,與灰狼優化(grey wolf optimizer,GWO)[5]、鯨魚優化算法(whale optimization algorithm,WOA)[6]、螢火蟲算法(firefly algorithm,FA)[7]等新型群體智能算法相比,SSA也有較強的競爭力[1]。自提出以來,SSA算法已被成功應用于目標分類[8]、特征選擇[9]、圖像處理[10]、混合動力系統[11]等領域中。
然而,與其他元啟發式算法相似,SSA算法也存在開發與勘探能力不平衡、尋優精度低、易陷入局部最優等缺點。針對這些問題,研究學者開發出了許多性能較好的SSA變體。文獻[12]在領導者位置更新公式中引入一種控制搜索范圍的非線性衰減因子,提高算法的局部搜索能力,同時在跟隨者位置更新公式中引入動態學習策略,增強精英個體對領導者的協助作用,以此提高算法的尋優能力。文獻[13]提出追隨者共生概念,可以優化樽海鞘追隨者的跟隨方式,從而增強算法的全局開采能力,并通過引入非均勻高斯變異提高種群多樣性。文獻[14]通過引入瘋狂算子對食物源進行擾動,以此提高種群多樣性,同時提出自適應慣性權重,能夠平衡算法的開采與勘探能力。文獻[15]提出動態慣性權重,以此優化領導者的位置更新方式,從而提高算法的全局搜素能力,并隨算法迭代自適應地調整樽海鞘領導者和追隨者的數量,加快收斂速度的同時提高收斂精度。文獻[16]在領導者位置更新公式中引入指數系數,并在跟隨者位置更新公式中引入隨機參數,加快算法收斂速度的同時改善了算法的求解精度。文獻[17]引入一種突變機制幫助算法跳出局部最優,改善了算法求解精度不足的問題。文獻[18]將SSA算法與PSO算法進行混合,提高算法勘探階段的靈活性,獲得了更高的尋優效率,并成功應用于特征提取問題。
上述SSA變體均在一定程度上增強了SSA算法的優化性能,但早熟收斂、全局開發與局部探索能力不平衡等問題仍然存在。此外,“沒有免費午餐”(no-free-lunch,NFL)定理[19]指出,不存在一種適用于所有優化問題的優化算法。因此,提出一種性能較好的SSA變體是非常有價值的。基于上述分析,本文提出一種基于正交設計的折射反向學習樽海鞘群算法(orthogonal opposition-based salp swarm algorithm,OOSSA)。
樽海鞘是一種外形類似水母的膠狀海洋生物,通過吸入和排出海水完成移動。研究人員將樽海鞘群體的鏈式結構數學化,提出SSA。在基本SSA中,位于樽海鞘鏈最前端的個體為領導者,其余個體為跟隨者。領導者根據食物源信息更新自身位置,數學模型為[1]
(1)

c1為距離控制因子,其值隨算法迭代非線性減小到趨于零,計算公式如下:
(2)
式中:t為當前迭代次數,T為最大迭代次數。
跟隨者位置更新的數學模型為[1]
(3)

SSA算法包括全局勘探和局部開采兩個階段。初始化時期,樽海鞘鏈群在搜索空間中勘探,并鎖定最優解區域。隨后,算法進入開采階段,搜索代理在最優解區域內精確搜索,以提高求解精度。其中,距離控制因子c1對算法的尋優過程有重要影響。迭代前期,較大的c1幫助種群勘探整個解空間; 迭代后期,較小的c1幫助種群在特定的區域內精確開采。由于缺乏關于食物源位置(全局最優解)信息的先驗知識,將每輪迭代中的全局最優個體更新為當前食物源的位置。
反向學習(opposition-based learning,OBL)最初由Tizhoosh[20]提出,已成功應用于多種智能優化算法,其主要思想是同時評估當前可行解和其反向解,并選擇較優解進入下一代的迭代計算。Rahnamayan等[21]證明: 相比于當前解,反向解有更大概率接近全局最優。因此,反向學習策略能夠有效提高算法性能。根據樽海鞘群算法分析可知,基本SSA中,領導者負責帶領群體向全局最優解所在的區域移動。因此,領導者的位置一定程度上決定了群體的移動方向。如果領導者陷入局部最優,則群體將跟隨至局部極值區域,導致算法早熟收斂。將反向學習策略應用于領導者個體上避免其陷入局部最優,則該個體能夠更好的帶領群體移動至更有前景的搜索區域。


(4)
將反向數的概念推廣到多維空間,給出反向點的定義。

(5)
基于透鏡成像原理的折射反向學習策略(lens opposition-based learning,LOBL)是一種新型智能技術,其本質是在OBL的基礎上,結合光學透鏡成像原理所設計的一種動態反向學習策略,以幫助算法尋找更優的候選解,已成功與粒子群算法[23]、灰狼優化算法[24]等結合,并大幅提高了算法性能。

以一維空間為例,假設坐標軸上x處有高度為h的物體M,且x∈[a,b],基點位置o(本文取[a,b]中點作為基點)上放置焦距為r的透鏡,基于透鏡成像可得到高度為h*的像M*,透鏡成像原理見圖1。

圖1 透鏡成像原理示意Fig.1 Optical lens imaging principle

(6)
令h/h*=k,k為縮放因子。變換式(6)即可得到反向點的計算公式為

(7)
當k=1時,式(7)即為中心位置在坐標點[-(a+b)/2,(a+b)/2] 的OBL[22]。根據OBL策略得到的反向個體是固定的,而根據k值不同,通過LOBL得到的反向個體是動態的。
將式(7)推廣到D維空間,一般化透鏡折射反向學習策略得到
(8)

正交試驗設計(orthogonal experimental design,OED)能夠通過少量試驗次數找到多因素、多水平實驗的最優試驗組合[25]。例如,對于2水平7因素的試驗,若采用測試的方法找出最優組合,需27=128次試驗。若采用正交試驗設計,根據正交表L8(27),如式(9),僅通過8次試驗即可找出最優或較優組合,大幅提高了試驗效率。但根據正交試驗特性,并不能保證正交表中的試驗解包含該試驗的最優解[25]。因此在使用正交表時,通常需要進行因素分析來找到試驗的理論最優組合,并結合正交表中的所有組合一起確定試驗的最優解。因此,對于2水平7因素的試驗,需首先根據正交表L8(27)得到8組候選最優試驗解,其次進行因素分析,找到一組理論最優組合,最后對9種組合進行評估,找出該實驗的最優組合。
(9)
由式(1)可知,領導者僅在食物源的引導下更新自身位置,由于缺乏先驗知識,難以確定當前食物源是否處于全局最優。如果食物源處于局部最優,則整個樽海鞘鏈群都將聚集在局部最優區域,種群多樣性缺失,導致算法收斂至局部最優。為增強SSA算法跳出局部最優的能力,提出一種正交反向學習策略(orthogonal lens opposition-based learning,OLOBL),并將其應用到領導者個體上產生新的候選個體。
OLOBL是結合OED與LOBL技術所設計的一種策略。領導者執行OLOBL策略,跳躍到更有前景的搜索區域,從而提高種群多樣性,降低算法陷入局部最優的概率。但文獻[26]的研究表明: 對于一個個體,其反向個體僅在部分維度上的值優于當前個體。因此,對個體的所有維度均取基于OLOBL的折射反向值會造成維度退化現象,即部分維度反而遠離全局最優解。針對這一問題,結合OED和LOBL技術,設計一種正交折射反向學習策略,充分挖掘當前個體與反向個體的每一維分量,并對二者的優勢維度進行組合,產生部分折射反向解。
將OLOBL策略嵌入SSA算法,優化問題的維度D對應正交試驗設計中的因素,個體與折射反向個體即為正交試驗設計中的兩個水平。構建部分反向解的具體描述過程為:對當前個體和其折射反向個體設計一個2水平D因素的正交試驗,產生M個部分折射反向解,M按照式(10)進行計算。其中,根據正交試驗表產生部分反向解時,若正交表的元素為1,試驗解對應維上取當前個體的值; 若正交表的元素為2,試驗解對應維上取折射反向個體的值。
M=2「log2(D+1)?
(10)
根據正交試驗特性,正交表中第一行的元素全為1,這就代表第一組試驗解即為個體本身,不需要評估。另外M-1組試驗解是當前個體與其反向個體優勢維度的組合,即部分折射反向解,需要評估。在使用正交試驗設計時,需進行因素分析,找出一組不存在于正交表中的理論最優組合,需要評估。因此,執行一次OLOBL策略需要的函數評估次數為M次。在進化迭代過程中,僅對領導者執行OLOBL策略,并從領導者和其正交折射反向個體中選擇較優個體進入下一代,這樣可以有效增強算法的全局勘探能力,同時減少函數的評價次數,從而改善算法的整體性能。
由追隨者位置更新模型可知,基本SSA中追隨者在保留自身特征的同時學習前一個個體,完成位置更新。其位置更新機制較為單一,一旦領導者陷入局部最優,追隨者必然跟隨至該局部極值區域。為增強跟隨者位置更新機制的靈活性,本文引入一種非線性遞減慣性權重來評價前一個個體對當前追隨者的影響程度。新的追隨者位置更新公式為
(11)
(12)
式中:ω為本文設計的慣性權重,ωmax和ωmin分別為初始慣性權重和最終慣性權重。
所提OOSSA算法的實現流程如下:
Step1 設置算法參數: 種群規模N,最大函數評估次數Fmax,搜索維度D,搜索區域上下邊界u、l;在搜索空間中隨機生成N個樽海鞘個體構成初始種群;
Step2 計算初始種群的適應值并排序,首個個體定義為領導者,其余個體為跟隨者,并將適應值最優個體的位置作為當前食物源;
Step3 判斷樽海鞘個體角色: 若為領導者則進入Step4;若為跟隨者則進入Step5;
Step4 根據式(1)更新領導者位置,產生候選解1,同時執行OLOBL策略,產生候選解2,根據適應值保留候選解1和候選解2中的較優個體;
Step5 根據式(11)更新跟隨者位置;
Step6 比較食物源和當前最優個體的適應值,取較優者作為新的食物源;
Step7 若函數評估次數達到最大函數評估次數Fmax,則輸出食物源位置,即為最優解; 否則,返回Step3繼續迭代。
OOSSA在保持SSA算法基本框架和整體流程不變的情況下,在領導者位置更新的同時執行OLOBL策略,同時修改了跟隨者的位置更新公式。設函數維度為D,種群規模為N,最大迭代次數為T。樽海鞘群體移位操作的時間復雜度為O(TND),領導者執行OLOBL操作的時間復雜度為O(TD2),因此,OOSSA算法總的時間復雜度為O(TN2),與原SSA算法時間復雜度一致,這表明在改進算法的同時并沒有增加計算開銷。
為了驗證OOSSA算法的有效性,實驗選取12個CEC2017測試函數進行,見表1。其中,函數維度設置為100維。表1中,f1~f6為單峰函數,此類函數沒有局部極值點,只有一個全局最優解,用于測試算法的局部開采能力;f7~f12為復雜多峰函數,此類函數有一個全局最優解的同時包含多個局部極值點,用于測試算法平衡全局勘探和局部開采的能力。

表1 CEC2017測試函數Tab.1 CEC2017 benchmark functions
實驗環境為: Windows 10操作系統,Intel(R) Core(TM) i7-7700處理器,主頻3.60 GHz,8 GB內存,算法基于Matlab R2014b用M語言編寫。
利用OOSSA算法求解表1中的12個經典測試函數,并與基本SSA算法(SSA,2017)[1]、多子群的共生非均勻高斯變異SSA算法(MSNSSA,2020)[13]、生命周期啟發的SSA算法(LSSA,2020)[27]、自適應SSA算法(ASSA,2021)[28]、高斯SSA算法(GSSA,2021)[29]、改進反向學習的SSA算法(OBSSA,2021)[30]、具有慣性權重的自適應SSA算法(ASSO,2021)[31]、隨機取代的雙慣性權重SSA算法(RDSSA,2021)[32]、混合鯨魚優化的SSA算法(IWOSSA,2021)[33]進行比較。為保證比較的公平性,所有算法均使用相同的種群規模N=30,最大函數評價次數15 000。對比算法的其他參數設置與各自原文獻保持一致。在OOSSA算法中,縮放因子k=10 000。每種算法對每個測試函數獨立運行30次實驗,分別記錄它們的平均值和標準差,并采用Friedman檢驗[34]對算法進行排名,見表2。
由表2可知,除了函數f5、f7、f9、f11,OOSSA算法在其他8個測試函數上均一致收斂到全局最優。與SSA、LSSA、ASSA、GSSA和IWOSSA算法相比,OOSSA在所有基準函數上取得了較好的結果,且收斂精度與求解穩定性遠優于對比算法。與MSNSSA算法相比,OOSSA分別在9個和2個函數上取得了較好和相似的結果。OOSSA分別在7個和4個測試函數上獲得了比OBSSA算法較好和相似的結果; 然而,對于f4,OBSSA得到了較好的結果。與ASSO算法相比,OOSSA分別在9個和3個測試函數上獲得了較好和相似的結果。與RDSSA算法相比,OOSSA分別在9個和2個測試函數上取得了較好和相似的結果;然而,RDSSA在f7上獲得了稍優的結果。根據表2中Friedman排名檢驗結果,OOSSA算法排名第一,RDSSA排名第二,其次為OBSSA、ASSO、MSNSSA、GSSA、ASSA、LSSA、IWOSSA和SSA。證明不同SSA變體的改進策略均有一定效果,求解性能優于基本SSA算法,但不如OOSSA算法。
此外,本文采用Wilcoxon秩和檢驗[34](顯著性水平設為0.05)從統計意義上對10種算法的尋優結果進行評價。在表3中給出所有基準函數的OOSSA和其他對比算法的Wilcoxon秩和檢驗中計算的p值。例如,如果最優算法為OOSSA,則在OOSSA versus SSA,OOSSA versus LSSA等之間進行成對比較。其中,N/A表示不適用,意味著相應算法在該函數上表現最優,沒有統計數據與自身進行比較。符號“-”“+”“=”分別表示OOSSA劣于、優于、相當于各算法的結果。當p<0.05時,拒絕零假設,即認為兩種對比算法有顯著差異[34]。
由表3可以看出,除了f5的OOSSA versus OBSSA和OOSSA versus ASSO這兩種情形下p>0.05,其他對比算法的p<0.05,根據Wilcoxon秩和檢驗,這說明OOSSA算法的整體性能明顯優于基本SSA算法和其他8種改進SSA算法,且OOSSA算法的優越性在統計上是顯著的。總體來說,相比于基本SSA算法和其他最新的SSA變體,OOSSA算法能夠提供競爭性的性能。

表3 100維基準函數Wilcoxon秩和檢驗的p值Tab.3 p-value for Wilcoxon’s rank-sum test on 100-dimensional benchmark functions
本文對基本SSA算法做了兩個方面的改進,分別為OLOBL策略和慣性權重策略(inertia weight,IW),為了驗證兩種改進策略的有效性,分別將它們嵌入到基本SSA算法中,得到OLOBL-SSA和IW-SSA算法。此外,將結合OBL的正交反向學習(orthogonal opposition-based learning,OOBL)嵌入SSA中,得到OOBL-SSA,并與OLOBL-SSA進行對比,以驗證LOBL和OBL策略的有效性。本節選取表1中的12個測試函數進行仿真實驗來比較OOSSA、OLOBL-SSA、IW-SSA、OOBL-SSA和基本SSA算法。設置所有算法的種群規模均為30,最大函數評價次數均為15 000,函數維度設置為100維,每種算法在每個函數上獨立運行30次,分別記錄它們的平均值、標準差和Friedman排名檢驗結果,見表4。

表4 采用不同改進策略的SSA算法在CEC2017上的實驗結果Tab.4 Comparison of SSA with different improvement strategies for CEC2017

續表4
從表4可知,OLOBL-SSA、IW-SSA和OOBL-SSA算法在所有函數上的求解精度和求解穩定性均優于原SSA算法,這證明了改進策略的有效性。與IW-SSA和OOBL-SSA算法相比,OOSSA在除f8和f10之外的10個函數上均取得了較優的結果; 對于f8和f10,3種算法均達到了理論最優值。OLOBL-SSA算法則和OOSSA算法一樣,在多個測試函數上均能達到理論最優值,但對于函數f5、f7和f11,OOSSA的尋優精度和尋優穩定性明顯優于OLOBL-SSA,尤其在函數f11上,OOSSA算法獲得了顯著的優勢。基于上述分析,兩種改進策略均具備一定效果,且兩種改進策略同時作用能夠進一步提高算法的尋優性能。此外,從表4可以看出,相比于OOBL-SSA算法,OLOBL-SSA在除f8和f10之外的10個基準函數上均獲得了顯著的優勢; 對于f8和f10,兩種算法均達到了理論最優值。這表明正交反向學習中采用LOBL策略能夠更加有效地幫助算法跳出局部最優。此外,由表4中Friedman排名檢驗結果可知,OOSSA排名第一,OLOBL-SSA排名第二,依次是IW-SSA、OOBL-SSA和SSA,這進一步驗證了改進策略的有效性以及OOSSA算法比單策略改進算法具備明顯優勢。
為驗證OOSSA算法應用于求解大規模優化問題的可行性,本節選取表1中12個測試函數進行仿真實驗,并將函數維度設置為10 000維。設置所有算法的種群規模均為30,最大函數評價次數均為15 000。表5給出了OOSSA算法對12個大規模測試函數30次獨立實驗獲得的最優解、最差解、平均值和標準差結果。此外,在實驗結果中加入求解成功率指標,用于評價OOSSA算法處理大規模優化問題的效率。判斷一次求解是否成功的標準為
(13)
式中:fA為算法在測試函數上取得的結果,fT為測試函數的理論最優值。
由表5可以看出,除了f5、f7、f9、f11,OOSSA算法在其他8個測試函數上均能收斂到理論最優值,且根據標準差能夠看出,OOSSA在保持高求解精度的同時具備同樣優越的求解穩定性; 對于函數f5、f7、f9和f11,OOSSA雖未能找到理論最優解,但仍獲得了令人滿意的結果。這充分說明OOSSA算法在處理大規模優化問題時具備較強的魯棒性。在求解成功率方面,OOSSA在除f5和f7之外的10個測試函數上均能達到100%的成功率,這也充分說明OOSSA算法能夠有效應用于求解大規模優化問題。
為了進一步驗證OOSSA算法的有效性,將其與9種最新的群體智能優化算法進行對比,它們分別是海洋捕食者算法(MPA,2020)[35]、平衡優化器(EO,2020)[36]、基于選擇對立的灰狼優化器(SOGWO,2020)[37]、改進的灰狼優化器(IGWO,2021)[38]、算數優化算法(ArOA,2021)[39]、阿基米德優化算法(AOA,2020)[40]、基于多樣性和突變機制的飛蛾撲火優化(DMMFO,2021)[41]、雙重自適應權重的飛蛾撲火優化(WEMFO,2021)[42]、基于反向學習的灰狼優化器(OGWO,2021)[43]。本節選取表1中的12個測試函數進行仿真實驗,并將函數維度設置為D=100。設置所有算法的種群規模均為30,最大函數評價次數均為15 000。對比算法的其他參數設置與原文獻保持一致。表6給出了10種算法對12個測試函數30次獨立實驗獲得的平均值和標準差,并采用Friedman檢驗對算法進行排名。
比較表6中結果可知,與SOGWO、WEMFO、DMMFO和OGWO算法相比,OOSSA在所有測試函數上均獲得了較好的結果。與MPA和EO算法相比,OOSSA在9個函數上獲得了較好的性能和2個函數上得到了相似的性能; 然而,對于f7,OOSSA獲得稍差的結果。與ArOA和IGWO算法相比,OOSSA分別在11個和1個測試函數上取得了較好和相似的性能。OOSSA在10個測試函數上獲得了比AOA算法較好的結果; 對于函數f8和f10,兩種算法均收斂至全局最優。此外,從Friedman排名檢驗結果可以看出,OOSSA排名第一,AOA和EO排名并列第二,其余依次是MPA、WEMFO、ArOA、OGWO、IGWO、SOGWO和DMMFO。這進一步驗證了OOSSA算法的優越性。
為進一步驗證OOSSA算法的收斂性能,圖2給出了OOSSA、SSA、和各SSA變體對表1中部分代表性基準函數的收斂曲線。圖3給出了OOSSA和各前沿算法對表1中部分代表性測試函數的收斂曲線。設置所有算法的種群規模均為30,最大函數評價次數均為15 000,函數維度設置為D=100。

圖2 多種SSA變體對4個代表性測試函數的收斂曲線Fig.2 Convergence curves of different SSA variants for four representative test functions


圖3 多種前沿算法對4個代表性測試函數的收斂曲線Fig.3 Convergence curves of different cutting-edge algorithms for four representative test functions
從圖2和圖3可以看出,與基本SSA和8種SSA變體相比,OOSSA算法在所有函數上均獲得了較高的解精度和收斂速度。與其他9種最新的群體智能算法相比,OOSSA在求解精度和收斂速度方面同樣表現出較大優勢。
從文獻[44]中選取圓柱形壓力容器設計優化問題來測試OOSSA算法解決實際工程設計問題的能力。壓力容器設計問題的目標為最小化制作成本。其中制作成本包括焊接、材料和成型3部分。為解決該問題,需要確定管壁厚度Ts,頂蓋壁厚Th,內壁直徑R和容器管身長度L這4個設計變量的最佳值。首先,將設計變量編號,得到x=[x1x2x3x4]=[TsThRL]。問題的目標函數f、優化約束g和變量取值范圍如下所示:
式中:x1≤0,x2≤99,x3≤10,x4≤200。
利用OOSSA算法求解壓力容器設計問題,并與文獻[44]中的幾種先進算法進行比較。根據文獻[44],將OOSSA的種群規模設置為30,最大函數評價次數設置為15 000,獨立運行30次后取最優解。將所得結果以及文獻[44]中已有的實驗結果列于表7。從表中可以看出,OOSSA獲得了最低的設計成本5 933.766 65,明顯優于其他10種對比算法,進一步證明OOSSA算法能夠有效應用于工程優化問題。

表7 各算法的壓力容器設計結果對比Tab.7 Comparison of optimization results of different algorithms for press vessel design
隨著智能化時代的到來,自主移動機器人被廣泛應用到越來越多的領域中,如智能送餐、智能倉儲、軍事戰爭等。在機器人學中,路徑規劃是一項關鍵技術。傳統的路徑規劃算法在面對復雜地形時難以生成理想的軌跡。因此,研究人員試圖使用群體智能優化算法解決機器人路徑規劃問題。智能優化算法在搜索過程中表現出較強的隨機性,因此在規劃路徑時表現出的性能有較大差距。提出一種收斂速度快、魯棒性強、環境適應能力好的算法是非常有意義的。基于上述分析,本節提出一種基于OOSSA的自主移動機器人路徑規劃算法。
在設計路徑規劃算法時,采用導航點模型構建機器人的工作環境設置,并采用三次樣條插值對路徑進行平滑。其中,導航點能夠反映所規劃路徑的轉向次數,因此將路徑上所有導航點編碼為一個樽海鞘個體。
為機器人規劃路徑時,需要考慮兩個因素:1)路徑長度最短;2)避開所有障礙物。基于這兩個因素,本文設計了一種高效的適應度函數,以評價路徑的質量,見式(14)。
f=L·(1+ρ·τ)
(14)
式中ρ為路徑非法度放大系數,用于排除有碰撞的路徑,取值為1 000。L為當前路徑的長度,按照下式進行計算
(15)
式中(xi,yi)為插值點i的坐標。
τ為路徑非法度,按照下式進行計算
(16)
式中:s為障礙物的數量,m為路徑中插值點的數量,dj,k為第j個插值點到第k個障礙物的距離,rk為第k個障礙物的半徑。根據式(16)可知,如果路徑過障礙,則τ>0,反之,τ=0。
本節對所提算法進行仿真實驗,并與基本SSA算法、人工蜂群算法(ABC)、粒子群算法(PSO)、灰狼優化器(GWO)和螢火蟲算法(FA)進行對比。設置所有算法的種群規模均為30,最大函數評價次數均為15 000,對比算法的參數與原始文獻保持一致。為使實驗結果更加可靠,選取文獻[45]中的兩種測試環境進行仿真,每種算法為每個地形獨立規劃30次路徑,并記錄最優路徑長度和平均尋優耗時。比較結果見表8。各算法獲得的路徑見圖4。

表8 不同環境下6種算法所求路徑長度與平均尋優耗時比較Tab.8 Comparison of path lengths and average search time of six algorithms in different environments

根據表8可知,在兩種不同的地形設置中,所提算法得到的最優路徑長度均優于對比算法。在平均尋優耗時方面,OOSSA算法與PSO、ABC、GWO和SSA算法耗時相近,FA算法則消耗了較長的時間。從圖4可以看出,6種算法在兩種環境設置中所規劃的路徑均能避開所有障礙物。而OOSSA均可生成最合理的軌跡以幫助機器人從起點移動到終點,這是因為OLOBL策略能夠降低算法陷入局部最優的概率,使算法在迭代前期能夠規劃出較為合理的軌跡。在迭代后期,引入非線性慣性權重的跟隨者位置更新模式能夠幫助算法不斷調整該路徑,進一步降低了路徑長度。
本文提出一種基于正交設計的折射學習樽海鞘群算法。首先利用透鏡折射反向學習和正交試驗設計構造了一種正交折射學習策略OLOBL,并應用到SSA中,提高算法勘探能力的同時解決了反向學習存在的維度退化問題。其次,在跟隨者位置更新階段引入自適應慣性權重因子,以平衡算法的全局勘探和局部開采能力。對12個CEC2017基準測試函數、1個工程優化問題和移動機器人路徑規劃問題進行仿真實驗研究,并通過多種方式詳細分析了所提算法的全局勘探、局部開采和跳出局部最優的能力。研究結果表明: OOSSA算法能夠有效提升基本SSA算法的性能,其在整體性能上要明顯優于多種當前最先進的SSA變體和多種最新開發的群體智能優化算法。OOSSA在解決工程設計優化問題和機器人路徑規劃問題時,同樣獲得了滿意的結果。在未來的研究中,OOSSA算法將與光伏電池模塊參數識別等問題相結合,以期解決更多實際工程設計優化問題。