差分进化算法
差分演化算法的matlab程序: function DE(Gm,F0)%差分进化算法程序基本程序%F是变异率 F0=0.6 Gm=1000; %最大迭代次数Np=100; %种群规模CR=0.9; %杂交参数G=1;%初始化代数D=0;%所求问题的维数eps=1e-9;%精度ge=zeros(1,Np);%各代的最优值bestx=zeros(Np,D);%各代的最优解%产生初始种群%xmin=-10;xmax=100;%带负数的下界xmin=-5.12;xmax=5.12;%-----函数值计算-----------function result=DEMB(XX); sol=XX; result=0;for i=1:D result=result sol(i)^2; %y=sum(XX.^2-10.*cos(2.*pi.*XX) 10);endend%---------------------------X0=(xmax-xmin)*rand(Np,D) xmin;X=X0;%%%%%%%%%%变异操作X1new=zeros(Np,D);%初始化X1_new=zeros(Np,D);%初始化X1=zeros(Np,D);%初始化value=zeros(1,Np);while Gxmin)&(bonCR %利用二项分布来交叉 X1_new(i,:)=X(i,:); else X1_new(i,:)=X1new(i,:); end end %%%%%%%%%%%%%%%竞争操作 for i=1:Np if DEMB(X1_new(i,:))
- 2021-05-06下载
- 积分:1