运筹学作业-2
-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
一、 实验内容及步骤(包含简要的实验步骤流程) 问题:大学生值班问题
东方大学计算机实验室聘用4名大学生(代号1、2、3、4)和2名研究生(代号5、6)值班答疑。
已知每人从周一至周五每天最多可安排的值班时间及每人每h 值班报酬如下表所示:
表
学生代号 报酬
(元/h ) 每人最多可安排的值班时间 周一 周二 周三 周四 周五
1 10.0 6 0 6 0 7
2 10.0 0 6 0 6 0
3 9.9
4 8 3 0
5 4 9.8 5 5
6 0 4 5 10.8 3 0 4 8 0 6 11.3 0 6 0 6 3
该实验室开放时间为上午8:00至晚上10:00,开放时间内须有且仅须有一名学生值班。
规定大学生每周值班不少于8h ,研究生每周值班不少于7h ,每名学生每周值班不超过3次,每次值班不少于2h ,每天安排值班的学生不超过3人,且其中必须有一名研究生。
施为该实验室安排一张人员值班表,使总支付的报酬为最少。
模型建立:
解:设为学生i 在周j 的值班时间,
10ij y ⎧⎪⎨
⎪⎩=
,安排学生i 在周j 值班,否则
用代表学生i 在周j 最对可安排的值班时间,为学生i 的每h 的报酬,则本题的数学
模型为:
65
1
1
min i
ij
i j z c x
===
∑∑
!每天有一名研究生值班;
@for(weeks(J):yi(5,J)+yi(6,J)>=1);
!非零约束;
@for(weeks(J):@for(students(I):times(I,J)>=0)); !0-1变量;
@for(sw:@bin(yi));
data:
c=10 10 10 10 10
10 10 10 10 10
9.9 9.9 9.9 9.9 9.9
9.8 9.8 9.8 9.8 9.8
10.8 10.8 10.8 10.8 10.8
11.3 11.3 11.3 11.3 11.3;
ai=6 0 6 0 7
0 6 0 6 0
4 8 3 0 5
5 5
6 0 4
3 0
4 8 0
0 6 0 6 3;
enddata
end
运行结果:
根据结果我们可以得到下面这张安排表:
表2:最终安排表
学生代号报酬
(元/h)
每人最多可安排的值班时间
周一周二周三周四周五
110.0 6 6 7 210.0 4 6
39.9 8 5
49.8 5 6
510.8 3 2 5
611.3 0 2 3 2 根据这张安排表安排,最终需要支付的最低报酬 min=713.6。