我在使用MATLAB找到非支配解决方案的强度方面存在问题
目标函数。
实际上,我知道它的概念及其if条件陈述,但我无法提取所需的
数据。
没有细节和困惑,
我认为下图清楚地解释了我的问题:
绘制垂直和水平黑线只是为了知道红点
由蓝点覆盖。
对蓝点1的处理也对其他蓝点2和3进行了
就是这样
最终输出向量应为:
[ 4 4 2 ]
我试过的是:
clear all
clc
% the non dominated solutions are:
N = [ 1.5 3
2.5 1.5
4 0.5 ] ;
% And the dominated solutions are:
D = [2 4
2.5 3
3 1.5
3 4
4 1
4 3 ] ;
n=size(N);
d=size(D);
for i=1:n(1)
for j=1:d(1)
if N(i,1)<=D(j,1) && N(i,2)<=D(j,2)
%%%%%%%%%%%%%%%%%%%%%%%%%
% I have a problem here %
%%%%%%%%%%%%%%%%%%%%%%%%%
end
end
end
任何帮助都非常感谢
答案 0 :(得分:0)
clear all
N = [1.5 3; 2.5 1.5; 4 0.5];
D = [2 4; 2.5 3; 3 1.5; 3 4; 4 1; 4 3];
inds = false(size(D,1),size(N,1));
for ii = 1:size(N,1);
inds(:,ii) = D(:,1) >= N(ii,1) & D(:,2) >= N(ii,2);
end
results = sum(inds);
[d n] = find(inds);
for ii = 1:size(N,1)
disp(N(ii,:))
disp([d(n == ii) D(inds(:,ii),:)])
end
结果包含您在第一篇文章中提到的内容
d包含从D矩阵中选择的点的索引,为点N(n(i),:)选择点D(d(i),:),是否足够清楚? :)