畢孝儒
(四川外國語大學重慶南方翻譯學院,重慶401120)
正弦余弦算法(Sine Cosine Algorithm,SCA)[1]是澳大利亞學者Mirjalili 于2016 年提出的一種新型群體智能優化算法。SCA 算法原理簡單易實現,僅使用正弦余弦函數取值在[-1,1]之間的性質,設計種群個體位置更新數學公式,通過多次迭代達到搜索最優解的目的。實驗已經證明SCA 算法的搜索精度和收斂速度均優于PSO 算法、FA 算法和GSA 算法等。然而,和其他智能優化算法類似,SCA 算法仍然存在收斂精度低、易陷入局部最優解的不足。鑒于此,許多學者提出了不同的改進策略,Elaziz 等人[2]將反向學習策略引入SCA算法,生成當前個體反向解,在正向與反向空間同時搜索,提高了算法收斂精度;Hathiram 等人[3]結合差分演化算法中的變異、交叉算子,提出了增強性正弦余弦算法,仿真實驗結果顯示,該算法較基本SCA 算法、PSO算法具有更強的全局尋優能力;Wen Long 等人[4]采用非線性收斂因子平衡SCA 算法的全局探索和局部開采能力,并引入慣性權重對個體位置更新公式進行修正,有效地提升了SCA 算法性能;Shubham 等人[5]在位置更新公式中引入自我學習部分,并采用動態因子對其自適應調正,明顯提高了SCA 算法搜索精度。曲良東等人[6]對SCA 算法進行理論分析,提出了一種簡化的正弦余弦算法,仿真結果表明該算法搜索效率明顯高于SCA 算法。陳聰等人[7]將量子計算引入正弦余弦算法,利用量子比特對位置進行編碼、量子旋轉門對個體狀態進行更新、量子非門實現變異操作,仿真實驗驗證了算法的有效性。劉勇等人[8]提出了一種轉換參數非線性遞減的正弦余弦算法,分別以拋物線函數和指數函數控制參數的變化,實驗結果表明指數函數對參數的動態調整,較好地平衡了算法得全局勘探和局部開發能力。
對于SCA 算法求解非線性優化問題中存在的收斂精度低、易陷入局部最優解的不足,提出具有對數遞減權重的混沌正弦余弦算法。采用對數遞減權重描述的非線性權重對當前個體位置進行修正,提高算法收斂精度、加快收斂速度;引入改進Tent 混沌搜索策略增強算法全局尋優能力。仿真實驗結果表明,與PSO 算法、GWO 算法、WOA 以及幾種改進正弦余弦算法相比,該算法具有更高的求解精度、更快的收斂速度。
假設種群規模為N ,搜索空間維度為D,搜索空間每個個體位置代表優化目標問題的可行解,則第i 個個體在D 維空間位置可表示為i=1,2,…,N 。首先,SCA 算法在搜索空間中隨機初始化N 個個體位置,然后,計算依據優化目標函數計算每個個體的適應度值,記錄最優個體位置。在算法每一次迭代中,個體根據式(1)更新位置:


其中,a 為正常數,T 為最大迭代次數。
在(1)式位置更新公式中,由于當前個體位置領域范圍內的可行解未被充分開發和利用,致使SCA 算法存在全局開發能力強而局部探索能力弱的不足。本文設計基于對數遞減權重的非線性權重,以對當前個體位置進行動態修正,實現對最優解鄰域周圍精細搜索和算法快速收斂。基于雙曲正弦函數的非線性權重計算公式如式(3)所示。

上式中,c 為常數因子,t 為當前的迭代次數,Tmax為最大迭代次數。對式(3)兩端對t 求一階導數的結果如式(4)所示。

由上式可知,當t=1,2,…,Tmax時,wt的一階導數小于0,表明wt在區間[1,Tmax]具有單調遞減性。圖1展示了常數因子c 取值為4、5、6、7 時的wt權重變化曲線。

圖1 不同c 取值對應的wt 權重曲線
鑒于上述分析,本文將改進的位置更新公式定義為:

在SCA 算法的迭代后期,由于群體中所有鯨魚個體均向最優個體靠攏,致使群體多樣性損失,此時,若當前最優個體為局部最優解,則SCA 算法易陷入局部最優。Tent 混沌作為一種非線性運動現象,由于其具有非周期性、隨機性、均勻遍歷性、規律性、自相關和互相關性小等特點,因而成為避免仿生優化算法陷入局部最優的有效策略[22],其混沌映射數學表達式定義為:

上式中,參數a ∈(0,1),當混沌變量xi∈(0,1),映射處于混沌狀態。
對上述Tent 混沌表達式分析可得,迭代序列中存在小周期點(0.2,0.4,0.6,0.8),同時存在不穩周期點(0.25,0.5,0.7)。因此,本文將自適應隨機擾動因子μ?((Imax-i)/Imax)?rand(0,1)引入Tent 混沌映射中,以避免Tent 混沌序列在迭代過程中落入小周期點和不穩定周期點。改進的Tent 表達式如下:

上式中,參數u=0.005 是擾動強度,Imax為混沌搜索最大次數。當改進Tent 映射到達小周期或不穩定點時,隨機擾動算子μ?((Imax-i)/Imax)?rand(0,1)對xi序列進行擾動,以使Tent 映射跳出小周期點或不穩定點,再次進入混沌狀態。
基于以上分析,本文給出了最優鯨魚個體自適應隨機擾動Tent 的混沌搜索策略,即以當前最優鯨魚個體位置為基礎,采用改進的Tent 進行混沌搜索,將產生的最優解作為新的全局最優解,以使算法在跌代后期能夠跳出局部最優解。具體步驟如算法2 所示:
算法1 改進Tent 的混沌搜索
輸入:當前最優鯨魚個體位置X*。
輸出:改進Tent 的混沌搜索后最優鯨魚個體位置Xb。
Step1:采用公式(7)將X*每維映射到(0,1),得到歸一化的當前最優解

Step2:將Xi每一維代入改進的Tent 混沌映射公式(8)進 行 混 沌 搜 索,產 生 混 沌 向 量 Xi,其中,i=1,2,…,Imax。
Step3:利用式(8)將Xi+1每一維反映射到原搜索領域內,獲取混沌搜索后原空間位置X';

Step4:利用式(9)計算原空間新的搜索位置X''

Step5:計算適應度值f(X''),若f(X'') 具有對數遞減權重的混沌正弦余弦算法描述如下: 輸入:種群規模N ,維度D,迭代次數最大次數Tmax,迭代次數t=1,改進Tent 的混沌搜索觸發參數w=0。 輸出:種群最優個體位置Xb。 Step1:計算種群中每個個體的適應度值,記錄當前最優個體位置。 Step2:根據式(3)計算wt的值。 Step3:如果r4<0.5,按照式(4.1)更新當前種群個體位置,否則,依據式(4.2)更新當前種群個體位置,計算當前每個種群個體的適應度值,并對其排序,取得當前最優個體位置Xt*。 Step4:若f(Xt*)≥f(Xt-1*),則w=w+1,若w=10 ,轉Step5,否則轉Step6。 Step5:利用算法2 進行改進Tent 混沌搜索,更新當前最優個體位置,轉Step6。 Step6:t=t+1 ,若t 10 個benchmark 測試函數被選擇運用進行仿真實驗,以測試本文提出算法的優化性能,測試函數信息如表1 所示。其中,f1~f6是單峰函數,用于檢驗算法的局部開采能力(收斂速度、求解精度),f7~f10是多峰函數,用于檢驗算法的全局搜索能力。實驗采用算法對各測試函數最優值的平均值和標準差評價優化算法性能。仿真實驗采用Intel Core i5-2410 處理器,2GRAM,實驗環境為MATLAB 7.0。實驗統計結果包括優化結果平均值(Mean)和標準差(Std.Dev)。 表1 benchmark 測試函數 為了驗證本文算法的有效性,將其與PSO、GWO 以及WOA 算法在10 個測試函數上的優化結果進行對比分析,其中,設置種群規模N 均為30,最大迭代次數Tmax均為500。PSO 算法參數設置中,粒子速度Vmax=6 ,wmax=0.9,wmin=0.2,c1=2,c2=2;GWO 算法參數設置中,a ∈[0,2]線性遞減;WOA 算法參數設置中,a ∈[0,2]線性遞減;在30 維、100 維搜索空間進行了實驗,相應實驗結果如表2、表3 所示。圖2-圖6 給出對比算法在30 維搜索空間對5 個測試函數的優化收斂曲線。 從表2、表3 對比實驗結果可以看出,本文提出算法相較于PSO、WOA 算法,對f1~f10函數均具有更高的尋優精度和穩定性。相較于GWO 算法,除了函數f6、f10之外,本文提出算法尋優結果和穩定性均具有明顯優勢。其中,對函數f1-f3、f5、f10均取得了理論最優值,函數f1-f5、f7~f10標準差達到了最小值0。從圖2~9 中對應算法收斂曲線可知,通過采用基于雙雙曲正弦函數非線性權重能夠協調算法局部開采和全局探索能力,提高了算法收斂精度、加快收斂速度,單科目自主學習策略能有效保持種群多樣性,增強算法全局尋優能力。 表2 不同算法尋優結果對比(D=30) 表3 不同算法尋優結果對比(D=100) 圖2 不同算法在Rosenbrock函數上收斂曲線 圖3 不同算法在Ackley函數上收斂曲線 圖4 不同算法在Penalized1 函數上收斂曲線 圖5 不同算法在Penalized1函數上收斂曲線 圖6 不同算法在Griewank函數上收斂曲線 為了進一步驗證本文提出算法的有效性,將本文算法與基本SCA 算法、反向學習正弦余弦算法(OBSCA)[2]和改進正弦余弦算法(ISCA)[4]進行實驗對比。仿真實驗中,種群規模N 均為30,維度為30,最大迭代次數Tmax均為500,改進SCA 算法的參數設置與原文獻相同。表4 給出了本文算法與基本SCA 算法、改進SCA 算法對10 個基本測試函數的尋優結果。 從表4 對比實驗結果可以看出,相較于其他改進算法,本文算法在函數f1~f3、f5、f10上獲得了最小平均值和最小均方差,在函數f4、f7、f8和f9上取得最小均方差,特別是對于單峰病態函數f4,由于其最優點位于平滑、狹長拋物線山谷,一般很難尋優到全局最優點。而從尋優結果可知,4 種算法中只有本文算法在函數f4上取得很好的優化結果。類似地,對于具有多個局部極小值點的復雜多峰函數f9,本文算法收斂精度和穩定性均明顯優于其他3 種算法。上述分析結果說明,本文算法在對單峰、多峰函數尋優時比其他3 種算法具有更好優化性能,進一步說明本文算法改進策略是有效的。 表4 SSLSCA 算法與改進SCA 算法尋優結果對比 針對基本正弦余弦算法求解非線性優化問題中存在的收斂精度低、易陷入局部最優解的不足,提出一種具有對數遞減權重的混沌正弦余弦算法。采用對數遞減權重描述的非線性權重對當前個體位置進行修正,提高算法收斂精度、加快收斂速度;引入改進Tent 混沌搜索策略以有效保持種群多樣性,避免算法陷入局部最優。對10 個基準測試函數仿真實驗,結果表明,與PSO 算法、GWO 算法、WOA 以及幾種改進正余弦算法相比,該算法求解精度、收斂速度得到明顯改進。將改進策略運用到大規模約束優化問題、多目標優化問題中,是下一步將要研究的內容。2.3 改進的正弦余弦算法流程
3 仿真實驗及結果分析
3.1 測試函數及仿真環境

3.2 與PSO、GWO、WOA算法優化性能對比







3.3 與基本SCA、改進SCA算法優化性能對比

4 結語