?

基于余弦相似度的改進蝴蝶優化算法

2021-09-18 06:22俊,何
計算機應用 2021年9期
關鍵詞:余弦復雜度適應度

陳 俊,何 慶

(貴州大學大數據與信息工程學院,貴陽 550025)

(*通信作者電子郵箱qhe@gzu.edu.cn.)

0 引言

近些年,許多學者受到自然界動物習性的啟發,對自然界生物種群所表現出群體性行為進行總結,設計出一類具有分布式智能行為的算法(群智能優化算法)。這類優化算法對目標函數性質要求低、容易實現、穩定性好,自提出以來就受到電力系統、工程設計,網絡以及通信等領域的廣泛關注。

常見的群智能優化算法有:模擬果蠅靠嗅覺定位食物方向行為提出的果蠅優化算法(Fruit fly Optimization Algorithm,FOA)[1];模擬布谷鳥寄生育繁殖行為和萊維飛行搜索機制的布谷鳥搜索(Cuckoo Search,CS)算法[2];通過模擬鯨魚隨機搜索撲食,氣泡攻擊,收縮包圍行為的鯨魚優化算法(Whale Optimization Algorithm,WOA)[3]等。

2017 年,Arora 等[4]受到蝴蝶覓食行為的啟發,提出了蝴蝶優化算法(Butterfly Optimization Algorithm,BOA)。蝴蝶個體通過感知和分析空氣中氣味確定食物的潛在方向,進行合作式的移動。相較于其他的群智能優化算法,蝴蝶優化算法具有結構簡單、控制參數少以及算法易實現的特點,在工程上得到廣泛的應用。例如張達敏等[5]將改進的蝴蝶優化算法應用于認知智能電網中的能效優化頻譜分配上;Wen 等[6]提出一種增強的蝴蝶優化算法,并將改進的蝴蝶優化算法應用于支持向量機參數優化上,最后還預測了長三角地區住宅的二氧化碳年排放量;Malisetti 等[7]提出一種基于對抗的蝴蝶優化算法,并應用于無線傳感器的方案選擇,延長了無線傳感器網絡的使用壽命。與其他群智能優化相比,雖然蝴蝶優化算法在設計上具有優越性,但是該算法依舊存在尋優精度低、收斂性差以及易受到局部極值影響的問題。

針對以上問題,許多學者對蝴蝶優化算法進行改進,Arora 等[8]提出了一種基于萊維飛行策略的蝴蝶優化算法,在全局和局部位置上引入萊維函數,增強了算法種群的多樣性。Arora 等[9]還提出了一種基于學習自動機的蝴蝶優化算法,通過引入學習自動機策略,提高了全局階段的搜索速度。王依柔等[10]提出了基于自適應擾動的瘋狂蝴蝶算法,在全局搜索階段引入自適應慣性權重和擾動策略,避免蝴蝶優化算法易陷入局部最優的同時平衡了算法的局部開發和全局探索能力,最后還在花蜜位置上引入瘋狂因子,增強了蝴蝶種群的多樣性。高文欣等[11]提出柯西變異和自適應權重優化的蝴蝶算法,通過在全局位置更新上引入柯西分布函數對蝴蝶個體進行變異,解決了算法容易陷入局部最優的問題,其次在局部開發位置更新處引入自適應慣性權重,加強了蝴蝶算法的局部開發能力;最后還引入了動態轉換概率來平衡算法的全局探索和局部開發的比重。謝聰等[12]通過參數優化和差分進化兩個角度提升了算法性能,首先針對蝴蝶優化算法內感知強度參數和感覺因子進行微調,優化了算法內參數;其次引入了差分進化策略,加強了蝴蝶個體之間信息交流能力。高文欣等[13]提出了全局優化的蝴蝶優化算法,通過引入limit 閾值來限制蝴蝶優化算法陷入局部最優解的次數,解決蝴蝶優化算法易陷入早熟的問題;其次融合了單純刑法策略,使得適應度較差的蝴蝶個體也能較快靠近當前最優蝴蝶個體。上述改進策略雖然在算法的種群多樣性上有一定程度的提升,但沒有解決算法在迭代中后期種群多樣性下降的問題;而且部分策略調整了蝴蝶優化算法中全局探索和局部開發的轉換概率,并沒有充分利用蝴蝶個體信息動態調整轉換概率。

針對上述的問題,本文提出了一種多策略改進的蝴蝶優化算法(Multi-Strategy improved BOA,MSBOA)。首先,提出了基于余弦相似度的位置更新策略,通過構建當前蝴蝶個體位置到最優蝴蝶位置的向量,計算向量之間的余弦相似度,并設置閾值,更新余弦相似度超過閾值的蝴蝶個體,該策略能有效地保持了種群的多樣性;其次,根據蝴蝶個體的適應度動態調整轉換概率,使適應度較差的個體有更大的概率受到最優蝴蝶個體的引導,加快BOA 收斂;最后,在全局搜索階段加入自適應混合慣性權重,根據蝴蝶個體自身適應度動態平衡當前個體的局部開發與全局探索能力。通過對16 個典型的測試函數的求解、Wilcoxon 秩和檢驗以及部分CEC2014 函數的求解驗證了MSBOA的有效性和魯棒性。

1 蝴蝶優化算法

蝴蝶優化算法是Arora 等[4]通過觀察蝴蝶覓食和尋偶行為提出的一種新的群智能優化算法。由于真實的蝴蝶覓食和尋偶行為有很多不確定的因素,無法在算法中體現出來,因此蝴蝶優化算法建立在兩個理想化的條件下:1)假設每只蝴蝶都能產生不同程度的香味并且能嗅到來自不同方向的香味,使得蝴蝶個體之間能夠相互吸引。這種香味的強度與蝴蝶個體的適應度有關,用于在蝴蝶迭代過程中分享自身的相關信息。2)每只蝴蝶都有一定的概率嗅到來自最優蝴蝶個體的香味并朝向最優蝴蝶位置方向移動,該行為稱為全局探索。其中該概率在蝴蝶優化算法中稱為轉換概率。若蝴蝶嗅不到來自最優蝴蝶個體的香味,蝴蝶個體將隨機移動,這一行為稱為局部開發。其中轉換概率P的大小受到風雨雷電等各種情況的影響,全局探索和局部開發的轉換概率P值取固定值0.8。

蝴蝶產生香味強度大小表達式如下:

其中:f是香味的感知強度,即香味被其他蝴蝶感知的強度;I是刺激強度,取值大小與當前個體適應度有關;a取固定值0.1,通常參數a的取值取決于模態的功率指數。c是感覺因子,數學模型描述如式(2)所示:

其中:ct+1是t+1次迭代群體的感知因子;ct是t次迭代中的感知因子;b通常取固定值0.025;MaxIter是最大迭代次數。每一次迭代生成一個區間為[0,1]的隨機數與轉換概率P進行比較,若隨機數小于轉換概率P,BOA 進行全局搜索,反之進行局部搜索。

全局搜索階段,蝴蝶朝向最優蝴蝶位置移動,數學模型如式(3)所示:

其中:是第t次迭代中第i只蝴蝶的解向量;r是區間[0,1]內的隨機數;g*表示在當前迭代的所有解中的最優位置;fi表示第i只蝴蝶發出的香味強度。

在局部搜索階段,蝴蝶將隨機移動,蝴蝶位置更新公式為:

2 本文算法MSBOA

根據BOA 的設計可知,每只蝴蝶個體都要受到當前最優蝴蝶個體的香味吸引進行移動。該機制雖然一定程度上矯正蝴蝶位置更新的方向,但是在迭代中后期,蝴蝶個體聚集到當前最優蝴蝶位置附近導致蝴蝶種群的多樣性會下降,若當前最優蝴蝶個體陷入局部最優,聚集的蝴蝶種群很難跳出局部極值點。其次采用固定概率為0.8 的兩段式更新策略,使得大部分的蝴蝶個體圍繞著全局探索的更新方式,更多時候接收全局最優位置信息。由于BOA 這兩個特征,使得在迭代后期種群的多樣性下降,甚至出現多個蝴蝶位置重疊的情況,從而導致BOA容易陷入局部最優且收斂精度較低。

為了解決以上BOA 的問題,本文提出MSBOA。本文從3個方面對BOA 進行改進。首先是基于余弦相似度的蝴蝶位置更新策略,取當前蝴蝶位置和當前最優蝴蝶位置構建向量,依次計算向量之間的余弦相似度,并通過設置閾值C,將余弦相似度大于閾值的蝴蝶個體與當前蝴蝶個體進行適應度比較,通過位置更新策略更新適應度較差的蝴蝶個體,解決迭代后期算法種群多樣性下降的問題;其次通過適應度動態調整切換概率,使得適應度較好的個體有更大的概率進行全局引導;最后引入混合自適應慣性權重策略,較大的權重能使BOA保持較好的全局探索能力,較小的慣性權重有助于BOA 局部開發,根據蝴蝶個體的自身適應度以及迭代情況動態平衡BOA搜索偏向。

2.1 基于余弦相似度位置更新策略

余弦相似度反映兩個向量方向一致性關系,取值范圍為[-1,1],其中:1 表示兩個向量之間的夾角為0°,有重合部分;-1 表示兩個向量方向相反。由于BOA 的特點,在迭代中后期,蝴蝶移動圍繞當前最優蝴蝶位置,甚至于移動過程中出現重疊的現象,很難保持種群多樣性。本文引入余弦相似度衡量最優蝴蝶位置與周圍蝴蝶的分布情況,通過構造當前蝴蝶個體位置和最優個體之間的向量,采用余弦相似度作為分布情況的指標,更新余弦相似度較高且適應度較差的蝴蝶個體位置,既提高算法收斂的速度,又保持了種群的多樣性。策略具體細節如下:

首先構建a、b向量:

其中:表示在第t次迭代中第i只蝴蝶的個體,即當前蝴蝶位置;表示第t次迭代其他蝴蝶個體中的一個;g*屬于第t代中的最優蝴蝶個體的位置。

定義cos(ja,b)為兩個向量之間的相似度,取值范圍為[-1,1],個體位置之間相似度計算公式為:

其中:分子為向量a、b的內積,分母分別為向量a、b的模的積。余弦相似度越高,代表蝴蝶個體和越容易在方向上重合。將當前蝴蝶位置i與其他蝴蝶位置j依次計算余弦相似度,并設置閾值C,將與當前蝴蝶位置余弦相似度較高的蝴蝶進行篩選,經多次調試,當C取0.5 時,算法性能達到最優。通過比較當前蝴蝶個體與篩選后個體的適應度,將適應度較差的個體引入狀態轉移算法中的旋轉變換算子或伸縮變換算子[14]進行位置更新,并保留適應度較好的蝴蝶個體位置,位置更新公式如下:

2.2 根據適應度動態調整轉換概率策略

在基本的BOA 中,切換概率P,使用固定的常數來調整BOA的局部開發和全局探索。本文采用文獻[15]提出的自適應機制來描述切換概率,并且作了改進。如式(8)所示:

2.3 自適應混合慣性權重

本文還在全局搜索階段當前個體的位置更新式(3)中引入動態慣性權重w來影響更新蝴蝶的位置,慣性權重較大或者較小都有可能引起BOA 陷入局部最優,從而影響BOA 的效率。為了協調BOA 的全局和局部搜索能力,本文提出了自適應混合慣性權重:

其中:K為是調整過的sigmoid函數,該函數是神經網絡中最常用的激活函數之一。該函數在線性和非線性之間展現出極好的平衡性,擁有平滑的上界域和下邊界域。在迭代前期參數K能保持較大值,保持蝴蝶優化算法在迭代初期階段的全局搜索強度;并且前期K值伸縮的范圍較大,更好地保留了BOA的多樣性。中期K值隨著迭代次數的增加而減少,從而加快BOA 的收斂。在迭代后期的一段保持一個較小的權重,延長了迭代后期的局部搜索時間,更有利于進行局部搜索,更新后的全局階段搜索過程為:

權重引入了式(9)的一部分,其目的在于控制最優蝴蝶位置對新的蝴蝶位置的影響程度,參數β為影響程度因子。蝴蝶個體適應度接近當前最好的適應度時,其權重接近最小值,較小的權重有利于進行局部開發;反之當前個體的適應度與最好的適應度相差較大時,其權重接近最大值,保留當前個體的更多信息,下一次迭代保持較強的全局搜索能力。

2.4 MSBOA步驟

MSBOA的基本流程如下:

Step1 初始化。初始化MSBOA 參數,隨機生成種群位置,計算適應度并擇優保存。

Step2 蝴蝶位置更新階段。根據式(5)構建向量,并根據式(6)計算蝴蝶個體位置的余弦相似度,設置閾值C將相似度高于閾值的蝴蝶位置通過式(7)進行位置更新。

Step3 計算當前個體適應度,并根據式(8)計算P值,判斷當前迭代當前個體是進行全局搜索還是局部搜索,并通過式(10)計算當前個體的自適應慣性權重,對應蝴蝶位置的更新式(11)或式(4)。

Step4 計算位置更新后每只蝴蝶所在位置適應度,并且更新最優位置。

Step5 重復Step2~4 的更新迭代過程,若達到設置收斂精度要求或規定的最大迭代次數,終止MSBOA 并輸出最優解。

MSBOA流程如圖1所示。

圖1 MSBOA流程Fig.1 MSBOA flowchart

2.5 MSBOA的時間復雜度分析

時間復雜度是體現算法的性能的關鍵因素,反映了算法的運行效率。通過閱讀文獻[16]和文獻[13]對混合柯西變異和均勻分布的蝗蟲優化算法和全局優化的蝴蝶優化算法(Simplex Method Sine-Cosine Algorithm Butterfly Optimization Algorithm,SMSCABOA)的時間復雜度進行了分析方式。本文擬采用了類似的方式對MSBOA進行時間復雜度分析。

在基本的BOA 中,假設種群的規模為N,空間維度為n,最大迭代的次數為MaxIter,計算適應度函數時間復雜度為(fn)。根據算法時間復雜度(O)的計算規則。則有:

1)種群初始化階段,假設參數初始化所需要的時間為x1,初始化一個個體位置需要的時間為x2,則產生隨機初始化種群位置的時間復雜度為O(x1+x2×N×n)=O(N×n)。

2)找到當前最優蝴蝶位置的時間復雜度為O(N×(fn)),此時的時間復雜度為O(N×n+N×(fn))。

3)基于余弦相似度位置更新策略的時間復雜度計算分為兩個部分,分別是計算蝴蝶個體之間的余弦相似度和位置更新算子的時間復雜度。其中構建向量部分需要的時間復雜度為O(N×n);計算蝴蝶個體之間的余弦相似度需要的時間復雜度為O((N-1)×n)=O(N×n);進行位置更新的時間復雜度最大也是O(N)級別的時間復雜度。則該部分的時間復雜度為O(N×n)。

4)根據適應度動態調整轉換概率策略,對單個體在一次迭代中增加的時間復雜度為O(1+(fn))=O((fn))。

5)在自適應混合權重階段,參數大多數是繼承目前已存在的,在原本基礎上對個體增加的時間復雜度也是O(1)級別。

第2)~5)階段均是單個個體在一次迭代中產生的時間復雜度。當以N個體進行MaxIter次迭代時,MSBOA 在2)至5)階段的時間復雜度為O(MaxIter×N×(fn)×n)。

綜上,MSBOA 的總的時間復雜度為O(N×(fn)+MaxIter×N×N×n)=O(MaxIter×N×N×n)。MSBOA 與BOA 在時間復雜度上相比,MSBOA 在基于余弦相似度位置更新策略上增加了時間復雜度,相當于在算法內層加了循環。

3 仿真實驗與結果分析

為了全面的驗證MSBOA 的性能以及3 個改進策略的有效性,本文的驗證實驗分為以下4個部分進行:

1)將MSBOA 與僅采用基于余弦相似度位置更新策略的蝴蝶優化算法BOA1、僅采用結合動態調整概率策略的蝴蝶優化算法BOA2、僅采用自適應混合慣性權重的蝴蝶優化算法BOA3 以及基本的蝴蝶優化算法BOA 進行比較,來驗證不同改進策略的有效性;并將改進算法與PSO、SSA 進行收斂性分析,驗證MSBOA的優越性。

2)將MSBOA 與向量粒子群優化(Phasor Particle Swarm Optimization,PPSO)算法[17]、改進的灰狼優化(Improved Grey Wolf Optimization,IGWO)算法[18]、基于對數慣性權重和高斯差分變異的鯨群優化算法(Whale Optimization Algorithm based on logarithmic Inertia weight and Gaussian difference mutation,IGWOA)[19]、優選策略的自適應蟻獅優化(Preferred Strategy self-adaptive Ant Lion Optimizer,PSALO)算法[20]、基于折射反向學習與自適應控制因子的改進樽海鞘群算法(modified Salp Swarm Algorithm based on Refracted oppositional learning and adaptive Control factor,RCSSA)[21]進行比較,驗證MSBOA的優越性。

3)通過Wilcoxon 秩和檢驗驗證MSBOA 和其他算法之間的顯著性差異。

4)在CEC2014 基準函數中選取部分單峰和多峰,混合和復合類型的函數進行優化測試,再次驗證MSBOA的有效性和魯棒性。

實驗引入16 個基準測試函數,分為三類:第一類為單峰基準測試函數,表1 中F1~F6 所示;第二類為多峰基準測試函數,如表1 中的F7~F10 所示;第三類為固定維度的多峰基準測試函數,如表1中的F11~F16所示。

表1 基準測試函數Tab.1 Benchmark test functions

算法的基本參數:種群規模為30,空間維度為30、100、500,MaxIter=500。算法內的參數如表2所示。

表2 算法參數設置Tab.2 Algorithm parameter setting

3.1 改進策略有效性分析

將基本BOA 與BOA1、BOA2、BOA3、MSBOA 在空間維度為30 的條件下對16 個函數進行求解并通過均值以及標準差評估仿真結果,獨立運算30次數據進行統計分析,如表3~4所示。首先,表3和表4中的平均值可以反映算法的收斂精度和尋優能力,而標準差可以反映算法的魯棒性。具體來說,對于單峰值函數F1~F4、F6、F7,以及多峰值函數F9~F11、F13~F16,MSBOA 均可以尋找到理論最優值,且標準差最??;對于函數F5、F8、F12,雖然沒有尋到理論最優,但是對于函數F5、F8、F12,無論是平均搜索精度還是穩定性上,MSBOA均體現出明顯的優勢。在固定維度函數上,MSBOA 的尋優化精度和穩定性也明顯好于BOA。單從3 個改進策略上來看,BOA1和BOA3對函數F1~F4以及F5~F15改進效果明顯。從評價指標上可以看出BOA1 在無論在單峰函數還是多峰值函數上尋優精度與MSBOA效果持平,這和引入的基于余弦相似度更新策略密切相關,該策略有效地提高了BOA 的尋優能力。BOA2對函數的尋優精度提升幅度不大,在3個改進策略里面相對最差。其中對于F2函數,BOA2收斂精度雖然不及BOA,但穩定性上優于BOA。BOA3 在函數F7、F9 上均能尋到理論最優值,該策略整體效果優于BOA。綜合表3 中標準差以及均值上表現,3 個改進策略都在一定程度上提升了BOA 的性能,且融合3 個改進策略的MSBOA 表現出更高的尋優精度以及算法穩定性。

表4 固定維度多峰基準測試函數測試結果Tab.4 Test results of multimodal benchmark test functions in fixed dimension

圖2 給出了BOA、BOA1、BOA2、BOA3 以及MSBOA 的單峰和多峰值函數收斂曲線圖。如圖2 所示,由于MSBOA 收斂精度高,為方便觀察算法收斂情況,圖2 中縱坐標表示為lg(適應度值)。從圖2 可知,在單峰值函數和多峰值函數上,MSBOA 具有更高的收斂速度和尋優精度。具體來說,對于F6、F7、F9、F10 函數,MSBOA 能在200 代能找到最優值,體現出較強的優化能力。從改進策略上來看,BOA1 尋優效果最好,其次是BOA3,BOA2 最差。BOA1 和BOA3 收斂曲線大部分位于BOA 收斂曲線的下方,且收斂較快,這說明引入基于余弦相似度位置更新策略,有效地保持了蝴蝶種群在搜索空間的多樣性,使得BOA1 在迭代前期收斂較快,且在多個函數上能找到最優值。在迭代后期,MSBOA 在單峰函數的收斂速度比其他的算法要高,且精度和BOA1 保持一致,這與BOA2和BOA3 密切相關。對于多峰函數,BOA1 和MSBOA 在收斂速度上接近??傮w來說,在基準函數上,無論收斂速度還是尋優精度上MSBOA都遠遠優于BOA。

針對時間復雜度的問題,在1~200 維度上對F1~F10 函數進行仿真實驗。從如圖3 所示的實驗結果來看,與BOA 運行時間相比,改進后算法耗時較長,耗時主要來自于基于余弦相似度位置更新策略。隨著維度的增加,在5 種算法的平均耗時上都增加,這是由于從低緯度到高緯度,搜索空間增大,搜索的難度也呈現指數增加。

圖3 基準函數維度對應平均耗時曲線Fig.3 Curve between benchmark function dimension and average time consumption

從表3~4和圖2~3可看出,對MSBOA在尋優精度的表現,驗證了有效性,不過耗時相較于BOA有所增加。

表3 單峰和多峰值基準測試函數測試結果Tab.3 Test results of unimodal and multimodal benchmark test functions

圖2 基準函數平均收斂曲線Fig.2 Benchmark function average convergence curve

3.2 與其他的群智能算法比較

將MSBOA 與PPSO、RCSSA、IGWO、IGWOA、PSALO 在100 維度的條件下進行對比。對比數據直接引用文獻[17-21],且MSBOA 內參數與表2 保持一致,最大迭代次數和種群個數與對比算法保持一致。在100維度的條件下運行50次取平均值的實驗結果如表5所示。

表5 不同群智能算法在100維度下的結果比較Tab.5 Result comparison with different swarm intelligence algorithms in 100 dimensions

表5中的最優值和平均值反映算法的尋優能力。MSBOA對于給定的5 個單峰值函數,其中有4 個能找到理論最優值,并且穩定性優于其他算法。MSBOA 對單峰函數F5 最優值與其他對比算法相比在最優值上相差一個數量級。在3 個多峰值函數,MSBOA在能找到兩個函數的理論最優值。在求解F8時,MSBOA、IGWOA 以及RCSSA 尋優精度持平,PSALO 次之,PPSO 效果最差;在平均值和標準差上,MSBOA 比其他算法的表現更好;在求解其他函數時,MSBOA 比其他的算法求解精度都要高且效果穩定。

為了進一步說明MSBOA 的有效性,在相同的實驗環境下,將MSBOA 與其他改進的BOA 進行對比,引用CIBOA[10]、CWBOA[11]、SMSCSABOA[13],以及SIBOA[22]數據,分別在30 維度、100 維度和500 維度上對8 個基準函數進行對比,如表6所示。

表6 不同群智能算法在不同維度下的結果比較Tab.6 Result comparison with different swarm intelligence algorithms in different dimensions

總體上CIBOA 以及CWBOA 尋優結果較差,SMSCSABOA 和SIBOA 尋優精度上相差不大,MSBOA 無論收斂精度還是穩定性上均優于其他4 種算法。具體來看,在30維度,CWBOA 在求解函數F1、F7 和F9 上能尋到理論最優值,CIBOA 在求解F7 和F9 能尋找到理論最優值,MSBOA 和SMSCSABOA 在其中給出的5 個函數上效果持平,其中MSBOA 能找到理論最優值基準函數有6個,在求解函數F5問題上,CWBOA 優于其他算法,CIBOA 次之。橫向對比,在100維度上,MSBOA 保持較高的尋優精度以及穩定性,其中有6個基準函數(F1、F2、F3、F4、F7 和F9)找到理論最優值;即便在500 維度下,MSBOA 也有4 個函數(F1、F3、F7 和F9)能找到理論最優值,且在函數F2、F4 和F5 的尋優上,求解精度和穩定性優于CWBOA 和SMSCSABOA。在函數F6 上,MSBOA 的尋優精度以及穩定性與其他算法持平。綜上可知,對于以上基本測試函數,MSBOA 都有較優的穩定性以及尋優能力,能有效地解決BOA求解精度不高的問題。

3.3 Wilcoxon秩和檢驗

在文獻[23]中提出,對于改進的算法,需要進行統計檢驗來驗證改進算法在特定問題是否與現有的算法有顯著改進。為了判斷MSBOA 的每次尋優結果是否在統計上與其他算法的最佳結果顯著不同,Wilcoxon 秩和檢驗統計檢驗在5%的顯著性水平下進行:當p值小于5%(即5.00E-02)時,“R”為“+”,即拒絕H0 假設,說明兩種算法的差異性顯著;否則就是接受H0 假設,說明兩種算法在整體上是相同的。表7 給出了在10個基準測試函數下,MSBOA 對BOA、BOA1、BOA2、BOA3 以及樽海鞘算法(Salp Swarm Algorithm,SSA)和粒子群優化(Particle Swarm Optimization,PSO)共計6種算法的秩和檢驗p值。從表7 中可以觀察到大部分的p值是小于5%,因此總體上說明MSBOA與其他的6種算法之間差異性顯著更優。

表7 基準測試函數的Wilcoxon 秩和檢驗p值Tab.7 p-value for Wilcoxon rank-sum test on benchmark test functions

3.4 CEC2014基準函數上進行測試

為再次驗證MSBOA的有效性和魯棒性,在CEC2014單目標優化函數中選取部分單峰函數(Unimodal Function,UN)、多峰函數(Multimodal Function,MF)、混合函數(Hybrid Function,HF)和復合函數(Composition Function,CF)進行優化求解,對選取的部分函數總結如表8 所示,該實驗在最大迭代次數上設置為1 000,算法的其他參數設置與表2保持一致。

CEC2014 函數因為具有復雜的特征,常用來驗證算法的魯棒性,將MSBOA 與BOA1、BOA2、BOA3、PSO、SSA、WOA 進行比較,部分CEC2014函數獨立運行30次后取平均值的結果如表9 所示。MSBOA 在其中7 個函數上的表現優于BOA,說明本文提出的改進策略有效。其次對于CEC05、CEC12、CEC13、CEC16 測試函數,MSBOA 基本收斂到最優值的附近,表現出較強的尋優能力。對于CEC05,MSBOA 的尋優精度略低于SSA,但是MSBOA 的標準差優于SSA 和WOA,表現出較強的穩定性。對于較復雜的復合型特征函數CEC26,MSBOA同樣展現出較強的尋優能力,其尋優精度僅略低于WOA。綜上所述,本文提出的MSBOA 在CEC2014 函數上,同樣表現出較強的尋優能力。與主流算法相比,MSBOA 的尋優精度和尋優穩定性上表現出較強的競爭能力,同時再次驗證MSBOA的有效性和魯棒性。

表9 CEC2014函數的優化結果比較Tab.9 Comparison of optimization results of CEC2014 functions

4 結語

為了改善BOA 容易陷入局部最優和收斂性差等問題,受余弦相似度的啟發,本文提出了基于余弦相似度的位置更新策略,通過設置閾值,將相似度大的蝴蝶個體位置進行更新,并且融合旋轉算子和伸縮變換算子,有效增加了全局探索能力;在此基礎上,對BOA 引入了動態轉換概率,更好地平衡了全局探索和局部開發;最后引入混合的自適應慣性權重,加快了BOA 收斂。四組實驗顯示,MSBOA 在基準的函數上求解的結果優于BOA,其次與CWBOA、CIBOA、SMSCSABOA、SIBOA 相比,MSBOA 具有很強的競爭能力。通過Wilcoxon 秩和檢驗,顯示本文算法更優的顯著性差異性;最后通過對CEC2014 部分函數的求解結果在次驗證了本文提出的MSBOA 的有效性。在后續的研究中,可以考慮將MSBOA 應用到改進機器學習參數優化的問題上,進一步驗證MSBOA的性能。

猜你喜歡
余弦復雜度適應度
改進的自適應復制、交叉和突變遺傳算法
數字經濟對中國出口技術復雜度的影響研究
毫米波MIMO系統中一種低復雜度的混合波束成形算法
Kerr-AdS黑洞的復雜度
非線性電動力學黑洞的復雜度
橢圓余弦波的位移法分析
啟發式搜索算法進行樂曲編輯的基本原理分析
兩個含余弦函數的三角母不等式及其推論
實施正、余弦函數代換破解一類代數問題
基于CAXA的盤類凸輪CAD/CAM應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合