楊子琴
江南大學物聯網工程學院 江蘇 無錫 214122
各種群智能算法被應用在無線傳感器網絡方面,這些算法具有性能穩定、容易操作等優點。蟻獅優化算法(Antlion Optimizer, ALO)是由Seyedali在2015年提出的一種群智能算法[1]。該算法的思想是根據蟻獅構造陷阱捕食螞蟻,螞蟻逃離陷阱的行為。目前被用在航線規劃[2]、天線布局優化[3]等領域。雖然蟻獅優化算法在各個領域表現出了優良的性能,但是其還是跟其他優化算法一樣存在收斂速度慢以及容易陷入局部最優的問題。針對此問題,提出一種基于黑洞策略和反向學習的蟻獅優化算法。利用黑洞策略向精英蟻獅的位置靠近,從而提高算法的收斂速度。但是在向精英蟻獅靠近的時候,過多的螞蟻聚集在精英蟻獅周圍,使得螞蟻種群的多樣性降低,因此使用反向學習解決此問題。通過選擇函數進行測試,所提出的算法具有良好的性能。
螞蟻在自然界中可以隨意活動,因此在建模中其在搜索空間內的運動過程也應該是隨機的,具體行為定義為:
當一只螞蟻落入一個由蟻獅搭建的陷阱時,螞蟻會繞著陷阱隨機游走,以便自己能夠逃離陷阱,與此同時,蟻獅為了阻止其逃跑,會不斷縮小陷阱的大小,使其無法逃離,定義為:
黑洞策略的概念源于外太空的黑洞現象。根據黑洞的概念,在黑洞策略中,將種群中最優個體作為黑洞,而其他個體作為正常的恒星,當恒星靠近黑洞時,就是當其他個體靠近最優個體時,其他個體根據自身的位置和隨機數向最優個體移動的方向移動。受Hatamlou[4]和陳民鈾[5]等人的啟發,將黑洞策略引入到蟻獅優化算法中。在算法中設置一個閾值,并且產生一個隨機數,比較它們的大小,如果小于等于時,螞蟻的位置是通過原算法進行更新,反之若大于時,螞蟻被黑洞捕獲,螞蟻的位置是通過黑洞策略進行更新,定義為:
運用此方法對經過黑洞策略后的螞蟻個體,進行反向學習,最后將不同維度的反向解,進行組合得到新的解,比較原始解和反向解的適應度值大小,選擇適應度值更優的進入下一次迭代中。由于使用了不同維度的反向解進行組合,可以達到豐富螞蟻種群多樣性的目的。
仿真實驗在MATLAB2016(b)上進行,測試函數如表1所示,利用GWO[7]、ALO以及IALO進行求解,測試結果可以用來說明改進優化算法的性能。
表1 測試函數
各算法中設置30為種群規模,100為最大迭代次數。表2為各算法進行10次仿真結果的各項指標,其中為單峰函數,函數上改進的算法IALO的在四個指標中的最優值、平均值均優于GWO以及ALO,在最差值和方差優于GWO以及ALO在函數算法的各方面均為最優,從兩個單峰函數的整體結果來看,IALO的尋優能力優于其他算法。對于多峰函數不同于只有一個最優值的單峰函數,它具有多個最優值。在求解函數時,IALO最優值1.91E-12優于其他算法的最優值。對于函數,GWO的最優值為5.15E-8低于IALO的最優值4.42E-05,但是其方差5.02E-02高于IALO的方差2.74E-03,因此IALO的穩定性能優于GWO。綜合表2可以得出IALO的性能優于其他算法。
表2 測試函數尋優結果
本文針對蟻獅優化存在的缺點,提出一種基于黑洞策略和反向學習的蟻獅優化算法。該算法中,對螞蟻的位置更新方式,利用黑洞策略進行更新,使螞蟻個體快速地靠近精英蟻獅,從而快速收斂。然而該方式容易限制算法種群多樣性,因此利用反向學習提高多樣性。從仿真實驗的結果來看,本文提出的方法提高了算法的尋優性能。