基于MATLAB的粒子群优化算法的应用示例

基于MATLAB的粒子群优化算法的应用示例

ID:42007521

大小:45.50 KB

页数:5页

时间:2019-09-06

基于MATLAB的粒子群优化算法的应用示例_第1页
基于MATLAB的粒子群优化算法的应用示例_第2页
基于MATLAB的粒子群优化算法的应用示例_第3页
基于MATLAB的粒子群优化算法的应用示例_第4页
基于MATLAB的粒子群优化算法的应用示例_第5页
资源描述:

《基于MATLAB的粒子群优化算法的应用示例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、对于函数f=x*sin(x)*cos(2*x)・2*x*sin(3*x),求其在区间[0,20]上该函数的最大值。・初始化种群已知位置限制[0,20],由于一维问题较为简单,因此可以取初始种群N为50,迭代次数为100,当然空间维数d也就是1。位置和速度的初始化即在位置和速度限制内随机生成一个Nxd的矩阵,对于此题,位置初始化也就是在0〜20内随机生成一个50x1的数据矩阵,而对于速度则不用考虑约束,一般直接在0〜1内随机生成一个50x1的数据矩阵。此处的位置约束也可以理解为位置限制,而速度限制是保

2、证粒了步长不超限制的,一般设置速度限制为卜1,1]。粒子群的另一个特点就是记录每个个体的历史最优和种群的历史最优,因此而二者对应的最优位置和最优值也需要初始化。其中每个个体的历史最优位置可以先初始化为当前位置,而种群的历史最优位置则可初始化为原点。对于最优值,如果求最大值则初始化为负无穷,相反地初始化为正无穷。每次搜寻都需要将当前的适应度和最优解同历史的记录值进行对比,如果超过历史最优值,则更新个体和种群的历史最优位置和最优解。•速度与位置的更新速度和位置更新是粒子群算法的核心,其原理表达式和更新方

3、式如下:J怙=W•匕d+C]・Sd一XQ+C2-r2・5gd—X沏)[x沏=x汩+j每次更新完速度和位置都需要考虑速度和位置的限制,需要将其限制在规定范围内,此处仅举出一个常规方法,即将超约束的数据约束到边界(当位置或者速度超出初始化限制时,将其拉回靠近的边界处)。当然,你不用担心他会停住不动,因为每个粒子还有惯性和其他两个参数的影响。代码如下:clc;clear;closeall;%%初始化种群f=@(x)x.*sin(x).*cos(2*x)・2*x•*sin(3*x);%函数表达式figure

4、(l);ezplot(f,[0,0.01,20]);N=50;%初始种群个数d=1;%空间维数ger=100;%最大迭代次数limit=

5、0,20];%设置位置参数限制vlimit=[-l,1];%设置速度限制w=0.8;%惯性权重cl=0.5;%自我学习因子c2=0.5;%群体学习因子fori=l:dx=1)+(limit(i,2)-limit(i,1))*rand(N,d);%初始不中群的位置endv=rand(N,d);%初始种群的速度xm=x;%每个个体的历史最佳位置ym=zeros(l,d

6、);%种群的历史最佳位置fxm=zeros(N,1);%每个个体的历史最佳适应度fym=-inf;%种群历史最佳适应度holdonplot(xm,f(xm),ToJ;titleC初始状态图');figure(2)%%群体更新iter=1:record=zeros(ger,1);%记录器whileiterv二gerfx=f(x);%个体当前适应度fori=1:Niffxm(i)

7、iffymvlimit(2))=vlimit(2);v(vlimit(2))=limit(2);x(x

8、rd(iter)=fym;%最大值记录%x0=0:0.01:20;%plot(x0,f(x0),b;x,f(x),,ro,);title(,状态位置变化J%pause(O.l)iter=iter+1;endfigure(3);plot(record);title(!收敛过程')xO=0:0.01:20;figure(4);plot(x0,f(xO),fb-',x,f(x),'ro');title('最终状态位置')disp(『最大值:um2str(fym)]);disp([‘变量取值:um2

9、str(ym)]);

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

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

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