%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Particle Swarm Optimization Alggorithm %
% %
% Programmed By: MatlabSite.com Programmers Team %
% Copyright 2009 %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Copyright.pdf
clc;
clear;
disp('Particle Swarm Optimization Algorithm');
disp('Programmed By: MatlabSite.com Programmers Team, 2009');
disp(' ');
npop=100;
nvar=100;
w=1;
wdamp=0.99;
c1=2;
c2=2;
xmin=-10;
xmax=10;
dx=xmax-xmin;
vmax=0.1*dx;
maxit=100;
empty_particle.position=[];
empty_particle.velocity=[];
empty_particle.cost=[];
empty_particle.pbest=[];
empty_particle.pbestcost=[];
particle=repmat(empty_particle,npop,1);
gbest=zeros(maxit,nvar);
gbestcost=zeros(maxit,1);
for it=1:maxit
if it==1
gbestcost(1)=inf;
for i=1:npop
particle(i).velocity=zeros(1,nvar);
particle(i).position=xmin+(xmax-xmin)*rand(1,nvar);
particle(i).cost=Cost(particle(i).position);
particle(i).pbest=particle(i).position;
particle(i).pbestcost=particle(i).cost;
if particle(i).pbestcost<gbestcost(it)
gbest(it,:)=particle(i).pbest;
gbestcost(it)=particle(i).pbestcost;
end
end
else
gbest(it,:)=gbest(it-1,:);
gbestcost(it)=gbestcost(it-1);
for i=1:npop
particle(i).velocity=w*particle(i).velocity...
+c1*rand*(particle(i).pbest-particle(i).position)...
+c2*rand*(gbest(it,:)-particle(i).position);
particle(i).velocity=min(max(particle(i).velocity,-vmax),vmax);
particle(i).position=particle(i).position+particle(i).velocity;
particle(i).position=min(max(particle(i).position,xmin),xmax);
particle(i).cost=Cost(particle(i).position);
if particle(i).cost<particle(i).pbestcost
particle(i).pbest=particle(i).position;
particle(i).pbestcost=particle(i).cost;
if particle(i).pbestcost<gbestcost(it)
gbest(it,:)=particle(i).pbest;
gbestcost(it)=particle(i).pbestcost;
end
end
end
end
disp(['Iteration ' num2str(it) ': Best Cost = ' num2str(gbestcost(it))]);
w=w*wdamp;
end
plot(gbestcost);
pso.zip_optimization_swarm_zip
版权申诉
27 浏览量
2022-09-20
21:06:26
上传
评论
收藏 963B ZIP 举报
weixin_42653672
- 粉丝: 94
- 资源: 1万+