6种粒子群算法程序Word格式文档下载.docx
- 文档编号:22110970
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:40
- 大小:102.87KB
6种粒子群算法程序Word格式文档下载.docx
《6种粒子群算法程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《6种粒子群算法程序Word格式文档下载.docx(40页珍藏版)》请在冰豆网上搜索。
%惯性权重
eps=10A(-6);
%设置精度(在已知最小值的时候用)
%-初始化种群个体
邙u定位置和速度)
x=zeros(N,D);
^-zeros(N,D);
fori=l:
N
forj=l:
D
x(ij)=randn;
%随机初始化位置
v(ij)=randn;
%随机初始化速度
end
%-…一显示群位置——
figure(l)
if(rem(D,2)>
0)
subplot((D+1)/2,2j)
else
snbplot(D/2,2j)
plot(x(:
j),*b**);
giidon
xlabelC粒子)
ylabelC初始位置)tInfb=strcatC第;
char(j+48);
维*);
if(j>
9)
thifo=strcat(,®
\char(floor(j/l0)+48),char(rem(j,10)+48);
维'
);
title(tliifo)
%----显示种群速度
figtire
(2)
0)subplot((D+l)/2,2j)else
subplot(D/2,2j)
plot(x(:
j),tb*,);
gridon
xlabelC粒子)
ylabelC初始速度'
)
tliifo=strcat('
Jfj,char(j+48)「维);
tliifo=sti,cat('
3?
char(floor(j/10)+48),char(rem(j,10)+48),'
维);
figure(3)%第一个图
subplot(1,2,1)
%-初始化种群个体(在此限定速度和位置)
xl=x;
vl=v;
%----初始化个体最优位置和最优值…
pl=xl;
pbestl=ones(N,l);
pbestl(i)=fitness(x1(i「)、D);
%-初始化全局最优位置和最优值
gl=1000*ones(l,D);
gbestl=1000;
if(pbestl(i)<
gbestl)
gl=pl(i,:
);
gbestl=pbestl(i);
gbl=ones(l,T);
%浸入主循环,按照公式依次迭代直到满足精度或者迭代次数…
fori=l:
T
forj=l:
if(fitness(x1(j,:
),D)<
pbest1(j))
pl(j,:
)=xl(j,:
pbestl(j)=fitness(xl(j,:
),D);
end
if(pbest1(j)<
gbest1)
gi=pi(i,:
gbestl=pbestl(j);
vl(j,:
)=w*vl(j,:
)+cll*rand*(pl(j,:
)-xl(j,:
))+c21*rand*(gl-xl(j,:
));
gbl(i)=gbestl;
endplot(gbl)
TempSti-spnnt^^1=%g,c2=%g\cll,c21);
title(TempStr);
xlabelf迭代次数);
ylabel(适应度值工
%第二个图
subplot(l,2,2)
%初始化种群个体(在此限定速度和位置)
x2=x;
v2=v;
%…-初始化种群个体最有位置和最优解
p2=x2;
pbest2=ones(N,1);
pbest2(i)=fitness(x2(i/),D);
%初始化种全局最有位置和最优解----
g2=1000*ones(l,D);
gbest2=1000;
if(pbest2(i)<
gbest2)
g2=p2(i,:
gbest2=pbest2(i);
gb2=ones(l,T);
%--…浸入主循环,按照公式依次迭代直到满足精度或者迭代次数…
if(fitness(x2(j,:
)»
D)Vpbest2(j))
p2(j,:
)=x2(j,:
pbest2(j)=fitness(x2(j,:
if(pbest2(j)<
g2=p2(j/);
gbest2=pbest2(j);
v2(j,:
)=w*v2(j,:
)+c12*rand*(p2(j,:
)-x2(j,:
))+c22*rand*(g2-x2(j,;
x2(j,:
)+v2(j,:
gb2(i)=gbest2;
plot(gb2)
TempSti-sprint^^1=%g,c2=%g\cl2,c22);
title(TempStr);
xlabelf迭代次数);
ylabel(适应度值);
b)适应度函数
%适应度函数(fitness.m)
functionresult=fitness(x,D)
sum=O;
sum=sum+x(i)A2;
result=sum;
程序2
当于对比2.V7?
10,c?
2,c?
2?
C22iii22ia)%上函数源程序(main.m)subplot(D/2,2j)
j),*b*r);
xlabel(,粒子)
ylabel(初始位置)
tInfo=strcatC第'
char(j+48)»
'
tlnfb=strcat(,35f,char(floor(j/l0)+48),char(rem(j,10)+48),'
%-显示种群速度
figure
(2)
subplot((D+1)/2,2j)
j),'
b*'
ylabelC初始速度)
第,char(j+48)「维'
tlnfo=strcat('
第\char(floor(j/10)+48),char(rem(j,10)+48),'
figiue(3)
%第一个图
%-…-初始化个体最优位置和最优值…
pbest1=ones(N,1);
foii=l:
pbestl(i)=fitiiess(x1(i,:
)Q);
%----初始化全局最优位置和最优值
gbestl=pbestl(i);
endgbl=ones(l,T);
%…-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数…
fori=l:
if(fitness(xl(j,:
D)<
pbestl(j))
pbestl(j)=fitiiess(x1(j,:
gbestl=pbestl(j);
xl(j,:
)-H4(j,:
plot(gbl)
TempSti-sprint^^c1=%g.c2=%g\cll,c21);
xlabelC迭代次数
ylabel(适应度值J;
%…-初始化种群个体(在此限定速度和位置)
v2=v・
%-二初始化种群个体最有位置和最优解
%初始化种全局最有位置和最优解g2=1000*ones(l,D);
gbest2=pbest2(i);
%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数…
)>
D)<
pbest2(j))p2(j,:
pbest2(j)=fitness(x2(j,:
g2=p2(j,:
v2(j,:
)=w*v2(j,:
)+cl2*rand*(p2(j,:
)-x2(j,:
))+c22*rand*(g2-x2(j,:
TempSti-spnnt^^1=%g,c2=%g\cl2,c22);
ftmctionresult=fitness(x,D)
sum=0;
endresult=sum;
程序3
"
1于对比211.2?
coc2,W22i2ii2ia)%Ji函数源程序(main.m)
%基本粒子群算法(particleswamioptimization)
%.一_名称:
%-初始格式化clearall;
cl1=2;
cl2=2;
c22=0;
%-…-初始化种群个体
邙艮定位置和速度)
^-zeros(N,D);
foii=l:
%-显示群位置
figure(l)forj=l:
x2(j,:
fimctionresult=fitness(x,D)
Dsum=sum+x(i)A2;
程序4对,分别对其取值,,,测试函5.?
l?
.2c?
l.11c?
2wcc?
ww?
W22i2i2ii数。
a)%_]£
函数源程
丿了(maiii.m)
%.名称:
基本粒子群算法%-初始格式化
%清除所有变量
%清屏
%将数据5直示为长整形科学i卜数
%——给定初始条条件
%3初始化群体个数%初始化群体维数
cl=l.l;
%学习因子1
c2=2;
%学习因子2
wl=1.2;
%惯性权車
w2=1.5;
%惯性权重
%设置粘度(在(2知最小值的时候川)一
%初始化种群个体邙艮定位置和速度)
A-zeros(N,D);
foij=l:
%随机初始化位置
%随机初始化速度
%-—一显示群位置
figtire(l)
subplot((D+1)/2,2j)
j),b*'
ylabel('
初始位置)thifo=strcat(,^\char(j+48)/^fiz,);
if(j>
tliifo=strcat(,第\char(floor(j/l0)+48),char(rem(j,10)+48);
endtitle(tliifo)end
显示种群速度
subplot((D+l)/2,2j)
endplot(x(:
j),;
xlabe£
粒子)
tliifo=strcat(,第,char(j+48),维);
tInfo=strcatC第\char(floor(j/10)+48),
char(rem(j,10)+48),'
figure(3)
%--一初始化种群个体(在此限定速度和位置)
%-初始化个体最优位置和最优值一
%--…初始化全局最优位置和最优值
if(pbest1(i)<
%浸入主循环,按照公式依次迭代直到满足精度或者迭代次数…fori=l:
pbest1(j))pl(j,:
)=wl*vl(j,:
)+cl*rand*(pl(j,:
))+c2*rand*(gl-xl(j,:
TempStr=sprintff\v=%g\wl);
ylabel(适应度值);
pbest2(i)=fitness(x2(i,:
%…-初始化种全局最有位置和最优解g2=1000*ones(l,D);
%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数一fori=l:
D)Vpbest2(j))p2(j,:
)=w2*v2(j,:
)+c1*rand*(p2(j,:
)-x2(j,:
))+c2*rand*(g2-x2(j,;
TempStr=sprintffw=%g\w2);
xlabelf迭代次数J;
fiuictionresult=fitness(x,D)
程序5对,对分别取,随笔其迭代影响Ow?
w?
l2c?
22i2ia)%主函数源程用<niaiii.m)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 粒子 算法 程序