题目:某工厂要用三种原材料C、P、H混合调配出三种不同规格的产品A、B、D。已知产品的规格要求,产品单价,每天能供应的原材料数量及原材料单价分别见下表1和2。该厂应如何安排生产,使利润收入为最大?

表1

产品名称

规格要求

单价(元/kg)

A

原材料C不少于50%

原材料P不超过25%

50

B

原材料C不少于25%

原材料P不超过50%

45

D

不限

30

表2

原材料名称

每天最多供应量(kg)

单价(元/kg)

C

P

H

100

120

80

55

25

35

解:

一、建立模型

这是一道线性规划问题。写出目标函数,求利润最大值,利润=收入-原料费用。

在这之前,先设A产品使用原料C为:x11。以此类推,自变量设为:

A产品:x11,x12,x13。

B产品:x21,x22,x23。

D产品:x31,x32,x33。

同样,对于原料,原来C用于A产品的量设为x11。以此类推,自变量设为:

原料C:x11,x21,x31。

原料P:x12,x22,x32。

原料H:x13,x23,x33。

所以,目标函数为:

max z = 50(x11+x12+x13)+45(x21+x22+x23)+30(x31+x32+x33)-55(x11+x21+x31)

-25(x12+x22+x32)-35(x13+x23+x33)

约束条件为:

       x11≥0.5(x11+x12+x13)

       x12≤0.25(x11+x12+x13)

       x21≥0.25(x21+x22+x23)

       x22≤0.5(x21+x22+x23)

       x11+x21+x31≤100

       x12+x22+x32≤120

       x13+x23+x33≤80

       xij≥0,i,j=1,2,3

整理之后,得到如下约束条件:

       x12+x13-x11≤0

       3x12-x11-x13≤0

       x22+x23-3x21≤0

       x22-x21-x23≤0

       x11+x21+x31≤100

       x12+x22+x32≤120

       x13+x23+x33≤80

       xij≥0,i,j=1,2,3

 

二、计算过程

 

1. Excel

写出初始表

依次在K4-K10位置,输入公式,=SUMPRODUCT(B4:J4,B2:J2),表示B4:J4的数值依次和B2:J2对应的值相乘,其他以此类推。

然后进行线性规划求解

求解:

 

 

 

2. Lingo

输入程序:(每一个语句结束都要有)

MAX=50*(x11+x12+x13)+45*(x21+x22+x23)+30*(x31+x32+x33)-55*(x11+x21+x31)-25*(x12+x22+x32)-35*(x13+x23+x33);
x11 - x12 - x13 >= 0;
3*x12 - x11 - x13 <= 0;
3*x21 - x22 - x23 >= 0;
x22 - x21 - x23 <= 0;
x11 + x21 + x31 <= 100;
x12 + x22 + x32 <= 120;
x13 + x23 + x33 <= 80;

点击运算,即可得出结果:

 

3. Matlab

z = [5;-25;-15;10;-20;-10;25;-5;5];
A = [-1,1,1,0,0,0,0,0,0;-1,3,-1,0,0,0,0,0,0;0,0,0,-3,1,1,0,0,0;0,0,0,-1,1,-1,0,0,0;1,0,0,1,0,0,1,0,0;0,1,0,0,1,0,0,1,0;0,0,1,0,0,1,0,0,1];
b = [0;0;0;0;100;120;80];
Ib = [0;0;0;0;0;0;0;0;0];
[x,fval] = linprog(z,A,b,[],[],Ib)

z表示目标函数的系数矩阵。

A表示七个不等式约束方程的左边元素的系数矩阵,没有就写0。

b表示七个不等式约束方程的右边值矩阵。

Ib表示自变量都要大于等于0,所以写0。

linprog函数中,因为没有等式约束,所以Aeq和beq都为空,所以只要写[ ]即可。


版权声明:本文为博主原创文章,未经博主允许不得转载。