6.0000 最优解 ; fval =-12.0000 最优值;
output = iterations: 6 迭代次数;
algorithm: 'large-scale: interior point'所使用规则
2x1+x2<=10
x1,x2>=0
%多目标线性规划的求解方法及 MATLAB 实现
%利用理想点法求解
%eg:
%max f1(x)=-3x1+2x2
%max f2(x)=4x1+3x2
%s.t.: 2x1+3x2<=18
%
%
%解:先对单目标求解
%1,求解 f1(x)最优解的 MATLAB 程序为
f1=[3;-2];
A=[2,3;2,1];
b=[18;10];
lb=[0;0];
[x,fval,exitflag,output,lambda] = linprog(f1,A,b,[],[],lb)
%结果输出为:x=0.0000
%exitflag = 1 收敛 ;
%
lambda.ineqlin
%ans =
0.6667
%
%
0.0000
lambda.lower
%ans =
%
%
%不等约束条件 1 以及第 1 个下界是有效的
pause
%2,求解 f2(x)最优解的 MATLAB 程序为
f2=[-4;-3];
A=[2,3;2,1];
b=[18;10];
lb=[0;0];
[x,fval,exitflag,output,lambda] = linprog(f2,A,b,[],[],lb)
%结果输出为:x=3.0000
%即最优解是 24
%于是得到理想点(12, 24)。
pause
%3,然后求如下模型的最优解
%min fi[f(x)]={[f1(x)-12]^2+[f2(x)-24]^2}^(1/2)
%s.t.:… … …
A=[2,3;2,1];
b=[18;10];
x0=[1;1];
4.3333
0.0000
4.0000 最优解 ; fval =-24.0000 最优值;
0.5268
5.6488
lb=[0;0];
x=fmincon('(((-3*x(1)+2*x(2)-12)^2+(4*x(1)+3*x(2)-24)^2)^(1/2))',x0,A,b,[],[],lb,[])
%输出结果:x =
%
%
pause
%目标值为
f1x=(-f1)'*x
f2x=(-f2)'*x