作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试获得两个适应度函数的帕累托最优前沿。我通过使用虚拟矩阵对非支配解进行排序,虚拟矩阵在矩阵中为任何非支配解分配“1”。当我绘制帕累托前沿时,它会不断包含我知道不属于帕累托最优的点。但是,我似乎找不到这个问题的原因。非常感谢任何帮助。
for i = 1:1000
f1(i) = x(i,1)^2;
f2(i) = (x(i,1)-2)^2;
end
store = zeros(1000,1);
for i = 1:1000
st = zeros(1000,1);
for j = 1:1000
if i == j
st(j) = 1;
continue; %Skip to next iteration.
end
if f1(i) > f1(j) && f2(i) > f2(j); %Check for "x-dominated"
continue;
else st(j) = 1; %Dummy 1000x1 matrix
end
end
if st == ones(1000,1) %Testing the dummy matrix for dominance
store(i) = x(i);
end
end
pareto = store(store ~= 0);
N = length(pareto);
for k = 1:N
f3(k) = x(k,1)^2;
f4(k) = (x(k,1)-2)^2;
end
最佳答案
不太确定您做了什么,但这就是我用有限点绘制帕累托前沿的方式。我认为这应该让您走上正轨:
t=1:10;
f1 = t.^2;
f2 = (t-2).^2;
ip = true(size(f1));
for k=1:numel(f1)
if any(f1<f1(k)&(f2<f2(k)))
ip(k) = false;
end
end
plot(f1,f2)
hold all
plot(f1(ip),f2(ip),'ro')
关于algorithm - 帕累托最优前沿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20760209/
我正在处理我的第一个代码,但我又遇到了一个新问题。 我在 vectorA 中有一堆值,我想执行以下 while 循环(伪代码): “创建一个变量double SUM = 0 和一个变量int coun
我是一名优秀的程序员,十分优秀!