赞
踩
粒子群优化算法(PSO:Particle swarm optimization) 是一种进化计算技术(evolutionary computation)。源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协作和信息共享来寻找最优解.
PSO的优势:在于简单容易实现并且没有许多参数的调节。目前已被广泛应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。
粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个粒子在搜索空间中单独的搜寻最优解,并将其记为当前个体极值,并将个体极值与整个粒子群里的其他粒子共享,找到最优的那个个体极值作为整个粒子群的当前全局最优解,粒子群中的所有粒子根据自己找到的当前个体极值和整个粒子群共享的当前全局最优解来调整自己的速度和位置。
1)PSO算法首先在可行解空间中初始化一群粒子, 每个粒子都代表极值优化问题的一个潜在最优解, 用位置、 速度和适应度值三项指标表示该粒子特征。
2)粒子在解空间中运动, 通过跟踪个体极值Pbest和群体极值Gbest更新个体位置, 个体极值Pbest是指个体所经历位置中计算得到的适应度值最优位置, 群体极值Gbest是指种群中的所有粒子搜索到的适应度最优位置。
3)粒子每更新一次位置, 就计算一次适应度值, 并且通过比较新粒子的适应度值和个体极值、 群体极值的适应度值更新个体极值Pbest和群体极值Gbest位置。
在每一次迭代过程中, 粒子通过个体极值和群体极值更新自身的速度和位置, 更新公式 如下:
或者为:
关键参数说明:
:惯性权重。其体现的是粒子继承先前的速度的能力,其值为非负,一个较大的惯性权值有利于全局搜索,而一个较小的惯性权值则更利于局部搜索。常规的有静态(惯性权重一直保持不变)和动态两种选择。动态
能获得比固定值更好的寻优结果。
目前采用较多的是线性递减权值(Linearly Decreasing Weight,LDW)策略。
其中,为初始惯性权重,
为迭代至最大次数时的惯性权重,k为当前迭代代数,
为最大迭代代数。
一般来说,惯性权值取值为=0.9、
=0.4时算法性能最好。这样,随着迭代的进行,惯性权重由0.9线性递减至0.4,迭代初期较大的惯性权重使算法保持了较强的全局搜索能力,而迭代后期较小的惯性权重有利于算法进行更精确的局部搜索。
:当前位置。
:粒子的速度,是一个矢量。要注意vi有最大值的限定,当
大于
时,则
:学习因子,通常取值为2.
PSO算法的流程和伪代码
相同点:
不同点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。