粒子群算法原理及在函数优化中的应用(附程序).doc

粒子群算法原理及在函数优化中的应用(附程序).doc

ID:56718066

大小:1.99 MB

页数:16页

时间:2020-07-05

粒子群算法原理及在函数优化中的应用(附程序).doc_第1页
粒子群算法原理及在函数优化中的应用(附程序).doc_第2页
粒子群算法原理及在函数优化中的应用(附程序).doc_第3页
粒子群算法原理及在函数优化中的应用(附程序).doc_第4页
粒子群算法原理及在函数优化中的应用(附程序).doc_第5页
资源描述:

《粒子群算法原理及在函数优化中的应用(附程序).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、粒子群算法原理及其在函数优化中的应用1粒子群优化(PSO)算法基本原理1.1标准粒子群算法假设在一个维的目标搜索空间中,有个代表问题潜在解的粒子组成一个种群,第个粒子的信息可用维向量表示为,其速度为。算法首先初始化个随机粒子,然后通过迭代找到最优解。每一次迭代中,粒子通过跟踪2个极值进行信息交流,一个是第个粒子本身找到的最优解,称之为个体极值,即;另一个是所有粒子目前找到的最优解,称之为群体极值,即。粒子在更新上述2个极值后,根据式(1)和式(2)更新自己的速度和位置。(1)(2)式中,代表当前迭代次数,是在[0,1]之间服从均匀分布的随机数,称为学习因

2、子,分别调节粒子向个体极值和群体极值方向飞行的步长,为惯性权重,一般在之间取值。在标准的PSO算法中,惯性权重被设为常数,通常取。在实际应用中,需保证在一定的范围内,即的每一维的变化范围均为,这在函数优化问题中相当于自变量的定义域。1.2算法实现步骤步骤1:表示出PSO算法中的适应度函数;(编程时最好以函数的形式保存,便于多次调用。)步骤2:初始化PSO算法中各个参数(如粒子个数,惯性权重,学习因子,最大迭代次数等),在自变量定义域内随机初始化,代入求得适应度值,通过比较确定起始个体极值和全局极值。步骤3:通过循环迭代更新、和:①确定惯性权重的取值(当不

3、是常数时)。②根据式(1)更新粒子的速度,若速度中的某一维超过了,则取为。③根据式(2)更新自变量,若的取值超过其定义域,则在其定义域内重新初始化。④代入求得适应度值,通过比较更新个体极值和全局极值。步骤4:判断是否满足终止条件(通常设为达到最大迭代次数或达到估计精度要求),若不满足,则转入步骤(3),若满足,则输出估计结果,算法结束。2程序实现2.1各种测试函数(适应度函数)测试函数是用来测试算法性能的一些通用函数,下面先给出一些测试函数的三维图(自变量为两维,加上函数值共三维)如图1-图17所示。图1测试函数1图2测试函数2图3测试函数3图4测试函数

4、4图5测试函数5图6测试函数6图7测试函数7图8测试函数8图9测试函数9图10测试函数10图11测试函数11图12测试函数12图13测试函数13图14测试函数14图15测试函数15图16测试函数16图17测试函数172.2程序实现首先给出绘制测试函数的程序:%%绘图测试函数draw_fitness.mclear;clc;closeall;%%[x,y]=meshgrid(-10:0.5:10);z2=x.^2-cos(18*x)+y.^2-cos(18*y);figure(1);surf(x,y,z2);minz2=min(min(z2));title(

5、'z2=x^2-cos(18*x)+y^2-cos(18*y)');%%z4=4*x.^2-2.1*x.^4+x.^6/3+x.*y-4*y.^2+y.^4;figure(2);surf(x,y,z4);minz4=min(min(z4));title('z4=4*x^2-2.1*x^4+x^6/3+x*y-4*y^2+y^4');%%z5=(y-5.1*x.^2/4/pi/pi+5*x/pi-6).^2+10*(1-1/8/pi)*cos(x)+10;figure(3);surf(x,y,z5);minz5=min(min(z5));title('z5

6、=(y-5.1*x^2/4/pi/pi+5*x/pi-6)^2+10*(1-1/8/pi)*cos(x)+10');%%[x,y]=meshgrid(-5:0.5:5);z7=x.*exp(-x.^2-y.^2);figure(4);surf(x,y,z7);minz7=min(min(z7));title('z7=x*exp(-x^2-y^2)');%%[x,y]=meshgrid(-5:0.25:5);z8=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...-10*(x/5-x.^3-y.^5).*exp(-x.^2-y

7、.^2)...-1/3*exp(-(x+1).^2-y.^2);figure(5);surf(x,y,z8);minz8=min(min(z8));title('z8');%%r=sqrt(x.^2+y.^2)+eps;z9=sin(r)./r;figure(6);surf(x,y,z9);minz9=min(min(z9));title('r=sqrt(x^2+y^2)+eps;z9=sin(r)/r;');%%[x,y]=meshgrid(-5:0.25:5);num=sin(sqrt(x.^2+y.^2)).^2-0.5;den=(1.0+0.01

8、*(x.^2+y.^2)).^2;z10=0.5+num./den;figure

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。