%% %%%%%%%%%%%%%%%%多目标测试函数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%SCH、FON、POL、KUR、ZDT来自文献---A Fast and Elitist Multiobjective Genetic Algorithm:NSGA-II
%DTLZ来自文献--Scalable Multi-Objective Optimization Test Problems
%MOP来自文献---Decomposition of a Multiobjective Optimization Probleminto a Number of Simple Multiobjective Subproblems
function y=muti_fun(x,type)
global D
if type==1 %SCH----维度1---边界范围[-10^3,10^3]
y(1)=x.^2;
y(2)=(x-2).^2;
elseif type==2 %FON-------维度3----边界范围[-4,4]
L=3;
sumFON1=0;
sumFON2=0;
for i=1:L
sumFON1=sumFON1+(x(i)-1/sqrt(3)).^2;
sumFON2=sumFON2+(x(i)+1/sqrt(3)).^2;
end
y(1)=1-exp(-sumFON1);
y(2)=1-exp(-sumFON2);
elseif type==3 %POL-----维度2-----边界范围[-pi,pi]
A1=0.5*sin(1)-2*cos(1)+sin(2)-1.5*cos(2);
A2=1.5*sin(1)-cos(1)+2*sin(2)-0.5*cos(2);
B1=0.5*sin(x(1))-2*cos(x(1))+sin(x(2))-1.5*cos(x(2));
B2=1.5*sin(x(1))-cos(x(1))+2*sin(x(2))-0.5*cos(x(2));
y(1)=1+(A1-B1).^2+(A2-B2).^2;
y(2)=(x(1)+3).^2+(x(2)+1).^2;
elseif type==4 %KUR-----------维度3-----边界范围[-5,5]
sumKUR1=0;
sumKUR2=0;
for i=1:D-1
sumKUR1=sumKUR1+(-10*exp(-0.2*sqrt(x(i).^2+x(i+1).^2)));
end
for i=1:D
sumKUR2=sumKUR2+abs(x(i)).^(0.8)+5*sin(x(i).^3);
end
y(1)=sumKUR1;
y(2)=sumKUR2;
elseif type==5 %ZDT1----维度30----边界范围[0,1]
y(1)=x(1);
y(2)=1-sqrt(y(1)/g(x));
elseif type==6 %ZDT2----维度30----边界范围[0,1]
y(1)=x(1);
y(2)=1-(y(1)/g1(x)).^2;
elseif type==7 %ZDT3----维度30----边界范围[0,1]
y(1)=x(1);
y(2)=1-sqrt(y(1)/g1(x))-(y(1)/g1(x))*sin(10*pi*y(1));
elseif type==8 %ZDT4----维度10----边界范围x1=[0,1],x(2,...,10)=[-5,5]
y(1)=x(1);
y(2)=1-sqrt(y(1)/g2(x));
elseif type==9 %ZDT6----维度10----边界范围[0,1]
y(1)=1-exp(-4*x(1))*sin(6*pi*x(1)).^6;
y(2)=1-(y(1)/g3(x)).^2;
elseif type==10 %MOP1----维度10----边界范围[0,1]
y(1)=(1+g4(x))*x(1);
y(2)=(1+g4(x))*(1-sqrt(x(1)));
elseif type==11 %MOP2----维度10----边界范围[0,1]
y(1)=(1+g5(x))*x(1);
y(2)=(1+g5(x))*(1-x(1).^2);
elseif type==12 %MOP3----维度10----边界范围[0,1]
y(1)=(1+g6(x))*cos((pi*x(1))/2);
y(2)=(1+g6(x))*sin((pi*x(1))/2);
elseif type==13 %MOP4----维度10----边界范围[0,1]
y(1)=(1+g7(x))*x(1);
y(2)=(1+g7(x))*(1-x(1).^2*cos(2*pi*x(1)).^2);
elseif type==14 %MOP5----维度10----边界范围[0,1]
y(1)=(1+g8(x))*x(1);
y(2)=(1+g8(x))*(1-sqrt(x(1)));
elseif type==15 %MOP6----三目标----维度10----边界范围[0,1]
y(1)=(1+g9(x))*x(1)*x(2);
y(2)=(1+g9(x))*x(1)*(1-x(2));
y(3)=(1+g9(x))*(1-x(1));
elseif type==16 %MOP7----三目标----维度10----边界范围[0,1]
y(1)=(1+g10(x))*cos((x(1)*pi)/2)*cos((x(2)*pi)/2);
y(2)=(1+g10(x))*cos((x(1)*pi)/2)*sin((x(2)*pi)/2);
y(3)=(1+g10(x))*sin((x(1)*pi)/2);
elseif type==17 %DTLZ1----三目标----维度7----边界范围[0,1]---定义k=5
y(1)=(1/2)*x(1)*x(2)*(1+g11(x));
y(2)=(1/2)*x(1)*(1-x(2))*(1+g11(x));
y(3)=(1/2)*(1-x(1))*(1+g11(x));
elseif type==18 %DTLZ2----三目标----维度7----边界范围[0,1]---定义k=10
y(1)=(1+g12(x))*cos((pi/2)*x(1))*cos((pi/2)*x(2));
y(2)=(1+g12(x))*cos((pi/2)*x(1))*sin((pi/2)*x(2));
y(3)=(1+g12(x))*sin((pi/2)*x(1));
elseif type==19 %DTLZ3----三目标----维度12----边界范围[0,1]---定义k=5--k=n-m+1
y(1)=(1+g11(x))*cos((pi/2)*x(1))*cos((pi/2)*x(2));
y(2)=(1+g11(x))*cos((pi/2)*x(1))*sin((pi/2)*x(2));
y(3)=(1+g11(x))*sin((pi/2)*x(1));
elseif type==20 %DTLZ4----三目标----维度12----边界范围[0,1]---定义k=10
a=100;
y(1)=(1+g12(x))*cos((pi/2)*x(1).^a)*cos((pi/2)*x(2).^a);
y(2)=(1+g12(x))*cos((pi/2)*x(1).^a)*sin((pi/2)*x(2).^a);
y(3)=(1+g12(x))*sin((pi/2)*x(1).^a);
elseif type==21 %DTLZ5----三目标----维度12----边界范围[0,1]---定义k=10
y(1)=(1+g12(x))*cos(x(1)*(pi/2))*cos((pi/(4*(1+g12(x))))*(1+2*g12(x)*x(2))*(pi/2));
y(2)= (1+g12(x))*cos(x(1)*(pi/2))*sin((pi/(4*(1+g12(x))))*(1+2*g12(x)*x(2))*(pi/2));
y(3)=(1+g12(x))*sin(x(1)*(pi/2));
elseif type==22 %DTLZ6----三目标----维度12----边界范围[0,1]---定义k=20
y(1)=(1+g13(x))*cos(x(1)*(pi/2))*cos((pi/(4*(1+g13(x))))*(1+2*g13(x)*x(2))*(pi/2));
y(2)= (1+g13(x))*cos(x(1)*(pi/2))*sin((pi/(4*(1+g13(x))))*(1+2*g13(x)*x(2))*(pi/2));
y(3)=(1+g13(x))*sin(x(1)*(pi/2));
elseif type==23 %DTLZ7--三目标---边界范围[0,1]---k=28
y(1)=x(1);
y(2)=x(2);
y(3)=(1+g14(x))*h(x);
end
end
%% 下面是各测试集函数子函数
function f=g(x)
global D
f=1+9*(sum(x(2:D))/(D-1));
end
function f=g1(x)
global D
f=1+9*(sum(x(2:D))/(D-1));
end
function f=g2(x)
global D
D=10;
f=0;
for i=2:D
f=f+x(i).^2-10*cos(4*pi*x(i));
end
f=f+1+10*(D-1);
end
function f=g3(x)
global D
f=1+9*(sum(x(:,2:D))/(D-1)).^0.25;
end
function f=g4(x) %MOP1
global D
f=0;
for i=2:D
t(i)=x(i)-sin(0.5*pi*x(1));
f=-0.9*t(i).^2+abs(t(i)).^0.6+f;
end
f=f*2*sin(pi*x(1));
end
function f=g5(x) %MOP2
global D
f=0;
for i=2:D
t(i)=x(i)-sin(0.5*pi*x(1));
f=(abs(t(i))/(1+exp(5*abs(t(i)))))+f;
end
f=f*10*sin(pi*x(1));
end
function f=g6(x) %MOP3
global D
f=0;
for i=2:D
t(i)=x(i)-sin(0.5*pi*x(1));
f=(abs(t(i))/(1+exp(5*abs(t(i)))))+f;
end
f=f*10*sin(pi*x(1)*(1/2));
end
function f=g7(x) %MOP4
global D
f=0;
for i=2:D
t(i)=x(i)-sin(0.5*pi*x(1));
f=(abs(t(i))/(1+exp(5*abs(t(i)))))+f;
end
f=f*10*sin(pi*x(1));
end
function f=g8(x) %MOP5
global D
f=0;
for i=2:D
t(i)=x(i)-sin(0.5*pi*x(1));
f=-0.9*t(i).^2+abs(t(i)).^0.6+f;
end
f=f*2*abs(cos(pi*x(1)));
end
function f=g9(x) %MOP6
global D
f=0;
for i=2:D
t(i)=x(i)-x(1)*x(2);
f=-0.9*t(i).^2+abs(t(i)).^0.6+f;
end
f=f*2*sin(pi*x(1));
end
function f=g10(x) %MOP7
global D
f=0;
for i=3:D
t(i)=x(i)-x(1)*x(2);
f=-0.9*t(i).^2+abs(t(i)).^0.6+f;
end
f=f*2*sin(pi*x(1));
end
function f=g11(x) %DTLZ1 DTLZ3
global D k
f=0;
for i=3:D
f=(x(i)-0.5).^2-cos(20*pi*(x(i)-0.5))+f;
end
f=(f+k)*100;
end
function f=g12(x) %DTLZ2 DTLZ4 DTLZ5
global D
f=0;
for i=3:D
f=f+(x(i)-0.5).^2;
end
end
function f=g13(x) % DTLZ6
global D
f=0;
for i=3:D
f=f+x(i).^0.1;
end
end
function f=g14(x) %DTLZ7
global D k
f=0;
for i=3:D
f=f+x(i);
end
f=1+(9/k)*f;
end
function g=h(x)
global f_num
g=0;
for i=1:f_num-1
g=g+(x(i)/(1+g14(x)))*(1+sin(3*pi*x(i)));
end
g=f_num-g;
end
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
matlab还原算法MODEA代码,包含各性能度量和多目标测试函数代码;代码参考文献:An efficient Differential Evolution based algorithm for solving multi-objective optimization problems
资源推荐
资源详情
资源评论
收起资源包目录
MODEA.zip (12个子文件)
MODEA
diversity_metric_derta.m 1KB
paretoFun.m 2KB
spacing_metric.m 524B
convergenec_metric_r.m 453B
IGD_metric.m 608B
Elitism.m 1KB
muti_fun.m 7KB
tournamentSelect.m 3KB
MODEA.m 6KB
GD_metric.m 572B
NondominationSort.m 3KB
CrowdingDistance.m 3KB
共 12 条
- 1
秋刀鱼程序编程
- 粉丝: 484
- 资源: 110
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- asp.net 原生js代码及HTML实现多文件分片上传功能(自定义上传文件大小、文件上传类型)
- whl@pip install pyaudio ERROR: Failed building wheel for pyaudio
- Constantsfd密钥和权限集合.kt
- 基于Java的财务报销管理系统后端开发源码
- 基于Python核心技术的cola项目设计源码介绍
- 基于Python及多语言集成的TSDT软件过程改进设计源码
- 基于Java语言的歌唱比赛评分系统设计源码
- 基于JavaEE技术的课程项目答辩源码设计——杨晔萌、李知林、岳圣杰、张俊范小组作品
- 基于Java原生安卓开发的蔚蓝档案娱乐应用设计源码
- 基于Java、Vue、JavaScript、CSS、HTML的毕设设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页