1.摘要
粒子群优化算法(PSO)是一种高效的元启发式算法,特别适合解决多样的优化问题。然而,PSO面临着收敛速度慢和易陷入局部最优的问题,这在处理高维问题时尤为明显。为了解决这些问题,本文引入了一种名为速度暂停(velocity pausing)的改进策略,创建了VPPSO变体。VPPSO通过在迭代过程中让粒子保持与前一迭代相同的速度,有效增强了算法在探索与利用之间的平衡。
2.算法原理
3.速度暂停粒子群算法
速度暂停粒子群算法(VPPSO)中,粒子不必在每次迭代时更新其速度,而是可以选择保持前一迭代的速度,从而实现三种速度模式:更快、更慢和恒定。这一机制的引入,不仅增加了运动的多样性,而且有助于更好地平衡探索与利用的关系,避免了传统PSO中常见的过早收敛问题。速度更新:
V
i
(
t
+
1
)
=
{
V
i
(
t
)
if
r
a
n
d
<
α
w
V
i
(
t
)
Otherwise
+
c
1
r
3
(
P
b
e
s
t
i
(
t
)
−
X
i
(
t
)
)
+
c
2
r
4
(
g
b
e
s
t
(
t
)
−
X
i
(
t
)
)
\left.V_i(t+1)=\left\{\begin{array}{ll}V_i(t)&\text{if}rand<\alpha\\wV_i(t)&\text{Otherwise}\\+c_1r_3(Pbest_i(t)-X_i(t))\\+c_2r_4(gbest(t)-X_i(t))\end{array}\right.\right.
Vi(t+1)=⎩
⎨
⎧Vi(t)wVi(t)+c1r3(Pbesti(t)−Xi(t))+c2r4(gbest(t)−Xi(t))ifrand<αOtherwise
VPPSO通过引入速度暂停参数 a 来控制粒子的速度更新。当 a 的值大于 1 时,粒子将按照传PSO 算法的方式更新速度。如果 a 值过低,粒子将被迫以恒定速度移动,限制了速度的变化范围:
V
i
(
t
+
1
)
=
V
i
(
t
)
r
5
a
(
t
)
+
c
1
r
6
(
P
b
e
s
t
i
(
t
)
−
X
i
(
t
)
)
+
c
2
r
7
(
g
b
e
s
t
(
t
)
−
X
i
(
t
)
)
V_{i}(t+1)=V_{i}(t)^{r_{5}a(t)}+c_{1}r_{6}(Pbest_{i}(t)-X_{i}(t))\\+c_{2}r_{7}(gbest(t)-X_{i}(t))
Vi(t+1)=Vi(t)r5a(t)+c1r6(Pbesti(t)−Xi(t))+c2r7(gbest(t)−Xi(t))
其中,参数表述为:
a
(
t
)
=
exp
−
(
b
t
T
)
b
a(t)=\exp^{-\left(\frac{bt}{T}\right)^b}
a(t)=exp−(Tbt)b
为了提升算法性能,避免过早收敛并保持种群多样性,VPPSO将种群分为两个不同的群体。第一群体包括 N1 个粒子,这些粒子在粒子群算法(PSO)框架下更新其速度和位置,但引入了两个关键的修改:一是调整速度方程的第一项,二是采用了速度暂停概念,以增强粒子在探索和开发之间的平衡。第二群体则包括 N2 个粒子,这些粒子完全依赖全局最优解(gbest)来更新位置,不涉及速度的更新。通过这种双群体策略,算法能够在保持探索多样性的同时,有效地减少因粒子过早聚集而导致的局部最优陷阱:
X
i
(
t
+
1
)
=
{
g
b
e
s
t
+
a
(
t
)
r
8
∣
g
b
e
s
t
∣
a
(
t
)
if
r
9
<
0.5
g
b
e
s
t
−
a
(
t
)
r
10
∣
g
b
e
s
t
∣
a
(
t
)
Otherwise
X_i(t+1)=\begin{cases} gbest+a(t)r_8|gbest|^{a(t)}&\text{if} r_9<0.5\\ gbest-a(t)r_{10}|gbest|^{a(t)}&\text{Otherwise}\end{cases}
Xi(t+1)={gbest+a(t)r8∣gbest∣a(t)gbest−a(t)r10∣gbest∣a(t)ifr9<0.5Otherwise
流程图
伪代码
3.结果展示
CEC2005
4.参考文献
[1] Shami T M, Mirjalili S, Al-Eryani Y, et al. Velocity pausing particle swarm optimization: A novel variant for global optimization[J]. Neural Computing and Applications, 2023, 35(12): 9193-9223.