融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法-附代码
融合改進 Logistics 混沌和正弦余弦算子的自適應 t 分布海鷗算法
文章目錄
- 融合改進 Logistics 混沌和正弦余弦算子的自適應 t 分布海鷗算法
- 1.海鷗優化算法
- 2. 改進海鷗優化算法
- 2.1 改進型 Logistics 混沌映射的種群初始化
- 2.2 參數 A 改進
- 2.3 正弦余弦算子
- 2.4 自適應 t 分布變異策略
- 3.實驗結果
- 4.參考文獻
- 5.Matlab代碼
- 6.python代碼
摘要:針對基本海鷗算法存在的缺陷,提出一種融合改進Logistics混沌和正弦余弦算子的自適應t分布海鷗算法(ISOA)。首先,采用改進Logistics混沌映射初始化種群,使海鷗更加均勻地分布于初始解空間;其次,在海鷗位置更新方式中引入正弦余弦算子來協調算法的局部搜索和全局搜索,同時加入改進的參數A加快算法收斂速度;然后,引入自適應t分布變異策略,在最優解位置進行擾動變異產生新解,增強算法跳出局部最優的能力;
1.海鷗優化算法
基礎海鷗優化算法的具體原理參考,我的博客:https://blog.csdn.net/u011835903/article/details/107535864
2. 改進海鷗優化算法
2.1 改進型 Logistics 混沌映射的種群初始化
在海鷗算法中, 海鷗初始種群由隨機生成。由于混沌具 有遍歷性和隨機性的特點, 可以使用混沌映射進行種群初始 化。與隨機生成的種群相比較, 混沌映射生成的初始種群具 有更好的多樣性, 初始解更均勻地分布在搜索空間, 可以有 效避免算法早熟和陷入局部最值, 從而提高算法的收斂速度 與精度。
Logistics 混沌映射作為最經典的混沌映射方式之一, 具 有隨機性、遍歷性、強發散性等特點而被廣泛應用于群智能 算法的種群初始化。Logistics 混沌映射函數如公式(9)所示:
xn+1=4xn(1?xn)xn∈(0,1),n=1,2,?(9)x_{n+1}=4 x_n\left(1-x_n\right) \quad x_n \in(0,1), n=1,2, \cdots \tag{9} xn+1?=4xn?(1?xn?)xn?∈(0,1),n=1,2,?(9)
Logistics 混沌映射被廣泛應用于改進群智能優化算法, 但是其仍存有分布不夠均勻等缺陷。因此本文擬采用一種改進型 Logistics 映射(ILM)來初始化海鷗種群。設定目標優 化函數為:
min?f(x1,x2,x3,?xn),ai<xi<bi(10)\min f\left(x_1, x_2, x_3, \cdots x_n\right), a_i<x_i<b_i \tag{10} minf(x1?,x2?,x3?,?xn?),ai?<xi?<bi?(10)
通過公式(11)得到均勻化級聯混沌序列 [yn]:\left[\mathrm{y}_{\mathrm{n}}\right]:[yn?]:
{xn+1′=4xn′(1?xn′)yn′=1πarcsin?(2xn+1′?1)?12xn+1=4yn′(1?yn′)yn=1πarcsin?(2xn+1?1)?12(11)\left\{\begin{array}{c} x_{n+1}^{\prime}=4 x_n^{\prime}\left(1-x_n^{\prime}\right) \\ y_n^{\prime}=\frac{1}{\pi} \arcsin \left(2 x_{n+1}^{\prime}-1\right)-\frac{1}{2} \\ x_{n+1}=4 y_n^{\prime}\left(1-y_n^{\prime}\right) \\ y_n=\frac{1}{\pi} \arcsin \left(2 x_{n+1}-1\right)-\frac{1}{2} \end{array}\right. \tag{11} ????xn+1′?=4xn′?(1?xn′?)yn′?=π1?arcsin(2xn+1′??1)?21?xn+1?=4yn′?(1?yn′?)yn?=π1?arcsin(2xn+1??1)?21??(11)
海鷗的初始位置由 [yn]\left[y_n\right][yn?] 經過式(12)進行線性變換得到。
Zi=ai+(bi?ai)xn(12)Z_i=a_i+\left(b_i-a_i\right) x_n \tag{12} Zi?=ai?+(bi??ai?)xn?(12)
其中, aia_iai? 和 bib_ibi? 表示優化變量區間的最小值和最大值。
2.2 參數 A 改進
海鷗算法通過引入 fcf_cfc? 控制變量 A\mathrm{A}A 的頻率, 使變量 A\mathrm{A}A 的 值隨迭代從 2 線性降低至 0,fc0, f_c0,fc? 通常設置為 2 。但是算法收 斂過程是非線性的, 因此線性收斂的參數 A\mathrm{A}A 并不能完全適 用于 SOA 的搜索過程。因此本文引入一種新型非線性遞減 的改進參數 A\mathrm{A}A, 為提高算法的全局搜索能力引入符合 beta 分布的隨機調整數對 A\mathrm{A}A 進行局部擾動, 避免算法陷入局部 最優 [17]{ }^{[17]}[17] 。新型非線性遞減的參數 A\mathrm{A}A 如公式(13)所示:
A=(Ainitial??Afinal?)÷(1+e(20t/Tmax?)?10)+σ?betarnd(p,q)(13)\left.\mathrm{A}=\left(A_{\text {initial }}-A_{\text {final }}\right) \div\left(1+e^{\left(20 t / T_{\max }\right.}\right)-10\right)+\sigma *betarnd(p, q) \tag{13} A=(Ainitial???Afinal??)÷(1+e(20t/Tmax?)?10)+σ?betarnd(p,q)(13)
其中 Ainitial?A_{\text {initial }}Ainitial?? 表示 A\mathrm{A}A 的初始值, Afinal?A_{\text {final }}Afinal?? 表示終止值, t\mathrm{t}t 為當前迭代次數, Tmax?T_{\max }Tmax? 為最大迭代次數。 σ\sigmaσ 為收斂調整因 子, 經多次實驗發現 σ=0.1\sigma=0.1σ=0.1 時效果最好, betarnd為 MATLAB 中的隨機數生成器, 可以生成符合 beta 分布的隨機數。
2.3 正弦余弦算子
為了促進最優海鷗個體信息在種群中的傳遞,提高海鷗算法的性能,本文引入正弦余弦算子用以改變海鷗算法的迭代方式,即在迭代過程中改變原有迭代方式,按照相同的概率對海鷗個體進行正弦或者余弦操作, 改進迭代方式如公式 (14)所示:
Pst+1={r1sin?r2?Dst?XYZ+Pbstr3>0.5r1cos?r2?Dst?XYZ+Pbstr3≤0.5(14)P_s^{t+1}= \begin{cases}r_1 \sin r_2 \cdot D_s^t \cdot X Y Z+P_{b s}^t & r_3>0.5 \\ r_1 \cos r_2 \cdot D_s^t \cdot X Y Z+P_{b s}^t & r_3 \leq 0.5\end{cases} \tag{14} Pst+1?={r1?sinr2??Dst??XYZ+Pbst?r1?cosr2??Dst??XYZ+Pbst??r3?>0.5r3?≤0.5?(14)
其中 r1=a?t×(a/Tmax?),r1r_1=\mathrm{a}-\mathrm{t} \times\left(\mathrm{a} / \mathrm{T}_{\max }\right), r_1r1?=a?t×(a/Tmax?),r1? 的值取決于常數 a\mathrm{a}a, 本文 a\mathrm{a}a 的取值為 2 。較大的 r1r_1r1? 值可以提高算法的全局搜索能力, 而較小的 r1r_1r1? 值則有利于算法的局部開發, 同時隨著迭代次數 的增加 r1r_1r1? 的取值逐漸變小, 對算法的搜索和開發能力進行了 平衡。 r2r_2r2? 在區間 [0,2π][0,2 \pi][0,2π] 之間隨機取值, 定義了當前解接近 或者遠離最優解的距離; r3r_3r3? 是 [0,1][0,1][0,1] 內的隨機數, 并以相同 的概率切換正弦和余弦算子。
引入正弦余弦算子完美契合了海鷗算法的尋優機制, 進 一步平衡算法的全局搜索和局部開發能力。一部分海鷗遵循 新的迭代方式遠離最優解, 擴大了搜索空間, 增加了海鷗種 群的多樣性, 避免原有尋優機制存在的盲點。而另一部分海 鷗以更快的速度接近最優解, 以較少的迭代達到更佳的尋優 效果, 提高了算法的收斂速度。正弦余弦算子的融入, 豐富 了海鷗種群的多樣性, 提高了算法的收斂速度和精度, 極大 提升了算法的性能。
2.4 自適應 t 分布變異策略
在智能優化算法中引入柯西變異和高斯變異已被證實 可以有效提升算法性能。其中柯西變異可以豐富種群多樣 性, 而高斯變異可以使算法獲得良好的局部搜索能力。柯西 分布和高斯分布都是 t\mathrm{t}t 分布的兩種特殊形式, 隨著迭代次數 的增加, 自由度參數 t\mathrm{t}t 的增長, t\mathrm{t}t 分布曲線由開始的符合柯 西分布逐漸接近高斯分布。
在最優解位置附近生成符合 t\mathrm{t}t 分布變異的新解, 可以同 時結合高斯分布和柯西分布的優點。算法迭代初期, 自由度 參數 t 取值較小, 這時候 t\mathrm{t}t 分布主要呈現出柯西分布的特點, 豐富了種群的多樣性, 有效提升算法的全局搜索能力; 在迭 代進行到中后期時, 自由度參數 t\mathrm{t}t 取值較大, t\mathrm{t}t 分布無限接 近高斯分布, 增強的是算法局部開發能力, 提高其收玫精度。 為了在前期豐富種群多樣性的同時, 在后期保留海鷗種群的 精英解, 這里同時引入自適應參數 ω\omegaω 。在迭代前期 ω\omegaω 可以取 較大的值, 利用 t\mathrm{t}t 分布變異產生的新解增加種群多樣性。隨 著迭代次數的增加算法逐漸接近最優解, 自適應參數 ω\omegaω 控 制 t\mathrm{t}t 分布對新解的影響逐步降低, 充分保留了海鷗種群的精 英解。符合 t\mathrm{t}t 分布變異的新解和 ω\omegaω 的表達式如公式(15)和(16) 所示:
Pnews?t=Pbst+ω?TD(t)?Pbst(15)ω=a+(b?a)?T?tT(16)\begin{aligned} P_{\text {news }}^t &=P_{b s}^t+\omega \cdot T D(t) \cdot P_{b s}^t &(15)\\ \omega &=\mathrm{a}+(b-a) \cdot \frac{T-t}{T} &(16) \end{aligned} Pnews?t?ω?=Pbst?+ω?TD(t)?Pbst?=a+(b?a)?TT?t??(15)(16)?
式中 TD(t)T D(t)TD(t) 表示自由度參數為 t\mathrm{t}t 的 t\mathrm{t}t 分布, a=0.1,b=1\mathrm{a}=0.1, \mathrm{~b}=1a=0.1,?b=1, T\mathrm{T}T 為最大迭代次數。
按照一定的概率接受自適應 t\mathrm{t}t 分布變異的新解, 隨機生成一個參數 pe∈[0,1]p e \in[0,1]pe∈[0,1], 新的最優海鷗位置確定如公式(17) 所示:
Pbest?={Pbspe>0.5Pnews?pe≤0.5(17)P_{\text {best }}=\left\{\begin{array}{lc} P_{b s} & p e>0.5 \\ P_{\text {news }} & p e \leq 0.5 \end{array}\right. \tag{17} Pbest??={Pbs?Pnews???pe>0.5pe≤0.5?(17)
這樣算法進行迭代尋優時, 通過概率 pep epe 確定最優解時 會有兩種選擇: 一是繼續按照原算法進行選擇的最優解, 維 持種群多樣性的同時保留了精英解; 二是選擇了自適應 t\mathrm{t}t 分 布變異擾動后產生的新解, 其結合了高斯分布和柯西分布的 優點。
改進海鷗算法(ISOA)的具體執行步驟如下:
步驟 1:海鷗種群根據公式(11)、(12)進行初始化;
步驟 2: 設置算法中的參數 A,B,Tmax?,A\mathrm{A}, \mathrm{B}, \mathrm{T}_{\max }, \mathrm{A}A,B,Tmax?,A 的初始值 Ainitial?A_{\text {initial }}Ainitial?? 和終止值 Afinal?A_{\text {final }}Afinal?? 。設置 u=1,v=1,rd\mathrm{u}=1, \mathrm{v}=1, r_du=1,v=1,rd? 在 [0,1][0,1][0,1] 內隨機 取值, θ\thetaθ 在 [0,2π][0,2 \pi][0,2π] 內隨機取值。其中 A\mathrm{A}A 的表達式如公式 (13);
步驟 3: 計算適應度值 PSP_SPS?, 使用適應度函數計算每只海 鷗的適應度值, 海鷗最優位置為 PbstP_{b s}^tPbst?;
步驟 4:根據公式(1)、(3)、(5)計算海鷗的位 置 DStD_S^tDSt?;
步驟 5:根據公式(6)、(7)、(14)計算海鷗新的 攻擊位置 PSt+1P_S^{t+1}PSt+1?;
步驟 6: 更新最佳海鷗位置和適應值;
步驟 7:根據公式 (15) 對最優位置進行擾動;
步驟 8: 根據公式 (17) 確定最優位置;
步驟 9: 判斷是否達到結束條件, 若是則進行下一步, 否則跳轉步驟(2)。
步驟 10: 程序結束, 輸出最優結果。
3.實驗結果
4.參考文獻
[1]毛清華,王迎港.融合改進Logistics混沌和正弦余弦算子的自適應t分布海鷗算法[J/OL].小型微型計算機系統:1-9[2021-11-16].http://kns.cnki.net/kcms/detail/21.1106.TP.20211019.1549.006.html.
5.Matlab代碼
6.python代碼
總結
以上是生活随笔為你收集整理的融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法-附代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MSP430】基于MSP430G255
- 下一篇: 软件测试 质量管控,软件测试之质量管理入