帕累托最优前沿 [英] Pareto Optimal Front

查看:7298
本文介绍了帕累托最优前沿的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获得帕累托最优前两个​​健身功能。予通过使用在基体为任何undominated溶液1的分配一个虚设矩阵排序的undominated解决方案。当我绘制帕累托前它让包括我知道是不是帕累托最优的一部分分。不过,我似乎无法找到这个问题的原因。任何帮助将是非常美联社preciated。

I am trying to obtain the pareto optimal front for the two fitness functions. I sorted the undominated solutions by using a dummy matrix that allocated "ones" in the matrix for any undominated solution. When I plot the pareto front it keeps including points that I know are not part of the pareto optimal. However, I cannot seem to find the cause of this problem. Any help would be really appreciated.

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

推荐答案

不能确定你做了什么,但是这是我会怎样绘制帕累托前沿有限分。我想这应该让你的轨道上:

Not really sure what you did, but this is how I would draw the pareto front with finite points. I think this should get you on track:

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')

这篇关于帕累托最优前沿的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆