1.简介
粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 。该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型。粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。
2.算法
2.1问题抽象
鸟被抽象为没有质量和体积的微粒,并延伸到N维空间,粒子i在N维空间的位置表示为矢量Xi=(x1,x2,...,xn),飞行速度表示为矢量Vi=(v1,v2,...,vn)。每个粒子都有一个目标函数决定的适应值(fitness value),并且知道自己目前为止发现的最好位置(pbest)和现在的位置Xi。这个可以看做是粒子的飞行经验。除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(gbest--gbest是所有pbest中最佳值),这个可以看做是粒子同伴的经验。粒子就是通过自己的经验和同伴中的最好经验来决定下一步运动。
2.2更新规则
PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。每一次迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的下面的公式来更新自己的速度和位置。
公式(1)的第一部分称为【记忆项】,表示上次速度大小和方向影响;公式(1)的第二部分称为【自身认知项】,从当前点指向粒子自身经验最好点的一个矢量;公式(1)的第三部分称为【群体认知项】,是一个从当前点指向种群最好点的矢量。
公式(1)和(2)形成了PSO的标准形式。
公式(2)和(3)被视为标准PSO算法。
2.3PSO算法的流程图和伪代码
以上摘录于其他博客