问题
整数规划模型的案例-装箱问题
有七种类型的集装箱要装到两节平板车上.集装箱的宽和高是一样的,厚度(t,cm)和重量(w,kg)不同.表1 给出集装箱的厚度、重量和数量.每节平板车长为10.2m ,载重为40t.由于安全因素,对C5, C6, C7 型的集装箱有特别限制:箱子所占的总厚度不能超过302.7cm.试把集装箱装到平板车上,使得浪费空间最小.
表格2 集装箱的厚度、重量和数量
种类 C1 C2 C3 C4 C5 C6 C7
t/cm 48.7 53.0 61.3 72.0 48.7 52.0 64.0
w/kg 2000 3000 1000 500 4000 2000 1000
n/件 8 7 9 6 6 4 8
方法
结果
X=[ 5.0000
5.0000
2.0000
4.0000
1.0000
1.0000
0
3.0000
2.0000
7.0000
2.0000
4.0000
0
0]
代码
t = [48.7 53.0 61.3 72.0 48.7 52.0 64.0];%thickness
w = [2000 3000 1000 500 4000 2000 1000];%weight
n = [8 7 9 6 6 4 8];%number
f = [-t -t];%目标函数参数,matlab默认求解最小,这里参数取负
lb = zeros(14,1);%numbers can't be lower than 0
A = [1 0 0 0 0 0 0 1 0 0 0 0 0 0;
0 1 0 0 0 0 0 0 1 0 0 0 0 0;
0 0 1 0 0 0 0 0 0 1 0 0 0 0;
0 0 0 1 0 0 0 0 0 0 1 0 0 0;
0 0 0 0 1 0 0 0 0 0 0 1 0 0;
0 0 0 0 0 1 0 0 0 0 0 0 1 0;
0 0 0 0 0 0 1 0 0 0 0 0 0 1;
w zeros(1,7);
zeros(1,7) w;
t zeros(1,7);
zeros(1,7) t;
zeros(1,4) t(5:7) zeros(1,4) t(5:7)];
B=[n 40000 40000 1020 1020 302.7]';
intcon = 1:14;%set to int
[x,fval]=intlinprog(f,intcon,A,B,[],[],lb);
disp(x);