找回密码
 注册
Simdroid-非首页
查看: 264|回复: 4

请问怎么把其余的pareto front 图画出来?

[复制链接]
发表于 2009-7-4 15:11:17 | 显示全部楼层 |阅读模式 来自 浙江宁波
我在做多目标优化(目标函数6个),用的遗传算法
在运行的时候好像只是显示目标函数1和目标函数2的pareto front图(如下图所示),其余的显示不出来、请问有什么办法把其余的图画出来?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2009-7-4 23:03:21 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
当你求出一组pareto解f时
默认是画出f1和f2的pareto解
需要画出其它的解,可以用
figure ()
scatter(f(:,fa)',f(:,fb)')
grid on

其中fa、fb分别为你需要的objective

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2009-7-7 22:12:50 | 显示全部楼层 来自 陕西西安
下面是3个目标优化的例子

%首先将下面存为一个m文件
function y = schaffer2(x) % y has two columns

% Initialize y for two objectives and for all x
y = zeros(length(x),3);

% Evaluate first objective.
% This objective is piecewise continuous.
for i = 1:length(x)
    if x(i) <= 1
        y(i,1) = -x(i);
    elseif x(i) <=3
        y(i,1) = x(i) -2;
    elseif x(i) <=4
        y(i,1) = 4 - x(i);
    else
        y(i,1) = x(i) - 4;
    end
end

% Evaluate second objective
y(:,2) = (x -5).^2;
y(:,3)=x+3;

%下面存为一个m文件和上面的同一个文件夹下,或者将下面直接命令窗口运行

x = -1:0.1:8;
y = schaffer2(x);

plot(x,y(:,1),'.r'); hold on
plot(x,y(:,2),'.b');

lb = -5;
ub = 10;

options = gaoptimset('PopulationSize',60,'PlotFcns',@gaplotpareto);
[x,f,exitflag] = gamultiobj(@schaffer2,1,[],[],[],[],lb,ub,options);

%第一个目标和第二个目标的pareto曲线
figure (1)
scatter(f(:,1)',f(:,2)')
grid on

%第二个目标和第三个目标的pareto曲线
figure (2)
scatter(f(:,2)',f(:,3)')
grid on

%第一个目标和第三个目标的pareto曲线
figure (3)
scatter(f(:,1)',f(:,3)')
grid on

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-3-1 20:12:12 | 显示全部楼层 来自 浙江杭州
谢谢akjuan的解答,受益匪浅
回复 不支持

使用道具 举报

发表于 2011-8-26 11:13:16 | 显示全部楼层 来自 江苏南京
3xs, l learn a lot
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-28 07:25 , Processed in 0.053387 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表