具有自適應(yīng)邊界與最優(yōu)引導(dǎo)的萊維飛行蟻獅優(yōu)化算法
摘要:針對蟻獅算法存在探索與開發(fā)能力不平衡的缺點,提出了具有自適應(yīng)邊界與最優(yōu)引導(dǎo)的萊維飛行改進算法.首先蟻獅調(diào)整邊界范圍,螞蟻做萊維飛行,以此平衡探索與開發(fā)能力;其次較差蟻獅做高斯變異,并通過自適應(yīng)最優(yōu)引導(dǎo)方程,提高收斂速度和全局搜索能力.
1.蟻獅優(yōu)化算法
基礎(chǔ)蟻獅優(yōu)化算法的具體原理參考,我的博客:https://blog.csdn.net/u011835903/article/details/107726004
2. 改進蟻獅優(yōu)化算法
2.1 螞蟻萊維飛行策略
萊維飛行 (Levy Flight) 是一種特殊的隨機游走 策略, 大量研究發(fā)現(xiàn)許多生物群體的悹食方式都可 以用萊維飛行進行有效描述. 在游走過程中, 萊維飛行伴隨著頻繁的短距離游走和偶爾長距離游走, 因 此有效均衡了算法局部開發(fā)與全局探索能力 .
萊維飛行的隨機步長服從萊維分布, 其簡化形 式為:
L
(
s
)
~
∣
s
∣
?
1
?
β
0
<
β
<
2
(9)
L_{(s)} \sim|s|^{-1-\beta} \quad 0<\beta<2 \tag{9}
L(s)?~∣s∣?1?β0<β<2(9)
式中,
s
s
s 是隨機步長. 由于萊維飛行非常復(fù)雜, 本文采用 Mantegna提出的算法計算, 其方程如下:
s
=
μ
∣
u
∣
1
β
s=\frac{\mu}{|u|^{\frac{1}{\beta}}}
s=∣u∣β1?μ?
式中,
μ
、
v
\mu 、 v
μ、v 服從正態(tài)分布:
{
μ
~
N
(
0
,
σ
μ
μ
2
)
v
~
N
(
0
,
σ
v
2
)
{
σ
μ
=
(
Γ
(
1
+
β
)
×
sin
?
π
β
2
Γ
(
1
+
β
2
)
×
β
×
2
(
β
?
1
)
/
2
)
1
β
σ
v
=
1
\begin{aligned} &\left\{\begin{array}{l} \mu \sim N\left(0, \sigma_{\mu \mu}{ }^{2}\right) \\ v \sim N\left(0, \sigma_{v}{ }^{2}\right) \end{array}\right. \\ &\left\{\begin{array}{c} \sigma_{\mu}=\left(\frac{\Gamma(1+\beta) \times \sin \frac{\pi \beta}{2}}{\Gamma\left(\frac{1+\beta}{2}\right) \times \beta \times 2^{(\beta-1) / 2}}\right)^{\frac{1}{\beta}} \\ \sigma_{v}=1 \end{array}\right. \end{aligned}
?{μ~N(0,σμμ?2)v~N(0,σv?2)??
?
??σμ?=(Γ(21+β?)×β×2(β?1)/2Γ(1+β)×sin2πβ??)β1?σv?=1??
式中,
Γ
\Gamma
Γ 為積分運算;
β
\beta
β 通常取值為
1.5
1.5
1.5, 則
σ
μ
=
\sigma_{\mu}=
σμ?=
0.6966
0.6966
0.6966, 隨機步長
S
S
S 的計算變得更加簡便.
2.2 螞蟻自適應(yīng)游走邊界策略
由式 (6) 可知, 螞蟻游走的邊界隨迭代次數(shù)增加 而縮小, 但同一次迭代中, 所有螞蟻的游走邊界相 同, 這不能反映出所圍繞的蟻獅能力大小的差別, 也 不利千均衡算法的探索與開發(fā)能力泹. 對此, 本文提 出自適應(yīng)邊界調(diào)整策略, 其方程如下:
I
=
μ
(
m
)
?
1
0
w
?
t
T
μ
(
m
)
=
0.5
+
1
1
+
exp
?
(
2
m
?
M
M
α
)
\begin{aligned} &I=\mu(m) \cdot 10^{w} \cdot \frac{t}{T} \\ &\mu(m)=0.5+\frac{1}{1+\exp \left(\frac{2 m-M}{M} \alpha\right)} \end{aligned}
?I=μ(m)?10w?Tt?μ(m)=0.5+1+exp(M2m?M?α)1??
式中,
m
m
m 是蟻獅按適應(yīng)度由小到大排列的元素下標;
M
M
M 是蟻獅數(shù)量;
α
\alpha
α 調(diào)整變化速率. 由式 (14) 可知適應(yīng) 度最差的蟻獅其
m
=
1
,
μ
(
m
)
≈
1.5
m=1, \mu(m) \approx 1.5
m=1,μ(m)≈1.5, 邊界收縮比例
I
I
I 增大, 螞蟻游走邊界減小、符合較差蟻獅應(yīng)該縮小 陷阱, 提高局部開發(fā)能力, 快速找到局部最優(yōu)的原 理. 而適應(yīng)度最好的蟻獅其
m
=
M
,
μ
(
m
)
≈
0.5
,
I
m=M, \mu(m) \approx 0.5, I
m=M,μ(m)≈0.5,I 減小,螞蟻游走邊界增大. 符合較好蟻獅應(yīng)該擴大陷 阱, 提高全局探索能力, 以此跳出局部最優(yōu)的原理.
2.3 蟻獅自適應(yīng)最優(yōu)引導(dǎo)策略
標準 ALO 算法為平衡探索與開發(fā)能力, 采用 式 (7)更新螞蟻位置, 使蚊獅向精英蟻獅靠近, 該方 程雖然在一定程度上提高了算法的開發(fā)能力, 但并 沒有充分考慮 ALO 算法在迭代初期需要更強的探 索能力而在迭代后期需要更強的開發(fā)能力這一問 題. 對此, 本文在文獻 [ 9 ] [9] [9] 研究人工蜂群算法時提出 的自適應(yīng)思想基礎(chǔ)上, 提出了自適應(yīng)精英蟻獅引導(dǎo) 方程:
A n t j t = σ ( t ) R A t + ( 1 ? σ ( t ) ) R E t \mathrm{Ant}_{j}^{t}=\sigma(t) R_{A}^{t}+(1-\sigma(t)) R_{E}^{t} Antjt?=σ(t)RAt?+(1?σ(t))REt?
σ ( t ) = 1 ? rand ? ( 1 ? t / T ) 2 \quad \sigma(t)=1-\operatorname{rand}^{(1-t / T)^{2}} σ(t)=1?rand(1?t/T)2
式中, A n t j 、 R A t 、 R E t A_{n t}^{j} 、 R_{A}^{t} 、 R_{E}^{t} Antj?、RAt?、REt? 同式 (7); σ ( t ) \sigma(t) σ(t) 為自適應(yīng)系數(shù); t t t 為 當(dāng)前迭代次數(shù); T T T 為最大迭代次數(shù). 由式 (16) 可知, 在迭代初期, σ ( t ) ≈ 1 \sigma(t) \approx 1 σ(t)≈1, 則式 (15) 以圍繞選定蟻獅游 走為主, 能夠保證前期更強的探索能力, 提高算法全 局搜索能力, 避免陷入局部最優(yōu); 隨著迭代次數(shù)增 加, σ ( t ) → 0 \sigma(t) \rightarrow 0 σ(t)→0, 則式 (15) 以圍繞精英蟻獅游走為主, 保證算法后期對最優(yōu)區(qū)域進行精細化開發(fā), 從而提 高算法的收斂速度和精度. 通過上述改進, 螞蟻能夠 自適應(yīng)地選擇兩種不同的游走方式, 有效地均衡并 充分發(fā)揮了算法的探索與開發(fā)能力.
2.4蟻獅主動高斯變異策略
由式 (8) 可知, 只有螞蚑游走后的適應(yīng)度大于其 圍繞的蟻獅, 該蟻獅才會更新到適應(yīng)度更高的位置, 否則位置不變. 也就是蟻獅種群中會存在適應(yīng)度較 差的個體, 且圍繞其游走的螞蟻沒有找到更優(yōu)的位 置, 意味著該蟻獅很有可能陷入局部最優(yōu). 如果保持 該蟻獅位置不變, 勢必會繼續(xù)吸引螞蟻開發(fā)該區(qū)域, 導(dǎo)致一定程度上弱化種群的多樣性和尋優(yōu)能力. 對 此, 在文獻 [10]提出變異策略能有效提高種群多樣 性的基礎(chǔ)上, 為了增強種群的尋優(yōu)能力, 本文提出了 最優(yōu)引導(dǎo)的主動高斯變異策略, 其方程如下:
X
i
t
+
1
=
X
i
t
+
X
E
t
2
+
N
(
0
,
1
)
(
X
E
t
?
X
i
t
2
)
\left.X_{i}^{t+1}=\frac{X_{i}^{t}+X_{E}^{t}}{2}+N_{(0,1}\right)\left(\frac{X_{E}^{t}-X_{i}^{t}}{2}\right)
Xit+1?=2Xit?+XEt??+N(0,1?)(2XEt??Xit??)
式中,
X
E
t
X_{E}^{t}
XEt? 是精英蟻獅的位置;
N
(
0
,
1
)
N(0,1)
N(0,1) 是服從標準高 斯分布的隨機函數(shù). 由式 (17) 可知, 變異后的蟻獅位置以
(
X
i
t
+
X
E
t
)
/
2
\left(X_{i}^{t}+X_{E}^{t}\right) / 2
(Xit?+XEt?)/2 為中心, 在
X
i
t
X_{i}^{t}
Xit? 和
X
E
t
X_{E}^{t}
XEt? 之間隨機產(chǎn) 生, 達到較差蟻獅向精英蟻獅學(xué)習(xí)的目的, 從而提高 了算法的收斂速度和跳出局部最優(yōu)的能力.
該策略對
M
M
M 個蟻獅按照適應(yīng)度大小排序, 從中 按比例
β
\beta
β 選取適應(yīng)度較差的
(
β
?
M
)
(\beta \cdot M)
(β?M) 個蟻獅, 對這部 分蟻獅中位置沒有被動更新的個體, 根據(jù)式 (17) 進 行主動變異. 最后, 比較蟻獅變異前后的適應(yīng)度, 選 擇其中最優(yōu)的蟻獅位置作為下一代蟻獅.
自適應(yīng)邊界與最優(yōu)引導(dǎo)的萊維飛行ALO算法偽代碼步驟如下:
根據(jù)式 (1)初始化
N
N
N 個螞蟻和
M
M
M 個蟻獅在
D
\mathrm{D}
D 維空間的位置 計算其適應(yīng)度并保存最優(yōu)蚑獅的位置
while
t
?
T
t \leqslant T
t?T
for 每只螞蟻
根據(jù)輪盤賭選定一個蚑獅
根據(jù)式 (5) (13) 計算游走邊界
根據(jù)式 (10) (4) 創(chuàng)建隨機游?并轉(zhuǎn)換
根據(jù)式 (15) 更新種蟻的位置
end for
計算更新后所有螞蟻的適應(yīng)度
根據(jù)式
(
8
)
(8)
(8) 更新蟻獅的位置
更新最優(yōu)蟻獅的位置
根據(jù)式(17) 對較差蟻獅進行變異
t
=
t
+
1
t=t+1
t=t+1
end while
return最優(yōu)蟻獅的位置觀其適應(yīng)度
3.實驗結(jié)果
文章來源:http://www.zghlxwxcb.cn/news/detail-430227.html
4.參考文獻
[1]王若安,周越文,韓博,李劍峰,劉強.具有自適應(yīng)邊界與最優(yōu)引導(dǎo)的萊維飛行蟻獅優(yōu)化算法[J].微電子學(xué)與計算機,2018,35(09):20-25+31.文章來源地址http://www.zghlxwxcb.cn/news/detail-430227.html
5.Matlab代碼
6.Python代碼
到了這里,關(guān)于具有自適應(yīng)邊界與最優(yōu)引導(dǎo)的萊維飛行蟻獅優(yōu)化算法-附代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!