【PSO】量子粒子群算法(QPSO)

粒子群算法的几个比较大的改进:

(1)离散粒子群算法:粒子搜索位置为0-1离散值,速度更新公式通过sigmoid函数得到概率值p,决定当前位置的参数是0还是1;

(2)混沌粒子群算法:由确定的方程得出不确定的方程,呈不确定状态的变量成为混沌变量。在混沌粒子群算法中,以全局最优解gbest迭代产生混沌序列,混沌序列通过方程映射回原解空间,序列中最优位置随机替代某个粒子的位置,叫做混沌优化。

(3)量子粒子群算法:因为粒子的位置和速度在量子空间中不能一起确定,所以用波函数表示粒子位置,通过蒙特卡罗方法求出粒子位置。gbest求解通过平均最好位置mbest得到。mbest是所有个体平均最优,通过它来求解粒子出现在相对点的位置,用L表示。而粒子的势表示位置的最终值,与L直接相关。

量子粒子群算法实现(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(runno,MAXITER);   %10*2000型矩阵
for run=1:runno
T=cputime;         %程序开始时间
x=(irange_r- irange_l)*rand(popsize,dimension,1) + irange_l;   %初始化种群,将x的范围映射到[-5.12,5.12]空间内


pbest=x;     %个体极值
gbest=zeros(1,dimension);    %全局极值



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(1,dimension);
        p=fi.*pbest(i,:)+(1-fi).*gbest;
        u=rand(1,dimension);
        b=beta*(mbest-x(i,:));
        v=-log(u);
        y=p+((-1).^ceil(0.5+rand(1,dimension))).*b.*v;
        x(i,:)=y;
        x(i,:)=sign(y).*min(abs(y),xmax); 
          
            f_x(i)=f3(x(i,:));
            if f_x(i)<f_pbest(i)
                pbest(i,:)=x(i,:);
                f_pbest(i)=f_x(i);
            end
            if f_pbest(i)<f_gbest
                gbest=pbest(i,:);
                f_gbest=f_pbest(i);
            end            
            MINIUM=f_gbest;                    
 end
    data1(run,t)=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输出的解

参考:

http://www.doc88.com/p-899573226708.html

http://download.csdn.net/download/cxjy329432120/4370945

发布了392 篇原创文章 · 获赞 492 · 访问量 241万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览