资源简介
量子粒子群算法的matlab实现,有程序说明
代码片段和文件信息
popsize=20; %种群规模
MAXITER=2000; %最大迭代次数
dimension=30; %维数
irange_l=-5.12;
irange_r=5.12;
xmax=10; %x的变化范围
sum1=0;
sum2=0;
mean=0;
st=0;
runno=10;
data1=zeros(runnoMAXITER); %10*2000型矩阵
for run=1:runno
T=cputime; %程序开始时间
x=(irange_r- irange_l)*rand(popsizedimension1) + irange_l; %初始化种群,将x的范围映射到[-5.125.12]空间内
pbest=x; %个体极值
gbest=zeros(1dimension); %全局极值
for i=1:popsize
f_x(i)=f3(x(i:)); %更新个体极值,f3是什么函数
f_pbest(i)=f_x(i);
end
g=min(find(f_pbest==min(f_pbest(1:popsize)))); %更新全局极值
gbest=pbest(g:);
f_gbest=f_pbest(g);
MINIUM=f_pbest(g);
for t=1:MAXITER
beta=(1-0.5)*(MAXITER-t)/MAXITER+0.5; %学习系数
mbest=sum(pbest)/popsize;
for i=1:popsize
fi=rand(1dimension);
p=fi.*pbest(i:)+(1-fi).*gbest;
u=rand(1dimension);
b=beta*(mbest-x(i:));
v=-log(u);
y=p+((-1).^ceil(0.5+rand(1dimension))).*b.*v;
x(i:)=y;
x(i:)=sign(y).*min(abs(y)xmax);
f_x(i)=f3(x(i:));
if f_x(i) pbest(i:)=x(i:);
f_pbest(i)=f_x(i);
end
if f_pbest(i) gbest=pbest(i:);
f_gbest=f_pbest(i);
end
MINIUM=f_gbest;
end
data1(runt)=MINIUM;
if MINIUM>1e-007
mean=t;
end
end
sum1=sum1+mean;
sum2=sum2+MINIUM;
%MINIUM
time=cputime-T;
st=st+time;
end
av1=sum1/10; %输出平均收验代数
av2=sum2/10; %输出平均最优解
st/10 %就是最后anw输出的解
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1837 2009-10-17 16:51 qpso.m
----------- --------- ---------- ----- ----
1837 1
- 上一篇:图像清晰度评价函数
- 下一篇:Matlab遗传算法工具箱gaot及安装
评论
共有 条评论