王亞玲,張清泉
山西師范大學物理與信息工程學院,山西 臨汾 041000
近年來,元啟發式算法因其靈活性高、無梯度機制和可跳出局部最優等優點被人們廣泛使用.基本的樽海鞘算法具有簡單易行、計算力量小等優點,但仍然存在易陷入局部最優,收斂速度慢等問題.在此研究基礎上,文獻[1]提出了自適應評估移動策略和基于馮諾依曼拓撲結構的鄰域最優引領策略的改進樽海鞘群算法,該算法較標準算法具有更好的性能.文獻[2]在基本樽海鞘群算法的基礎上引入文化基因算法,采用多個樽海鞘鏈同時進行尋優,并在硬件在環實驗中證明了改進算法的可行性.以上算法從不同方面對樽海鞘群算法進行了改進,并有一定的性能提升,但仍存在局部開發能力差、收斂速度慢等缺點.針對上述問題,本文通過樽海鞘(追隨者)位置更新環節中采用高斯概率分布采樣的方法,使樽海鞘追隨最優解方向,加快算法進入食物源所在區域的能力,進一步提高了SSA算法跳出局部最優的能力.
樽海鞘群算法(Salp Swarm Algorithm,SSA)是模仿樽海鞘群在海洋中航行和覓食的群族行為,由Seyedali Mirjalili等人在2017年提出的一種元啟發式算法[3].樽海鞘是類似于水母的一種海洋動物,其在航行和覓食過程中通常會形成鏈型,即后一個樽海鞘的位置跟隨著前一個樽海鞘的位置變化;Seyedali Mirjalili提出了一種樽海鞘鏈的數學模型,將樽海鞘種群分為領導者和追隨者2種類型.領導者位于樽海鞘鏈的前半部分,追隨者位于后半部分且追隨領導者,分工合作,以找到滿意的食物源.SSA主要包括更新樽海鞘(領導者和追隨者)的位置,見式(1)~式(3).其中,領導者按照式(1)更新位置.
(1)

(2)

(3)
高斯分布采樣具有良好的局部開發特性.首先,正態曲線的中心峰描述了它的保守能力,即采集的樣本大部分位于中心峰(最優值)的附近.其次,曲線的無限邊緣能夠提高其探索能力和跳出局部最優的能力.由此可見,高斯分布采樣有助于開拓新的搜索空間.高斯分布有兩個參數定義:均值和標準差.本文的研究利用群體結構和搜索歷史的信息,探索了一種方法來設置這兩個參數[4].
Kennedy J[4]等人提出了骨干粒子群算法(Bare Bones Particle Swarms Optimization,BBPSO),該算法就是利用高斯概率分布采樣的方法對粒子群算法(Particle Swarm Optimization,PSO)進行了改進,結果表明BBPSO算法優于基本的粒子群算法.
受BBPSO算法[4]的啟發,本文也將基于高斯概率分布采樣學習的方法引入到基本的樽海鞘群算法中,以避免樽海鞘群陷入局部最優及加快收斂速度.

(4)
(5)
該搜索過程中,基于全局最優位置(gbestn)的高斯概率采樣可以增強對局部開拓的能力,改善樽海鞘盲目跟從的問題,促使追隨者向更優的位置移動;執行式(5)能使其繼續追隨著緊挨自己的前一個樽海鞘.其中,系數r1為區間[0,1]的隨機數.ISSA算法的操作流程圖如圖1所示.

圖1 提出的樽海鞘群算法流程圖Fig.1 The proposed flow chart of salp swarm algorithm
文章所提ISSA算法具體流程如下:
步驟1:初始化參數.設置樽海鞘種群的數量,問題的維度dim,各維度位置變化范圍的上限ub和下限lb,最大迭代次數max_iteration.
步驟2:計算適應度.計算每只樽海鞘適應度值并找出最優樽海鞘.
步驟3:選出食物源.將上一步驟中的最優樽海鞘位置分配給食物源.
步驟4:劃分樽海鞘群.將樽海鞘群劃分為具有相同數量的領導者、追隨者.其中領導者根據式(1)更新位置,使其總在食物源附近進行探索開發;追隨者根據式(4)、式(5)兩步更新位置.更新完成后,進行越界處理,計算新樽海鞘適應度值,選出最優位置更新食物源.
步驟5:判斷算法是否大于最大迭代次數.如果滿足,輸出最優位置和最優適應度值,算法結束.如果不滿足,重復步驟4.
采用Sphere函數(F1),Quadric函數(F2),Ackley函數(F3),Rastrigin函數(F4),Schwefel函數(F5),Rotated Sum Square函數(F6),Rotated Zakharov函數(F7)和Rotated Rosenbrock函數(F8)等8個基準測試函數進行實驗,測試本文提出的算法(ISSA算法)的性能[5,6].其中,F1、F2為單峰函數;F3、F4為多峰函數;F5~F8為旋轉漂移函數;理論最優值均為0.基準測試函數如表1所示.

表1 測試函數Tab.1 Test function
本文算法的實驗環境為Windows 10操作系統,主頻3.2 GHz,主存8 GB,開發工具Matlab R2015b.對樽海鞘群算法進行改進的目的是避免樽海鞘群陷入局部最優、提高收斂精度和收斂速度.為了證明本文提出的樽海鞘群算法的收斂精度、局部開拓能力及收斂能力,將該算法與近年來提出的jDE[7]、PSOFDR[8]、BBDE[9]、BBExp[10]、SSA算法進行對比.
使用上述8個測試函數測試30維的運行結果.為了避免不必要的實驗誤差,所有算法均使用表1給定的對稱初始化范圍,且各算法的主要參數設置為:種群個體數40,獨立運行次數20,最大評價次數(FEs)50 000.6種算法在8個測試函數上運行的最優值、平均值、標準差及收斂性能等級的測試結果如表2所示,最優結果以黑色粗體顯示.

表2 不同算法30維結果比較Tab.2 Comparition of 30-dimensional results of different algorithms
由表2結果可以看出:在8個測試函數中,就單峰函數(F1、F2)和多峰函數(F3、F4)而言,ISSA算法運行結果的最優值、平均值和標準差均明顯優于其他5種對比算法,且在20次的獨立運行結果中均能找到理論最優值.由此說明,ISSA算法在收斂精度和全局優化能力方面優于其他算法.對于旋轉漂移函數,在F6、F7函數的測試結果中可知,ISSA算法獲得的最優值、平均值、標準差均優于其他算法;但在F5、F8函數的測試結果中可以發現,BBDE、jDE、BBExp、PSOFDR和SSA的最優結果優于ISSA算法.由總體結果的比較可知,ISSA算法在8個函數測試中,有6個函數獲得的最優值、平均值、標準差優于其他對比算法,因此,ISSA算法的尋優結果最好.
為了能直觀地觀察算法的尋優過程,繪制了如圖2所示的不同基準測試函數在20次獨立運行中通過6種算法實現的平均適應度值的收斂曲線.其中,每個圖的橫坐標為評價次數(FEs),縱坐標為對平均適應度值取10為底的對數.

圖2 不同算法的性能曲線比較圖(30維)Fig.2 Comparison of performance curves of different algorithms(30 dimensions)
由圖2可知,由于很容易找到Sphere(F1)函數的最優值方向,所以ISSA以最快的收斂速度到達理論最優值0,其他對比算法雖然沒有收斂到理論最優值,但BBDE、jDE、BBExp和PSOFDR均能達到了10-60以上解的精度(除SSA算法);對于Quadric(F2)函數,ISSA以很小的評價次數獲得理論最優值,但PSOFDR和BBExp并沒有收斂到全局最優值,略劣于jDE、BBDE和SSA;對于Ackley(F3)函數,ISSA迅速到達理論最優值,jDE、BBExp和PSOFDR的收斂速度明顯優于其他兩種算法,且最后均達到10-14的精度;對于Rastrigin(F4)函數,ISSA收斂到了理論最優值,jDE收斂速度及收斂精度優于其他四種算法;對于Schwefel(F5)函數,ISSA、PSOFDR、BBDE、BBExp、SSA在達到一定精度后陷入了局部最優,只有jDE跳出了局部最優,但在評價后期的尋優效果不明顯;對于Rotated Sum Square(F6)函數,ISSA迅速到達理論最優值,BBDE達到了10-55的精度,具有相對較好的性能;對于Rotated Zakharov(F7)函數,ISSA同樣以最快的速度收斂到理論最優值,除BBExp之外,其余對比算法的收斂精度基本相同,均略優于BBExp;由于Rotated Rosenbrock(F8)函數的最優解方向不易找到,各算法均沒有收斂到全局最優.綜上所述,ISSA找到了8個測試函數中6個函數的理論最優值,故該算法相比于5個對比算法,在收斂速度、收斂精度和全局優化能力方面有很好的性能.
由以上兩個方面的分析結果可知:從表2的最優值、平均值、標準差可以看出,ISSA的尋優結果最好;從圖2的收斂曲線可以看出,ISSA具有很好的收斂精度、收斂速度和全局優化能力.
一種基于高斯概率分布采樣學習的樽海鞘群算法(ISSA)利用均值為gbestn/2,標準差為|gbestn|的高斯分布的隨機采樣替代追隨著的樽海鞘位置更新公式,進而改善了基本的樽海鞘群算法存在的盲目跟從的問題,增強了對局部區域的搜索能力[11].提出的樽海鞘群算法被用來優化八個基準測試函數,經過仿真實驗及分析可知,ISSA算法在收斂精度和收斂速度方面明顯優于SSA算法;ISSA算法雖然并不總具有最佳性能,但該算法在收斂速度、收斂精度與局部開拓能力上具有更優的優勢.