羣體智能之蜘蛛猴優化算法(SMO)

在這裏插入圖片描述

獲取更多資訊,趕快關注上面的公衆號吧!

第四章 蜘蛛猴優化算法

羣居生物的覓食行爲一直是優化算法研究的熱點問題。蜘蛛猴優化(Spider Monkey Optimization,SMO)是一種全局優化算法,靈感來自於蜘蛛猴在覓食過程中的裂變融合社會(Fission-Fusion social,FFS)結構。SMO巧妙地描述了羣體智能的兩個基本概念:自組織和分工。SMO作爲一種基於羣體智能的算法,近年來得到了廣泛的應用,並被應用於許多工程優化問題中。這一部分詳細介紹了蜘蛛猴優化算法。爲了更好地理解SMO過程的工作原理,給出了一個SMO過程的數例。

4.1 蜘蛛猴優化

蜘蛛猴優化(SMO)算法是近年來出現的一種基於羣體智能的優化算法[1, 2],更新方程是基於可能解之間的歐氏距離,該算法已廣泛應用於求解複雜的優化問題。在[3]中,Dhar和Arora應用蜘蛛猴優化算法(SMO)設計和優化了一個模糊規則庫;Sharma等人[4]將SMO應用於IEEE-14、30和33測試總線系統中,在適當分配3和5個電容器的情況下,解決最優電容器配置和尺寸問題;Wu等人[5]將SMO用於稀疏線性陣列的合成。利用SMO算法對擴展稀疏子陣中所有元素的幅值和位置進行優化,從而在一組實際約束條件下降低整個陣列的旁瓣電平;Cheruku等人設計了用於糖尿病數據規則挖掘任務的SM-RuleMiner[6]。SMO還被用於合成線性天線陣的陣列因子,併爲無線應用優化設計了一種E形貼片天線[7]。

下面將詳細介紹蜘蛛猴優化算法的動機和工作原理。

4.1.1 動機

4.1.1.1 裂變融合社會結構的出現

裂變融合社會的概念是生物學家“漢斯·庫默”在解釋最複雜的哺乳動物阿拉伯狒狒的社會組織時提出的。由於季節變化導致食物短缺時,母系羣體成員之間的食物競爭導致分裂成許多羣體,然後融合成一個單一的羣體。當食物供應充足時,羣體是最大的,而在最小的羣體中,食物短缺處於頂峯。裂變部分表現了蜘蛛猴的覓食行爲,融合是將較小的羣體組合成較大的羣體。

4.1.1.2 蜘蛛猴的覓食行爲

蜘蛛猴生活在中美洲和南美洲的熱帶雨林中,北至墨西哥[8]。蜘蛛猴是世界最聰明的猴子之一。它們被稱爲蜘蛛猴,因爲當它們通過尾巴掛起來的時候看起來像蜘蛛[9]。蜘蛛猴總是喜歡生活在一個稱爲父羣的單元組中。根據食物的稀缺性或充足性,它們會自動拆分或合併。它們之間通過手勢、姿勢和叫聲進行交流。羣體組成(Group composition)是這個結構中的一個動態屬性。

4.1.1.3 社會組織與行爲

蜘蛛猴的社會組織和行爲可以通過以下事實來理解:

  1. 蜘蛛猴生活在一個大約40-50只個體的羣體中;
  2. 這個羣落裏的所有個體在白天時都以小組的形式朝不同的方向覓食,晚上每個個體都在自己的棲息地分享覓食的經驗。
  3. 領頭的母蜘蛛猴決定覓食路線;
  4. 如果領頭沒有找到足夠的食物,她就把小組分成更小的小組,這些小組分別覓食;
  5. 社會中的個體可能不會因爲彼此之間的相互寬容而在一個地方被注意到。當他們接觸時,他們的手勢反映出他們實際上是一個大羣體的一部分。

4.1.1.4 交流

蜘蛛猴通過位置和姿勢分享它們的意圖和觀察結果。在很遠的距離,它們通過特定的聲音相互交流,如大叫或鳴叫。每隻猴子都有自己可辨別的聲音,其他小組成員可以通過這些聲音辨別出那隻猴子。
以上討論的蜘蛛猴覓食行爲如圖1所示。
在這裏插入圖片描述

圖1 蜘蛛猴的覓食行爲

4.1.2 蜘蛛猴優化過程

SMO是一種元啓發式技術,靈感來自於蜘蛛猴的智能覓食行爲。蜘蛛猴的覓食行爲是基於分裂融合的社會結構。該算法的特點依賴於一個羣體的社會組織,在這個羣體中,女性領導者決定是分裂還是合併。整個團隊的領導者在這裏被命名爲全局領導者,而小組織的領導者被稱爲爲局部領導者。參考SMO算法,食物短缺現象被定義爲解不再改善。由於SMO是一種基於羣體智能的算法,所以每個小羣體都應該有一個最小數量的猴子。因此,在任何時候,如果進一步的裂變產生了至少一組少於最小數量的猴子,我們將其定義爲融合時間。在SMO算法中,蜘蛛猴(SMO)表示一個可選解。SMO由六個階段組成:局部領導者階段、全局領導者階段、局部領導者學習階段、全局領導者學習階段、局部領導者決策階段和全局領導者決策階段。接下來將解釋SMO的所有這些階段:

初始化:

在初始化階段,SMO生成一個包含N個蜘蛛猴的均勻分佈初始羣體, SMi代表羣體中的第 i個蜘蛛猴,每個 SMi按下式初始化:
SMij=SMminj+U(0,1)×(SMmaxjSMminj)(1) S{M_{ij}} = S{M_{\min j}} + U(0,1) \times \left( {S{M_{\max j}} - S{M_{\min j}}} \right)\tag 1

其中SMminj和SMmaxj 是搜索空間中第 j維的下界和上界,U(0,1)是(0,1)內均勻分佈的隨機數。

局部領導者階段(LLP):

這是SMO算法的一個重要階段。在這裏,所有的蜘蛛猴都有機會更新自己。蜘蛛猴基於其局部領導者和小組成員的經驗更新其位置。在新的位置計算每個蜘蛛猴的適應度值,如果適應度高於其舊的位置,則更新,否則不更新。這裏,位置更新方程爲
SMnewij=SMij+U(0,1)×(LLkjSMij)+U(1,1)×(SMrjSMij)(2) SMne{w_{ij}} = S{M_{ij}} + U(0,1) \times \left( {L{L_{kj}} - S{M_{ij}}} \right) + U( - 1,1) \times \left( {S{M_{rj}} - S{M_{ij}}} \right)\tag 2

其中,SMij是第i個蜘蛛猴的第j維,LLkj代表第k組局部領導者的第j維,SMrj是從第r組中隨機選擇的蜘蛛猴的第j維,且r≠i,U(-1,1)是(-1,1)範圍內均勻分佈的隨機數。

從公式(2)中可以清楚地看出,待位置更新的蜘蛛猴在保持自己的自信或堅持時,會被局部領導者吸引,最後一部分有助於在搜索過程中引入擾動,維持算法的隨機性,從而避免過早停滯。這個階段的完整位置更新過程見算法1,該算法中pr表示當前解的擾動率,其值一般位於[0.1,0.8] 。

算法1 局部領導者(LLP)階段位置更新過程
for 每一個屬於第 組的成員  do
	for 每一個維度  do
		if   then
			使用式(2)更新位置;
		else
			不更新位置,即 ;
		end if
	end for
end for

全局領導者階段(GLP):

完成局部領導者階段後,算法進入全局領導者階段,這裏基於某一選擇概率進行解的更新,而選擇概率是適應度的函數。從目標函數fi可以根據下式計算處適應度fiti
在這裏插入圖片描述(3)
選擇概率probi由輪盤賭選擇確定,如果fiti是第i個蜘蛛猴的適應度,可以通過以下任一公式計算其在全局領導者階段被選中的概率:
probi=fitnessii=1Nfitnessiprobi=0.9×fitimaxfit+0.1 pro{b_i} = \frac{{fitnes{s_i}}}{{\sum\limits_{i = 1}^N {{\rm{ fitness}}{{\rm{ }}_i}} }}或pro{b_i} = 0.9 \times \frac{{fi{t_i}}}{{{{\max }_ - }fit}} + 0.1

蜘蛛猴利用全局領導者的知識、臨近SM的經驗和自身的堅持來更新自己的位置。該階段位置更新方程爲
SMnewij=SMij+U(0,1)×(GLjSMij)                                        +U(1,1)×(SMrjSMij)(4) SM{\rm{ne}}{{\rm{w}}_{ij}} = S{M_{ij}} + U(0,1) \times \left( {G{L_j} - S{M_{ij}}} \right)\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; + U( - 1,1) \times \left( {S{M_{rj}} - S{M_{ij}}} \right)\tag 4

其中GLj是全局領導者在第j維上的位置,該位置更新等式包含三部分:第一部分展示了父(當前)蜘蛛猴的持久性,第二部分將父蜘蛛猴朝全局領導者方向吸引,最後一項用於維持算法的隨機性。在這個等式中,第二項用於加強對已確定的搜索空間的利用,第三項用於避免搜索過程早熟收斂,降低陷入局部最優的機會。該階段的整個搜素過程見算法2。

算法2 全局領導者階段(GLP)位置更新過程
count=0while count<種羣大小 do
	for 羣內的每一個成員 do
		if   U(0,1)<probi then
			count=count+1;
			隨機選擇維度j∈{1,2,...,D};
			隨機選擇蜘蛛猴SMr且r≠i;
			使用式(4)進行位置更新;
		end if
	end for
end while

顯然,算法2中更新解的機會取決於probi,因此高適應度的解相較於低適應度的解,有更多的機會更新其位置。此外,對已更新解應用貪婪選擇方法,即對於已更新和原有的蜘蛛猴,只考慮適應度更優的解。

全局領導者學習階段:

在此階段,算法找出整個羣體的最優解,被識別的蜘蛛猴被認爲是羣體的全局領導者。此外,檢查全局領導者的位置,如果不更新它,那麼與全局領導者關聯的計數器(稱爲全侷限制計數(global Limit Count, GLC))將增加1,否則將設置爲0。

檢查全局領導者的全侷限制計數,並與全局領導者限制比較。

局部領導者學習階段:

在算法的這一階段中,通過對組內成員進行貪婪選擇來更新局部領導者的位置。如果局部領導者沒有更新其位置,那麼與局部領導者關聯的計數器local Limit Count (LLC)將增加1;否則計數器被設置爲0。此過程應用於每個組,以找到其各自的局部領導者。

局部限制計數是一個計數器,它會遞增,直到達到一個固定的閾值,稱爲局部領導者限制Local Leader Limit (LLL)。

局部領導者決策階段:
在此階段之前,已經確定了局部領導者和全局領導者。如果有任何局部領導者沒有被重新組織到一個特定的邊緣,也就是所謂的局部領導者限制,然後,該組所有成員通過隨機初始化或通過公式(5)使用全局領導者的經驗來更新他們的位置。按照一個被稱爲擾動率的概率pr應用公式(5)。

SMnewij=SMij+U(0,1)×(GLjSMij)+U(0,1)×(SMrjLLkj)(5) SMne{w_{ij}} = S{M_{ij}} + U(0,1) \times \left( {G{L_j} - S{M_{ij}}} \right) + U(0,1) \times \left( {S{M_{rj}} - L{L_{kj}}} \right)\tag 5

從這個方程可以看出,當現有的局部領導者被耗盡(迭代LLL次沒有更新)時,該組的解被排斥,而解被吸引向全局領導者,以改變現有的搜索方向和位置。基於pr,隨機初始化解的某些維數,在解的現有位置引入擾動。這裏局部領導者限制是檢查局部領導者是否陷入局部極小值的參數,通常計算爲DxN,其中D爲維度,N爲SM的總數。如果LLC大於LLL,則將LLC設置爲零,並按照上面描述的方式初始化SM,以改進搜索空間的探索。

算法3 局部領導者決策階段(LLD)
if 局部限制計數>局部領導者限制 then
	局部限制計數=0for 每一個維度 do
		if U(0,1)>pr then
			 執行式(1);
		else
			 執行式(5);
		end if
	end for
end if

全局領導者決策階段:

類似於局部領導者決策階段,如果全局領導者沒有被重新組織到一個特定的邊緣,即全局領導者限制,那麼全局領導者會將羣體劃分成更小的組或將組融合爲一個單元組。這裏全局領導者限制GLL是檢查是否存在早熟的參數,一般取值範圍爲[n/2,2N]。如果全局領導者計數超過全局領導者限制,那麼設置計數爲0,同時比較組數與最大組數。如果現有的組數少於預定義的最大組數,那麼全局領導者會進一步分組,否則通過組合形成單個父組。算法4中描述了分裂-融合過程。

算法4 全局領導者決策階段(GLD)
if 全侷限制計數>全局領導者限制
	全侷限制計數=0if 組數<MG then
		分裂羣體成組;
	else
		組合所有的組爲一個組;
	end if
	更新局部領導者位置;
end if

算法5給出了SMO解決優化問題的完整工作機制。

算法5 蜘蛛猴優化
Step1. 初始化種羣、局部領導者限制、全局領導者限制和擾動率pr;
Step2. 評估種羣;
Step3. 識別全局和局部領導者;
Step4. 局部領導者階段位置更新(算法1);
Step5. 全局領導者階段位置更新(算法2);
Step6. 通過全局領導者學習階段進行學習;
Step7. 通過局部領導者學習階段進行學習;
Step8. 局部領導者決策階段位置更新(算法3);
Step9. 全局領導者決策階段決定分裂或融合(算法4);
Step10. 如果滿足終止條件則停止,並將全局領導者位置聲明爲最優解,否則跳轉至Step4。

4.2 SMO分析

在尋找最優解的同時,SMO更好地平衡了利用和探索。局部領導者階段用於探索搜索區域,在這個階段,所有的組成員都會更新他們的位置,並且在維數上有很高的擾動。而全局領導者階段促進了利用,在這個階段,更好的候選人有更多的機會更新他們的位置。該特性使SMO在基於搜索的優化算法中成爲較好的候選對象。SMO還擁有一種內置的停滯檢查機制。局部領導者學習階段和全局領導者學習階段,用於檢查搜索過程是否停滯不前。在停滯的情況下(在局部或全局層面),局部領導者和全局領導者的決策階段將工作。局部領導者決策階段創建了一個額外的探索,而在全局領導者決策階段,則做出關於裂變或聚變的決策。因此,在保持收斂速度的同時,SMO可以更好地平衡探索和利用。

4.3 SMO參數

SMO主要有四個控制參數:局部領導者限制(LLL)、全局領導者限制(GLL)、最大組數(MG)和擾動率pr。下面給出了參數的建議設置:

  • MG=N/10,通過這樣設定,可以保證組中最少有10個蜘蛛猴;
  • GLL∈[N/2,2N];
  • LLL=DxN;
  • pr∈[0.1,0.8]。

4.4 SMO性能分析

在[2]將SMO的性能與三種著名的元啓發式算法,即人工蜂羣算法(ABC)、差分進化算法(DE)和粒子羣優化算法(PSO)進行了對比分析。通過對25個基準問題的測試和各種統計測試,得出的結論是SMO是一種具有競爭力的元啓發式優化算法,在單峯、多峯、可分性和不可分性優化問題中具有良好的性能。對於連續優化問題,SMO比PSO、ABC或DE具有更好的可靠性。

4.5 求解案例

這一節描述了一個使用SMO的數值案例,逐步求解簡單的優化問題f(x)=x12+x22

考慮如下優化問題:
Minimizef(x)=x12+x22;5x1,x25 {\rm{Minimize }}f(x) = x_1^2 + x_2^2;\quad - 5 \le {x_1},{x_2} \le 5

SMO的控制參數如下:

種羣大小N=20。

問題維度D=2.。

MG=N/10=2。

GLL∈[N/2,2N]=[10,40],取GLL=30。

LLL=DxN=2x20=40。

擾動率pr∈[0.1,0.8],取pr=0.7。

初始化:

在[-5,5]範圍內隨機初始化20個食物源的位置(蜘蛛猴)。

SM number x1 x2 SM number x1 x2
1 1.4 1.2 11 0.1 -0.9
2 -2.4 -2.5 12 0.3 0.3
3 0.6 -0.4 13 -0.4 0.6
4 0.3 1.5 14 0.5 0.7
5 -0.7 1.9 15 1.3 -1.5
6 2.9 3.2 16 -1.1 0.8
7 1.6 -0.9 17 0.8 -0.9
8 0.8 0.2 18 0.4 -0.2
9 -0.5 0.1 19 -0.6 0.3
10 0.3 0.2 20 0.8 1.6

對應的函數值和適應度值如下:

SM number fi(x) fiti(x) SM number fi(x) fiti(x)
1 3.4 0.227 11 0.82 0.549
2 12.01 0.077 12 0.18 0.847
3 0.52 0.658 13 0.52 0.658
4 2.34 0.299 14 0.74 0.575
5 4.1 0.196 15 3.94 0.202
6 18.65 0.051 16 1.85 0.351
7 3.37 0.229 17 1.45 0.408
8 0.68 0.595 18 0.2 0.833
9 0.26 0.794 19 0.45 0.690
10 0.13 0.885 20 3.2 0.238

這裏由於最大的適應度爲0.885,對應的是第10個蜘蛛猴,因此第10個蜘蛛猴就爲全局領導者,在此階段只有單一一個組,所以該蜘蛛猴也是局部領導者。

位置更新階段:

局部領導者階段

在此階段,所有的蜘蛛猴都有機會更新其位置,更新公式見(2)。

更新第一個蜘蛛猴(i=1)

對於第一個維度j=1,生成一個隨機數U(0,1),設U(0,1)=0.3。由於U(0,1)≥pr(=0.7)爲false,因此SMnew11=SM11

對於j=2,設U(0,1)=0.8,由於pr≤0.8,SM12將進行更新。

如果隨機選擇鄰域解索引r=6,且U(-1,1)=-0.7,則SMnew12=1.2+0.8(0.2-1.2)+(-0.7)(3.2-1.2)=-1

所以新解x1=(1.4,-1)。

計算其函數值和適應度值,f1(SMnew1)=2.96,fit(SMnew1)=0.252。

基於適應度值對SMnew1和SM1進行貪婪選擇,由於0.252>0.227,所以新解SMnew1更優,所以SM1=(1.4,-1)。

同樣對其他解進行類似的更新。

SM number Updated dimension j SMnew SMnew fi (x) Fiti
1 2 1.4 -1 2.96 0.252
2 1 -1.56 -2.5 8.6836 0.1032
3 2 0.6 0.12 0.3744 0.727
4 0.3 1.5 2.34 0.299
5 1 -0.34 1.5 2.366 0.2971
6 0.69 3.2 10.716 0.0854
7 1 1.6 -0.9 3.37 0.2288
8 0.4 0.2 0.2 0.8333
9 -0.5 0.1 0.26 0.7937
10 0.3 -0.2 0.13 0.885
11 2 0.1 0.31 0.106 0.9041
12 1 0.42 0.3 0.266 0.7896
13 -0.4 0.6 0.52 0.6579
14 2 0.5 -0.26 0.318 0.759
15 1.3 -1.5 3.94 0.2024
16 2 -1.1 -0.165 1.237 0.447
17 2 0.8 -0.33 0.749 0.5718
18 2 0.4 0.14 0.18 0.8477
19 -0.6 0.3 0.45 0.6897
20 2 0.8 -0.142 0.66 0.6024

對於全局領導者階段,需要根據適應度向量計算概率函數,即probi=0.9xfiti/max_fit+0.1,這裏max_fi=0.9041,對應着第11個解。下表列出了適應度概率。

SM probi SM probi
1 0.38968 11 1
2 0.202732 12 0.886019
3 0.823703 13 0.754916
4 0.397644 14 0.855558
5 0.395753 15 0.301482
6 0.185013 16 0.544973
7 0.327762 17 0.669207
8 0.929521 18 0.943856
9 0.890101 19 0.786572
10 0.980987 20 0.699668

全局領導者階段

在此階段,蜘蛛猴將基於上面計算的概率probi按照式(4)進行更新,更新數量取決於種羣大小。這裏只展示第8和第17只蜘蛛猴的更新過程。需要注意的是,每個被選擇的解只需要更新其一個維度。

更新第8個蜘蛛猴(i=8)

prob8=0.929521,設U(0,1)=0.6<prob8,因此需要更新該蜘蛛猴。

設隨機選擇的維度爲j=2。

對SM8進行全局領導者階段位置更新,得到SMnew8=(0.4,-0.75),計算得到函數值和適應度值分別爲f8(x)=0.7225和fit8=0.5805。由於0.5805<0.8333,所以不對SM8進行更新。

更新第17個蜘蛛猴(i=17)

prob17=0.6692,設U(0,1)=0.52<prob17,因此需要更新該蜘蛛猴。

設隨機選擇的維度爲j=1。

對SM17進行全局領導者階段位置更新,得到SMnew17=(-0.264,-0.33),計算得到函數值和適應度值分別爲f17(x)=0.1785和fit17=0.8484。由於0.8484>0.5718,所以對SM17進行更新,得到SM17=(-0.264,-0.33)。

第一輪過後(所有解都有機會更新其位置),蜘蛛猴的新位置如下:

SM number j SMnewij SMnewij fi (x) Fiti
1 1.4 -1 2.96 0.252525
2 -1.56 -2.5 8.6836 0.103267
3 2 0.6 0.4 0.52 0.657895
4 0.3 1.5 2.34 0.299401
5 1 0.1 1.5 2.26 0.306748
6 0.69 3.2 10.7161 0.085353
7 2 1.6 -0.3 2.65 0.273973
8 1 1.1 0.2 1.25 0.444444
9 1 -0.8 0.1 0.65 0.606061
10 2 0.3 -0.9 0.9 0.526316
11 2 0.1 -0.4 0.17 0.854701
12 1 0.3 0.3 0.18 0.847458
13 1 -0.8 0.6 1 0.5
14 1 -0.2 -0.26 0.1076 0.902853
15 1.3 -1.5 3.94 0.202429
16 -1.1 -0.165 1.237225 0.446982
17 1 -0.264 -0.33 0.178596 0.848467
18 1 0.45 0.14 0.2221 0.818264
19 -0.6 0.3 0.45 0.689655
20 0.8 -0.142 0.660164 0.60235

在全局領導者階段的第一輪,一共有12個解得到了更新,根據本階段的終止條件,更新次數應該等於種羣中蜘蛛猴的個數,因此開始下一輪更新蜘蛛猴。第二輪過後,蜘蛛猴更新後的位置如下:

SM number j SMnewij SMnewij fi(x) Fiti
1 1.4 -1 2.96 0.252525
2 -1.56 -2.5 8.6836 0.103267
3 0.6 0.4 0.52 0.657895
4 0.3 1.5 2.34 0.299401
5 0.1 1.5 2.26 0.306748
6 0.69 3.2 10.7161 0.085353
7 1.6 -0.3 2.65 0.273973
8 1.1 0.2 1.25 0.444444
9 1 -0.4 0.1 0.17 0.854701
10 1 -0.8 -0.9 1.45 0.408163
11 1 1.2 -0.4 1.6 0.384615
12 1 1.8 0.3 3.33 0.230947
13 -0.8 0.6 1 0.5
14 2 -0.2 0.7 0.53 0.653595
15 1.3 -1.5 3.94 0.202429
16 -1.1 -0.165 1.237225 0.446982
17 2 -0.264 -0.8 0.709696 0.584899
18 2 0.45 -0.3 0.2925 0.773694
19 1 -0.4 0.3 0.25 0.8
20 0.8 -0.142 0.660164 0.60235

目前在此階段,蜘蛛猴的總更新次數爲20,所以該階段停止。很顯然,具有更高適應度的解將有更多的機會更新其位置,從而提高算法的利用能力。

全局領導者學習階段

全局領導者學習階段決定了羣體的全局領導者。所有解的適應度將相互比較,如果全局領導者獲得更好的位置,則將全侷限制計數設置爲0,否則將其增加1。由於第9個蜘蛛猴的適應度在更新後的羣體中是最好的,所以它成爲了全局領導者。此外,全侷限制計數將被設置爲0,因爲全局領導者已經更新。

局部領導者學習階段

局部領導者學習階段決定了小組的局部領導者。與全局領導者學習階段類似,所有解的適應度都將相互比較。如果局部領導者獲得更好的位置,則將局部限制計數設置爲0,否則將計數增加1。這裏我們只有一個組,所以第9個蜘蛛猴既是全局領導者,也是局部領導者。局部限制計數被設置爲0,因爲已更新了局部領導者。

局部領導者決策階段
根據我們的參數設置,局部領導者限制是40。因爲局部限制計數=0<40,所以此階段不執行。

全局領導者決策階段

在此階段,將監視全局領導者的位置,如果達到全局領導者限制(本例中爲30)次沒有更新,則將種羣劃分爲更小的組。如果子組的數量達到其最大計數(本例中爲=2),則將所有子組組合成一個組。在做出決定後,將全侷限制計數設置爲0,並更新局部領導者的位置。

爲了解釋全局領導者決策階段的作用,考慮這樣一個情況:對於某個迭代,全侷限制計數爲31,然後將該組劃分爲兩個子組。解SM1-SM10屬於第一組,而SM11-SM20屬於第二組。假設羣體由下表表示:

Group number,SMnumber SMnewij SMnewij fi (x) Fiti
K1, SM1 1.4 -1 2.96 0.252525
K1, SM2 -1.56 -2.5 8.6836 0.103267
K1, SM3 0.6 0.4 0.52 0.657895
K1, SM4 0.3 1.5 2.34 0.299401
K1, SM5 0.1 1.5 2.26 0.306748
K1, SM6 0.69 3.2 10.7161 0.085353
K1, SM7 1.6 -0.3 2.65 0.273973
K1, SM8 1.1 0.2 1.25 0.444444
K1, SM9 -0.4 0.1 0.17 0.854701
K1, SM10 -0.8 -0.9 1.45 0.408163
K2, SM11 1.2 -0.4 1.6 0.384615
K2, SM12 1.8 0.3 3.33 0.230947
K2, SM13 -0.8 0.6 1 0.5
K2, SM14 -0.2 0.7 0.53 0.653595
K2, SM15 1.3 -1.5 3.94 0.202429
K2, SM16 -1.1 -0.165 1.237225 0.446982
K2, SM17 -0.264 -0.8 0.709696 0.584899
K2, SM18 0.45 -0.3 0.2925 0.773694
K2, SM19 -0.4 0.3 0.25 0.8
K2, SM20 0.8 -0.142 0.660164 0.60235

由於第9個蜘蛛猴的適應度在第一組的所有蜘蛛猴中最高,因此它被指定爲第一組的局部領導者,即LL1=(-0.4,0.1)。其次,第二組中第19蜘蛛猴的適應度最高,被認爲是第二組的局部領導者,即LL2=(-0.4,0.3)。對於兩個局部領導者,局部限制計數都被設置爲0。

也可以看出,第9個蜘蛛猴的適應度在羣體的所有成員中是最好的,因此第9個蜘蛛猴被認爲是羣體的全局領導者,即GL=(-0.4,0.1)。由於執行了全局領導者決策,全侷限制計數變爲0。

經過全局領導者決策階段後,再由局部領導者階段和其他階段以類似的方式對羣體進行更新。此過程將迭代地繼續,直到達到終止條件。

4.6 結論

本部分中,討論了一種基於羣體智能的算法-蜘蛛猴優化算法,該算法從蜘蛛猴的社會行爲中得到啓發。在SMO中,局部領導者階段和全局領導者階段有助於利用搜索空間,而探索則通過局部領導者決策階段和全局領導者決策階段完成。SMO性能分析表明,SMO在可靠性、有效性和精度方面超過了ABC、DE和PSO。然而,SMO中存在大量依賴於用戶的參數,是需要進一步研究的問題。自適應參數調整有助於提高算法的魯棒性和可靠性。僅僅在5年內,就有大量關於SMO的開發和應用的出版物,這表明SMO具有成爲高效優化器的巨大潛力。

備註:SMO代碼(C++,Python和Matlab)可在http://smo.scrs.in/下載。

參考文獻

  1. Bonabeau, E., M. Dorigo, and G. Theraulaz, Swarm intelligence: from natural to artificial systems. 1999: Oxford University Press, Inc. 307.
  2. Bansal, J., et al., Spider Monkey Optimization algorithm for numerical optimization. Memetic Computing, 2014. 6.
  3. Dhar, J. and S. Arora, Designing Fuzzy Rule Base using Spider Monkey Optimization Algorithm in Cooperative Framework. Future Computing and Informatics Journal, 2017. 2.
  4. Sharma, A., et al., Optimal placement and sizing of capacitor using Limaçon inspired spider monkey optimization algorithm. Memetic Computing, 2016. 9(4): p. 311-331.
  5. Wu, H., et al., Pattern Synthesis of Sparse Linear Arrays Using Spider Monkey Optimization. IEICE Transactions on Communications, 2017. E100.B(3): p. 426-432.
  6. Cheruku, R., D.R. Edla, and V. Kuppili, SM-RuleMiner: Spider monkey based rule miner using novel fitness function for diabetes classification. Comput Biol Med, 2017. 81: p. 79-92.
  7. Al-Azza, A.A., A.A. Al-Jodah, and F.J. Harackiewicz, Spider Monkey Optimization: A Novel Technique for Antenna Optimization. IEEE Antennas and Wireless Propagation Letters, 2016. 15: p. 1016-1019.
  8. Spider Monkeys. Available from: https://www.nationalgeographic.com/animals/mammals/group/spider-monkeys/.
  9. ANIMAL CORNER. Available from: https://animalcorner.co.uk/animals/spider-monkey/.
發佈了42 篇原創文章 · 獲贊 56 · 訪問量 5821
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章