基於自適應鄰域搜索和高斯擾動的人工蜂群算法(ABCNG)
人工蜂群算法是一種流行的群體智能優化算法。它因易於實現、參數少、全局搜索能力強而受到廣泛關注。然而,ABC也存在一些局限性,如開發能力弱、收斂速度慢等。為了克服這些缺點,本文提出了一種新的基於自適應鄰域搜索和高斯擾動的ABC算法。首先,采用自適應方法動態調整鄰域大小。然后,基於鄰域結構構造了一種改進的全局最優解引導搜索策略。最后,設計了一種新的具有進化速率的高斯擾動來進化每次迭代中不變的解。在兩個基准集上測試了ABCNG的性能,並與一些優秀的ABC變體進行了比較。結果顯示,ABCNG比其他六個ABC更具競爭力。
1.介紹
工程領域的很多問題都可以轉化為優化問題。傳統的數學優化方法如線性規划和梯度下降法在解決復雜優化問題時存在一些缺陷。與傳統方法相比,智能優化算法(IOAs)在解決連續/離散、多峰和不可微優化問題方面更具優勢。近年來,IOAs逐漸成為流行的優化工具。有一些代表性的IOAs包括進化算法[1,2]、差分進化[3]、粒子群優化[4–6]、蟻群優化[7]、人工蜂群[8,9]、分布估計算法[10]、螢火蟲算法[11,12]、多跟蹤器優化算法[13]和布谷鳥搜索[14]。
作為IOAs的成員,ABC具有一些典型的優勢:魯棒性好、參數少、探索能力強。它已廣泛應用於路徑規划[15]、調度問題[16]、電力系統[17]和其他問題[18]。然而,ABC和其他IOA也有類似的缺點。對於復雜問題,它們容易陷入局部極小,不能保持種群多樣性。搜索精度可能不符合要求。
幾項研究報告稱,鄰域搜索可以有效提高IOAs的性能[19–21]。因為解的鄰域可能覆蓋全局最優解或次優解。通過搜索當前解決方案的鄰域,可能有助於找到更好的解決方案。然而,設置鄰域大小是一項困難的任務。較大的鄰域大小可以覆蓋更多的解並增強探索性,而較小的鄰域大小可以包含較少的解並提高開發性。雖然不同的鄰域搜索策略被引入到ABC中,但是它們的鄰域大小在搜索過程中是固定的[22]。本文提出了一種新的基於自適應鄰域搜索和高斯擾動的人工蜂群算法。在ABCNG中,采用自適應方法動態調整鄰域大小。然后,基於鄰域結構構造了一種改進的全局最優解引導搜索策略。此外,還設計了一種新的具有進化速率的高斯擾動來進化每次迭代中不變的解。最后,在包括經典測試函數、移位測試函數和旋轉測試函數的兩個基准集上,將ABCNG與其他六個abc進行了比較。
基於自適應鄰域搜索和高斯擾動的人工蜂群算法(ABCNG)
人工蜂群算法是一種流行的群體智能優化算法。它因易於實現、參數少、全局搜索能力強而受到廣泛關注。然而,ABC也存在一些局限性,如開發能力弱、收斂速度慢等。為了克服這些缺點,本文提出了一種新的基於自適應鄰域搜索和高斯擾動的ABC算法。首先,采用自適應方法動態調整鄰域大小。然后,基於鄰域結構構造了一種改進的全局最優解引導搜索策略。最后,設計了一種新的具有進化速率的高斯擾動來進化每次迭代中不變的解。在兩個基准集上測試了ABCNG的性能,並與一些優秀的ABC變體進行了比較。結果顯示,ABCNG比其他六個ABC更具競爭力。
1.介紹
工程領域的很多問題都可以轉化為優化問題。傳統的數學優化方法如線性規划和梯度下降法在解決復雜優化問題時存在一些缺陷。與傳統方法相比,智能優化算法(IOAs)在解決連續/離散、多峰和不可微優化問題方面更具優勢。近年來,IOAs逐漸成為流行的優化工具。有一些代表性的IOAs包括進化算法[1,2]、差分進化[3]、粒子群優化[4–6]、蟻群優化[7]、人工蜂群[8,9]、分布估計算法[10]、螢火蟲算法[11,12]、多跟蹤器優化算法[13]和布谷鳥搜索[14]。
作為IOAs的成員,ABC具有一些典型的優勢:魯棒性好、參數少、探索能力強。它已廣泛應用於路徑規划[15]、調度問題[16]、電力系統[17]和其他問題[18]。然而,ABC和其他IOA也有類似的缺點。對於復雜問題,它們容易陷入局部極小,不能保持種群多樣性。搜索精度可能不符合要求。
幾項研究報告稱,鄰域搜索可以有效提高IOAs的性能[19–21]。因為解的鄰域可能覆蓋全局最優解或次優解。通過搜索當前解決方案的鄰域,可能有助於找到更好的解決方案。然而,設置鄰域大小是一項困難的任務。較大的鄰域大小可以覆蓋更多的解並增強探索性,而較小的鄰域大小可以包含較少的解並提高開發性。雖然不同的鄰域搜索策略被引入到ABC中,但是它們的鄰域大小在搜索過程中是固定的[22]。本文提出了一種新的基於自適應鄰域搜索和高斯擾動的人工蜂群算法。在ABCNG中,采用自適應方法動態調整鄰域大小。然后,基於鄰域結構構造了一種改進的全局最優解引導搜索策略。此外,還設計了一種新的具有進化速率的高斯擾動來進化每次迭代中不變的解。最后,在包括經典測試函數、移位測試函數和旋轉測試函數的兩個基准集上,將ABCNG與其他六個abc進行了比較。
這項工作的其余部分組織如下。第二節主要介紹標准ABC。下一節簡要介紹一些ABC的研究工作。我們的方法在第4節中提出。第5節給出了參數討論和性能驗證。工作在第6節結束。
2.人工蜂群
3.相關著作
4.擬議的辦法
搜索策略/等式對ABC有重大影響。為了提高ABC的性能,提出了不同的搜索策略。然而,僅僅改變搜索策略並不能有效解決ABC的缺點。最近,鄰域拓撲被引入到ABC中,以獲得探索能力和開發能力之間的平衡。為了加強算法的開發能力,在[22]中使用了環鄰域拓撲,結果表明在ABC上有很大的改進。本文提出了一種由自適應鄰域搜索和高斯擾動組成的新的ABC算法。在ABCNG中,采用自適應方法動態調整鄰域大小。然后,設計了一種基於鄰域的改進搜索策略。此外,采用一種新的具有進化速率的高斯擾動來保持種群多樣性和避免局部極小。
4.1.自適應鄰域搜索
鄰域搜索是提高入侵檢測系統性能的重要操作。最近,一種稱為k鄰域的新鄰域結構被成功地應用於不同的IOA[智能優化算法。21,43–45]。它連接所有的解決方案,以構建一個環形拓撲。圖1說明了這個新鄰域的基本形式。群體中具有最后一個序數的個體與具有第一個序數的個體相關聯。Xi的k-鄰域有2k + 1個解{ X(i- k),。。。,X(i),。。。、X(i+k)}和X(i)位於領域的中心。在[44]中,Das等人首次在差分進化中利用k鄰域設計了一個變異算子。在[45]中,王等人將k-鄰域引入到粒子群算法中,構造了一種局部搜索策略。為了降低螢火蟲算法的計算復雜度,王等人[46]提出了一種新的基於k鄰域的鄰域吸引模型。最近,k鄰域被用於改進ABC [22]中的選擇方法。對於上述研究,鄰域半徑k在優化過程中保持不變。文獻[46]指出,參數k會影響相應策略的搜索能力。選擇最佳k並不是一件容易的事情,不同的搜索階段可能需要不同的k值。
基於以上分析,本部分提出了一種自適應鄰域搜索策略。在我們的方法中,鄰域半徑k不是固定的,它可以在搜索過程中自適應調整。當需要提高開采能力時,應減小鄰域半徑k。當我們需要加強探索能力時,應該增加鄰域半徑k。對於當前的Xi,在就業蜂搜索或旁觀者蜂搜索中產生了新的解決方案Vi。通過監控子代Vi的質量,鄰域半徑k動態更新如下。
其中f (Vi)和f (Xi)分別代表Vi和Xi的目標函數值。鄰域半徑k應滿足約束1 ≤ k ≤ (N-1)/2。如果k違反了約束,它將被修改如下。
本文只考慮極小化問題。因此,一個更好的后代Vi會增加鄰域半徑k,而一個更差的后代Vi會降低k的值。如果后代Vi的質量比Xi好,說明這是一次高質量的搜索。增加鄰域半徑k可以擴大搜索區域,提高探索性。如果后代Vi的質量比Xi差,則表明搜索效率低。減小鄰域半徑k可以縮小搜索范圍,提高開發效率。
根據改進的k鄰域結構,設計了一種改進的GABC搜索策略。
其中Xni從Xi中的動態鄰域中選擇(i不=ni),Xno從鄰域的外部隨機選擇。權重參數φi、j和ϕi,j分別在范圍[1,1]和[0,1.5]內。
4.2.新高斯擾動
在ABC中,旁觀者蜂旨在選擇精英解決方案進行進一步搜索。在前一節中,自適應鄰域搜索被用於雇佣蜂和旁觀者蜂。雖然這種方法可以提高ABC的搜索效率,但旁觀者蜂的任務並沒有完全完成。在這一部分中,通過使用失敗解決方案的搜索信息來增強本地搜索能力。對於每一個Xi,如果它的鄰居搜索失敗,那么Xi會再次進行增強搜索。
高斯擾動被成功地用於幾種智能優化算法中,以獲得更好的性能[48–50]。然而,高斯擾動的步長決定了它的搜索能力。大步長對跳出局部極小有很大影響,可以增強探索性。小的步長有助於找到好的解決方案,增強開發能力。為了衡量解決方案的改進,兩種進化速率(δ和δa)定義如下。
其中fi(t)是第四次迭代的Xi函數值。如圖所示,δi表示Xi的進化速度,δa表示種群的平均進化速度。一種新的基於進化速率的高斯擾動搜索策略構造如下。
其中j = 1,2,.。。,D,g()代表平均δ1和標准偏差δ2的高斯分布。參數δ1和δ2選自進化速率δi或 δa。
在旁觀者蜂搜索中,當子代Vi質量低於Xi時,對Xi進行高斯擾動,產生另一個Vi。然后,由旁觀者蜂階段在最后一次迭代中計算出進化速率δi和δa。在旁觀者蜂階段之前,群體中所有解的函數值都被保留。完成旁觀者蜂搜索后,Eqs。(8)和(9)分別用於計算演化速率δi和δa。高斯擾動的主要步驟在算法1中進行了描述,算法1中三個變量監控Xi的質量變化
4.3.擬議辦法的框架
如前所述,ABCNG采用兩種策略,包括自適應鄰域搜索和高斯擾動。算法2給出了ABCNG的整體框架。在該框架中,FEs是計算目標函數的評價次數,MaxFEs是FEs的最大值。與原ABC相比,在ABCNG中改進了觀察蜂的搜索模式。在ABC中,采用輪盤賭方法選擇較優解,並進一步搜索較優解的鄰域。在ABCNG中,旁觀者蜂不再使用輪盤賭來選擇好的個體進行搜索。當當前解沒有被新解替換時,使用高斯擾動產生另一個新解。
為了解決一個特定的問題,我們假設O(f)是目標函數的計算復雜度,Tmax是最大迭代次數。對於ABC,其計算復雜度為O(Tmax(SN *f+SN *f+f))= O(Tmax f(2SN+1))= O(Tmax *SN *f)。對於提出的ABCNG,其復雜度為O(Tmax(SN *f+2 *SN *f+f))= O(Tmax f(3SN+1))= O(Tmax* SN *f)。雖然ABCNG 和ABC的計算復雜度相同,但ABCNG 比ABC花費更多的計算時間。
5.實驗性研究
5.1.基准功能和參數設置
為了驗證ABCNG的性能,使用了兩組基准函數。第一組包含22個經典測試函數,第二組是CEC 2013基准集。第一組函數的維數分別設置為30,50和100[46,51]。第一組函數的具體表示如[36]所示。
兩個指標(均值和標准差)用於評估ABCNG的性能。平均值代表算法在25次獨立運行中獲得的最佳結果的平均值,標准值代表相應的方差。它們表明了由該算法獲得的全局最優值的准確性和穩定性。有三個系列的實驗。實驗一研究了ABCNG中的參數δ1和δ2。實驗2比較了ABCNG與ABC和其他五個改進的ABC變體(GABC、ABCVSS、MEABC、EABC、EABC和ABCLGII)的性能。實驗3進一步評估了ABCNG在復雜函數上的性能(CEC2013基准)。對於前兩個實驗,種群大小SN、limit、MaxFEs和runtime分別統一設置為50、SN D、5000 D和25。對於第三個實驗,第5.4節描述了具體的參數設置。本節涉及的所有算法都是用C語言編寫的。計算平台配備了中央處理器英特爾酷睿i5-5200U 2.2千兆赫、內存4 GB和微軟Visual Studio 2010。
5.2.高斯擾動中δ1和δ2的影響
在新的高斯擾動中有兩個參數δ1和δ2,它們可能影響所提出的ABCNG的效率。從進化速率δ1和δ2中選擇δ1和δ2。為了清楚地說明δ1和δ2的影響,在第一組函數上測試了具有四種不同組合的ABCNG。詳細的測試組合如下所示。
為了在高斯擾動中選擇合適的δ1和δ2,弗里德曼檢驗用於計算它們在第一組函數上的平均排序值[39]。表4給出了ABC、abng-ii、abng-ia、abng-aa和abng-ai的平均排名值。如所見,三種維度上的ABNCG-ia達到了最佳平均排名值。盡管ABNG-aa和ABNG-ai在單峰函數上有較好的性能,但它們在整個基准集上的穩定性不如ABNG-ia。因此,在以下實驗中使用ABNCG-ia(δ1 =δ1和δ2= δa)。
6.結論
本文提出了一種新的ABC變體——ABCNG。新方法采用了三種改進:(1)采用自適應方法動態更新鄰域大小;(2)基於鄰域結構構造了一種改進的全局最優解引導搜索策略;(3)設計了一種新的具有進化速率的高斯擾動。在包括經典函數和復雜CEC 2013函數的兩個基准集上測試了ABCNG的性能。將ABCNG的結果與ABC、GABC、ABCVSS、MEABC、EABC和ABCGII進行了比較。
為了選擇最佳參數δ1和δ2,測試了四種不同的參數組合。結果表明,ABNCG-ia(δ1 =δI,δ2= δa)比測試集上的其他參數更合適。對於經典測試函數,根據統計結果,ABCNG在D = 30、50和100上超過了ABC、GABC、ABCVSS、MEABC、EABC和ABCGIL。對於復雜的CEC 2013基准集,ABCBG也優於其他對比算法。
鄰域搜索對入侵檢測系統的性能至關重要。為了提高鄰域搜索的搜索效率,提出了一種調整鄰域大小的簡單方法。未來還會嘗試其他策略。此外,這項工作的想法可能適用於其他國際組織。