题目
某厂生产三种产品 I,II,III。每种产品要经过 A、B两道工序加工。设该厂有两种规格的设备能完成 A 工序,它们以A1、A2表示;有三种规格的设备能完成 B 工序,它们以B1、B2、B3表示。产品 I 可在 A、B任何一种规格设备上加工。产品 II 可在任何规格的 A 设备上加工,但完成 B 工序时,只能在B1设备上加工;产品 III 只能在A2与B2设备上加工。已知在各种机床设备的单件工时,原材料费,产品销售价格,各种设备有效台时以及满负荷操作时机床设备的费用如表 2,求安排最优的生产计划,使该厂利润最大。
思路
满负荷是指所有设备都在运行时 所以要通过满负荷费用/有效时 算出来单价
假设x件产品分别用了多少的A设备和B设备
目标函数 z = (1.25-0.25)(x1+x2)+(2-0.35)x8+(2.8-0.5)x9–(300/6000)(5x1+10x6) - (321/10000)(7x2+9x7+12x9) -(250/4000)(6x3+8x8) - (783/7000)(4x4+11x9) - (200/4000)7x5=0.75x1+0.7753x2+0.375x30.447x4-0.35x5-0.5x6-0.2889x7+1.15x8+0.684x9
因为需要两道加工工序,所以对于每一样产品使用A设备的数量要与使用B设备的数量相等
所以产生约束条件
{
5
x
1
+
10
x
6
<
=
6000
7
x
2
+
9
x
7
+
12
x
9
<
=
10000
6
x
3
+
8
x
8
<
=
4000
4
x
4
+
11
x
9
<
=
7000
7
x
5
<
=
4000
x
i
>
=
0
\begin{cases} 5x_1 + 10 x_6 < =6000\\ 7x_2 + 9x_7 + 12x_9 <= 10000\\ 6x_3 + 8x_8 <= 4000\\ 4x_4 + 11x_9 <= 7000\\ 7x_5 <= 4000\\ x_i >=0 \end{cases}
⎩
⎨
⎧5x1+10x6<=60007x2+9x7+12x9<=100006x3+8x8<=40004x4+11x9<=70007x5<=4000xi>=0
又因为加工时 AB设备对应的总工时相等 所以有另一个约束条件
{
x
1
+
x
2
=
x
3
+
x
4
+
x
5
x
6
+
x
7
=
x
8
\begin{cases} x_1 + x_2 = x_3 + x_4 + x_5\\ x_6 + x_7 = x_8\\ \end{cases}
{x1+x2=x3+x4+x5x6+x7=x8
求解
模型为:max z = (1.25-0.25)(x1+x2)+(2-0.35)x8+(2.8-0.5)x9–(300/6000)(5x1+10x6) - (321/10000)(7x2+9x7+12x9) -(250/4000)(6x3+8x8) - (783/7000)(4x4+11x9) - (200/4000)7x5
{
5
x
1
+
10
x
6
<
=
6000
7
x
2
+
9
x
7
+
12
x
9
<
=
10000
6
x
3
+
8
x
8
<
=
4000
4
x
4
+
11
x
9
<
=
7000
7
x
5
<
=
4000
x
1
+
x
2
=
x
3
+
x
4
+
x
5
x
6
+
x
7
=
x
8
x
i
>
=
0
\begin{cases} 5x_1 + 10 x_6 < =6000\\ 7x_2 + 9x_7 + 12x_9 <= 10000\\ 6x_3 + 8x_8 <= 4000\\ 4x_4 + 11x_9 <= 7000\\ 7x_5 <= 4000\\ x_1 + x_2 = x_3 + x_4 + x_5\\ x_6 + x_7 = x_8\\ x_i >=0 \end{cases}
⎩
⎨
⎧5x1+10x6<=60007x2+9x7+12x9<=100006x3+8x8<=40004x4+11x9<=70007x5<=4000x1+x2=x3+x4+x5x6+x7=x8xi>=0
所以根据线性规划函数 可得出代码为
clc, clear
f=[0.75,0.7753,-0.375,-0.447,-0.35,-0.5,-0.2889,1.15,0.684];
f = -f; %换成最小值
a=[5,0,0,0,0,10,0,0,0;
0,7,0,0,0,0,9,0,12;
0,0,6,0,0,0,0,8,0;
0,0,0,4,0,0,0,0,11;
0,0,0,0,7,0,0,0,0];
b = [6000,10000,4000,7000,4000];
aeq = [1,1,-1,-1,-1,0,0,0,0;
0,0,0,0,0,1,1,-1,0];
beq = [0;0];
lb = zeros(9,1);
[x,y] = linprog(f,a,b,aeq,beq,lb,[]);
x, y = -y
运行结果
x =
1.0e+03 *
1.2000
0.2300
0
0.8586
0.5714
0
0.5000
0.5000
0.3241
y =
1.1468e+03
又因为只能是整数 所以
最优解为x1=1200,x2=230,x3=0,x4=859,x5=571,x6=0,x7=500,x8=500,x9=324.
最大利润 z=1146元