基础粒子群算法的具体原理参考网络资料
曲线递增(curves increasing)是本文提出的一种基于指数函数图像的控参策略。给定惯性权值
w
m
a
x
w_{max}
wmax,曲线递增公式如下:
w
1
=
w
max
−
w
max
T
max
⋅
t
(
time
)
w
=
e
−
w
1
w1=wmax
w1=wmax−Tmaxwmax⋅t(time )w=e−w1
其中,
w
max
w_{\text {max }}
wmax 为设定的较大惯性权值
(
w
max
≥
1
)
,
t
(
t
i
m
e
)
\left(w_{\text {max }} \geq 1\right), t_{(t i m e)}
(wmax ≥1),t(time) 为当前迭代 的次数, 最大迭代次数为
T
max
T_{\max }
Tmax; 随着迭代次数增加,
w
1
\mathrm{w}_{1}
w1 逐渐 减少,
w
\mathrm{w}
w 逐渐增大。运用上述自适应权值变化公式, 粒子在 前期因权值较小, 具备精细搜索能力, 结合图像可知, 算法 迭代前期
w
1
w_{1}
w1 值在较大范围内的缩减趋势极其缓慢, 保证了粒 子局部搜索的充分性, 后期变化趋势逐渐增大, 对若干局部 解造成一定的扰动效果, 保证了对全局搜索的能力。
w
max
\mathrm{w}_{\max }
wmax 值后期的趋势变化, 其目的不再是常规意义上的确保加快收敛, 变动趋势实际上是相对陡峭,绝对平滑。
在学习因子部分,本文提出一种改进的二阶震荡法,即引入双种群配合提出的曲线递增策略,提高群体的多样性,从而进一步改善算法的全局搜索能力。改进后的公式如下:
v
i
j
(
t
)
=
e
−
(
w
max
−
w
max
T
max
∗
t
)
∗
v
i
j
(
t
)
+
ϕ
1
∗
[
p
i
j
(
t
)
−
(
1
+
μ
1
)
x
i
j
(
t
)
+
μ
1
x
i
j
∗
(
t
)
]
+
ϕ
2
∗
[
p
g
i
(
t
)
−
(
1
+
μ
2
)
x
i
j
(
t
)
+
μ
2
x
i
j
∗
(
t
)
]
x
i
j
∗
(
t
)
=
x
i
j
(
t
)
x
i
j
(
t
)
=
x
i
j
(
t
)
+
v
i
j
(
t
)
vij(t)=e−(wmax−Tmaxwmax∗t)∗vij(t)+ϕ1∗[pij(t)−(1+μ1)xij(t)+μ1xij∗(t)]+ϕ2∗[pgi(t)−(1+μ2)xij(t)+μ2xij∗(t)]xij∗(t)=xij(t)xij(t)=xij(t)+vij(t)
其中,
x
i
j
∗
x_{i j}^{*}
xij∗ 为新种群, 二阶震荡因子
μ
1.2
\mu_{1.2}
μ1.2 的公式为:
μ
1
=
{
(
2
c
1
∗
rand
(
)
−
1
)
∗
rand
(
)
/
c
1
∗
rand
(
)
w
<
2
3
w
max
(
9
)
(
2
c
1
∗
rand
(
)
−
1
)
∗
(
1
+
rand
(
)
)
/
c
1
∗
rand
(
)
w
≥
2
3
w
max
(
10
)
\mu_{1}=\left\{\right.
μ1=⎩
⎨
⎧(2c1∗rand()−1)∗rand()/c1∗rand()(2c1∗rand()−1)∗(1+rand())/c1∗rand()w<32wmaxw≥32wmax(9)(10)
其中,
c
1
、
c
2
c_{1} 、 c_{2}
c1、c2 是人为设定的学习因子,
rand
(
)
\operatorname{rand}()
rand() 为 0-1 之间随机 数,
t
t
t 为当前迭代次数,
T
max
\mathrm{T}_{\max }
Tmax 为迭代最大次数, 改进后的粒子群算法流程如下图所示。
[1]吴凡,洪思,杨冰,胡贤夫.曲线递增策略的自适应粒子群算法研究[J].计算机应用研究,2021,38(06):1653-1656+1661.