複製鏈接
請複製以下鏈接發送給好友

麻雀搜索算法

鎖定
麻雀搜索算法(Sparrow Search Algorithm, SSA)是一種新型的羣智能優化算法,在2020年提出,主要是受麻雀的覓食行為和反捕食行為的啓發 [1] 
中文名
麻雀搜索算法
外文名
Sparrow Search Algorithm
所屬學科
算法
縮    寫
SSA

麻雀搜索算法算法來源

在麻雀覓食的過程中,分為發現者(探索者)和加入者(追隨者),發現者在種羣中負責尋找食物併為整個麻雀種羣提供覓食區域和方向,而加入者則是利用發現者來獲取食物。為了獲得食物,麻雀通常可以採用發現者和加入者這兩種行為策略進行覓食。種羣中的個體會監視羣體中其它個體的行為,並且該種羣中的攻擊者會與高攝取量的同伴爭奪食物資源,以提高自己的捕食率。此外,當麻雀種羣意識到危險時會做出反捕食行為。

麻雀搜索算法算法描述

在SSA中,具有較好適應度值的發現者在搜索過程中會優先獲取食物。此外,因為發現者負責為整個麻雀種羣尋找食物併為所有加入者提供覓食的方向。因此,發現者可以獲得比加入者更大的覓食搜索範圍。在每次迭代的過程中,發現者的位置更新描述如下:
其中,t代表當前迭代數,itermax是一個常數,表示最大的迭代次數。Xij表示第i個麻雀在第j維中的位置信息。α∈(0,1]是一個隨機數。R2(R2∈[0,1])和ST(ST∈[0.5,1])分別表示預警值和安全值。Q是服從正態分佈的隨機數。L表示一個1×d的矩陣,其中該矩陣內每個元素全部為1。當R2< ST 時,這意味着此時的覓食環境周圍沒有捕食者,發現者可以執行廣泛的搜索操作。當R2 ≥ ST,這表示種羣中的一些麻雀已經發現了捕食者,並向種羣中其它麻雀發出了警報,此時所有麻雀都需要迅速飛到其它安全的地方進行覓食。
加入者(追隨者)的位置更新描述如下:
其中,Xp是目前發現者所佔據的最優位置,Xworst則表示當前全局最差的位置。A表示一個1×d的矩陣,其中每個元素隨機賦值為1或-1,並且A+=AT(AAT)-1。當i >n/2時,這表明,適應度值較低的第i個加入者沒有獲得食物,處於十分飢餓的狀態,此時需要飛往其它地方覓食,以獲得更多的能量。
當意識到危險時,麻雀種羣會做出反捕食行為,其數學表達式如下:
其中,其中Xbest是當前的全局最優位置。β作為步長控制參數,是服從均值為0,方差為1的正態分佈的隨機數。K∈[-1,1]是一個隨機數,fi則是當前麻雀個體的適應度值。fgfw分別是當前全局最佳和最差的適應度值。ε是最小的常數,以避免分母出現零。
為簡單起見,當fi >fg表示此時的麻雀正處於種羣的邊緣,極其容易受到捕食者的攻擊。fi = fg時,這表明處於種羣中間的麻雀意識到了危險,需要靠近其它的麻雀以此儘量減少它們被捕食的風險。K表示麻雀移動的方向同時也是步長控制參數。

麻雀搜索算法實驗效果

為了驗證該算法的有效性,使用Sphere函數和Rosenbrock函數進行驗證
此圖為Sphere函數的驗證效果(最優值為0) 此圖為Sphere函數的驗證效果(最優值為0)
此圖為Rosenbrock函數的優化 此圖為Rosenbrock函數的優化

麻雀搜索算法應用前景

可以將該算法應用到更為廣闊的場景,如路徑規劃,圖像處理等等
參考資料