您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > pso粒子群算法概述
粒子群优化算法PSO算法介绍PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。iiixxV12()()()()iiiiiiVVcrandpbestxcrandgbestx(2)式(1)式iiixxV在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数粒子群优化算法(PSO)是一种进化计算技术(evolutionarycomputation),由Eberhart博士和kennedy博士于1995年提出(KennedyJ,EberhartR.Particleswarmoptimization.ProceedingsoftheIEEEInternationalConferenceonNeuralNetworks.1995.1942~1948.)。源于对鸟群捕食的行为研究。粒子群优化算法的基本思想是通过群体中个体之间的协作和信息共享来寻找最优解.PSO的优势在于简单容易实现并且没有许多参数的调节。目前已被广泛应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。算法介绍算法介绍PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。iiixxV12()()()()iiiiiiVVcrandpbestxcrandgbestx(2)式(1)式iiixxV在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数算法介绍设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食物在那。但是它们知道自己当前的位置距离食物还有多远。那么找到食物的最优策略是什么?最简单有效的就是搜寻目前离食物最近的鸟的周围区域。算法介绍算法介绍PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。iiixxV12()()()()iiiiiiVVcrandpbestxcrandgbestx(2)式(1)式iiixxV在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数抽象:鸟被抽象为没有质量和体积的微粒(点),并延伸到N维空间,粒子I在N维空间的位置表示为矢量Xi=(x1,x2,…,xN),飞行速度表示为矢量Vi=(v1,v2,…,vN).每个粒子都有一个由目标函数决定的适应值(fitnessvalue),并且知道自己到目前为止发现的最好位置(pbest)和现在的位置Xi.这个可以看作是粒子自己的飞行经验.除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(gbest)(gbest是pbest中的最好值).这个可以看作是粒子同伴的经验.粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。算法介绍算法介绍PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。iiixxViiixxV12()()()()iiiiiiVVcrandpbestxcrandgbestx(2)式(1)式在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。(1)式(2)式在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数算法介绍12()()()()iiiiiiVVcrandpbestxcrandgbestxiiixxV算法介绍PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。iiixxV12()()()()iiiiiiVVcrandpbestxcrandgbestx(2)式(1)式iiixxV在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数Vi是粒子的速度;pbest和gbest如前定义;rand()是介于(0、1)之间的随机数;Xi是粒子的当前位置。c1和c2是学习因子,通常取c1=c2=2在每一维,粒子都有一个最大限制速度Vmax,如果某一维的速度超过设定的Vmax,那么这一维的速度就被限定为Vmax。(Vmax0)以上面两个公式为基础,形成了后来PSO的标准形式算法介绍算法介绍PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。iiixxV12()()()()iiiiiiVVcrandpbestxcrandgbestx(2)式(1)式iiixxV在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数算法介绍从社会学的角度来看,公式(1)的第一部分称为记忆项,表示上次速度大小和方向的影响;公式第二部分称为自身认知项,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的部分;公式的第三部分称为群体认知项,是一个从当前点指向种群最好点的矢量,反映了粒子间的协同合作和知识共享。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。以上面两个公式为基础,形成了后来PSO的标准形式算法介绍PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。iiixxViiixxV12()()()()iiiiiiVVcrandpbestxcrandgbestx(2)式(1)式在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数算法介绍1998年shi等人在进化计算的国际会议上发表了一篇论文《Amodifiedparticleswarmoptimizer》对前面的公式(1)进行了修正。引入惯性权重因子。(3)式非负,称为惯性因子。12()()()()iiiiiiVVcrandpbestxcrandgbestx公式(2)和(3)被视为标准pso算法。算法介绍PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。iiixxV12()()()()iiiiiiVVcrandpbestxcrandgbestx(2)式(1)式iiixxV在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数算法介绍标准PSO算法的流程:Step1:初始化一群微粒(群体规模为m),包括随机位置和速度;Step2:评价每个微粒的适应度;Step3:对每个微粒,将其适应值与其经过的最好位置pbest作比较,如果较好,则将其作为当前的最好位置pbest;Step4:对每个微粒,将其适应值与其经过的最好位置gbest作比较,如果较好,则将其作为当前的最好位置gbest;Step5:根据(2)、(3)式调整微粒速度和位置;Step6:未达到结束条件则转Step2。算法介绍迭代终止条件根据具体问题一般选为最大迭代次数Gk或(和)微粒群迄今为止搜索到的最优位置满足预定最小适应阈值。PSO算法流程图和伪代码开始随机初始化每个粒子评估每个粒子并得到全局最优更新每个粒子的速度和位置评估每个粒子的函数适应值结束否是满足结束条件更新群体的全局最优位置更新每个粒子历史最优位置//功能:粒子群优化算法伪代码//说明:本例以求问题最小值为目标//参数:N为群体规模procedurePSOforeachparticleiInitializevelocityViandpositionXiforparticleiEvaluateparticleiandsetpBesti=XiendforgBest=min{pBesti}whilenotstopfori=1toNUpdatethevelocityandpositionofparticleiEvaluateparticleiiffit(Xi)fit(pBesti)pBesti=Xi;iffit(pBesti)fit(gBest)gBest=pBesti;endforendwhileprintgBestendprocedure应用举例例6.1已知函数,其中,用粒子群优化算法求解y的最小值。221212(,)yfxxxx1210,10xx运行步骤221118(5)642589(8,5)fpBestx22222(5)92581106(5,9)fpBestx22333(7)(8)4964113(7,8)fpBestx1(8,5)gBestpBest步骤1:初始化。假设种群大小是N=3;在搜索空间中随机初始化每个解的速度和位置,计算适应函数值,并且得到粒子的历史最优位置和群体的全局最优位置。)8,7()3,5(333xvp)9,5()2,3(222xvp)5,8()2,3(111xvp步骤2:粒子的速度和位置更新。根据自身的历史最优位置和全局的最优位置,更新每个粒子的速度和位置。w是惯量权重,一般取[0,1]区间的数,这里假设为0.5c1和c2为加速系数,通常取固定值2.0r1和r2是[0,1]区间的随机数对于越界的位置,需要进行合法性调整注意!)4,5.9()1,5.1()5,8()1,5.1(10025.05.10035.0)()(11111221111111vxxvxgBestrcxpBestrcvvp)10,1.1()8.10,1.1()8.1,1.6()9,5()8.1,1.6(8.1)9)5((1.020)2(5.01.6))5(8(3.020)3(5.0)()(11122222211222vxxvxgBestrcxpBestrcvvp)7.1,5.3()3.6,5.3()8,7()3.6,5.3(3.6))8()5((8.02035.05.3))7(8(05.02055.0)()(11133223311333vxxvxgBestrcxpBestrcvvp步骤4:如果满足结束条件,则输出全局最优结果并结束程序,否则,转向步骤2继续执行。步骤3:评估粒子的适应度函数值。更新粒子的历史最优位置和全局的最优位置。*22119.5(4)90.2516106.2589ff*22221.1101.21100101
本文标题:pso粒子群算法概述
链接地址:https://www.777doc.com/doc-1345688 .html