文档介绍:满足约束条件 2x1 2x2 -12
例:某工厂生产I、H两种产品,需要用到 A B, C三种设备,已知 有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方 面:
力求使利润不低于1500元;
考虑到市场需求,I、H两种产品的产量比应尽量保持 1: 2;
设备A为贵重设备,严格禁止超时使用;
设备C可以适当加班,但要控制;设备 B即要求充分利用,
又尽可能不加班。在重要性上,设备 C是设备B的3倍
I
n
设备的生产能
力/h
A (h/件)
2
2
12
B (h/件)
4
0
16
C (h/件)
0
5
15
利润元/件
200
300
解:此题中只有设备A是刚性约束,其余都是柔性约束。首先, 最重要的指标是企业的利润,将它的优先级列为第一级;其次是I、 H两种产品的产量保持1: 2的比例,列为第二级;再次,设备 B、C 的工作时间要有所控制,列为第三级。在第三级中,设备B的重要性 是设备C的3倍,因此它们的权重不一样,设备 B的系数是设备C 的3倍。
该计划问题可用数学模型表示为:
目 标 函 数 min
—, —,+ , — , +丄 +
满足约束条件 2x1 2x2 -12
Z 二 pd P2(d2 d2) P3(3d3 3d3 dj
200xi 300x2 di「- di =1500
2xr -x2 d2i-d2 = 0
4xi d3 d =16
5x2 dd4 二 15
花风©-© - 0,i =1,2,3
LINGO程序为:
求第一级目标。LINGO 程序如下:
model:
sets:
variable/1.. 2/:x;
S_Con_Num/1 ・・ 4/:g,dplus,dminus;
S_con(S_Con_Num,Variable):c;
endsets
data:
g=1500 0 16 15;
c=200 300 2 -1 4 0 0 5;
enddata
min=dminus(1);
2*x(1)+2*x(2)<12;
***@for(S_Con_Num(i):***@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i
)=g(i));
end
求得dminus(1)=0,即目标函数的最优值为 0,第一级偏差为0。
求第二级目标,LINGO 程序如下:
满足约束条件 2x1 2x2 -12
model:
sets:
variable/1.. 2/:x;
S_Con_Num/1 ・・ 4/:g,dplus,dminus;
S_con(S_Con_Num,Variable):c;
endsets
data:
g=1500 0 16 15;
c=200 300 2 -1 4 0 0 5;
enddata
min=dplus(2)+dminus(2);二级目标函数;
2*x(1)+2*x(2)<12;
***@for(S_Con_Num(i):***@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
dminus(1)=0;!—级目标约束;
***@for(variable:***@gin(x));
end
求得目标函数的最优值为0,即第二级的偏差仍为0。
满足约束条件 2x1 2x2 -12
求第三级目标,LINGO 程序如下:
model:
sets:
variable/1.. 2/:x;
S_Con_Num/1 ・・ 4/:g,dplus,dminus;
S_con(S_Con_Num,Variable):c;
endsets
data:
g=1500 0 16 15;
c=200 300 2 -1 4 0 0 5;
enddata
min=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数;
2*x(1)+2*x(2)<12;
***@for(S_Con_Num(i):***@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i
)=g(i));
dminus(1)=0;!—级目标约束;
dplus(2)+dminus(2)=0;二级目标约束;
end
目标函数的最优值为29,即第三级偏差为29。
分析计算结果,x1 = 2, 4 2 x = , 100 1 d + =,因此,目标规划的
最优解为x* = (2,4),
最优利润为1600。
上述过程虽然给出了目标规划问题的最优解, 但需要连续编几个
程序,这样在使