% Please refer to the main paper:
% MOMPA: a high performance multi-objective optimizer based on marine predator algorithm
% Long Chen, Fangyi Xu, Kezhong Jin and Zhenzhou Tang
% GECCO '21: Proceedings of the Genetic and Evolutionary Computation Conference Companion
% DOI: https://doi.org/10.1145/3449726.3459581
% AND
% Marine Predators Algorithm: A nature-inspired metaheuristic
% Afshin Faramarzi, Mohammad Heidarinejad, Seyedali Mirjalili, Amir H. Gandomi
% Expert Systems with Applications
% DOI: https://doi.org/10.1016/j.eswa.2020.113377
% _____________________________________________________
function [fobj, fcon,P] = mompa_getMOFcn(F, decisionVar, numObj)
[N,D] = size(decisionVar);
switch F
case 'ZDT1'
fobj(:, 1) = decisionVar(:, 1);
g = 1 + 9*mean(decisionVar(:,2:end),2);
h = 1 - (fobj(:,1)./g).^0.5;
fobj(:,2) = g.*h;
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P(:,1) = (0:1/(N-1):1)';
P(:,2) = 1 - P(:,1).^0.5;
case 'ZDT2'
fobj(:,1) = decisionVar(:,1);
g = 1 + 9*mean(decisionVar(:,2:end),2);
h = 1 - (fobj(:,1)./g).^2;
fobj(:,2) = g.*h;
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P(:,1) = (0:1/(N-1):1)';
P(:,2) = 1 - P(:,1).^2;
case 'ZDT3'
fobj(:,1) = decisionVar(:,1);
g = 1 + 9*mean(decisionVar(:,2:end),2);
h = 1 - (fobj(:,1)./g).^0.5 - fobj(:,1)./g.*sin(10*pi*fobj(:,1));
fobj(:,2) = g.*h;
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P(:,1) = (0:1/(N-1):1)';
P(:,2) = 1 - P(:,1).^0.5 - P(:,1).*sin(10*pi*P(:,1));
P = P(NDSort(P,fcon,1)==1,:);
case 'ZDT4'
fobj(:,1) = decisionVar(:,1);
g = 1 + 10*(size(decisionVar,2)-1) + sum(decisionVar(:,2:end).^2-10*cos(4*pi*decisionVar(:,2:end)),2);
h = 1 - (fobj(:,1)./g).^0.5;
fobj(:,2) = g.*h;
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P(:,1) = (0:1/(N-1):1)';
P(:,2) = 1 - P(:,1).^0.5;
case 'ZDT6'
fobj(:,1) = 1 - exp(-4*decisionVar(:,1)).*sin(6*pi*decisionVar(:,1)).^6;
g = 1 + 9*mean(decisionVar(:,2:end),2).^0.25;
h = 1 - (fobj(:,1)./g).^2;
fobj(:,2) = g.*h;
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
minf1 = 0.280775;
P(:,1) = (minf1:(1-minf1)/(N-1):1)';
P(:,2) = 1 - P(:,1).^2;
case 'DTLZ1'
M = numObj;
g = 100*(D-M+1+sum((decisionVar(:,M:end)-0.5).^2-cos(20.*pi.*(decisionVar(:,M:end)-0.5)),2));
fobj = 0.5*repmat(1+g,1,M).*fliplr(cumprod([ones(N,1),decisionVar(:,1:M-1)],2)).*[ones(N,1),1-decisionVar(:,M-1:-1:1)];
%......................
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P = UniformPoint(N,numObj)/2;
case 'DTLZ2'
M = numObj;
g = sum((decisionVar(:,M:end)-0.5).^2,2);
fobj = repmat(1+g,1,M).*fliplr(cumprod([ones(size(g,1),1),cos(decisionVar(:,1:M-1)*pi/2)],2)).*[ones(size(g,1),1),sin(decisionVar(:,M-1:-1:1)*pi/2)];
%......................
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P = UniformPoint(N,numObj);
P = P./repmat(sqrt(sum(P.^2,2)),1,numObj);
case 'DTLZ3'
M = numObj;
g = 100*(D-M+1+sum((decisionVar(:,M:end)-0.5).^2-cos(20.*pi.*(decisionVar(:,M:end)-0.5)),2));
fobj = repmat(1+g,1,M).*fliplr(cumprod([ones(N,1),cos(decisionVar(:,1:M-1)*pi/2)],2)).*[ones(N,1),sin(decisionVar(:,M-1:-1:1)*pi/2)];
%......................
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P = UniformPoint(N,M);
P = P./repmat(sqrt(sum(P.^2,2)),1,M);
case 'DTLZ4'
M = numObj;
decisionVar(:,1:M-1) = decisionVar(:,1:M-1).^100;
g = sum((decisionVar(:,M:end)-0.5).^2,2);
fobj = repmat(1+g,1,M).*fliplr(cumprod([ones(size(g,1),1),cos(decisionVar(:,1:M-1)*pi/2)],2)).*[ones(size(g,1),1),sin(decisionVar(:,M-1:-1:1)*pi/2)];
%......................
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P = UniformPoint(N,M);
P = P./repmat(sqrt(sum(P.^2,2)),1,M);
case 'DTLZ5'
M = numObj;
g = sum((decisionVar(:,M:end)-0.5).^2,2);
Temp = repmat(g,1,M-2);
decisionVar(:,2:M-1) = (1+2*Temp.*decisionVar(:,2:M-1))./(2+2*Temp);
fobj = repmat(1+g,1,M).*fliplr(cumprod([ones(size(g,1),1),cos(decisionVar(:,1:M-1)*pi/2)],2)).*[ones(size(g,1),1),sin(decisionVar(:,M-1:-1:1)*pi/2)];
%......................
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P = [0:1/(N-1):1;1:-1/(N-1):0]';
P = P./repmat(sqrt(sum(P.^2,2)),1,size(P,2));
P = [P(:,ones(1,M-2)),P];
P = P./sqrt(2).^repmat([M-2,M-2:-1:0],size(P,1),1);
case 'DTLZ6'
M = numObj;
g = sum(decisionVar(:,M:end).^0.1,2);
Temp = repmat(g,1,M-2);
decisionVar(:,2:M-1) = (1+2*Temp.*decisionVar(:,2:M-1))./(2+2*Temp);
fobj = repmat(1+g,1,M).*fliplr(cumprod([ones(size(g,1),1),cos(decisionVar(:,1:M-1)*pi/2)],2)).*[ones(size(g,1),1),sin(decisionVar(:,M-1:-1:1)*pi/2)];
%......................
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
P = [0:1/(N-1):1;1:-1/(N-1):0]';
P = P./repmat(sqrt(sum(P.^2,2)),1,size(P,2));
P = [P(:,ones(1,M-2)),P];
P = P./sqrt(2).^repmat([M-2,M-2:-1:0],size(P,1),1);
case 'DTLZ7'
M = numObj;
fobj = zeros(size(decisionVar,1),M);
g = 1+9*mean(decisionVar(:,M:end),2);
fobj(:,1:M-1) = decisionVar(:,1:M-1);
fobj(:,M) = (1+g).*(M-sum(fobj(:,1:M-1)./(1+repmat(g,1,M-1)).*(1+sin(3*pi.*fobj(:,1:M-1))),2));
%......................
fcon(:, 1:D) = -decisionVar;
fcon(:, D+1: 2*D) = decisionVar - 1;
interval = [0,0.251412,0.631627,0.859401];
median = (interval(2)-interval(1))/(interval(4)-interval(3)+interval(2)-interval(1));
X = ReplicatePoint(N,M-1);
X(X<=median) = X(X<=median)*(interval(2)-interval(1))/median+interval(1);
X(X>median) = (X(X>median)-median)*(interval(4)-interval(3))/(1-median)+interval(3);
P = [X,2*(M-sum(X/2.*(1+sin(3*pi.*X)),2))];
case 'WFG1'
M = numObj;
K = M-1;
L = D - K;
D = 1;
S = 2 : 2 : 2*M;
A = ones(1,M-1);
z01 = decisionVar./repmat(2:2:size(decisionVar,2)*2,N,1);
t1 = zeros(N,K+L);
t1(:,1:K) = z01(:,1:K);
t1(:,K+1:end) = WFG_s_linear(z01(:,K+1:end),0.35);
t2 = zeros(N,K+L);
t2(:,1:K) = t1(:,1:K);
t2(:,K+1:end) = WFG1_b_flat(t1(:,K+1:end),0.8,0.75,0.85);
t3 = zeros(N,K+L);
t3 = WFG1_b_poly(t2,0.02);
t4 = zeros(N,M);
for i = 1 : M-1
t4(:,i) = WFG_r_sum(t3(:,(i-1)*K/(M-1)+1:i*K/(M-1)),2*((i-1)*K/(M-1)+1):2:2*i*K/(M-1));
end
t4(:,M) = WFG_r_sum(t3(:,K+1:K+L),2*(K+1):2:2*(K+L));
x = zeros(N,M);
for i = 1 : M-1
x(:,i) = max(t4(:,M),A(i)).*(t4(:,i)-0.5)+0.5;
end
x(:,M) = t4(:,M);
h = WFG_convex(x);
h(:,M) = WFG1_mixed(x);
fobj = repmat(D*x(:,M),1,M) + repmat(S,N,1).*h;
%......................
fcon = -decisionVar;
P = UniformPoint(N,M);
c = ones(size(P,1),M);
for i = 1 : size(P,1)
没有合适的资源?快使用搜索试试~ 我知道了~
matlab【多目标优化算法】MOMPA附代码
共10个文件
m:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 115 浏览量
2024-03-23
14:10:29
上传
评论
收藏 14KB ZIP 举报
温馨提示
【matlab】【多目标优化算法】【MOMPA】【附代码】 【matlab】【多目标优化算法】【MOMPA】【附代码】 【matlab】【多目标优化算法】【MOMPA】【附代码】 【matlab】【多目标优化算法】【MOMPA】【附代码】 【matlab】【多目标优化算法】【MOMPA】【附代码】 【matlab】【多目标优化算法】【MOMPA】【附代码】 【matlab】【多目标优化算法】【MOMPA】【附代码】 【matlab】【多目标优化算法】【MOMPA】【附代码】 【matlab】【多目标优化算法】【MOMPA】【附代码】 【matlab】【多目标优化算法】【MOMPA】【附代码】
资源推荐
资源详情
资源评论
收起资源包目录
MOMPA.zip (10个子文件)
MOMPA
UniformPoint.m 2KB
main.m 2KB
EnvironmentalSelection.m 5KB
mompa.m 6KB
mompa_Gaussian_search.m 1010B
mompa_initialization.m 1KB
mompa_getMOFcn.m 22KB
mompa_levy.m 991B
NDSort.m 7KB
mompa_IGD.m 1KB
共 10 条
- 1
资源评论
资源存储库
- 粉丝: 1w+
- 资源: 396
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- java学籍管理系统源码带本地搭建教程数据库 MySQL源码类型 WebForm
- php+mysql学生成绩查询(系统)
- Bazel 的 Go 规则.zip
- Android ListView下拉刷新 Demo.zip
- Python实现基于一维卷积神经网络(1D-CNN)的多元时间序列分类源码+文档说明
- java基于springBoot课程评价系统源码数据库 MySQL源码类型 WebForm
- 5G工业无线路由器说明书
- SunshineLife个人博客是基于django+mysql+layui的小型个人博客网站
- 5G终端拔号脚本(AT), 适用于MT5701
- 基于Python + Django的生鲜超市系统 调用alipay沙盒系统支付
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功