前言
准备学习qpso,我导最出名的算法,已经成为pso领域的一个标杆
一、 QPSO概念
qpso中文意为量子行为粒子群优化算法
在原先的pso算法中引入了量子动力运动学的概念,取消了原先粒子的速度即移动方向概念,采用了势阱的概念,也就是说粒子下一步的运动和粒子之前的运动不存在任何关系,大大增加了粒子运动的随机性
二、 QPSO简介
1、改进
pso | qpso | |
---|---|---|
参数设定 | 局部学习因子c1、全局学习因子c2、惯性因子w | 创新参数a |
随机性 | 低 | 高 |
pso算法需要设定的参数包括c1、c2、w等,不利于训练优化;同时pso算法粒子缺乏随机性,容易陷入局部最优解;而qpso改进了上述缺点,其中需要设定的参数只有创新参数a,同时通过量子运动大大增加了粒子的随机性
2、流程
3、过程
- 随机初始化粒子的位置 X i X_i Xi和势场 P i P_i Pi
- 是否满足迭代终止条件,是则结束,否则计算当前种群粒子最佳位置的平均值
M
b
e
s
t
M_{best}
Mbest
M b e s t = 1 / n ∑ 1 n p b e s t i M_{best}=1/n∑_1^np_{best_i} Mbest=1/n∑1npbesti - 计算第i个粒子的势场
p i = a ∗ p b e s t i + ( 1 − a ) ∗ g b e s t p_{i}= a*p_{best_i}+ (1 − a)*g_{best} pi=a∗pbesti+(1−a)∗gbest - 使用蒙特卡洛法更新粒子位置
L = 2 a ∗ ∣ m b e s t − x i ∣ L=2a*|mbest-x_i| L=2a∗∣mbest−xi∣
X i = p i ± L / 2 ∗ l n ( 1 / u ) X_{i}=p_{i}±L/2 *ln(1/u) Xi=pi±L/2∗ln(1/u) - 计算粒子位置适应度,如果优于个体最佳位置适应度,则更新粒子最佳位置;如果优于种群最佳位置适应度,则更新种群最佳位置;返回第2步