一,实验内容
二,建立相应的整数线性规划模型
设 储 蓄 所 每 天 雇 佣 的 全 时 服 务 员 在 12 − 13 , 13 − 14 时 间 段 吃 午 餐 的 人 数 为 x 1 , x 2 设储蓄所每天雇佣的全时服务员在12-13,13-14时间段吃午餐的人数为x_1,x_2 设储蓄所每天雇佣的全时服务员在12−13,13−14时间段吃午餐的人数为x1,x2。
在 9 , 10 , 11 , 12 , 13 点 开 始 工 作 的 半 时 服 务 员 的 人 数 分 别 为 y 1 , y 2 , y 3 , y 4 , y 5 在9,10,11,12,13点开始工作的半时服务员的人数分别为y_1,y_2,y_3,y_4,y_5 在9,10,11,12,13点开始工作的半时服务员的人数分别为y1,y2,y3,y4,y5.
满足约束方程:
m
i
n
Z
=
100
x
1
+
100
x
2
+
40
y
1
+
40
y
2
+
40
y
3
+
40
y
4
+
40
y
5
min Z=100x_1+100x_2+40y_1+40y_2+40y_3+40y_4+40y_5
minZ=100x1+100x2+40y1+40y2+40y3+40y4+40y5
{
x
1
+
x
2
+
y
1
≥
4
x
1
+
x
2
+
y
1
+
y
2
≥
3
x
1
+
x
2
+
y
1
+
y
2
+
y
3
≥
4
x
2
+
y
1
+
y
2
+
y
3
+
y
4
≥
6
x
1
+
y
2
+
y
3
+
y
4
+
y
5
≥
5
x
1
+
x
2
+
y
3
+
y
4
+
y
5
≥
6
x
1
+
x
2
+
y
4
+
y
5
≥
8
x
1
+
x
2
+
y
5
≥
8
y
1
+
y
2
+
y
3
+
y
4
+
y
5
≤
3
x
1
,
x
2
,
y
1
,
y
2
,
y
3
,
y
4
,
y
5
≥
0
且
为
整
数
\left\{\begin{matrix} x_1+x_2+y_1&\geq 4\\ x_1+x_2+y_1+y_2&\geq 3\\ x_1+x_2+y_1+y_2+y_3&\geq 4\\ x_2+y_1+y_2+y_3+y_4&\geq 6\\ x_1+y_2+y_3+y_4+y_5&\geq 5\\ x_1+x_2+y_3+y_4+y_5&\geq 6\\ x_1+x_2+y_4+y_5&\geq 8\\ x_1+x_2+y_5&\geq 8\\ y_1+y_2+y_3+y_4+y_5&\leq3\\ x_1,x_2,y_1,y_2,y_3,y_4,y_5\geq0且为整数 \end{matrix}\right.
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧x1+x2+y1x1+x2+y1+y2x1+x2+y1+y2+y3x2+y1+y2+y3+y4x1+y2+y3+y4+y5x1+x2+y3+y4+y5x1+x2+y4+y5x1+x2+y5y1+y2+y3+y4+y5x1,x2,y1,y2,y3,y4,y5≥0且为整数≥4≥3≥4≥6≥5≥6≥8≥8≤3
三,实验方法与步骤
利用matlab函数intlinprog函数完成,讲相应的整数规划模型转化为该函数的输入。
矩阵输入:
f=[100,100,40,40,40,40,40]; %目标函数系数矩阵
intcon=[1,2,3,4,5,6,7];
A=[ -1,-1,-1,0,0,0,0;
-1,-1,-1,-1,0,0,0;
-1,-1,-1,-1,-1,0,0;
0,-1,-1,-1,-1,-1,0;
-1,0,0,-1,-1,-1,-1;
-1,-1,0,0,-1,-1,-1;
-1,-1,0,0,0,-1,-1;
-1,-1,0,0,0,0,-1;
0,0,1,1,1,1,1 ];
b=[-4,-3,-4,-6,-5,-6,-8,-8,3];
Aeq=[];
beq=[];
lb=zeros(7,1);
ub=[];
函数使用:
[x, fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub);
disp("最优整数解:")
x
disp("最小目标函数值:")
fval
四,实验结果
最优整数解:
x =
3
4
0
0
2
0
1
最小目标函数值:
fval =
820
截图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sSV4gZaw-1650535883872)(C:\Users\86150\AppData\Roaming\Typora\typora-user-images\image-20220421130332284.png)]
五,实验结果分析
模型建立正确,且经过计算,实验结果正确。
六,附录完整matlab实现
f=[100,100,40,40,40,40,40]; %目标函数系数矩阵
intcon=[1,2,3,4,5,6,7];
A=[ -1,-1,-1,0,0,0,0;
-1,-1,-1,-1,0,0,0;
-1,-1,-1,-1,-1,0,0;
0,-1,-1,-1,-1,-1,0;
-1,0,0,-1,-1,-1,-1;
-1,-1,0,0,-1,-1,-1;
-1,-1,0,0,0,-1,-1;
-1,-1,0,0,0,0,-1;
0,0,1,1,1,1,1 ];
b=[-4,-3,-4,-6,-5,-6,-8,-8,3];
Aeq=[];
beq=[];
lb=zeros(7,1);
ub=[];
[x, fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub);
disp("最优整数解:")
x
disp("最小目标函数值:")
fval