粒子群算法( Particle Swarm Optimization, PSO)在应用的过程中主要调整权重,学习因子,才能对解决的问题有所针对性。下面有6种调整权重和学习因子:
一、调整粒子群算法的权重
1.线性递减权重
2.自适应调整权重
3.随机权重
二、调整粒子群算法的学习因子
1.收缩因子
2.同步学习因子
3.异步学习因子
目标函数如下:
一、调整粒子群算法的权重
1.线性递减权重
Shi.Y认为较大的权重惯性有利于全局搜索,较小的权重有利于局部搜索,他提出的线性递减权重刚好满足这样的需求。
一般而言,k为当前迭代次数,T为最大迭代次数。
图1 线性递减权重的迭代优化过程
2.自适应调整权重
自适应权重:权重随着粒子适应度值的改变而改变。
图2 自适应调整权重的迭代过程
3.随机权重
当粒子在起始位置接近最优点时,可能产生较小权重。
图3 随机权重的迭代过程
二、调整粒子群算法的学习因子
1.收缩因子
c=c1+c2,c>4,一般c=4.1.
图4 收缩因子的迭代过程`
2.同步学习因子
图 5 同步学习因子的迭代过程
3.异步学习因子
图 6 异步学习因子
Matlab粒子群算法(PSO)优化程序的优点在于参数数量比较少,调整权重和改进学习因子都是比较好进行的。
注:函数来源于https://www.51zxw.net/show.aspx?id=71576&cid=641。