典型粒子群优化算法(particle swarm optimization,PSO)

来源:互联网 发布:编程语言排行榜2016 7 编辑:程序博客网 时间:2024/05/29 02:56

随着牛顿法、梯度共轭、单纯形法等传统优化方法无法满足计算需求,群智能优化算法作为现代智能计算的一类重要方法已经受到越来越多的关注。群智能优化通过模拟社会性昆虫的各种群体行为,利用群体中个体之间的信息交互和合作实现寻优。比较有名的群智能方法包括蚁群算法、粒子群算法等,笔者在此主要介绍粒子群算法相关。
首先介绍典型的粒子群算法(单目标优化问题),稍后将介绍多目标粒子群算法(多目标优化问题)。

  1. 典型的粒子群算法
    PSO算法就是模拟一群鸟寻找食物的过程,每个鸟就是PSO中的粒子,也就是我们需要求解问题的可能解,在寻找食物(最优解)的过程中,这些鸟不停改变自己飞行的位置与速度(也即在迭代过程中可能解X不断改变,以期得到更优的解,直到找到最优解)。从整体上来看,一群鸟在开始的时候在空间上是很分散的,然后随着不断寻找,最终聚集到食物的附近。具体到优化问题上,在整体上,开始的粒子(即可能解)是随机的很分散的,然后随着迭代寻优的进行,这些粒子不断在搜索空间中改变,最终聚集到最优解附近。
    对于一个最优化问题: min f(X)
    PSO的基本步骤是:
    ①初始化:设置参数(粒子数n,最大迭代数iteration,更新公式中的各系数);
    随机产生n个初始粒子{X1,X2,…Xn};
    ②评价各粒子,计算各粒子的适应值{ f(X1),f(X2),…f(Xn) };
    ③更新每个粒子的局部最优{Pbest1,Pbest2,…Pbestn}和全局最优Gbest:
    Pbestn是Xn在之前所有迭代过程中该粒子最优的状态,如何评价最优?就是该粒子在之前迭代过程最小目标值时的Xn;Gbest是所有粒子在之前迭代过程中最优的X。
    ④对各粒子进行更新,即不断改变各X:
    更新公式:
    这里写图片描述
    这里写图片描述
    这里的k代表第k次迭代,i代表第i各粒子,w,c1,c2都是参数。
    ⑤如果没有达到最大迭代数iteration,则转至步骤②继续进行迭代,否则输出Gbest
    所以可以看到,整个迭代过程是朝着Gbest的方向进行。

  2. 应用
    要运用PSO算法,首先需要将你的实际问题转化为一个最优化求解问题,即目标函数(f)、粒子的表示(X)需要准确地反应你的实际问题。

  3. 特点
    从PSO的原理上我们可以看到,它是一种并行机制的算法,所以有搜索速度快、效率高的优点,但是同时,他比较容易陷入局部最优。所以也发展出很多改进算法,比如结合遗传算法的优点,将变异算子引入粒子群算法中。

0 0
原创粉丝点击