上海 XX 大学
———运筹学课程设计报告
案例一:整数规划
某工厂生产中需要某种混合料,它应包含甲、乙、丙三种成份。这些成份可由市场购买
的 A、B、C 三种原料混合后得到。已知各种原料的单价、成份含量以及各种成份每月的最
低需求量如下表:
含
成
份
料
原
量
甲
乙
丙
各种原料的单价(万元/吨)
A
B
1
7
2
2
3
3
1
3
C
1
1
1
6
各种成分的每月
最低需求量
36
15
20
——
问:该厂每月应购买各种原料多少吨,才能使在满足需求的基础上使用于购买原材料所
耗费的资金为最少?(该题只要求建立线性规划模型,不必进行求解)
解:现设 x1、x2、x2 为 A、B、C 原料的购买数量,
∵ x1、x2、x3≥0
设 z 为总的耗费资金,则 min z= 2x1+3x2+6x3
s.t.
3
x
x
1
2
7
3
x
x
1
2
x
x
1
,
x
xx
,
2
1
3
2
x
3
x
x
0
2
36
15
20
3
3
初始编辑及结果:
>> f=[2,3,6];
>> a=[-1,-3,-1;-7,-3,-1;-2,-1,-1];
>> f=[2,3,6]';
>> a=[-1,-3,-1;-7,-3,-1;-2,-1,-1];
>> b=[-36,-15,-20]';
>> lb=zeros(3,1);
>> [x, fval, exitflag]=linprog (f, a, b, [],[],lb);
Optimization terminated.
>> x
x =
4.8000
10.4000
0.0000
>> fval
fval =
40.8000
分支第一次:(对 X1 进行剪支)
(1)min z= 2x1+3x2+6x3
s.t.
x
2
3
x
x
36
15
20
3
3
x
1
7
x
1
2
x
1
1
x
,
xx
1
3
x
2
3
x
x
4
,
2
x
3
2
0
显示结果如下:
>> f=[2,3,6];
>> a=[-1,-3,-1;-7,-3,-1;-2,-1,-1;1,0,0];
>> b=[-36,-15,-20,4]';
>> lb=zeros(3,1);
>> [x, fval, exitflag]=linprog(f, a, b, [],[],lb);
Optimization terminated.
>> x
x =
4.0000
12.0000
0.0000
>> fval
fval =
44.0000
(2) min z= 2x1+3x2+6x3
s.t.
-x1-3x2-x3<=-36
-7x1-3x2-x3<=-15
-2x1-x2-x3<=-20
X1>=5
X1,x2,x3>=0
显示结果如下:
>> f=[2,3,6];
>> a=[-1,-3,-1;-7,-3,-1;-2,-1,-1;-1,0,0];
>> b=[-36,-15,-20,-5]';
>> lb=zeros(3,1);
>> [x, fval, exitflag]=linprog(f, a, b, [],[],lb);
Optimization terminated.
>> x
x =
5.0000
10.3333
0.0000
>> fval
fval =
41.0000
分支第二次:(对 X2 进行剪支)
(3)min z= 2x1+3x2+6x3
s.t.
-x1-3x2-x3<=-36
-7x1-3x2-x3<=-15
-2x1-x2-x3<=-20
X1>=5
X2>=11
X1,x2,x3>=0
显示结果如下:
>> f=[2,3,6];
>> a=[-1,-3,-1;-7,-3,-1;-2,-1,-1;-1,0,0;0,-1,0];
>> b=[-36,-15,-20,-5,-11]';
>> lb=zeros(3,1);
>> [x, fval, exitflag]=linprog(f, a, b, [],[],lb);
Optimization terminated.
>> x
x =
5.0000
11.0000
0.0000
>> fval
fval =
43.0000
(4)min z= 2x1+3x2+6x3
s.t.
-x1-3x2-x3<=-36
-7x1-3x2-x3<=-15
-2x1-x2-x3<=-20
X1>=5
X2<=10
X1,x2,x3>=0
显示结果如下:
>> f=[2,3,6];
>> a=[-1,-3,-1;-7,-3,-1;-2,-1,-1;-1,0,0;0,1,0];
>> b=[-36,-15,-20,-5,10]';
>> lb=zeros(3,1);
>> [x, fval, exitflag]=linprog(f, a, b, [],[],lb);
Optimization terminated.
>> x
x =
6.0000
10.0000
0.0000
>> fval
fval =
42.0000
综合得最优解为:X1=6, X2=10, X3=0, Min=42
案例二:线性规划
Max z=-2x1+3x2-6x3
3x1-4x2-6x3<=2
2x1+x2+2x3>=11
x1+3x2-2x3<=5
X1,x2,x3>=0
min z=2x1-3x2+6x3
s. t
3x1-4x2-6x3<=2
-2x1-x2-2x3<=-11
x1+3x2-2x3<=5
X1,x2,x3>=0
显示结果如下:
>> f=[2,-3,6];
>> f=[2,-3,6]';
>> a=[3,-4,-6;-2,-1,-2;1,3,-2];
>> b=[2,-11,5]';
>> lb=zeros(3,1);
>> [x, fval, exitflag, output, lambda]=linprog(f, a, b, [],[],lb);
Optimization terminated.
>> exitflag
exitflag =
1
>> fval
fval =
9.0000
>> x
x =
0.0000
4.0000
3.5000
程序执行后得:exitflag=1,fval=9,x1=0, x2=4, x3=3.5,
即目标函数在点(0,4,3.5)处取得最小值 9.
案例三:
(3 , 3)
vs
(5 , 1)
v2
(4 , 3)
v4
(1 , 1)
(1 , 1)
v1
(2 , 2)
v3
(5 , 3)
(3 , 0)
vt
(2 , 1)