基础海鸥优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107535864
海鸥的迁徙行为是海鸥优化算法的一个重要 部分, 其中附加变量
A
\mathrm{A}
A 用来控制海鸥群位置, 避 免海鸥在飞行的过程中发生个体间的碰撞, 不产生 重复的优化值, 附加变量
A
\mathrm{A}
A 对解决优化问题以及 平衡算法有着重要作用。常用的
A
\mathrm{A}
A 的更新方式如 下:
A
(
i
)
=
f
c
−
i
∗
(
f
c
/
m
a
x
g
e
n
)
(11)
A(i)=f c-i^{*}(f c / m a x g e n) \tag{11}
A(i)=fc−i∗(fc/maxgen)(11)
其中,
i
i
i 为当前迭代次数; maxgen 为最大迭代 次数; fc 为频率控制参数, 初始值设置为 2 ; 式 (11) 表示
A
\mathrm{A}
A 的值由 2 线性递减至 0 。记海鸥优化算法为 SOA。
本文提出的非线性递减控制因子的海鸥优化 算法 (I-SOA), 该方法中 A 的值在递减的过程中 呈现一个非线性的变化趋势, 可以更好的改善全局 寻优能力, 每次迭代既能避免海鸥之间的位置冲突, 也可以更好的平衡探索与开发。该策略可以被形式 化描述,如式 (12) 所示:
A
(
t
)
=
f
c
−
f
c
∗
(
2
∗
(
t
/
T
)
exp
(
h
)
−
(
(
t
/
T
)
∧
2
)
)
(12)
\mathrm{A}(\mathrm{t})=\mathrm{fc}-\mathrm{fc}^{*}\left(2^{*}(\mathrm{t} / \mathrm{T}) \exp (\mathrm{h})-\left((\mathrm{t} / \mathrm{T})^{\wedge} 2\right)\right) \tag{12}
A(t)=fc−fc∗(2∗(t/T)exp(h)−((t/T)∧2))(12)
其中,
t
\mathrm{t}
t 为算法当前执行迭代次数,
T
\mathrm{T}
T 是算法 执行的最大迭代次数。
莱维飞行提供了一种随机游走机制来正确控 制局部搜索, 这种机制被用来进一步缓解 SOA 过 早收玫的缺点, 它是由法国数学家 Paul Levy 提出,
Le
(
γ
)
≈
μ
−
1
−
φ
μ
=
D
∣
G
∣
1
/
φ
σ
2
=
{
Γ
(
1
+
φ
)
φ
Γ
(
(
1
+
φ
)
/
2
)
sin
(
π
φ
/
2
)
2
(
1
+
φ
)
/
2
}
2
φ
其中,
0
<
φ
≤
2
,
D
、
G
∼
N
(
0
,
σ
2
)
,
Γ
(
x
)
0<\varphi \leq 2, \mathrm{D} 、 \mathrm{G} \sim \mathrm{N}\left(0, \sigma^{2}\right), \Gamma(\mathrm{x})
0<φ≤2,D、G∼N(0,σ2),Γ(x) 是 Gamma 函数,
μ
\mu
μ 表示步长,
φ
=
2
/
3
\varphi=2 / 3
φ=2/3 。
增加莱维飞行后更新的海鸥群体更新位置算法部分为:
P
→
s
(
i
)
=
(
D
→
s
×
x
×
y
×
z
)
×
Le
(
θ
)
+
P
→
g
s
(
i
)
(16)
\overrightarrow{\mathrm{P}}_{\mathrm{s}}(\mathrm{i})=\left(\overrightarrow{\mathrm{D}}_{\mathrm{s}} \times \mathrm{x} \times \mathrm{y} \times \mathrm{z}\right) \times \operatorname{Le}(\theta)+\overrightarrow{\mathrm{P}}_{\mathrm{gs}}(\mathrm{i}) \tag{16}
Ps(i)=(Ds×x×y×z)×Le(θ)+Pgs(i)(16)
[1]秦维娜,张达敏,尹德鑫,蔡朋宸.一种基于非线性惯性权重的海鸥优化算法[J/OL].小型微型计算机系统:1-8[2021-05-06].http://kns.cnki.net/kcms/detail/21.1106.TP.20210330.1445.028.html.