目录
一、求解该整数线性规划
Max z = 40x1 + 90x2
9x1 + 7x2 <= 56
7x1 + 20x2 <= 70
x1,x2 > 0 且为整数
二、代码求解
1)直接求线性规划(先不考虑整数)
c=[40 90];
a=[9 7;7 20];
b=[56 70];
aeq=[];
beq=[];
lb=[0;0];
up=[inf;inf];
[x,fval]=linprog(-c,a,b,aeq,beq,lb,up);
x
best=c*x
结果
x =
4.8092
1.8168
best =
355.8779
2)分支定界法
B1 0<x1<4 0<x2
c=[40 90];
a=[9 7;7 20];
b=[56 70];
aeq=[];
beq=[];
lb=[0;0];
up=[4;inf];
[x,fval]=linprog(-c,a,b,aeq,beq,lb,up);
x
best=c*x
x =
4.0000
2.1000
best =
349.0000
B2 x1>5 x2>0
c=[40 90];
a=[9 7;7 20];
b=[56 70];
aeq=[];
beq=[];
lb=[5;0];
up=[inf;inf];
[x,fval]=linprog(-c,a,b,aeq,beq,lb,up);
x
best=c*x
x =
5.0000
1.5714
best =
341.4286
B11 0<x1<4 0<x2<2
c=[40 90];
a=[9 7;7 20];
b=[56 70];
aeq=[];
beq=[];
lb=[0;0];
up=[4;2];
[x,fval]=linprog(-c,a,b,aeq,beq,lb,up);
x
best=c*x
x =
4.0000
2.0000
best =
340.0000
B12 0<x1<4 x2>3
c=[40 90];
a=[9 7;7 20];
b=[56 70];
aeq=[];
beq=[];
lb=[0;3];
up=[4;inf];
[x,fval]=linprog(-c,a,b,aeq,beq,lb,up);
x
best=c*x
x =
1.4286
3.0000
best =
327.1429
B21 x1>5 0<x2<1
c=[40 90];
a=[9 7;7 20];
b=[56 70];
aeq=[];
beq=[];
lb=[5;0];
up=[inf;1];
[x,fval]=linprog(-c,a,b,aeq,beq,lb,up);
x
best=c*x
x =
5.4444
1.0000
best =
307.7778
B22 x1>=5 x2>2
c=[40 90];
a=[9 7;7 20];
b=[56 70];
aeq=[];
beq=[];
lb=[5;2];
up=[inf;inf];
[x,y]=linprog(-c,a,b,aeq,beq,lb,up);
x
best=c*x
x =
[ ]
y =
[ ]
三、结果呈现
B21后面仍有小数,剪枝
B22不可行解
B12后面仍有小数,剪枝
B11结果都为整数,即最优解
x1 = 4, x2 = 2, z = 340