PSO算法流程:
1.初始化粒子参数:
粒子群规模、粒子维度、迭代次数、惯性权重、学习因子、迭代步长范围
2.随机初始化每个粒子的(位置,速度):
个体、群体历史最优位置、适应值。
3.迭代:更新个体速度位置,个体最优适应值和位置--再更新群体;更新其他参数;
直到--两次迭代之间适应值最小差值()可接受的满意解/最大迭代次数。
4.速度更新公式
其中,代表粒子自身惯性权重(较大有利于跳出局部最优,较小利于快速收敛找到最优,一般取值范围:(0.4,2),eg:0.9、1.2、1.5、1.8),d是粒子维度(自变量个数),c代表学习因子(一般取值(0,4)eg:1.6,1.8),r代表[0,1]的随机数,增加搜索随机性。
线性变化策略:随着迭代次数的增加,惯性权重ω不断减小,从而使得粒子群算法在初期具有较强的全局收敛能力,在后期具有较强的局部收敛能力。