首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pareto最优前沿

Pareto最优前沿
EN

Stack Overflow用户
提问于 2013-12-24 11:36:35
回答 1查看 5.5K关注 0票数 3

我正在试图获得帕累托最优前沿的两个健身功能。我使用一个虚拟矩阵来对不占优解进行排序,它在矩阵中为任意不占优解分配“1”。当我绘制帕累托前沿时,它总是包含一些我知道不是帕累托最优部分的点。然而,我似乎找不到这个问题的原因。任何帮助都会很感激的。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-24 12:39:12

不太确定你做了什么,但这就是我用有限点画帕累托前线的方法。我觉得这应该能让你走上正轨:

代码语言:javascript
复制
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')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20760209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档