梁昔明,史蘭艷,龍 文
(1.北京建筑大學(xué)理學(xué)院,北京 102616;2.貴州財經(jīng)大學(xué)數(shù)學(xué)與統(tǒng)計學(xué)院,貴州 貴陽 550025)
近些年,越來越多的群智能優(yōu)化算法被提出,比如樽海鞘優(yōu)化算法[1]、灰狼優(yōu)化算法[2,3]、蝴蝶優(yōu)化算法[4-6]和鯨魚優(yōu)化算法WOA(Whale Optimization Algorithm)[7-10]等。這些算法通過模擬自然界中魚群、鳥群、蜂群、狼群和細菌群等群體的行為,利用群體間的信息交流與合作,以簡單有限的個體間互動來搜索優(yōu)化問題的最優(yōu)解。群智能優(yōu)化算法相較于傳統(tǒng)的優(yōu)化算法,無需計算梯度,只需在搜索空間內(nèi)不斷地進行個體位置更新以求得最優(yōu)解,所以群智能優(yōu)化算法的適用范圍更加廣泛,已被應(yīng)用于多個領(lǐng)域。蛇優(yōu)化SO(Snake Optimization)算法是由Hashim等人[11]于2022年提出的一種模仿蛇特殊交配行為的新型群智能優(yōu)化算法。蛇優(yōu)化算法遵循蛇的交配行為:當(dāng)溫度較低且有食物時蛇進行交配,否則蛇只會尋找食物或吃掉現(xiàn)有的食物。蛇優(yōu)化算法的搜索過程分為3個階段:探索食物階段、靠近食物階段和戰(zhàn)斗或交配階段。在探索食物階段,蛇只在當(dāng)前環(huán)境中尋找食物??拷澄镫A段是指在有食物但溫度很高的情況下,蛇只會專注于吃現(xiàn)有的食物。如果食物充足而且環(huán)境寒冷,蛇進入戰(zhàn)斗或交配階段,該階段有2種模式:戰(zhàn)斗模式或交配模式。在戰(zhàn)斗模式中,每只雄性為了得到最好的雌性而戰(zhàn)斗,而每只雌性則會努力選擇最好的雄性;在交配模式中,如果交配成功,雌性蛇就會產(chǎn)卵,孵化出新的蛇。蛇優(yōu)化算法與其他群智能優(yōu)化算法一樣也存在易陷入局部最優(yōu)的不足,本文通過引入維度選擇策略、選擇交配策略和重新分組策略來修改蛇優(yōu)化算法,提出了一種基于混合策略改進的蛇優(yōu)化SSO(Supplant Snake Optimization)算法。
對于無約束優(yōu)化問題:
minf(X)
其中,f(X)是D維的目標(biāo)函數(shù),蛇優(yōu)化算法包含如下9個基本步驟,步驟中所涉及常數(shù)參數(shù)的取值均與文獻[11]中常數(shù)參數(shù)的取值相同。
(1)初始化種群。
與所有的元啟發(fā)式算法一樣,蛇優(yōu)化算法首先生成均勻分布的隨機種群。初始種群按式(1)產(chǎn)生:
Xi(0)=Xmin+rand×(Xmax-Xmin)
(1)
其中,Xi(0)表示第i個個體的初始位置,i=1,2,…,N,N代表種群規(guī)模,Xmin和Xmax分別表示搜索空間的下限與上限,rand表示0到1之間的隨機數(shù)。
(2)分組種群。
將種群分為雄性種群和雌性種群2組。本文假設(shè)雄性個體數(shù)量和雌性個體數(shù)量各占種群規(guī)模N的50%,雄性種群表示為:
Xm={X1(0),X2(0),…,XNm(0)}
(2)
其中,Nm=N/2表示雄性種群規(guī)模。
雌性種群表示為:
Xf={XNm+1(0),XNm+2(0),…,XN(0)}
(3)
雌性種群規(guī)模記為Nf=N-Nm。
(3)計算適應(yīng)度值。
取優(yōu)化問題的目標(biāo)函數(shù)f(X)為適應(yīng)度函數(shù),計算種群中每個個體的適應(yīng)度值,將種群中適應(yīng)度值最小個體的位置記為食物的位置Xfood,將雄性種群中適應(yīng)度值最小個體的位置記為Xbest,m,雌性種群中適應(yīng)度值最小個體的位置記為Xbest,f。
(4)計算溫度與食物數(shù)量。
蛇交配行為受溫度和食物數(shù)量的影響,蛇優(yōu)化算法要根據(jù)當(dāng)前迭代的溫度和食物數(shù)量來確定種群中每個個體的行為。當(dāng)前迭代時的溫度Temp和食物數(shù)量Q根據(jù)式(4)和式(5)計算:
(4)
(5)
其中,t表示當(dāng)前迭代次數(shù),T表示最大迭代次數(shù),c1為常數(shù),通常取0.5。
如果Q (5)探索食物。 每條蛇個體通過選擇隨機位置尋找食物,即按式(6)和式(7)來更新它們的位置: Xi,m(t+1)=Xrand,m(t)±c2×Am× [(Xmax-Xmin)×rand+Xmin] (6) Xi,f(t+1)=Xrand,f(t)±c2×Af× [(Xmax-Xmin)×rand+Xmin] (7) 其中,Xi,m(t)表示t次迭代第i個雄性個體的位置,Xi,f(t)表示t次迭代第i個雌性個體的位置,Xrand,f(t)與Xrand,m(t)分別表示t次迭代隨機選取的雌性和雄性個體的位置,rand是0到N/2之間的隨機整數(shù),±表示隨機生成的標(biāo)志方向算子,也被稱為多樣性因子,它提供了增加或減少位置解的可能性,從而在給定搜索空間的所有可能方向上進行良好的掃描。c2為常數(shù),通常取0.05。Am和Af分別表示雄性個體Xi,m(t)和雌性個體Xi,f(t)尋找食物的能力,由式(8)和式(9)計算得出: (8) (9) 其中,frand,m、frand,f、fi,m和fi,f分別表示Xrand,m(t)、Xrand,f(t)、Xi,m(t)和Xi,f(t)的適應(yīng)度值。 (6)靠近食物。 每條蛇個體按如式(10)所示位置更新公式靠近食物: Xi,n(t+1)=Xfood(t)±c3× Temp×(Xfood(t)-Xi,j(t))×rand (10) 其中,Xi,n(t)表示t次迭代第i個個體的位置,n取m或f,分別表示雄性或雌性,Xfood(t)表示t次迭代食物的位置,c3為常數(shù),通常取2。 (7)戰(zhàn)斗或交配。 在該階段,每條蛇個體根據(jù)隨機生成的概率p來選擇戰(zhàn)斗模式或交配模式進行位置更新。 如果p>0.6,蛇個體選擇戰(zhàn)斗模式,即按式(11)和式(12)進行位置更新: Xi,m(t+1)=Xi,m(t)±c3×Fm× rand×(Q×Xbest,f(t)-Xi,m(t)) (11) Xi,f(t+1)=Xi,f(t)±c3×Ff× rand×(Q×Xbest,m(t)-Xi,f(t)) (12) 其中,Xbest,m(t)和Xbest,f(t)分別表示t次迭代適應(yīng)度值最小雄性個體和雌性個體的位置,Fm和Ff分別表示雄性個體和雌性個體在位置Xi,m(t)和Xi,f(t)處的戰(zhàn)斗能力,由式(13)和式(14)計算得出: (13) (14) 其中,fbest,f和fbest,m分別表示Xbest,f(t)和Xbest,m(t)的適應(yīng)度值。 如果p≤0.6,蛇個體選擇交配模式,即按式(15)和式(16)進行位置更新: Xi,m(t+1)=Xi,m(t)+c3× Mm×rand×(Q×Xi,f(t)-Xi,m(t)) (15) Xi,f(t+1)=Xi,f(t)+c3× Mf×rand×(Q×Xi,m(t)-Xi,f(t)) (16) 其中,Mm和Mf分別表示雄性個體和雌性個體在位置Xi,m(t)和Xi,f(t)處的交配能力,由式(17)和式(18)計算得出: (17) (18) 根據(jù)隨機數(shù)egg∈{-1,1}判斷交配是否成功,如果egg=1,則交配成功,對適應(yīng)度值最大的雄性個體Xworst,m(t)和雌性個體Xworst,f(t)按式(19)和式(20)進行位置更新: Xworst,m(t+1)=Xmin+rand×(Xmax-Xmin) (19) Xworst,f(t+1)=Xmin+rand×(Xmax-Xmin) (20) (8)選擇個體。 比較每個個體位置更新前后的適應(yīng)度值,選擇適應(yīng)度值小的位置進入下一次迭代。 (9)檢查終止條件。 判定迭代次數(shù)是否達到指定的最大迭代次數(shù),如果達到,則終止迭代,輸出Xfood以及ffood;否則,根據(jù)個體適應(yīng)度值重新確定Xfood,Xbest,m(t)以及Xbest,f(t),返回步驟(4)繼續(xù)迭代。 基本蛇優(yōu)化算法的偽代碼如算法1所示。 算法1 蛇優(yōu)化算法輸入:最大迭代次數(shù)T,種群規(guī)模N,搜索空間上下限Xmax、Xmin。輸出:輸出食物位置Xfood及其適應(yīng)度值ffood。步驟1 令t=0;步驟2 利用式(1)生成初始化種群X;步驟3 利用式(2)和式(3)將種群X分為雄性種群Xm和雌性種群Xf;步驟4 計算個體的適應(yīng)度值;步驟5 while t 基本蛇優(yōu)化算法在迭代后期會出現(xiàn)勘探能力減弱、個體位置停滯等現(xiàn)象,算法會過早收斂或陷入局部最優(yōu)。本文引入維度選擇策略、選擇交配策略和重新分組策略來修改基本蛇優(yōu)化算法,提出一種基于混合策略改進的蛇優(yōu)化算法,記為SSO。 在基本蛇優(yōu)化算法中,當(dāng)食物數(shù)量與溫度滿足蛇交配所需要的條件時,每條蛇個體就會進入戰(zhàn)斗或交配階段以戰(zhàn)斗模式或交配模式進行位置更新。通過大量的數(shù)值實驗觀察發(fā)現(xiàn),基本蛇優(yōu)化算法在該階段位置更新產(chǎn)生的新個體在進行選擇個體時幾乎都會被淘汰,即前后2次迭代的個體位置幾乎相同,出現(xiàn)個體位置停滯現(xiàn)象。 圖1以單峰測試問題F3為例列出當(dāng)種群規(guī)模N=30、問題維度D=2、最大迭代次數(shù)T=500時基本蛇優(yōu)化算法迭代250、350、500次個體位置分布情況,橫坐標(biāo)X(i,1)表示第i個個體第1維的位置,縱坐標(biāo)X(i,2)表示第i個個體第2維的位置。從圖1可以看出基本蛇優(yōu)化算法在戰(zhàn)斗或交配階段個體位置幾乎沒有變化,出現(xiàn)個體位置停滯現(xiàn)象,以致于蛇優(yōu)化算法在迭代后期搜索性能下降。為了克服個體位置停滯現(xiàn)象,本文在該階段引入維度選擇策略。 Figure 1 Population distributions of standard unconstrained optimization problems F3 obtained by the SO 維度選擇策略是指每個個體在不同維度上各生成不同的隨機概率p(j)(j代表維度),由概率p(j)決定該個體在該維度的位置更新模式,每個維度的概率p(j)是獨立的[12]?;旧邇?yōu)化算法在戰(zhàn)斗或交配階段中每條蛇個體在不同維度的位置更新模式都是相同的;引入維度選擇策略,每個個體在不同維度的位置更新模式可能不同,該策略能有效避免迭代后期個體位置停滯現(xiàn)象的發(fā)生。 戰(zhàn)斗或交配階段引入維度選擇策略位置更新公式如式(21)和式(22)所示: (21) (22) 蛇優(yōu)化算法在戰(zhàn)斗或交配階段進行局部搜索,蛇個體逐漸靠近當(dāng)前最優(yōu)雄性個體或雌性個體,算法在該階段探索能力較弱,易陷入局部最優(yōu)。為了提高蛇優(yōu)化算法在戰(zhàn)斗或交配階段的探索能力,本文在該階段引入選擇交配策略。 選擇交配策略是在戰(zhàn)斗或交配階段先根據(jù)適應(yīng)度值的大小分別從雄性種群和雌性種群中選出適應(yīng)度值小的Nm/2個和Nf/2個蛇個體,然后利用式(21)和式(22)分別更新所選出的蛇個體的位置,剩余雄性個體和雌性個體則利用探索食物階段的位置更新式(6)和式(7)進行位置更新。因為蛇優(yōu)化算法在探索食物階段的勘探能力強,在戰(zhàn)斗或交配階段選擇適應(yīng)度值大的部分雄性個體和雌性個體利用探索食物階段的位置更新公式進行位置更新可有效增強蛇優(yōu)化算法迭代后期的勘探能力。 為了增加種群個體的多樣性,提高算法尋優(yōu)能力,本文引入重新分組策略,即對種群每迭代10次后重新進行分組,將整個種群隨機打亂并重新分成雄性種群和雌性種群。 本文在蛇優(yōu)化算法中引進上述3種改進策略,得到基于混合策略改進的蛇優(yōu)化SSO算法,其迭代步驟如下: 步驟1:初始化最大迭代次數(shù)T與種群規(guī)模N,令t=0; 步驟2:按式(1)產(chǎn)生初始化種群; 步驟3:按式(2)和式(3)分組種群; 步驟4:根據(jù)適應(yīng)度函數(shù)f(X)計算個體適應(yīng)度值; 步驟5:按式(4)和式(5)計算溫度Temp和食物數(shù)量Q; 步驟6:如果Q<0.25,進入步驟7;否則,進入步驟8; 步驟7:每條蛇個體按式(6)和式(7)更新它們的位置,轉(zhuǎn)步驟11; 步驟8:如果Temp≥0.6,進入步驟9;否則,進入步驟10; 步驟9:每條蛇個體按式(10)更新位置,轉(zhuǎn)步驟11; 步驟10:根據(jù)適應(yīng)度值分別從雄性種群和雌性種群中選出適應(yīng)度值小的Nm/2個和Nf/2個蛇個體,然后利用式(21)和式(22)分別更新所選出的蛇個體的位置,剩余雄性個體和雌性個體則利用探索食物階段的位置更新式(6)和式(7)進行位置更新,轉(zhuǎn)步驟11; 步驟11:比較個體位置更新前后的適應(yīng)度值,保留適應(yīng)度值小的個體位置,更新Xfood、Xbest,m以及Xbest,f,并令t=t+1; 步驟12:判定t≥T是否成立,若是,則終止迭代,輸出Xfood以及ffood;若否,進入步驟13; 步驟13:判斷t是否為10的倍數(shù),若是,將種群隨機打亂,按式(2)和式(3)重新進行分組并返回步驟5;若否,直接返回步驟5。 為了評估改進蛇優(yōu)化SSO算法的有效性,本文使用文獻[13]中的30個無約束標(biāo)準(zhǔn)測試問題進行測試。這30個問題涵蓋4種類型的目標(biāo)函數(shù):單峰函數(shù)、多峰函數(shù)、混合函數(shù)和復(fù)合函數(shù)。 表1描述了每個標(biāo)準(zhǔn)測試問題的目標(biāo)函數(shù)類型、名稱及其理論最優(yōu)值。 Table 1 Objective function information for standard test problems 選取的對比算法有鯨魚優(yōu)化算法WOA[7]、基本蛇優(yōu)化SO算法[11]、Moth-Flame優(yōu)化MFO(Moth Flame Optimization)算法[14],哈里斯鷹優(yōu)化HHO(Harris Hawk Optimization)算法[15],熱交換優(yōu)化TEO(Thermal Exchange Optimization)算法[16,17]以及蚱蜢優(yōu)化算法GOA(Grasshopper Optimization Algorithm)[18]。 數(shù)值實驗中,初始參數(shù)設(shè)置與文獻[11]的表1中初始參數(shù)設(shè)置相同,即設(shè)置SSO算法的最大迭代次數(shù)為500,種群規(guī)模為30,標(biāo)準(zhǔn)測試問題目標(biāo)函數(shù)的維度均設(shè)為30維。為避免偶然性,SSO算法對每一個問題進行30次獨立求解,并取30次求解所得問題的目標(biāo)函數(shù)值的最好值、最差值、平均值和標(biāo)準(zhǔn)差,結(jié)果如表2所示,對比算法的相關(guān)數(shù)據(jù)參見文獻[11]中表4。 Table 2 Results of objective function values of 30 standard test problems by SSO algorithm 由表2數(shù)據(jù)和文獻[11]中表4數(shù)據(jù)對比可知,基于混合策略改進的蛇優(yōu)化SSO算法對18個標(biāo)準(zhǔn)測試問題(F1、F2、F4~F6、F8、F9、F11~F13、F15、F17、F19、F21、F23~F25、F29)求解所得目標(biāo)函數(shù)值的平均值、最好值、最差值和標(biāo)準(zhǔn)差都好于6種對比算法。對比7種算法所得平均目標(biāo)函數(shù)值,SSO算法對25個問題(F1、F2、F4~F9、F11~F17、F19~F21、F23~F26、F28~F30)所得結(jié)果最小,對1個問題(F18)所得結(jié)果次小,對3個問題(F3、F22、F27)所得結(jié)果第三小。從7種算法所得目標(biāo)函數(shù)值的標(biāo)準(zhǔn)差來看,SSO算法對21個問題(F1、F2、F4~F6、F8、F9、F11~F13、F15、F17、F19、F21、F23~F27、F29、F30)所得結(jié)果最小,對5個問題(F7、F14、F16、F20、F28)所得結(jié)果次小,對1個問題(F18)所得結(jié)果第三小。對比7種算法所得最小目標(biāo)函數(shù)值,SSO算法對24個問題(F1、F2、F4~F6、F8~F17、F19~F25、F28、F29)所得結(jié)果最小,對5個問題(F3、F7、F18、F26、F30)所得結(jié)果次小,對1個問題(F27)所得結(jié)果第三小?;诨旌喜呗愿倪M的蛇優(yōu)化SSO算法對比于基本蛇優(yōu)化SO算法,有20個問題(F1、F2、F4~F6、F8、F9、F11~F15、F17、F19、F21、F23~F25、F28、F29)的目標(biāo)函數(shù)值的平均值、最好值、最差值和標(biāo)準(zhǔn)差都更小,其中對問題F1、F2、F9、F12、F13所得目標(biāo)函數(shù)值的平均值、最好值、最差值和標(biāo)準(zhǔn)差明顯小于SO算法所得結(jié)果;對問題F1、F2、F9、F12~F15、F17、F19、F26、F29、F30所得目標(biāo)函數(shù)值的平均值明顯小于SO算法的相應(yīng)結(jié)果;對問題F1、F2、F5、F9、F11~F15、F19、F26、F30所得目標(biāo)函數(shù)值的標(biāo)準(zhǔn)差明顯小于SO算法所得結(jié)果;對問題F1~F3、F9、F10、F12~F15所得目標(biāo)函數(shù)值的最好值明顯小于SO算法的相應(yīng)結(jié)果。對于問題F3、F7、F16、F20、F26、F27、F30,SSO算法與SO算法所得目標(biāo)函數(shù)值結(jié)果相近。對于問題F7、F16、F20、F26、F30,SSO算法所得目標(biāo)函數(shù)值結(jié)果略大于SO算法的相應(yīng)結(jié)果,但小于其他5種算法的相應(yīng)結(jié)果。SSO算法所得問題F18的目標(biāo)函數(shù)值結(jié)果大于SO算法的相應(yīng)結(jié)果,但小于其他5種算法的相應(yīng)結(jié)果。對于問題F10和F22,SSO算法所得目標(biāo)函數(shù)值結(jié)果不如其他算法的相應(yīng)結(jié)果好。綜上,利用基于混合策略改進的蛇優(yōu)化SSO算法求解30個標(biāo)準(zhǔn)無約束優(yōu)化問題的結(jié)果大部分都優(yōu)于對比的算法。 圖2~圖5給出了不同函數(shù)類型部分標(biāo)準(zhǔn)測試問題的收斂曲線,包括標(biāo)準(zhǔn)測試問題F1、F3、F6、F9、F12、F15、F21、F28。通過觀察圖2~圖5以及文獻[11]中圖5~圖7對應(yīng)標(biāo)準(zhǔn)測試問題的收斂曲線可知,相比于SO算法等6種對比算法,SSO算法求解大部分標(biāo)準(zhǔn)測試問題具有更快的收斂速度和更高的收斂精度。 Figure 2 Convergence curves of standard unconstrained optimization problems F1 and F3 by SSO and SO algorithms Figure 3 Convergence curves of standard unconstrained optimization problems F6 and F9 by SSO and SO algorithms Figure 4 Convergence curves of standard unconstrained optimization problems F12 and F15 by SSO and SO algorithms Figure 5 Convergence curves of standard unconstrained optimization problems F21 and F28 by SSO and SO algorithms 為了比較SSO算法與SO算法對于不同維度問題的求解能力,將問題F1~F30的維度分別設(shè)置為30,50,100,利用2種算法分別對它們進行求解。2種算法的種群規(guī)模N均設(shè)置為30,最大迭代次數(shù)T均設(shè)置為500。為避免偶然性,2種算法對不同維度的每個問題分別獨立求解30次,取30次獨立求解所得目標(biāo)函數(shù)值的最好值、最差值、平均值及標(biāo)準(zhǔn)差進行對比,相關(guān)數(shù)值結(jié)果如表3所示。 Table 3 Results of standard test problems with different dimensions by SSO and SO algorithms 從表3可以看出,對于問題F1、F2、F4、F6、F8、F12、F13、F19、F23~F28、F30,當(dāng)維度分別為30,50及100時,SSO算法所得目標(biāo)函數(shù)值都好于SO算法的相應(yīng)結(jié)果。對于問題F1、F2,問題維度越高,算法所求得的目標(biāo)函數(shù)值與理論最優(yōu)值相差越明顯,但SSO算法所得目標(biāo)函數(shù)值明顯好于SO算法的相應(yīng)結(jié)果。對于問題F7、F14、F18、F29,當(dāng)維度是30維時,SSO算法所得目標(biāo)函數(shù)值差于SO算法的相應(yīng)結(jié)果,但隨著問題維度增加,SSO算法所得目標(biāo)函數(shù)值好于SO算法的相應(yīng)結(jié)果。對于問題F15、F17、F20,當(dāng)問題維度為30時,SSO算法所得目標(biāo)函數(shù)值好于SO算法的相應(yīng)結(jié)果,但隨著問題維度的增加,SSO算法所得目標(biāo)函數(shù)值略差于SO算法的相應(yīng)結(jié)果。綜上,相比SO算法,SSO算法在求解大部分高維問題上占有優(yōu)勢。 為了從統(tǒng)計學(xué)上比較基于混合策略改進的蛇優(yōu)化SSO算法與基本蛇優(yōu)化SO算法有無明顯差異,本節(jié)設(shè)置2種算法的最大迭代次數(shù)均為500,種群規(guī)模均為30,問題的維度均為30維,使用Wilcoxon秩和[19]進行了非參數(shù)檢驗,通過計算p-value的大小判斷2種算法的差異是否明顯。p-value的值越小,說明2種算法的差別越明顯;若p-value大于0.05,則說明2種算法性能基本相同,不存在明顯差異。計算所得的p-value數(shù)值如表4所示,其中“+”表示SSO算法的性能優(yōu)于SO算法,“-”表示SSO算法的性能劣于SO算法,“N/A”表示2種算法的性能差異不明顯。 Table 4 Results of Wilcoxon rank sum test 從表4可以看出,有22個問題(F1,F2、F4~F6、F8~F11、F15、F17、F19~F21、F23~F30)的p-value小于0.05,結(jié)合前面數(shù)值實驗結(jié)果可知,22個問題中有17個問題(F1,F2、F4~F6、F8、F9、F11、F15、F17、F19、F21、F23~F25、F28、F29)利用SSO算法求解得到的目標(biāo)函數(shù)值明顯好于SO算法求解所得到的相應(yīng)結(jié)果。對于問題F3、F7、F12~F14、F16、F18、F22,p-value均大于0.05,說明2種算法在求解這些問題時差異不明顯。問題F26和F30的p-value都小于0.05,雖然數(shù)值實驗結(jié)果表明利用SSO算法求解這2個問題所得目標(biāo)函數(shù)的最好值略大于SO算法求解的相應(yīng)結(jié)果,但利用SSO算法求解這2個問題所得目標(biāo)函數(shù)的平均值、最差值和標(biāo)準(zhǔn)差都明顯小于SO算法求解的相應(yīng)結(jié)果。問題F10秩和檢驗結(jié)果小于0.05,SSO算法求解問題F10得到的目標(biāo)函數(shù)值不如SO算法的好,說明SO算法在求解問題F10時比SSO算法有優(yōu)勢。綜上,相比基本蛇優(yōu)化SO算法,基于混合策略改進的蛇優(yōu)化SSO算法在求解大部分標(biāo)準(zhǔn)測試問題上性能更好。 基本BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)由輸入層、隱藏層和輸出層組成,如圖6所示。 Figure 6 Basic BP neural network 圖6中xa表示輸入層輸入,bc表示隱含層輸入,yk表示輸出層輸入,vac和wck分別表示輸入層到隱藏層和隱藏層到輸出層的權(quán)重。θc和δk分別表示隱含層神經(jīng)元的閾值與輸出層神經(jīng)元閾值,a=1,2,…,d,c=1,2,…q,k=1,2,…l,d表示基本BP神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點的個數(shù),q表示隱含層神經(jīng)元個數(shù),l表示輸出層節(jié)點的個數(shù)。基本BP神經(jīng)網(wǎng)絡(luò)包括信號的前向傳播和誤差的反向傳播2個過程[20,21],即計算誤差輸出時按從輸入到輸出的方向進行,而調(diào)整權(quán)值和閾值則從輸出到輸入的方向進行。BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)通常使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)輸出與期望輸出的均方差最小。由于BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值的隨機性導(dǎo)致了訓(xùn)練次數(shù)增加,收斂速度較慢,且容易陷入局部最優(yōu)。因此,本文將改進蛇優(yōu)化算法與BP神經(jīng)網(wǎng)絡(luò)結(jié)合起來,利用蛇優(yōu)化算法全局搜索性能強的優(yōu)點來優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值。 以基于混合策略改進的蛇優(yōu)化SSO算法獲得BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,然后使用BP反向傳播算法訓(xùn)練神經(jīng)網(wǎng)絡(luò),由此所得網(wǎng)絡(luò)稱為基于混合策略改進蛇優(yōu)化算法的神經(jīng)網(wǎng)絡(luò),記為SSO-BP神經(jīng)網(wǎng)絡(luò)。 SSO-BP神經(jīng)網(wǎng)絡(luò)分為2個部分:改進蛇優(yōu)化SSO算法優(yōu)化部分和BP神經(jīng)網(wǎng)絡(luò)部分。 改進蛇優(yōu)化SSO算法優(yōu)化部分負責(zé)產(chǎn)生BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,它的目標(biāo)是最小化期望輸出與預(yù)測輸出的均方差,具體目標(biāo)函數(shù)表達式如下: (23) V=(v11,v12,…,v1q,v21,…,v2q,…,vd1,…,vdq) (24) W=(w11,w12,…,w1l,w21,…,w2l,…,wq1,…,wql) (25) θ=(θ1,θ2,…,θq),δ=(δ1,δ2,…,δl) (26) Bk=g(yk+δk) (k=1,2,…,l) (27) (28) Ac=f(bc+θc) (c=1,2,…,q) (29) (30) 其中,f(x)為隱含層激活函數(shù),g(x)為輸出層激活函數(shù),Bk表示輸出層的輸出,dk表示期望輸出,V和W表示權(quán)值向量,θ和δ表示閾值向量。 BP神經(jīng)網(wǎng)絡(luò)部分是以算法SSO優(yōu)化得到的初始權(quán)值和閾值,利用訓(xùn)練數(shù)據(jù)進行訓(xùn)練,直至滿足精度要求。 本文以紅酒數(shù)據(jù)集和鮑魚數(shù)據(jù)集為例,驗證基于改進蛇優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)SSO-BP的性能。紅酒數(shù)據(jù)集共有178組數(shù)據(jù),每組數(shù)據(jù)由13個紅酒特征與1個紅酒所屬類別組成,紅酒所屬類別是由紅酒的13個特征所決定;鮑魚數(shù)據(jù)集共有4 178組數(shù)據(jù),每組數(shù)據(jù)由8個鮑魚特征和1個鮑魚年齡組成,鮑魚的8個特征決定鮑魚的年齡。以紅酒數(shù)據(jù)集和鮑魚數(shù)據(jù)集中前80%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)分別訓(xùn)練SSO-BP神經(jīng)網(wǎng)絡(luò)、SO-BP神經(jīng)網(wǎng)絡(luò)、GA-BP(Genetic Algorithm-Back Propagation)神經(jīng)網(wǎng)絡(luò)以及基本BP神經(jīng)網(wǎng)絡(luò),剩余數(shù)據(jù)作為測試數(shù)據(jù)測試4種網(wǎng)絡(luò)的性能。4種網(wǎng)絡(luò)的隱含層和輸出層激活函數(shù)均使用Tansig函數(shù)和Purelin函數(shù),算法SSO、SO和GA的種群規(guī)模均為30,迭代最大次數(shù)均為500,GA的交叉概率和變異概率分別為0.4和0.05,BP網(wǎng)絡(luò)的最大訓(xùn)練次數(shù)均為200,學(xué)習(xí)率取0.1,訓(xùn)練精度為1E-5。訓(xùn)練完成后,比較4種網(wǎng)絡(luò)對測試數(shù)據(jù)預(yù)測輸出與期望輸出的均方差以驗證各種神經(jīng)網(wǎng)絡(luò)的性能。為避免偶然性,每種神經(jīng)網(wǎng)絡(luò)各自獨立訓(xùn)練20次,并計算每次所得神經(jīng)網(wǎng)絡(luò)對測試數(shù)據(jù)預(yù)測輸出與期望輸出的均方差。取每種神經(jīng)網(wǎng)絡(luò)20次所得均方差的最好值、最差值、平均值及標(biāo)準(zhǔn)差進行比較,結(jié)果如表5和表6所示。 Table 5 Mean square error results of four neural networks for classifying red wine dataset Table 6 Mean square error results of four neural networks for predicting abalone dataset 由表5可知,SSO-BP神經(jīng)網(wǎng)絡(luò)對紅酒進行分類的準(zhǔn)確性和穩(wěn)定性均比SO-BP神經(jīng)網(wǎng)絡(luò)、GA-BP神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)高。表6結(jié)果顯示,用SSO-BP神經(jīng)網(wǎng)絡(luò)和GA-BP神經(jīng)網(wǎng)絡(luò)根據(jù)鮑魚特征對鮑魚年齡預(yù)測的準(zhǔn)確性要比用SO-BP神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)預(yù)測的準(zhǔn)確性高。綜上,相比于對比的3種神經(jīng)網(wǎng)絡(luò),基于改進蛇優(yōu)化算法的BP神經(jīng)網(wǎng)絡(luò)SSO-BP具有更好的預(yù)測準(zhǔn)確性和穩(wěn)定性。 針對基本蛇優(yōu)化算法容易過早收斂和陷入局部最優(yōu)等不足,本文將維度選擇策略、選擇交配策略和重新分組策略引入基本蛇優(yōu)化算法中得到了基于混合策略改進的蛇優(yōu)化SSO算法。將維度選擇策略引入基本蛇優(yōu)化算法的戰(zhàn)斗或交配階段,從而有效避免算法迭代后期出現(xiàn)個體位置停滯現(xiàn)象。選擇交配策略加強了迭代后期算法的探索能力,可以有效避免算法陷入局部最優(yōu)。重新分組策略增加了種群多樣性,提高了算法的尋優(yōu)能力。30個標(biāo)準(zhǔn)測試問題的數(shù)值實驗結(jié)果表明,與基本蛇優(yōu)化SO算法及其他對比算法相比,基于混合策略改進的蛇優(yōu)化SSO算法所得目標(biāo)函數(shù)值與其理論最優(yōu)值相差最小;相比基本蛇優(yōu)化SO算法,SSO算法在求解高維無約束優(yōu)化問題更具優(yōu)勢。統(tǒng)計學(xué)檢驗的結(jié)果表明,SSO算法求解大部分標(biāo)準(zhǔn)測試問題所得目標(biāo)函數(shù)值明顯好于SO算法所得的相應(yīng)結(jié)果。仿真實驗表明,相比其他3種網(wǎng)絡(luò),基于改進蛇優(yōu)化算法的BP神經(jīng)網(wǎng)絡(luò)在分類紅酒數(shù)據(jù)集和預(yù)測鮑魚年齡時準(zhǔn)確性和穩(wěn)定性更高。但是,對于一些復(fù)雜優(yōu)化問題,基于混合策略改進的蛇優(yōu)化SSO算法求解所得目標(biāo)函數(shù)值與理論最優(yōu)值相差還是很大,未來需要進一步提高。3 基于混合策略改進的蛇優(yōu)化算法
3.1 維度選擇策略
3.2 選擇交配策略
3.3 重新分組策略
3.4 改進蛇優(yōu)化算法的迭代步驟
4 數(shù)值實驗
4.1 標(biāo)準(zhǔn)測試問題和數(shù)值結(jié)果對比
4.2 伸縮性檢驗
4.3 Wilcoxon秩和非參數(shù)檢驗
5 基于改進蛇優(yōu)化算法的BP神經(jīng)網(wǎng)絡(luò)
5.1 基本BP神經(jīng)網(wǎng)絡(luò)
5.2 基于改進蛇優(yōu)化算法的BP神經(jīng)網(wǎng)絡(luò)
5.3 實驗結(jié)果與分析
6 結(jié)束語