粒子群算法实验报告

上传人:pu****.1 文档编号:564909555 上传时间:2022-12-25 格式:DOCX 页数:5 大小:152.20KB
返回 下载 相关 举报
粒子群算法实验报告_第1页
第1页 / 共5页
粒子群算法实验报告_第2页
第2页 / 共5页
粒子群算法实验报告_第3页
第3页 / 共5页
粒子群算法实验报告_第4页
第4页 / 共5页
粒子群算法实验报告_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《粒子群算法实验报告》由会员分享,可在线阅读,更多相关《粒子群算法实验报告(5页珍藏版)》请在金锄头文库上搜索。

1、 实验报告专业班号组别一指导老师姓名同组者一实验日期第十四周 第3次实验实验名称 基干粒子群算法的函数优化问题一、实验项目基于粒子群算法的函数优化问题实验,在Windows下基于Matlab完成编程。二、实验目的粒子群算法,也称粒子群优化算法(Particle Swarm Optimization ),缩写为 PSO , 是近年来发展起来的一种新的进化算法(Evolu2tionary Algorithm - EA )。这种算 法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展 示了其优越性。为学习其算法思想,有必要掌握并实现基于粒子群算法的函数优化问题 实验。三、实

2、验原理粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation), 1995年由 Eberhart博士和kennedy博士提出,源于对鸟群捕食的行为研究。PSO同遗传算法类似,是一种基于迭代的优化算法。系统初始化为一组随机解,通过 迭代搜寻最优值。但是它没有遗传算法用的交叉(crossover)以及变异(mutation),而是粒子 在解空间追随最优的粒子进行搜索。同遗传算法比较,PSO的优势在于简单容易实现并且 没有许多参数需要调整。目前已广泛应用于函数优化,神经网络训练,模糊系统控制以及 其他遗传算法的应用领域。四、实验内容1、首先编写通用代码粒子群测试

3、各个函数的主代码写出来,对于不同的测试函数,只需要调用相应的测试函数 即可,将各个函数做成.m的文件。mat lab源代码程序如下:clear all;clc;format long;%给定初始化条件c1=1.4902;%学习因子1c2=1.4901;%学习因子2w=0.7281;%惯性权重MaxDT=1000;%最大迭代次数D=5;%搜索空间维数(未知数个数)N=40;eps=10A(-6);%设置精度(在已知最小值时候用)%-初始化种群的个体(可以在这里限定位置和速度的范围)fori=1:Nfor j=1:Dx(i,j)=randn;%随机初始化位置v(i,j)=randn;%随机初始化速

4、度endend%先计算各个粒子的适应度,并初始化Pi和Pgfori=1:Np(i)=function(x(i,:);y(i,:)=x(i,:);end签名:年 月 日pg=x(l,:);%Pg为全局最优fori=2:Nif function(x(i,:)vfunction(pg) pg=x(i,:);end%-进入主要循环,按照公式依次迭代,直到满足精度要求-for t=1:MaxDTfori=1:Nv(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:);if function(x(i,:)

5、p(i)p(i)=function(x(i,:);y(i,:)=x(i,:);endif p(i)function(pg) pg=y(i,:);endend在matlab中运行结果如下: 函数的全局最优位置为:Solution 二0.576475699699576-0.8607542255463701.2205658276826261.4207354825753010.552791439208896最后得到的优化极值为:Result 二1.899896389267265e+004Pbest(t)=function(pg);end%最后给出计算结果disp(*) disp(函数的全局最优位置为:

6、)Solution=pgplot(Solution)disp(最后得到的优化极值为:)Result=function(pg)disp(*) 2、对指定函数的优化(1) Rastrigins.m文件代码如下,即Rastrigins测试函数; function out二Rastrigin(x)x=5.12:0.01:5.12;cos_in = cos(2*pi*x);out二 sum(x.210*cos_in + 10), 2);Rastrigrin函数:一个多峰值函数,其局部最优位置随着正弦波动,其全局最 优点在F =0,冃标函数最优值在/(x*)=0 ,各变量之间独立。二维Rastrigrin

7、函 数如图4.6所示。Jif4(x)=(# 一 10cos(2;tXf)+ 10)(4.9)f=l2.497904795831135-32 -1601632 ;.-32 -1601632 ;.-32 -1601632 ;.-32 -1601632 ;.-32 -1601632 ;.;a2=.-32 -32-32-32-32 ;.Griewank函数:一个多峰值函数,变量之间有相互关系,其全局最优点在x* = 0,目标函数最优值在/(x*) =0 ,各变量之间独立。-维Griewank函数如图(4.10)(2) 函数2:使用粒子群算法对Griewank函数进行优化:将下面代码保存成Griewan

8、k.m文件,代码如下:Dx=leng th(in(l,:);tl enx=leng th(in(:,l);if isempty (D) | D=Dx | tlen二tlenxD=Dx; % dimension of probtlen二tlenx; % how many separate statesd=repma t( 1:D ,tl en,l);sqrtd=sqrt(d);enddatl二 sum(in-100).2,2)./4000;dat2 = prod( (cos( (in-100)./sqrtd ) ,2);out 二 datl - dat2 + 1;然后将主函数中的func tio

9、n替换成Griewank,然后在mat lab中运行即可,运行结 果如下:函数的全局最优位置为:Solution 二1.0e+002 *0.0893938350249221.3550750755471630.9456676451135421.1881187739204750.929927307049068最后得到的优化极值为:Result 二4.7所沁-口 cos(十)+ 1图4.7 Griewank函数三维图(3) 函数3:使用粒子群算法对Foxhole函数进行优化: 将下面代码保存成Foxhole.m文件,代码如下: function out二Foxhole(in)%x=in(,1);%y

10、=in(,2);term_sum=0;x=in(:,1); y=in(:,1);a1=.-16 -16 -16 -16 -160000016161616163232323232;term_sum=O;for j=1 :numel(al)ax=al (j);ay=a2 (j);t erm_sum = (x - ax).6 + (y - ay).6; term_sum二term_sum+ 1.0/(j+term_sum); endout 二.002 + term_sum;运行结果如下: 函数的全局最优位置为:Solution 二31.9995033209264196.742047876319869-4.28812078367820514.91807014291851313.732644871242318 最后得到的优化极值为: Result 二Griewank函数:个多峰值函数,变量之间有相互关系,其全局最优点在 x* =0,目标函数最优值在/(X*) =0 ,各变量Z间独立。二维Griewank函数如图 4.7所示。1界Jx(a)局部(b)全局图4.7 Griewank函数三维图恥*硕等m啊了川(4jo)0.042000000000000

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号