摘 要:針對麻雀搜索算法(sparrow search algorithm,SSA)在優(yōu)化過程中易陷入局部最優(yōu)、尋優(yōu)精度低等問題,提出了一種混合策略改進的麻雀搜索算法(MSSA)。為了使麻雀個體在搜索空間中能夠進行充分搜索,在算法尋優(yōu)過程中引入存檔階段去接收麻雀發(fā)現(xiàn)者向安全區(qū)域移動時可能被捕獲而殘留的位置信息;在算法的迭代過程中對當前最優(yōu)個體作自適應(yīng)鄰域搜索,通過充分探索優(yōu)質(zhì)個體周圍的位置信息來增強算法跳出局部最優(yōu)的能力。通過九個基準測試函數(shù)進行性能評估,將MSSA、SSA以及四個改進的麻雀搜索算法,即混沌麻雀搜索算法、混合策略改進的麻雀搜索算法、改進的麻雀搜索算法、增強型的麻雀搜索算法,進行性能評測比較。實驗結(jié)果表明,MSSA相較于其他對比算法在近80%的測試函數(shù)上都有更好的收斂精度和穩(wěn)定性,并且在Friedman檢驗中MSSA的排名均獲得了第一。最后,將MSSA應(yīng)用于障礙物環(huán)境下的無線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)覆蓋優(yōu)化問題,MSSA比五個對比算法的覆蓋率分別提高了9.77%、4.25%、6.62%、3.02%、7.38%。
關(guān)鍵詞:麻雀搜索算法;麻雀發(fā)現(xiàn)者;結(jié)合存檔的捕獲機制;自適應(yīng)鄰域搜索
中圖分類號:TP301.6 文獻標志碼:A 文章編號:1001-3695(2023)02-015-0404-09
doi: 10.19734/j.issn.1001-3695.2022.07.0332
Improved sparrow search algorithm with mixed strategy and its application
Li Dahai, Zhan Meixin, Wang Zhendong
(School of Information Engineering, Jiangxi University of Science amp; Technology, Ganzhou Jiangxi341000, China)
Abstract:Aiming at the problems that the sparrow search algorithm (SSA) is prone to fall into local optimum and the optimization accuracy is low in the optimization process, this paper proposed a hybrid strategy improved sparrow search algorithm (MSSA). Firstly, in order to enable individual sparrows to fully search in the search space and increase the accuracy of algorithm optimization, it introduced an archiving stage in the algorithm optimization process to receive the residual position information that might be captured by sparrow producers when they moved to the safe area. Secondly, in the iterative process of the algorithm, it performed an adaptive neighborhood search operation on the current optimal individual, and fully explored the location information around the high-quality individual to enhance the algorithm’s ability to jump out of the local optimum. This paper used 9 benchmark functions to evaluate the MSSA with SSA, and other four improved SSA, which were chaotic sparrow search optimization algorithm(CSSOA), mixed strategy improved sparrow search algorithm(MSSSA), improved sparrow search algorithm(ISSA), and enhanced sparrow search algorithm(ESSA). Experiment result illustrates that MSSA can achieve better convergence accuracy and stability on nearly 80% of the benchmark functions, and MSSA is also ranked first in the Friedman test. This paper also applied MSSA to optimize wireless sensor network(WSN) coverage in an obstacle environment. Compared with other five compared algorithms, MSSA can increase the coverage rates of WSN up 9.77%, 4.25%, 6.62%, 3.02%, and 7.38%, respectively.
Key words:SSA; sparrow producer; capture mechanism combined with archive; adaptive neighborhood search
0 引言
現(xiàn)實中的工程問題大多具有多峰值、非線性、多約束等特點[1],如移動機器人路徑規(guī)劃[2]、軸承故障診斷[3]等。因為此類問題的目標函數(shù)一般是非連續(xù)且不可微的,所以很難通過傳統(tǒng)優(yōu)化算法如牛頓法、梯度法等進行求解。智能優(yōu)化算法是一種基于隨機搜索技術(shù)的優(yōu)化方法,只需要通過函數(shù)值就能實現(xiàn)最優(yōu)值的求解[4],因其高效的優(yōu)化能力、簡單易實現(xiàn)的特點,近年來一直作為現(xiàn)實工程問題的熱門解決方案,國內(nèi)外學者對此已經(jīng)進行了相關(guān)研究[5~8]。
麻雀搜索算法(sparrow search algorithm,SSA)是2020年由Xue等人[9]提出的一種新型高效智能優(yōu)化算法,該算法通過模擬麻雀覓食行為來尋找問題最優(yōu)解,其具有易于實現(xiàn)等優(yōu)點,但同時也存在收斂精度低、易陷入局部最優(yōu)等問題。對于上述問題,諸多學者已經(jīng)提出若干改進的麻雀算法。張偉康等人[10]提出了一種融入多策略改進的麻雀搜索算法(MSSSA)。首先,在種群初始化中引入了circle映射以增加種群的多樣性;其次,引入蝴蝶優(yōu)化算法的蝴蝶飛行方式改進發(fā)現(xiàn)者的位置更新方式,該方式能擴大算法的搜索空間;最后,對最優(yōu)個體位置進行變異以增強算法跳出局部最優(yōu)的能力。呂鑫等人[11]提出了一種結(jié)合tent映射和高斯變異的改進麻雀搜索優(yōu)化算法(CSSOA)。首先,tent映射被用于種群初始化,增強了初始種群的多樣性;其次,在算法迭代過程中,會依據(jù)種群個體的分布情況選擇對麻雀個體進行高斯變異或者tent映射擾動,提高了算法跳出局部最優(yōu)的能力。印雷等人[12]提出了一種將佳點集和Lévy飛行策略分別引入種群初始化和發(fā)現(xiàn)者位置更新的改進麻雀算法(ISSA),改進策略提高了算法的全局優(yōu)化能力,并將改進算法用于優(yōu)化DV-hop定位。李愛蓮等人[13]針對麻雀搜索算法尋優(yōu)后期種群多樣性損失等問題,提出了融合正余弦和柯西變異的改進麻雀搜索算法(SCSSA)。首先,通過折射反向?qū)W習對算法的種群進行初始化;其次,在麻雀發(fā)現(xiàn)者位置更新引入正余弦策略以平衡算法的全局和局部搜索能力;最后,在跟隨者更新階段融合柯西變異對最優(yōu)解進行擾動。Ma等人[14]提出了一種增強型的多策略改進麻雀搜索算法(EMSSA)。首先,使用一種自適應(yīng)tent映射改善初始種群的多樣性;其次,提出了一種危險轉(zhuǎn)移策略,使用正余弦方式中的位置移動方式來選擇麻雀偵察者的新位置,能夠獲得更優(yōu)質(zhì)的個體位置;最后,通過動態(tài)進化策略對每一代的最優(yōu)個體進行擾動,增強了算法跳出局部最優(yōu)的能力。Zhou等人[15]提出了一種混合策略改進的麻雀搜索算法(HISSA)。首先,使用位置控制因子和蝴蝶優(yōu)化算法的位置更新方式修改了麻雀生產(chǎn)者的搜索方式,以提高算法的全局搜索能力;其次,使用柯西變異和貪心法則對當前最優(yōu)解進行擾動以增強算法跳出局部最優(yōu)的能力。
上述學者提出的改進算法一般是通過增加初始種群多樣性、對麻雀個體進行相應(yīng)的變異擾動等方式去提升算法的優(yōu)化能力,盡管這些方法對SSA的優(yōu)化能力有所提高,但在解決一些復(fù)雜多峰問題上,麻雀搜索算法仍然存在易陷入局部最優(yōu)、尋優(yōu)精度低等問題。
綜上所述,為繼續(xù)提升SSA的優(yōu)化性能,本文提出了一種結(jié)合存檔的捕獲機制和自適應(yīng)鄰域搜索的改進麻雀搜索算法,稱做MSSA。標準SSA中的發(fā)現(xiàn)者通過一定概率選擇相應(yīng)的位置更新公式進行新位置的選擇,但本質(zhì)上只是對每個單獨的發(fā)現(xiàn)者個體進行位置移動,沒有考慮每個發(fā)現(xiàn)者之間的信息交流。對于一些最優(yōu)解在原點附近的優(yōu)化問題,縮放移動的方式可能有較好的尋優(yōu)效果,但對于一些多峰優(yōu)化問題,發(fā)現(xiàn)者無法在搜索空間中進行充分搜索。針對以上問題,MSSA在發(fā)現(xiàn)者階段引入了一種結(jié)合存檔的捕獲機制,算法能夠在一定迭代次數(shù)內(nèi)獲取更優(yōu)質(zhì)的發(fā)現(xiàn)者個體,以獲得更豐富的候選解;其次,MSSA對于可能陷入局部最優(yōu)的當前最優(yōu)解進行自適應(yīng)鄰域搜索,以跳出局部最優(yōu)。而自適應(yīng)操作可以使得算法的鄰域搜索范圍隨著算法的不斷迭代而縮小,防止后期無法收斂到全局最優(yōu)位置。基準函數(shù)測試驗證了改進算法策略的有效性,可以提高算法的尋優(yōu)精度和跳出局部最優(yōu)的能力,最后將MSSA應(yīng)用于障礙物環(huán)境下的WSN節(jié)點覆蓋優(yōu)化,結(jié)果表明,MSSA在復(fù)雜優(yōu)化問題上也具有不錯的優(yōu)化性能。
1 麻雀搜索算法概述
SSA中存在發(fā)現(xiàn)者、跟隨者、偵察者三種角色。發(fā)現(xiàn)者負責尋找整個搜索區(qū)域中食物較充足的位置,并為所有的跟隨者提供覓食方向;同時,只要麻雀可以搜尋到更優(yōu)的食物所在位置,都可以成為發(fā)現(xiàn)者,但發(fā)現(xiàn)者在整個種群中所占的比例是固定的。而發(fā)現(xiàn)者受捕食者的影響會有兩種狀態(tài),當周圍不存在捕食者,發(fā)現(xiàn)者會進入廣域搜索,否則所有的麻雀會向安全區(qū)移動,因此發(fā)現(xiàn)者的位置根據(jù)式(1)更新。
其中:t表示當前迭代;T是最大迭代次數(shù);Xti表示t次迭代時第i個麻雀位置;α是(0,1)的隨機數(shù);Q為服從正態(tài)分布的隨機數(shù);L是1×D的矩陣;D為維度大小,其中的元素值都為1;R和ST是設(shè)定的報警值和安全值。
對于跟隨者,它們會時刻觀察發(fā)現(xiàn)者的行為,隨著發(fā)現(xiàn)者的行為調(diào)整自己的位置,跟隨者的位置更新如式(2)所示。
其中:Xtworst表示當前迭代t的全局最劣位置;A表示一個1×D且元素隨機賦值為1或-1的矩陣,A+=AT(AAT)-1;Xt+1p是發(fā)現(xiàn)者尋找到的最佳位置。當跟隨者和發(fā)現(xiàn)者競爭失敗,即igt;n/2時,說明跟隨者的食物來源不足,饑餓度高,需要在更大范圍搜索食物。
偵察者在種群中會意識到危險,從而調(diào)整在麻雀種群的整體位置,這部分麻雀在整個種群中隨機產(chǎn)生,占整個種群的10%~20%,更新方式如下:
其中:Xtbest是當前全局最佳位置;β是步長控制參數(shù);K是[-1,1]的一個隨機數(shù); fi為當前個體的適應(yīng)度; fg和fw為當前全局最佳和最劣適應(yīng)度值;ε是避免除零誤差的最小常數(shù)。當figt;fg時,表示麻雀在種群邊緣,處于安全狀態(tài);而fi=fg,說明麻雀意識到危險,需要向其他位置移動。
2 改進的麻雀搜索算法(MSSA)
如SSA的位置更新式(1)~(3)所示,其搜索機制會使麻雀個體向原點和全局最優(yōu)附近快速移動[10],所以當目標函數(shù)的全局最優(yōu)點與坐標原點重合時,SSA的搜索效率最高。反之,對于一些全局最優(yōu)解不在原點附近且存在許多局部最優(yōu)的問題,SSA的效率會明顯降低,可能會早熟并陷入局部最優(yōu)。本文提出的MSSA使用了兩項改進策略以解決標準SSA在優(yōu)化過程中易陷入局部最優(yōu)的問題,第一項改進措施是在發(fā)現(xiàn)者搜索階段使用結(jié)合存檔的捕獲機制擴大搜索范圍;第二是對當前最優(yōu)解進行自適應(yīng)鄰域搜索。
2.1 結(jié)合存檔的捕獲機制
在SSA的優(yōu)化過程中,種群中麻雀個體的優(yōu)劣直接影響實際問題的優(yōu)化情況。其中種群中的發(fā)現(xiàn)者在整個種群中擁有著最優(yōu)資源,是其他麻雀個體的引領(lǐng)者,所以發(fā)現(xiàn)者的位置信息引領(lǐng)麻雀個體的整體覓食效果,進而影響算法的最終尋優(yōu)結(jié)果。
在SSA中,當麻雀發(fā)現(xiàn)者意識到周圍存在捕食者,會全部向安全區(qū)域內(nèi)移動,否則發(fā)現(xiàn)者會進入廣域搜索[9]。為了直觀顯示SSA中發(fā)現(xiàn)者的搜索過程,在種群數(shù)量為30,發(fā)現(xiàn)者規(guī)模為種群的70%、搜索空間為[-600,600]的情況下使用SSA對二維Eggholder函數(shù)進行優(yōu)化。從圖1中可以看出,在算法開始進行尋優(yōu)時,發(fā)現(xiàn)者都在原點附近搜索,隨著算法迭代搜索到第500代,已經(jīng)有很多麻雀個體向全局最優(yōu)位置聚集,然而,除了小部分個體還在其他區(qū)域中進行搜索,大部分發(fā)現(xiàn)者個體都陷入了一個局部極小值點,沒有成功尋找到全局最優(yōu)位置。
由分析可知,原有的位置更新方式使得發(fā)現(xiàn)者個體過于集中地向特定區(qū)域移動,可能無法充分地探索空間,從而造成解的多樣性不足。已經(jīng)有學者研究發(fā)現(xiàn)[15],增強種群個體之間的信息交流可以對搜索空間進行更為充分的搜索。因此,為了提高麻雀個體在搜索區(qū)域的探索多樣性,本文提出了一種結(jié)合存檔的捕獲機制。在這種機制中,不是所有發(fā)現(xiàn)者感受到危險都能向安全區(qū)移動,會存在部分麻雀在安全區(qū)外被捕食者所捕獲,同時被捕獲的麻雀會留下位置信息,捕獲信息由式(4)獲得,這些位置信息會被記錄到算法開始時設(shè)定的存檔矩陣UArch中。經(jīng)過若干次迭代搜索后,存檔達到最大存儲限度,此時,將會對存檔內(nèi)的位置信息進行適應(yīng)度評估并排序,選擇適應(yīng)度值最好的k個麻雀個體位置去替換整個麻雀種群中隨機選取的k個麻雀位置。在完成上述操作后,存檔會歸零更新,繼續(xù)接收下一次的捕獲信息。具體實現(xiàn)過程如圖2所示。
其中:Xti是當前迭代中第i個麻雀的位置;Xtm是不同于當前麻雀個體的位置,所以m≠i;rand是服從均勻分布的隨機數(shù)。UtArch表示第Arch個被捕獲的麻雀所留下的位置信息,并且Arch的大小不超過發(fā)現(xiàn)者的規(guī)模;Fr是捕獲因子,麻雀被捕獲的可能性大小取決于Fr的取值,F(xiàn)r∈(0,1)。
與標準SSA中的發(fā)現(xiàn)者位置更新方式不同的是,捕獲機制獲得的位置信息不是對當前個體位置進行簡單縮放而產(chǎn)生的,而是當前麻雀個體和其他麻雀個體進行信息交流而獲得的,在發(fā)現(xiàn)者尋優(yōu)的過程中,每個發(fā)現(xiàn)者個體都有機會在當前位置和其他發(fā)現(xiàn)者個體之間移動搜索。新的更新方式?jīng)]有舍棄原來的發(fā)現(xiàn)者更新方式,而是在其基礎(chǔ)上使麻雀個體在搜素空間進行更為充分的搜索,這是因為如果直接使用新的位置更新方式,可能會減弱算法的局部搜索能力,從而對算法的搜索平衡造成影響。捕獲機制可以在發(fā)現(xiàn)者個體向原點或者全局最優(yōu)位置移動的過程中對搜索空間進行發(fā)散搜索,在進行全局搜索的同時又能保持算法的局部搜索能力。
使用存檔的原因是為了減少算法頻繁地獲取和評價位置信息,降低對算法穩(wěn)定性的影響。同時通過存檔排序之后,可以選擇位置較好的麻雀個體進行替換,而不是每次獲取捕獲位置信息都和其他麻雀個體進行替換,這很可能會導(dǎo)致種群整體多樣性的下降。
此外,被捕獲的較優(yōu)麻雀個體會隨機替換種群中的k個麻雀個體,這一操作可以擾動整體麻雀的搜索趨勢,新的發(fā)現(xiàn)者個體可以引領(lǐng)其他麻雀角色進行更高效的搜索,從而提升整個麻雀種群的多樣性。本文的k值設(shè)置為存檔規(guī)模的50%,這是因為隨機替換的目的是為了擾動整個種群的搜索趨勢,引領(lǐng)其他麻雀個體探索更優(yōu)質(zhì)的搜索空間。如果選擇太少可能無法獲取更好的位置信息且無法達到擾動的效果;而選擇得過多,適應(yīng)度值靠后的存檔個體數(shù)量很有可能大于其他位置較好的個體,會對原有的麻雀搜索平衡造成影響。因此,應(yīng)該選擇適中規(guī)模的存檔個體隨機分布到搜索空間中以提高麻雀個體的探索多樣性。
由上文可得出實現(xiàn)捕獲機制的偽代碼為
輸入:存檔矩陣大小SizeArch。
輸出:前k個適應(yīng)度靠前的麻雀個體位置信息。
初始化計數(shù)變量amount=0,t=0;
for t=1∶T
使用式(1)(4)分別更新發(fā)現(xiàn)者位置和獲取捕獲位置信息,amount++;
if (amount==SizeArch)
獲取存檔中適應(yīng)度靠前的k個麻雀個體位置信息,替換麻雀種群中隨機選取的麻雀個體,令amount=0,并清空存檔信息;
end if
t=t+1;
end for
為了測試捕獲機制對SSA尋優(yōu)能力的影響,在兩個典型多峰函數(shù)上對標準SSA和融合捕獲機制的SSA進行性能測試。實驗中,種群設(shè)置為30,最大迭代次數(shù)設(shè)置為500,存檔大小與麻雀發(fā)現(xiàn)者規(guī)模一致。兩個函數(shù)的具體設(shè)置如表1所示。從圖3(a)(e)中可以看出,兩個函數(shù)都存在許多個局部最小值。
圖3(b)~(d)是在優(yōu)化Schwefel函數(shù)時分別迭代到150、350、500次時SSA和MSSA所搜索到的全局最優(yōu)位置情況。從圖中可以看出,兩個算法在150代都在搜索空間中進行全局搜索,隨著算法迭代到350代,MSSA所搜索到的位置已經(jīng)與最優(yōu)值位置相差無幾,最后到達500代,MSSA獲得的位置已經(jīng)穩(wěn)定下來,而SSA還未搜索到全局最優(yōu)位置。這說明結(jié)合存檔的捕獲機制可以提高種群的多樣性以增強算法的搜索效率。圖3(f)~(h)是在優(yōu)化Holder Table函數(shù)時分別迭代到150、350、500次時SSA和MSSA所搜索到的全局最優(yōu)位置情況。MSSA和SSA在150~350代都在向全局最優(yōu)位置移動,MSSA在500代時已經(jīng)搜索到全局最優(yōu)位置,而SSA在350代之后就陷入了一個局部極小值點,到達500代也沒有跳出局部最優(yōu),這很可能是因為改進之前發(fā)現(xiàn)者的位置更新方式導(dǎo)致的,發(fā)現(xiàn)者一直向最優(yōu)位置移動,從而陷入了局部最優(yōu)。而MSSA在融合結(jié)合存檔的捕獲機制后,在搜索移動的過程中可以根據(jù)麻雀個體之間的信息交流獲得更優(yōu)質(zhì)的位置信息,從而獲得更好的尋優(yōu)效果。
2.2 自適應(yīng)鄰域搜索
SSA在不斷的迭代搜索過程中,麻雀個體會不斷地向最優(yōu)位置聚集, 這種搜索機制可以在一定程度上提高算法的收斂速度,然而在一些復(fù)雜優(yōu)化問題上,在搜索后期容易降低種群的多樣性,從而使算法陷入局部最優(yōu)[10]。因此,本文提出一種自適應(yīng)鄰域搜索策略改進SSA的搜索機制,以提高算法找到全局最優(yōu)解的概率。
鄰域搜索是指對種群個體中的某一目標個體所在鄰域空間進行搜索[16],目的是搜尋到更優(yōu)的個體以增加算法跳出局部最優(yōu)的概率。很多學者為了提高算法的優(yōu)化能力提出了各種鄰域搜索操作,如Wang等人[17]提出一種K鄰域搜索操作以解決PSO算法收斂過慢的問題。郭佳麗等人[18]針對飛蛾撲火算法易陷入局部最優(yōu)的問題,提出了嵌入鄰域搜索算子的鄰域搜索策略。
文獻[15]指出,在算法的搜索前期,需要保持更大的搜索范圍以增加種群的多樣性,在算法搜索后期,則需要在最優(yōu)個體周圍進行更細致的搜索,在增強算法跳出局部最優(yōu)能力的同時避免降低算法的收斂精度。文獻[16~18]中提出和使用的鄰域搜索方式在算法的整個優(yōu)化階段都保持搜索范圍固定不變,無法保證算法在尋優(yōu)過程中的搜索平衡性。本文提出一種自適應(yīng)鄰域搜索策略并將其融入SSA。自適應(yīng)鄰域搜索策略在每一次迭代過程中都對當前最優(yōu)麻雀個體進行鄰域搜索,并在不同迭代時期動態(tài)調(diào)節(jié)鄰域搜索范圍。
自適應(yīng)鄰域搜索策略引入文獻[19]中的方法用來判斷算法是否已經(jīng)近似陷入局部最優(yōu),其包括兩個指標,即種群適應(yīng)度方差αt和麻雀個體間距βt,通過式(5)和(7)分別計算。
其中:N是種群大小;fti是第i個麻雀個體在第t次迭代的適應(yīng)度值;ftmean是所有麻雀個體在第t次迭代時適應(yīng)度值的平均值;ftv是限定因子,如式(6)所示。
ftv=max|fti-ftmean| 如果max|fti-ftmean|gt;1
1 否則(6)
其中:xti,d是第i個麻雀個體在第t次迭代時搜索空間的第d維位置;xtmean是所有麻雀個體位置的平均值;L是搜索空間的對角距離。當算法陷入局部最優(yōu),種群個體會發(fā)生聚集,此時種群適應(yīng)度方差αt和麻雀個體間距βt都會急劇減小為接近于0的值。根據(jù)文獻[20],當αtlt;10-6且βtlt;10-3時,可以判定算法已經(jīng)陷入局部最優(yōu)。
如果判斷算法陷入局部最優(yōu),則對當前最優(yōu)解pbesti進行鄰域搜索,具體方式如式(8)所示。從圖4中可知,以當前最優(yōu)pbesti為目標個體,i代表其處于種群的位置,算法從目標個體的I鄰域范圍中搜尋Xa和Xb兩個互不相同的位置,r1,r2∈[0,1]的隨機數(shù)且r1+r2=0;a和b的值決定了目標個體的鄰域搜索范圍,其值被限制在[i-I,i+I]。
為了在算法尋優(yōu)過程中進行自適應(yīng)鄰域搜索,本文提出的自適應(yīng)鄰域搜索策略使用了一種動態(tài)鄰域值調(diào)節(jié)機制,如式(9)所示。
V=V·exp(-0.01×tT),I=VN(9)
其中:t是算法當前迭代次數(shù);T是最大迭代次數(shù);N是種群規(guī)模大小;V是I在種群規(guī)模中的占比,經(jīng)過式(9)得到的I值為向上取整的整數(shù)。
在式(8)中,鄰域半徑I的初始值設(shè)置影響著算法鄰域搜索能力,文獻[16]已經(jīng)證明,過大的初始I值會導(dǎo)致目標個體的鄰域搜索范圍接近整個種群,算法無法在最優(yōu)位置周圍進行搜索;反之,如果初始I值過小,則表明初始鄰域搜索空間范圍較小,隨著算法迭代,I值會通過式(9)更新逐漸減小,可能在算法中期就無法進行較大范圍的鄰域搜索,導(dǎo)致無法跳出當前的局部位置,因此初始鄰域值I不宜過大或過小。為了精確控制初始鄰域值I的取值,選用Rastrigin函數(shù)作為對比不同I值的測試函數(shù),如圖5所示,分別為I取值為種群規(guī)模的10%、15%、20%時算法的收斂情況,可以看出取值為種群規(guī)模的15%時效果最好,過大和過小的取值都會影響算法的尋優(yōu)性能。
如圖6所示,在算法迭代前中期,將在較大的鄰域范圍內(nèi)進行搜索,后期則會在目標個體附近進行細致搜索,更能保持算法在整個尋優(yōu)過程中的搜索平衡。
2.3 MSSA的實現(xiàn)流程
輸入:算法最大迭代次數(shù)T、種群規(guī)模N、問題維度D、發(fā)現(xiàn)者規(guī)模PD、偵察者規(guī)模SD、捕獲因子Fr、接收捕獲信息的存檔大小SizeArch以及其他一些參數(shù)。
輸出:全局最優(yōu)位置Xbest以及其適應(yīng)度值f(Xbest)。
a)計數(shù)變量amount=0,同時初始化種群個體,評估其適應(yīng)度;
b)for t=1∶T
c) 對適應(yīng)度進行排序,獲得最優(yōu)和最差適應(yīng)度;
d) for i=1∶PD
e) 按照式(1)(4)分別更新發(fā)現(xiàn)者位置和獲取捕獲位置信息,amount++;
f) end for
g) for i=(PD+1)∶N
h) 按照式(2)更新跟隨者位置;
i) end for
g) for i=1∶SD
k) 使用式(3)更新偵察者位置;
l) end for
m) if(amount==SizeArch)
n) 獲取存檔中適應(yīng)度靠前的k個麻雀個體位置信息,替換麻雀種群中隨機選取的麻雀個體,令amount置零,并清空存檔信息;
o) end for
p) 使用式(5)~(7)判斷當前解是否陷入局部最優(yōu),如果是,則使用式(8)進行鄰域搜索,并使用式(9)更新鄰域值;
q) t=t+1;
r) 判斷算法是否達到最大迭代,是則停止搜索,否則進行步驟c);
s)end for
2.4 MSSA的全局和局部搜索能力分析
算法的全局和局部搜索能力是衡量其優(yōu)化性能的兩個重要指標。局部搜索能力是衡量算法是否能夠無窮接近最優(yōu)解的能力,而全局搜索能力是衡量算法是否找到全局最優(yōu)解大致位置的能力。標準SSA通過發(fā)現(xiàn)者、跟隨者之間不斷的位置更新來尋找問題的最優(yōu)解。SSA在發(fā)現(xiàn)者沒有危險以及跟隨者與發(fā)現(xiàn)者競爭失敗這兩種情況下都會進入廣域搜索,即開始全局搜索;其他狀況下,則可以判定算法進入局部搜索模式。而MSSA在發(fā)現(xiàn)者搜索階段引入了結(jié)合存檔的捕獲機制,可以獲得更優(yōu)質(zhì)的種群個體,進而提升算法的全局搜索能力。MSSA在可能陷入局部最優(yōu)時,會通過種群適應(yīng)度方差αt和麻雀個體間距βt兩個指標的檢測來判斷是否對當前最優(yōu)解進行自適應(yīng)鄰域搜索,以提高算法跳出局部最優(yōu)的能力。
2.5 MSSA的時間復(fù)雜度分析
本文使用O來表示時間復(fù)雜度的漸進上界。設(shè)改進麻雀算法的種群規(guī)模為N,最大迭代次數(shù)為T,優(yōu)化問題的維度為D。在MSSA初始化階段,對整個麻雀種群進行初始化,其時間復(fù)雜度為O(ND)。接下來發(fā)現(xiàn)者和跟隨者會在算法迭代中更新位置,而發(fā)現(xiàn)者更新過程中引入了結(jié)合存檔的捕獲機制,但被捕獲的和未被捕獲的麻雀總數(shù)之和是與基本SSA中發(fā)現(xiàn)者的數(shù)量相等的,因此這一步驟不會增加算法的時間復(fù)雜度,只需考慮尋找最優(yōu)個體中計算種群適應(yīng)度和之后種群個體更新位置的情況,這一階段的適應(yīng)度為O(ND+ND)。在位置更新過程中,需要對算法是否陷入局部最優(yōu)進行判斷,這一操作的時間復(fù)雜度最壞情況下為O(ND),而鄰域搜索操作是對算法中單個個體進行操作,不會增加額外的時間復(fù)雜度。綜上可知,算法的整體時間復(fù)雜度為O(TND)。
3 實驗測試與結(jié)果
3.1 實驗設(shè)計
本文基于AMD R7-5800H CPU以及Windows 10(64位)的操作系統(tǒng)對所提出的MSSA以及其他對比算法進行性能測試實驗,實驗仿真軟件為MATLAB 2020a。為了驗證MSSA在函數(shù)優(yōu)化上的能力,本文選取了九個有代表性的基準函數(shù)作為性能測試函數(shù)。其中f1~f6為單峰函數(shù),f7~f9為多峰函數(shù)。函數(shù)具體名稱和測試函數(shù)的參數(shù)范圍如表2所示。
在實驗中,將MSSA、SSA[9]、CSSOA[11]、MSSSA[10]、ISSA[12]以及ESSA[21]分別在30維、80維的測試函數(shù)f1~f9獨立運行30次,每個算法的迭代次數(shù)為500次。然后取30次運行后,各算法獲得的測試函數(shù)的最優(yōu)解的均值(mean)、方差(std)以及算法排名(rank)三項指標來評估各個算法的優(yōu)化性能和穩(wěn)定性,結(jié)果如表3、4所示。為了實驗的公平性,各算法的參數(shù)設(shè)置都和原文中一致。在求解極小值問題中,均值越小表示算法的平均性能越好,方差越小,則算法越穩(wěn)定。排名(rank)的評價標準是先比較各個算法在同一測試函數(shù)上獲得的均值,均值越小,則表示算法性能越好;在均值相同的情況下,再比較方差,方差越小,算法性能越好。“count”表示各算法排名第一的總次數(shù),“ave rank”為各算法的平均排名情況,“total rank”是在平均排名的基礎(chǔ)上的最后排名情況。
3.2 實驗結(jié)果分析
從表3中可以看出,MSSA在六個單峰函數(shù)中的排名上獲得了第一, 表明MSSA比標準SSA以及參與測試的其他算法在單峰函數(shù)優(yōu)化方面性能要更強。對于兩個多峰函數(shù),MSSA的測試結(jié)果都優(yōu)于其他算法,在整個函數(shù)測試實驗情況中,MSSA的ave rank為1.61,總排名為第一。這表明采用了結(jié)合存檔的捕獲機制以及自適應(yīng)鄰域搜索后,MSSA能夠改善其易陷入局部最優(yōu)的缺點。
表4是各個算法在80維的情況下優(yōu)化函數(shù)得到的結(jié)果,在九個函數(shù)中有七個函數(shù)都獲得了第一的結(jié)果,而且,對于大多數(shù)函數(shù),MSSA在獲得更好尋優(yōu)精度的同時也具有更好的求解穩(wěn)定性。這說明隨著優(yōu)化函數(shù)維度的升高,在結(jié)合存檔的捕獲機制和自適應(yīng)鄰域搜索的作用下,MSSA的優(yōu)化能力并沒有降低,同樣可以獲得較好的尋優(yōu)結(jié)果。
圖7顯示的是在30維的情況下,各算法在測試函數(shù)上的收斂情況。可以看出,無論是對于單峰函數(shù)還是多峰函數(shù),MSSA的收斂精度都要優(yōu)于其對比算法。MSSA跳出局部最優(yōu)的能力也在收斂曲線上體現(xiàn),例如f3、f4,當算法迭代搜索到后期,除了MSSA跳出了局部最優(yōu),向前繼續(xù)探索,其他算法已經(jīng)收斂,沒有找到更優(yōu)的值。這進一步表明,MSSA在混合策略的作用下,其函數(shù)優(yōu)化能力得到顯著提升。
3.3 Friedman檢驗
為了進一步驗證MSSA與其他算法的顯著差異性,本文采用Friedman檢驗[22]對3.1節(jié)中的測試算法進行非參數(shù)檢驗。Friedman檢驗的一般實現(xiàn)步驟如下:a)收集算法的實驗數(shù)據(jù);b)列出每個問題i的最好與最差結(jié)果排名,定義為rji(1≤K≤j);c)在所有問題中求出各個算法的平均排名,并計算出最終排名Rj=(1-n)∑ni-1rji。
秩平均值越小則代表算法性能越好。Friedman統(tǒng)計值計算公式如式(10)所示,F(xiàn)f的值越小,各算法之間的差異性就越大,當n和k足夠大時(根據(jù)經(jīng)驗ngt;10,kgt;5),它是服從k-1自由度的χ2分布。
本次檢驗的依據(jù)來自表3、4,檢驗結(jié)果如表5所示。其中P-value表示漸進顯著性,如果其值小于0.01,則說明各項數(shù)據(jù)之間存在顯著性差異。從表5中可以看出,P-value為5.90E-05,遠遠小于0.01,這表明MSSA和其他對比算法之間存在顯著差異性。從各算法的秩平均值來看,MSSA也獲得最小的結(jié)果。總體上,MSSA的優(yōu)化能力在統(tǒng)計學意義上相比于其他對比算法有較大提升。
4 障礙物環(huán)境下的WSN節(jié)點覆蓋優(yōu)化
無線傳感器網(wǎng)絡(luò)(WSN)是由若干組傳感器節(jié)點組成的感知外部信息的網(wǎng)絡(luò),從20世紀70年代被提出,經(jīng)過幾十年的發(fā)展,目前被廣泛應(yīng)用于地震檢測[23]、交通控制[24]、火災(zāi)檢測[25]以及智能制造[26]等領(lǐng)域中。
4.1 問題模型
如圖8所示,假設(shè)WSN節(jié)點被部署在S=100×100的二維平面區(qū)域中,整個區(qū)域被離散化為100×100個像素點,且區(qū)域中存在阻礙節(jié)點部署的各類型障礙物,節(jié)點和障礙物分別表示為集合N={n1,n2,…,nk}、O={oi1,oi2,…,oij},節(jié)點nk在區(qū)域內(nèi)的坐標為(xk,yk),感知范圍是一個感知半徑為r的圓,其通信半徑為R=2r。k和j分別表示節(jié)點和障礙物的個數(shù),i為障礙物的類型。傳感器節(jié)點會感知外部信息然后傳輸給數(shù)據(jù)中心,適合的感知方式可以增加覆蓋模型的合理性。由于實際的WSN部署環(huán)境十分復(fù)雜,節(jié)點會遇到很多影響感知的外部因素,所以本實驗選用一種概率感知模型[27]來判斷區(qū)域是否被當前節(jié)點覆蓋,并結(jié)合實際環(huán)境對感知模型進行了適當改進。
假設(shè)需要檢測的目標點為g(xg,yg),則傳感器節(jié)點nk對g的感知概率為
其中:dnkg是傳感器節(jié)點nk和目標點g之間的歐氏距離,如式(2)所示;re是傳感器節(jié)點在復(fù)雜環(huán)境下不確定感知能力的一個度量,且0lt;relt;r;α=dnkg-(r-re),當re=0,該模型會轉(zhuǎn)變?yōu)橐粋€二元感知模型[28];λ和β用來判斷傳感器節(jié)點nk和目標點g之間處于一定距離時傳感器節(jié)點的感知概率。圖9直觀地顯示了節(jié)點的感知情況,目標點g1所在的虛線內(nèi)圈被傳感器節(jié)點所感知的概率為100%,g3所在的虛線外圈區(qū)域無法被感知,而g2所在的區(qū)域的被感知概率由λ和β等參數(shù)決定,范圍在0~100%。為了簡化模型,當目標點位于障礙物區(qū)域內(nèi),傳感器節(jié)點的感知概率為0,并且如果節(jié)點的感知范圍內(nèi)存在障礙物,障礙物就會阻礙節(jié)點之間的通信。
式(11)中顯示的是單個節(jié)點的感知概率,而在WSN中,各個節(jié)點會有重復(fù)感知的區(qū)域,所以綜上可知整個WSN的聯(lián)合感知概率為
4.2 目標函數(shù)
本實驗的目的是獲得障礙物環(huán)境下WSN節(jié)點的最大覆蓋率,即獲得式(14)中f覆蓋率的最大值,同時需要滿足式(15)中的約束條件。
4.3 實驗設(shè)置
本次實驗的各算法設(shè)置與3.1節(jié)中一致,最大迭代次數(shù)設(shè)置為1 500次,節(jié)點的個數(shù)為28,感知半徑為12 m。
4.4 算法優(yōu)化效果分析
圖10(a)顯示了MSSA的初始部署圖,可以看出節(jié)點大多聚集在一起,經(jīng)過優(yōu)化后得到圖10(b)的最終優(yōu)化結(jié)果,節(jié)點基本被均勻部署在監(jiān)測區(qū)域內(nèi)。這說明改進算法對帶約束的問題有不錯的優(yōu)化能力。而圖10(d)~(h)為標準SSA和其他改進算法的優(yōu)化情況,從圖中可以看出,節(jié)點都不能很好地被均勻部署在監(jiān)測區(qū)域中,存在節(jié)點聚集和大量覆蓋漏洞。圖10(c)顯示了MSSA與各算法的WSN優(yōu)化收斂過程,MSSA優(yōu)化后得到的覆蓋率為93.95%,在六種算法中排名第一,在整個算法尋優(yōu)過程中,MSSA的尋優(yōu)精度都比其他算法要高,這可能得益于算法中增加的結(jié)合存檔的捕獲機制。在600~1200次迭代中,MSSA陷入了局部最優(yōu),沒有向前探索,但隨著算法的迭代搜索,最終還是跳出了局部最優(yōu),而標準SSA不到200次迭代就陷入停滯,最后也無法獲得更好的尋優(yōu)結(jié)果。MSSA在算法搜索的前中后期使用不同大小搜索空間對當前最優(yōu)解進行鄰域搜索,從而跳出局部最優(yōu)。在混合策略的作用下,MSSA的覆蓋效果與SSA、CSSOA、MSSSA、ISSA、ESSA相比,分別提高了9.77%、4.25%、6.62%、3.02%、7.38%,這說明結(jié)合存檔的捕獲機制和自適應(yīng)鄰域搜索策略對算法的優(yōu)化性能是顯著提升的,同時也表明了MSSA在實際工程問題上也能獲得更好的優(yōu)化能力。
5 結(jié)束語
為了改善麻雀搜索算法在優(yōu)化中易陷入局部最優(yōu)等問題,提出了一種改進的麻雀搜索算法MSSA。首先,捕獲機制在發(fā)現(xiàn)者覓食階段會對部分麻雀的殘余位置信息進行存儲,豐富了種群多樣性;其次,在判斷算法陷入局部最優(yōu)之后,在算法不同的搜索階段對當前最優(yōu)位置作相應(yīng)的鄰域搜索操作,自適應(yīng)操作可以改變鄰域空間的大小,適應(yīng)算法的尋優(yōu)機制,從而增加算法的尋優(yōu)精度。九個基準測試函數(shù)的優(yōu)化結(jié)果證明了改進策略可以提升算法的優(yōu)化能力。在WSN覆蓋優(yōu)化實驗中,MSSA在障礙物環(huán)境中也表現(xiàn)出優(yōu)異的性能,獲得了最好的覆蓋效果。下一步將對SSA繼續(xù)改進并應(yīng)用到不同障礙環(huán)境WSN覆蓋優(yōu)化中。
參考文獻:
[1]劉小龍,李榮鈞,楊萍. 基于高斯分布估計的細菌覓食優(yōu)化算法 [J]. 控制與決策,2011,26(8): 1233-1238. (Liu Xiaolong,Li Rongjun,Yang Ping. Bacterial foraging optimization algorithm based on estimation of distribution [J]. Control and Decision,2011,26(8): 1233-1238.)
[2]Yildiz B S,Pholdee N,Bureerat S,et al. Robust design of a robot gripper mechanism using new hybrid grasshopper optimization algorithm [J]. Expert Systems,2021,38(3): e12666.
[3]Wang Hailun,Wu Fei,Zhang Lu. Application of Variational mode decomposition optimized with improved whale optimization algorithm in bearing failure diagnosis [J]. Alexandria Engineering Journal,2021,60(5): 4689-4699.
[4]Javidrad F,Nazari M. A new hybrid particle swarm and simulated annealing stochastic optimization method [J]. Applied Soft Computing,2017,60(11): 634-654.
[5]Paul K,Dalapati P,Kumar N. Optimal rescheduling of generators to alleviate congestion in transmission system: a novel modified whale optimization approach [J]. Arabian Journal for Science and Engineering,2022,47(3): 3255-3279.
[6]李長安,謝宗奎,吳忠強,等. 改進灰狼算法及其在港口泊位調(diào)度中的應(yīng)用 [J]. 哈爾濱工程大學學報,2021,53(1): 101-108. (Li Chang’an,Xie Zongkui,Wu Zhongqiang,et al. Improved grey wolf algorithm and its application in port berth scheduling [J]. Journal of Harbin Institute of Technology,2021,53(1): 101-108.)
[7]吳冬梅,郝鳳鳴,蔣國平. 基于多智能體混沌鳥群算法的機構(gòu)優(yōu)化 [J]. 信息與控制,2021,50(4):449-458. (Wu Dongmei,Hao Fengming,Jiang Guoping. Mechanism optimization based on multi-agent chaotic bird swarm algorithm [J]. Information and Control,2021,50(4):449-458.)
[8]張松燦,孫力帆,司彥娜,等. 單種群自適應(yīng)異構(gòu)蟻群算法的機器人路徑規(guī)劃 [J]. 計算機科學與探索,2022,16(12):2820-2831. (Zhang Songcan,Sun Lifan,Si Yanna,et al. Single-colony adaptive heterogeneous ant colony algorithm for mobile robot path planning [J]. Journal of Frontiers of Computer Science and Techno-logy,2022,16(12):2820-2831.)
[9]Xue Jiankai,Shen Bo. A novel swarm intelligence optimization approach: sparrow search algorithm [J]. Systems Science amp; Control Engineering,2020,8(1): 22-34.
[10]張偉康,劉升,任春慧. 混合策略改進的麻雀搜索算法 [J]. 計算機工程與應(yīng)用,2021,57(24): 74-82. (Zhang Weikang,Liu Sheng,Ren Chunhui. Mixed strategy improved sparrow search algorithm [J]. Computer Engineering and Applications,2021,57(24): 74-82.)
[11]呂鑫,慕曉冬,張鈞,等. 混沌麻雀搜索優(yōu)化算法 [J]. 北京航空航天大學學報,2021,47(8): 1712-1720. (Lyu Xin,Mu Xiaodong,Zhang Jun,et al. Chaos sparrow search optimization algorithm [J]. Journal of Beijing University of Aeronautics amp; Astronautics,2021,47(8): 1712-1720.)
[12]印雷,顧德,劉飛. 基于改進麻雀搜索算法優(yōu)化的DV-Hop定位算法 [J]. 傳感技術(shù)學報,2021,34(5): 670-675. (Yin Lei,Gu De,Liu Fei. Improved sparrow search algorithm based DV-Hop localization in WSN [J]. Chinese Journal of Sensors and Actuators,2021,34(5): 670-675.)
[13]李愛蓮,全凌翔,崔桂梅,等. 融合正余弦和柯西變異的麻雀搜索算法 [J]. 計算機工程與應(yīng)用,2022,58(3): 91-99. (Li Ailian,Quan Lingxiang,Cui Guimei,et al. Sparrow search algorithm combining sine-cosine and Cauchy mutation [J]. Computer Engineering and Applications,2022,58(3): 91-99.)
[14]Ma Jie,Hao Zhiyuan,Sun Wenjing. Enhancing sparrow search algorithm via multi-strategies for continuous optimization problems [J]. Information Processing amp; Management,2022,59(2):102854.
[15]Zhou Xinhui,Wang Jianping,Zhang Hongxu,et al. Application of a hybrid improved sparrow search algorithm for the prediction and control of dissolved oxygen in the aquaculture industry [J]. Applied Intel-ligence(2022). https://doi.org/10.1007/s10489-022-03870-0.
[16]孫燦,周新宇,王明文. 一種融合鄰域搜索的多策略差分進化算法 [J]. 系統(tǒng)仿真學報,2020,32(6): 1071-1084. (Sun Can,Zhou Xinyu,Wang Mingwen. A multi-strategy differential evolution algorithm combined with neighborhood search [J]. Journal of System Simulation,2020,32(6): 1071-1084.)
[17]Wang Hui,Sun Hui,Li Changhe,et al. Diversity enhanced particle swarm optimization with neighborhood search [J]. Information Sciences,2013,223(2): 119-135.
[18]郭佳麗,王秋萍,王曉峰. 融合學習策略和鄰域搜索的飛蛾火焰算法 [J]. 計算機工程與應(yīng)用,2021,57(12): 170-179. (Guo Jiali,Wang Qiuping,Wang Xiaofeng. Hybrid moth flame algorithm with learning strategy and neighboring search [J]. Computer Engineering and Applications,2021,57(12): 170-179.)
[19]Dai Yongshou,Wei Yuqin,Chen Jian,et al. Seismic wavelet estimation based on adaptive chaotic embedded particle swarm optimization algorithm [C]// Proc of the 5th International Symposium on Computational Intelligence amp; Design. Washington DC: IEEE Computer Society,2012.
[20]何慶,徐欽帥,魏康園. 基于改進正弦余弦算法的無線傳感器節(jié)點部署優(yōu)化 [J]. 計算機應(yīng)用,2019,39(7): 2035-2043. (He Qing,Xu Qinshuai,Wei Kangyuan. Enhanced sine cosine algorithm based node deployment optimization of wireless sensor network [J]. Journal of Computer Applications,2019,39(7): 2035-2043.)
[21]王振東,汪嘉寶,李大海. 一種增強型麻雀搜索算法的無線傳感器網(wǎng)絡(luò)覆蓋優(yōu)化研究 [J]. 傳感技術(shù)學報,2021,34(6): 818-828. (Wang Zhendong,Wang Jiabao,Li Dahai. Study on WSN optimization coverage of an enhanced sparrow search algorithm [J]. Chinese Journal of Sensors and Actuators,2021,34(6): 818-828.)
[22]張新明,姜云,劉尚旺,等. 灰狼與郊狼混合優(yōu)化算法及其聚類優(yōu)化 [J]. 自動化學報,2022,48(11):2757-2776. (Zhang Xinming,Jiang Yun,Liu Shangwang,et al. Hybrid coyote optimization algorithm with grey wolf optimizer and its application to clustering optimization[J]. Acta Automatica Sinica,2022,48(11):2757-2776.)
[23]Rebai M,Le Berre M,Snoussi H,et al. Sensor deployment optimization methods to achieve both coverage and connectivity in wireless sensor networks [J]. Computers amp; Operations Research,2015,59(7): 11-21.
[24]Deepa R,Venkataraman R. Enhancing whale optimization algorithm with Lévy flight for coverage optimization in wireless sensor networks [J]. Computers amp; Electrical Engineering,2021,94(9): 107359.
[25]Zhang Ke,Zhang Guang,Yu Xiuwu,et al. Boundary-based anchor selection method for WSNs node localization [J]. Arabian Journal for Science and Engineering,2021,46(4): 3779-3792.
[26]Rostami A S,Badkoobe M,Mohanna F,et al. Survey on clustering in heterogeneous and homogeneous wireless sensor networks [J]. Journal of Supercomputing,2018,74(1): 277-323.
[27]張謙. 基于群智能算法的無線傳感器網(wǎng)絡(luò)覆蓋優(yōu)化研究 [D]. 長沙: 湖南大學,2015. (Zhang Qian. Research of coverage optimization in wireless sensor network based on swarm intelligent algorithm [D]. Changsha: Hunan University,2015.)
[28]Zou Ming,Ping Zhang,Zheng Shijue,et al. A novel energy efficient converage control in WSNs based on ant colony optimization [C]// Proc of International Symposium on Computer,Communication,Control and Automation Proceedings. Piscataway,NJ: IEEE Press,2010.
收稿日期:2022-07-12;修回日期:2022-08-24 基金項目:國家自然科學基金資助項目(61563019,615620237);江西理工大學校級基金資助項目(205200100013)
作者簡介:李大海(1975-),男,山東乳山人,副教授,碩導(dǎo),博士,主要研究方向為智能優(yōu)化算法、強化學習算法及應(yīng)用等;詹美欣(1998-),男(通信作者),江西九江人,碩士,主要研究方向為智能優(yōu)化算法(mxinfcat@qq.com);王振東(1982-),男,湖北人,副教授,碩導(dǎo),博士,主要研究方向為無線傳感器網(wǎng)絡(luò)、智能優(yōu)化算法等.