差分进化算法(DifferentialEvolution,DE)实例详解
差分进化算法是(differentialevolution,DE)是基于群体智能理论的优化算法,是通过群体内个体间的合作与竞争⽽产⽣的智能优化搜
索算法。对⽐进化计算,它保留了基于种群的全局搜索策略,采⽤实数编码、基于差分的简单变异操作和“⼀对⼀”的竞争⽣存策略,降低
了进化计算操作的复杂性。
1主要特点
结构简单、容易使⽤
性能优越
⾃适应性
具有内在的并⾏性
算法通⽤
2算法流程
2.1初始化
随机⽣成初试种群X:Xn(n=1,2......NP)。
2.2变异
基于个体间的向量加减运算:Vn=Xn1+F(Xn2-Xn3),n1、n2、n3各不相同(NP>=4),F为变异算⼦,F=[02]是⼀个实常数因数,变
异种群V。
2.3交叉
不同于进化计算中对个体间进⾏交叉操作,差分进化计算对每个个体的维度在变异种群V和初始种群X间进⾏⼀致性交叉操作且⾄少保证⼀
次交叉,CR交叉算⼦,交叉种群U。
2.4选择
按照适应度⽐较,在初始种群X和交叉种群U中进⾏选择操作,形成下⼀代种群X。
2.5边界条件处理
2种⽅案,⼀是重新⽣成,⼆是边界吸收。
3关键参数
3.1种群数量NP
⼀般在5D-10D之间,D为变量维度。
3.2变异算⼦F
F=[02]是⼀个实常数因数,F过⼩容易早熟,F过⼤易陷⼊局部最优,⼀般取0.4-1,更好的是0.5。
3.3交叉算⼦CR
CR=[01],⼀般取0.1,过⼤容易加速收敛。
3.4最⼤进化代数G
⼀般取100-500。
4仿真实例
问题:f(x,y)=3cos(xy)+x+y,x、y=[-44],求最⼩值。
4.1问题画图
x=-4:0.02:4;
y=-4:0.02:4;
n=size(x,2);
fori=1:n
forj=1:n
z(i,j)=3*cos(x(i)*y(j))+x(i)+y(j);
end
end
mesh(x,y,z);
xlabel('x');
ylabel('y');
4.2代码求解
4.2.1种群初始化
%%%%%初始化参数
NP=20;
D=2;
G=100;
F0=0.5;
CR=0.1;
xs=4;
xx=-4;
%%%%%初始种群
x=rand(D,NP)*(xs-xx)+xx;%初始种群
v=zeros(D,NP);%变异种群
u=zeros(D,NP);%交叉种群
4.2.2适应度计算
%%%%%计算适应度
fornp=1:NP
ob(np)=func2(x(:,np));
end
%%%%%适应度函数
functionresult=func2(x)
z=3*cos(x(1)*x(2))+x(1)+x(2);
result=z;
end
4.2.3变异操作
trace(1)=min(ob);
%循环算法
forgen=1:G
%%%%%变异
lamda=exp(1-G/(G+1-gen));
F=F0*2^lamda;
fori=1:NP
r1=randi(NP);
whiler1==i
r1=randi(NP);
end
r2=randi(NP);
whiler2==i||r2==r1
r2=randi(NP);
end
r3=randi(NP);
whiler3==i||r3==r2||r3==r1
r3=randi(NP);
end
v(:,i)=x(:,r1)+F*(x(:,r2)-x(:,r3));
end
4.2.4交叉操作
%%%%%交叉
r=randi(D);
fori=1:D
cr=rand;
ifcr
u(i,:)=v(i,:);
el
u(i,:)=x(i,:);
end
end
4.2.5边界条件处理
%%%%%边界条件处理
fori=1:D
forj=1:NP
ifu(i,j)
u(i,j)=xx;%采取边界吸收原则,因为最⼩值就在边界上
elifu(i,j)>xs
u(i,j)=xs;
end
end
end
end
4.2.6选择操作
%%%%%选择
fornp=1:NP
nob(np)=func2(u(:,np));
end
fornp=1:NP
ifnob(np)
x(:,np)=u(:,np);
end
end
fornp=1:NP
ob(np)=func2(x(:,np));
end
trace(gen+1)=min(ob);
end
4.2.7结果输出
%%%%%结果和画图
Y=min(ob);
[nindex]=find(ob==Y);
X=x(:,index)';
figure;
plot(trace);
xlabel('迭代次数');
ylabel('⽬标函数值');
title('DE⽬标曲线曲线');
4.3问题结果
[xy]=[-3.9478-4.0000],ans=-10.9374。
本文发布于:2023-01-02 12:11:03,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/77605.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |