含边界变异的粒子群优化算法

标准PSO中,当某个粒子在搜索过程中飞出可行域时,通常的处理方式是使该粒子的位置处于边界上,即采用策略:
where (X > Xmax) X = Xmax
where (X < Xmin) X = Xmin

这样做的缺点是,如果边界附近存在着局部最优,很容易使粒子陷入局部最优点,从而产生停滞。另外,这还会多个粒子在多个维度上都向边界聚焦,经过若干次迭代后,这些向边界聚焦的粒子的行为(轨迹)将不可避免地趋于相同,从而降低整个粒子群的效率。

同样标准PSO算法中对速度的处理也存在这样的问题。

因此本算法对飞出可行域的粒子改为如下新的边界变异策略:
where (X > Xmax) X = Xmax – c*rand()*(Xmax-Xmin)
where (X < Xmin) X = Xmin + c*rand()*(Xmax-Xmin)

同样对速度V的处理如下:
where (V > Vmax) V = Vmax – 2*rand()*(Vmax-Vmin)
where (V < Vmin) V = Vmin + 2*rand()*(Vmax-Vmin)

其中rand()为(0,1)上的随机数,

c为[0.01,0.5]间的常数,最佳的c依不同类型的问题有不同的值。

经过采用这种边界变异的处理策略后,可以确保粒子在可行域内搜索,克服了标准PSO算法的易陷于边界上的缺点。

当然这种边界变异处理策略也适用于其它的智能算法



前一篇:混合蛙跳算法

后一篇:细菌觅食算法

发表评论

You must be logged in to post a comment.