赞
踩
目录
某公司考虑生产两种光电太阳能电池:产品甲和产品乙。这种生产会引起空气放射性污染。因此,公司经理有两个目标:极大化利润与极小化总的放射性污染。已知在一个生产周期内,每单位产品的收益、放射性污染排放量、机器能力(小时)、装配能力(人时)和可用的原材料(单位)的限制如表16.1所示。假设市场需求无限制,两种产品的产量和至少为10,则公司该如何安排一个生产周期内的生产。
设分别表示甲乙两种产品在一个生产周期内的产量分别为和
,则该问题的目标函数为利润极大化:max f1=2
+3
污染极小化:min f
2=
+2
得:
该方法应用的关键是要确定每个目标的权重,它反映不同目标在决策者心中的重要程度,重要程度高的权重就大,重要程度低的权重就小。权重的确定一般由决策者给出,因而具有较大的主观性,不同的决策者给的权重可能不同,从而会使计算的结果不同。
1.两个目标函数的权重都取为0.5,把上述多目标规划问题归结为如下的线性规划问题
2.多目标规划问题中,绝对最优解是不常见的,因此只提满意解或者有效解
- clc,clear
- prob=optimproblem;%默认目标函数最小化
- x=optimvar('x',2,1,'LowerBound',0);%决策变量2*1
- prob.Objective = -0.5*x(1)-0.5*x(2);%目标函数
- %约束条件
- prob.Constraints.cons1 = 0.5*x(1)+0.25*x(2)<=8;
- prob.Constraints.cons2 = 0.2*x(1)+0.2*x(2)<=4;
- prob.Constraints.cons3 = x(1)+5*x(2)<=72;
- prob.Constraints.cons4 = x(1)+x(2)>=10;
- [sol,fval,flag,out]=solve(prob)
- sol.x
结果:和
分别等于7和13, max f1=2
+3
=53, min f2=
+2
=33
以每个单目标最优值为该目标的理想值,使每个目标函数值与理想值的差的加权平方和最小。
- clc,clear
- prob=optimproblem;%默认目标函数最小化
- x=optimvar('x',2,1,'LowerBound',0);%决策变量2*1
- prob.Objective = -2*x(1)-3*x(2);%目标函数
- %约束条件
- prob.Constraints.cons1 = 0.5*x(1)+0.25*x(2)<=8;
- prob.Constraints.cons2 = 0.2*x(1)+0.2*x(2)<=4;
- prob.Constraints.cons3 = x(1)+5*x(2)<=72;
- prob.Constraints.cons4 = x(1)+x(2)>=10;
- [sol,fval,flag,out]=solve(prob)
- sol.x
结果:和
分别等于7和13, 最优解f1=-2
-3
=-53
- clc,clear
- prob=optimproblem;%默认目标函数最小化
- x=optimvar('x',2,1,'LowerBound',0);%决策变量2*1
- prob.Objective = x(1)+2*x(2);%目标函数
- %约束条件
- prob.Constraints.cons1 = 0.5*x(1)+0.25*x(2)<=8;
- prob.Constraints.cons2 = 0.2*x(1)+0.2*x(2)<=4;
- prob.Constraints.cons3 = x(1)+5*x(2)<=72;
- prob.Constraints.cons4 = x(1)+x(2)>=10;
- [sol,fval,flag,out]=solve(prob)
- sol.x
结果:和
分别等于10和0, 最优解 f2=
+2
=10
构造每个目标与最优值的差的平方和,作为新的目标函数,求解二次规划问题
- clc,clear
- prob=optimproblem;%默认目标函数最小化
- x=optimvar('x',2,1,'LowerBound',0);%决策变量2*1
- prob.Objective = (-2*x(1)-3*x(2)+53)^2+(x(1)+2*x(2)-10)^2;%目标函数
- %约束条件
- prob.Constraints.cons1 = 0.5*x(1)+0.25*x(2)<=8;
- prob.Constraints.cons2 = 0.2*x(1)+0.2*x(2)<=4;
- prob.Constraints.cons3 = x(1)+5*x(2)<=72;
- prob.Constraints.cons4 = x(1)+x(2)>=10;
- [sol,fval,flag,out]=solve(prob)
- sol.x
结果:和
分别等于13.36和5.28, max f1=2
+3
=42.56, min f2=
+2
=23.92
根据目标重要性分成不同优先级,先求优先级高的目标函数的最优值,在确保优先级高的目标获得不低于最优值的条件下,再求优先级低的目标函数。该方法适用于目标有明显轻重之分的问题,也就是说,各目标的重要性差距比较大,首先确保最重要的目标,然后再考虑其他目标。在同一等级的目标可能会有多个,这些目标的重要性没有明显差的距,可以用加权方法求解。
由理想点解知,第一个目标函数的最优值为-53。以第二个目标函数作为目标函数,问题的原始约束条件再加第一个目标函数等于其最优值的约束条件,构造如下的线性规划模型
- clc,clear
- prob=optimproblem;%默认目标函数最小化
- x=optimvar('x',2,1,'LowerBound',0);%决策变量2*1
- prob.Objective = x(1)+2*x(2);%目标函数
- %约束条件
- prob.Constraints.cons1 = 0.5*x(1)+0.25*x(2)<=8;
- prob.Constraints.cons2 = 0.2*x(1)+0.2*x(2)<=4;
- prob.Constraints.cons3 = x(1)+5*x(2)<=72;
- prob.Constraints.cons4 = x(1)+x(2)>=10;
- prob.Constraints.cons5 = -2*x(1)-3*x(2)==-53;
- [sol,fval,flag,out]=solve(prob)
- sol.x
结果:和
分别等于7和13, max f1=2
+3
=53, min f2=
+2
=33
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。