题目:某工厂要用三种原材料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都为空,所以只要写[ ]即可。
版权声明:本文为博主原创文章,未经博主允许不得转载。