新鲜 / 健康 / 便利 / 快速 / 放心
options=gaoptimset('paretoFraction',0.3,'populationsize',100'generations',200,'stallGenLimit',200,'TolFun',1e-10,'PlotFcns',@gaplotpareto);
paretoFraction
:最优个体系数这里设为0.3populationsize
:种群大小这里设为100generations
:最大进化代数这里设为200stallGenLimit
:停止代数这里设为200TolFun
:适应度函数偏差这里设为1e-10gaplotpareto
:绘制Pareto前沿[X,FVAL]=gamultiobj(fitnessfcn,nvars,A,b, Aeq,beq,lb,ub,nonlcon,options))
fitnessfcn
:函数句柄。nvars
:变量个数。ub,lb
:上下限。A,b
:线性不等式约束。Aeq,beq
:线性等式约束。%%这里定义该函数
function y=Fun(x)
y(1)=x(1);
y(2)=(1+x(2))/x(1);
%%这里赋初值并且进行多目标优化的计算
fitnessfcn=@Fun;
nvars=2;
lb=[0.1,0];
ub=[1,5];
A=[-9,-1;-9,1];
b=[-6;-1];
Aeq=[];
beq=[];
options=gaoptimset('paretoFraction',0.4,'populationsize',200,'generations',300,'stallGenLimit',300,'TolFun',1e-10,'PlotFcns',@gaplotpareto);
[x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options)
fval
然后用 scatter3
进行绘制。scatter3(fval(:,1),fval(:,2),fval(:,3))