如何画全局优化问题的收敛曲线和多目标优化的Pareto前沿(使用gaoptimset函数)

目标优化算法中有全局优化和多目标优化问题,其中通过图形可以更加直接明显得表现目标函数的值和影响因素的值。
1.收敛曲线
收敛曲线是在全局优化的问题中,有一个目标函数,其中主要的一步是gaoptimset函数设置,‘PlotFcns’,设为@gaplotbestf,下面举一个例子。

这里写图片描述独立运行30次,提供30次中得到的最好目标函数值、最差目标函数值、平均目标函数值以及标准方差。

fun1函数:

function y=fun1(x) 
 y=0;
for i=1:1:30
    y=y+i*x(i)^4;
end
b1=2*rand()-1;
if(b1<0)
    b1=-b1;
end
y=y+b1;

main函数:

clear 
clc 
FVAL=zeros(1,30);
FVALCELL=cell(1,30);
for j=1:1:30
fitnessfcn=@fun2;
 nvars=30; 
 LB=-10.*ones(1,30);
 lb=LB; 
 UB=10.*ones(1,30);
 ub=UB; 
 A=[];b=[]; 
 Aeq=[];beq=[]; 
options=gaoptimset('paretoFraction',0.3,'populationsize',100,'generations',200,'stallGenLimit',200,'TolFun',1e-10,'PlotFcns',@gaplotbestf); 
[x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options);
FVAL(j)=fval
FVALCELL{j}=x;
end
fval_min=min(FVAL)
fval_max=max(FVAL)
fval_mean=mean(FVAL)
fval_std=std(FVAL)

结果如下:
这里写图片描述

计算结果(命令窗中显示)结果如下:

这里写图片描述

2.Pareto前沿
同收敛曲线一样,其中gaoptimset函数设置也是主要的一步,‘PlotFcns’,设为@gaplotpareto,下面也举一个例子。
这里写图片描述

fun1函数:

function y=fun1(x) 
n=30;
g1=0;
for i=2:1:n
    g1=g1+x(i);
end
g=1+9*g1/(n-1);
y(1)=x(1);
y(2)=g*(1-sqrt(x(1)/g));

main函数:

clear 
clc 
fitnessfcn=@fun1;
nvars=30; 
 LB=0.*ones(1,30);
 lb=LB; 
 UB=1.*ones(1,30);
 ub=UB; 
 A=[];b=[]; 
 Aeq=[];beq=[]; 

options=gaoptimset('paretoFraction',0.3,'populationsize',200,'generations',300,'stallGenLimit',200,'TolFun',1e-10,'PlotFcns',@gaplotpareto); 

[x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options)

得到的Pareto前沿图像:
这里写图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值