多目标差分进化算法(Matlab代码实现)
原创
©著作权归作者所有:来自51CTO博客作者荔枝科研社的原创作品,请联系作者获取转载授权,否则将追究法律责任
💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
此算法是在多目标差分优化算法的基础上修改而来。
📚2 运行结果
部分代码:
%% Main call
function J=CostFunction(X,Dat)if strcmp(Dat.CostProblem,'DTLZ2')
J=DTLZ2(X,Dat);
elseif strcmp(Dat.CostProblem,'YourProblem')
% Here comes the call for a cost function of your own multi objective
% problem.
end%% DTLZ2 Benchmark function. Defined in:
% K. Deb, L. Tiele, M. Laummans, and E. Zitzler. Scalable test problems
% for evolutionary multi-objective optimization. Institut fur Technische
% Informatik und Kommunikationsnetze, ETH Zurich, Tech. Rep. TIK-Technical
% Report No. 112, Feb. 2001.
function J=DTLZ2(X,Dat)Xpop=size(X,1);
Nvar=Dat.NVAR;
M=Dat.NOBJ;
K=Nvar+1-M;
J=ones(Xpop,M);for xpop=1:Xpop
Gxm=(X(xpop,M:Nvar)-0.5*ones(1,K))*(X(xpop,M:Nvar)-0.5*ones(1,K))';
Cos=cos(X(xpop,1:M-1)*pi/2); J(xpop,1)=prod(Cos)*(1+Gxm);
for nobj=1:M-1
J(xpop,nobj+1)=(J(xpop,1)/prod(Cos(1,M-nobj:M-1)))...
*sin(X(xpop,M-nobj)*pi/2);
end
end
🎉3 参考文献
[1]Storn, R., Price, K., 1997. Differential evolution: A simple and efficient heuristic for global optimization over continuous spaces. Journal of Global Optimization 11, 341 – 359."
🌈4 Matlab代码实现