粒子群算法
算法的介绍
粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写为 PSO, 是近年来由J. Kennedy和R. C. Eberhart等 开发的一种新的进化算法(Evolutionary Algorithm - EA)。PSO 算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的"交叉"(Crossover) 和"变异"(Mutation) 操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。粒子群算法是一种并行算法。(源自360百科)
算法的基本原理
粒子群算法通过对测试函数空间进行随机放置粒子
算法的基本流程
1、初始化
将速度进行局限,来保证其有效性。利用随机函数随机初始化速度和位置。根据维度等有关空间大小来设置群体规模。
2、找到初始个体极值与全局最优解
pbest为每个粒子找到的历史上最优的位置信息,并从这些个体历史最优解中找到一个全局最优解gbest,并与历史最优解比较,选出最佳的作为当前的历史最优解。
3、寻找并更新速度和位置从而获取全局最优解
更新公式为:
其中,称为w惯性因子,c1和c2称为加速常数,一般取1~2。c1主要控制个体自信度,c2主要控制全体自信度,即依赖个体和全局的参数,数值越大则速度和路线选择即更偏重。