-
算法简介
粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写为PSO,是近年来由J.Kennedy和R.C.Eberhart等开发的一种新的进化算法(Evolutionary Algorithm - EA)。PSO算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作,它通过追随当前搜索到的最优值来寻找全局最优。 -
算法流程
(1)初始化所有个体(粒子),初始化他们的速度和位置,并且将个体的历史最优解pBest设为当前位置,二群体中最优的个体作为当前的pBest
(2)在每一代进化中,计算各个粒子的适应度函数值
(3)如果该粒子当前的适应度函数值比其历史最优值要好,那么历史最优会被当前位置所替代
(4)如果该粒子的历史最优比全局最优要好,那么全局最优则会被历史最优所替代。
(5)对每个粒子i的第d维的速度和位置进行更新,更新公式如下:
其中参数w称为是PSO的惯性权重,它的取值介于[0,1]区间,一般应用中均采取自适应的取值方法,参数c和c2称为是加速因子;而r1和r2为介于[0,1]之间的随机概率值
(6)如果还没有达到结束条件,转到(2),否则输出gBest并结束
PSO流程图: