粒子群优化算法实践_第1页
粒子群优化算法实践_第2页
粒子群优化算法实践_第3页
粒子群优化算法实践_第4页
粒子群优化算法实践_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、粒子群优化算法实践粒子群优化算法实践04123157 王斌一、粒子群优化算法起源及介绍粒子群优化(PSO)算法是由Kennedy和Eberhart于1995年用计算机模拟 鸟群觅食这一简单的社会行为时,受到启发,简化之后而提出的。在粒子群优化算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还 有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解 空间中搜索。优化开始时先初始化为一群随机粒子(随机解)。然后通过迭代找 到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己。 第一个极值就 是整个种群目前

2、找到的最优解。这个极值是全局极值。第二个极值是粒子本身所 找到的最优解,称为个体极值。这是因为粒子仅仅通过跟踪全局极值或者局部极 值来更新位置,不可能总是获得较好的解。这样在优化过程中,粒子在追随全局 极值或局部极值的同时追随个体极值则圆满的解决了这个问题。这就是粒子群优化算法的原理。在算法开始时,随机初始化粒子的位置和速度构成初始种群,初始种群在解空间中为均匀分布。其中第i个粒子在n维解空间的位置和速度可分别表示为 Xi= (Xi1,Xi2,Xid)和Vi= (Vi1,Vi2,Vid),然后通过迭代找到最优解。在每一次 迭代中,粒子通过跟踪两个极值来更新自己的速度和位置。一个极值是粒子本身到

3、目前为止所找到的最优解,这个极值称为个体极值Pb= (Pb1,Pb2,Pbd)。另一个极值是该粒子的邻域到目前为止找到的最优解,这个极值称为整个邻域的最优粒子 Nbest=(Nbest1,Nbest2,Nbestid)。粒子根据如下的式(2-1)和式(2-2)来 更新自己的速度和位置:Vi=Vi+C1 rand() (Pbest-Xi)+c2 rand() (Nbest-Xi) (2-1)Xi=Xi+Vi(2-2)式中Ci和C2是学习因子,也称加速因子,其使粒子具有自我总结和向群体 中优秀个体学习的能力,从而向自己的历史最优点以及群体内历史最优点靠近。粒子群优化算法实践rand()是0至M之间

4、的随机数。粒子在每一维飞行的速度不能超过算法设定的最 大速度Vnaxo设置较大的Vmax可以保证粒子种群的全局搜索能力,Vmax较小则粒子 种群优化算法的局部搜索能力加强。粒子群优化算法是在模拟鸟群觅食时受到启发提出的。提出之后却发现用动物或人的认知来解释算法的原理更加完美。在速度更新公式(2-1)中由3个部分构成。第1个部分是V,表示粒子在解空间有按照原有方向和速度进行搜索的趋 势,这可以用人在认知事物时总是用固有的习惯来解释。第2个部分是ci - rand() (Pbest i-Xi),表示粒子在解空间有朝着过去曾碰到的最优解进行搜 索的趋势,这可以用人在认知事物时总是用过去的经验来解释。

5、第 3部分是 C2 - rand() (Nbest i-Xi),表示粒子在解空间有朝着整个邻域过去曾碰到的最优 解进行搜索的趋势,这可以用人在认知事物时总可以通过学习其他人的知识,也就是分享别人的经验来解释。因此,粒子群优化算法实际上是借用了人或动物认 知事物时的习惯,经验,及学习过程来进行寻优的。粒子在优化过程中的运动轨 迹见图1。在后来的算法改善过程中,Shi和Eberhart引入了惯性权重w来调节粒子群算法 速度的更新,具体公式如下。Vi=wVi+ci rand() (Pbest-Xi)+C2 rand() (Nbesti-Xi)惯性权重起着权衡局部最优能力和全局最优能力的作用。二、算法

6、实践过程针对一元二次函数Y=-X(X-2),用粒子群优化算法寻找函数的最大值,函数图 像如下图所示。粒子群优化算法实践y二-xYx-2)图像曲线由图像可知,该函数的在 X=1处,取到Y的最大值为11、参照资料,选取参数 c1=2,c2=2,w=0.4迭代次数X(i)V(i)gbest11.3750.010.8590.001-1.6420.718-0.6570.9601.1991.19730.9680.250.9991.5470.349980.999-0.00011.000-0.000991.0000.00010.999-0.0001000.999-0.00010.9990.000分析:可以看到

7、,经过100次迭代后,选取的两个粒子成功的找到了函数的最大 值gbest=1,并且两个粒子最终也收敛在x=1附近,计算结果符合要求。粒子群优化算法实践2、选取参数c1=2,c2=2,尝试改变权重w的值,令w=1迭代次数X(i)V(i)gbest11.5090.1500.9841.7950.92120.807-0.7010.99890.968-0.82630.555-0.2530.99890.187-0.7819816.60926.3370.9998-1362.335685.4769925.19341.8030.99982605.4272967.76210011.22913.9650.99981

8、761.153-844.27wgbest0.110.510.80.99999分析:当权重系数过大时,程序找到的最大值为0.9998,计算的结果十分接近准确值1,但两个粒子出于发散状态,并未聚集在 x=1附近。当权重系数减小时, 程序能准确的找到最大值,并且粒子最终能够收敛。故线性调节权重系数w可以使得算法在初期具有很广的搜索范围而在后期又能够收敛于最优点。3、保持权重系数w=1不变,尝试改变c1, c2的值,令c1=3, c2=3迭代次数X(i)V(i)gbest9816.60926.3370.968-1362.335685.47699-19222.101170.680.968-1107600

9、9.80-12620225.0210050676.6269898.720.968-2206068.058869941.75c1c2gbest0.10.10.999960.50.50.99951110.999841.91.90.99671粒子群优化算法实践分析:在此问题中cl, c2的取值变化对最终gbest有微小的影响,可以忽略不计。 随着cl, c2值的变大,粒子最终位置更加分散,故在一定程度上,cl, c2的取值能减少局部最优解的困扰。4、选取权重w=1, c1=3, c2=3,设定最大速度 WE迭代次数X(i)V(i)gbest981.0050.0170.999990.9220.1009

10、91.0120.0070.999991.0220.1001000.964-0.0480.999991.0770.055Vmaxgbest迭代次数=100次X(1)X(2)0.010.99991.00720.99940.20.99990.99570.87760.50.99991.4267-0.010分析:最大速度限制的取值对最终的 gbest没有多大影响,但是 Vmax值的大小会 决定最终粒子位置的收敛性,当 Vmax取值较小时,会使粒子聚集在一块。这也印 证了当Vmax取值太小时,容易使所有的粒子聚集在一个局部接附近,而无法得出 全局解。参考文献1 何妮,吴燕仙.粒子群优化算法的研究J科技信息

11、.6, 2008: 179-220.2 周驰,高海兵,高亮等.粒子群优化算法J.计算机应用研究,2003,12:7-11.3纪震,廖惠连,吴青华.粒子群算法及应用M .科学出版社,2004粒子群优化算法实践附录:%主程序,清除变量clear all;clc;%参数初始化c1=2;c2=2;%权重系数w=0.4;%最大迭代次数MaxDT=100;%粒子规模sizepop=2;%产生初始粒子和速度for i=1:sizepop%随机产生一个粒子x(i)=2*rand;%初始化粒子v(i)=rand;%初始化速度%计算粒子的适应度,初始化个体最优值pbest(i)=fitness(x(i);end%找到最好的粒子gbest=max(pbest);disp(l*1disp(初始值 gbest)gbest%进入迭代for t=1:MaxDTfor i=1:sizepop%速度更新v(i)=w*v(i)+c1*rand*(pbest(i)-x(i)+c2*rand*(gbest-x(i);%粒子更新x(i)=x(i)+v(i);%个体最优更新if fitness(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论