基于MATLAB的多目标线性规划_理想点法求解程序代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%多目标线性规划的求解方法及MA TLAB实现
%利用理想点法求解
%eg:
%max f1(x)=-3x1+2x2
%max f2(x)=4x1+3x2
%s.t.: 2x1+3x2<=18
% 2x1+x2<=10
% x1,x2>=0
%解:先对单目标求解
%1,求解f1(x)最优解的MA TLAB程序为
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 6.0000 最优解; fval =-12.0000 最优值;
%exitflag = 1 收敛; output = iterations: 6 迭代次数;
% algorithm: 'large-scale: interior point'所使用规则lambda.ineqlin
%ans =
% 0.6667
% 0.0000
lambda.lower
%ans =
% 4.3333
% 0.0000
%不等约束条件1以及第1个下界是有效的
pause
%2,求解f2(x)最优解的MA TLAB程序为
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 4.0000 最优解; fval =-24.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];
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 =
% 0.5268
% 5.6488
pause
%目标值为
f1x=(-f1)'*x
f2x=(-f2)'*x