数学建模-聘用方案问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
聘用方案问题
问题:
(1)某服务部门一周中每天需要不同数目的雇员:周一到周四每天至少50人, 周五和周日每天至少80人, 周六至少90人. 现规定应聘者需连续工作5日, 试确定聘用方案, 即周一到周日每天聘多少人, 使在满足需求条件下聘用总人数最少.
(2)上面指的是全时雇员 (一天工作8小时),如果可以用两个临时聘用的半时雇员(一天工作4小时, 不需要连续工作)代替一个全时雇员,但规定半时雇员的工作量不得超过总工作量的四分之一. 又设全时雇员和半时雇员每小时的酬金分别为5元和3元,试确定聘用方案, 使在满足需求的条件下所付酬金总额最小。
问题(1)
⏹ 问题分析
要求应聘者需连续工作五日,那么,为了模型的建立,我们令每个人工作且仅连续工作五日,且认为每个人都长期工作,则每一周都是等同的。
设从星期i 开始工作的人有x i 个,那么他他将工作到星期(i+4),当i+4>7时则工作到下一周的星期(i-3),这同时意味着他在本周的星期1,…,i-3,也工作了。
例如星期一的x 1个人工作的日子为星期1,2,3,4,5,星期五的x 5个人工作的日子为星期1,2,5,6,7。
其他天的情况同理可知。
那么星期一工作的人有x1+x4+x5+x6+x7个,要求星期一工作的人数至少为50,那么就有x1+x4+x5+x6+x7>=50,其他的日子也可以同样地写出来。
于是就有了下面(模型建立中)的限制条件。
我们要求的是总人数最少,即目标函数z=∑x i 7i=1最小。
设定x i >=0,且为整数。
⏹ 模型建立
Min x1+x2+x3+x4+x5+x6+x7 s.t.
x1+x4+x5+x6+x7>=50 x1+x2+x5+x6+x7>=50 x1+x2+x3+x6+x7>=50 x1+x2+x3+x4+x7>=50 x1+x2+x3+x4+x5>=80 x3+x4+x5+x6+x7>=80 x2+x3+x4+x5+x6>=90 x1>=0 x2>=0 x3>=0 x4>=0
x5>=0
x6>=0
x7>=0
⏹编写程序
在lindo软件下编写程序
Min x1+x2+x3+x4+x5+x6+x7
s.t.
1) x1+x4+x5+x6+x7>=50
2) x1+x2+x5+x6+x7>=50
3) x1+x2+x3+x6+x7>=50
4) x1+x2+x3+x4+x7>=50
5) x1+x2+x3+x4+x5>=80
6) x3+x4+x5+x6+x7>=80
7) x2+x3+x4+x5+x6>=90
8) x1>=0
x2>=0
x3>=0
x4>=0
x5>=0
x6>=0
x7>=0
end
gin 7
⏹运行结果
Global optimal solution found.
Objective value: 90.00000
Objective bound: 90.00000
Infeasibilities: 0.000000
Extended solver steps: 0
Total solver iterations: 5
Variable Value Reduced Cost X1 0.000000 1.000000 X2 10.00000 1.000000 X3 30.00000 1.000000 X4 10.00000 1.000000 X5 30.00000 1.000000 X6 10.00000 1.000000 X7 0.000000 1.000000
Row Slack or Surplus Dual Price
1 90.00000 -1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 0.000000 0.000000
6 0.000000 0.000000
7 0.000000 0.000000
8 0.000000 0.000000
9 0.000000 0.000000 10 10.00000 0.000000 11 30.00000 0.000000 12 10.00000 0.000000 13 30.00000 0.000000 14 10.00000 0.000000 15 0.000000 0.000000
⏹ 解释结果
使得z=∑x i 7i=1最小且满足限制条件的x i 取值为x 1=0,x 2=10,x 3=30,x 4=10,x 5=30,x 6=10,x 7=0,Min z=90.
⏹ 具体方案
由以上讨论得,使得周一到周四每天至少50人, 周五和周日每天至少80人, 周六至少90人且聘用人数最少的方案是:
周一开始的不聘,周二开始工作的聘10人,周三开始工作的聘30人,周四开始工作的聘10人,周五开始工作的聘30人,周六开始工作的聘10人,周日开始工作的不聘。
总共需聘用90人。
周一、周二、周三、周四每天有50人工作,周五、周六每天有80人工作,周日有90人工作。
问题(2)
⏹ 问题分析
问题(2)加入了半时雇员,而且最后要求半时雇员的工作量不超过总工作量的四分之一,又设定了全时雇员和半时雇员每小时工资分别是5元和3元,那么根据以上条件,我们用工作时长为标准来分析比较方便。
全时雇员仍延用问题(1)的假设,并且设星期i 的半时雇员数量为y i 。
则星期一工作的人的总时长为8x1+8x4+8x5+8x6+8x7+4y1,而要求星期一总时长至少是五十个人的工作量,即8×50=400小时,就有8x1+8x4+8x5+8x6+8x7+4y1>=400.其他日子同
理可求。
半时雇员工作量不超过总工作量的四分之一则有4×4∑y i 7i=1<=8∑x i 7i=1+4∑y i 7
i=1.
我们要求的是酬金最少。
一个全时雇员一天的酬金是5×8=40元,又一个全时雇员一周工作五天,所以一个全时雇员一周的酬金为200元。
一个半时雇员一天酬金为3×4=12元。
所以,我们的目标函数为z=200∑x i 7i=1+12∑y i 7
i=1,求目标函数最小。
设定x i >=0,y i >=0,且都为整数。
⏹建立模型
Min
200x1+200x2+200x3+200x4+200x5+200x6+200x7+12y1+12y2+12y3+12y4+12y5+12y6+12y7 s.t.
8x1+8x4+8x5+8x6+8x7+4y1>=400
8x1+8x2+8x5+8x6+8x7+4y2>=400
8x1+8x2+8x3+8x6+8x7+4y3>=400
8x1+8x2+8x3+8x4+8x7+4y4>=400
8x1+8x2+8x3+8x4+8x5+4y5>=640
8x3+8x4+8x5+8x6+8x7+4y6>=640
8x2+8x3+8x4+8x5+8x6+4y7>=720
12y1+12y2+12y3+12y4+12y5+12y6+12y7-40x1-40x2-40x3-40x4-40x5-40x6-40x7<=0
x1>=0
x2>=0
x3>=0
x4>=0
x5>=0
x6>=0
x7>=0
y1>=0
y2>=0
y3>=0
y4>=0
y5>=0
y6>=0
y7>=0
⏹编写程序
在lindo下编写程序
Min
200x1+200x2+200x3+200x4+200x5+200x6+200x7+12y1+12y2+12y3+12y4+12y5+12y6+12y7 s.t.
1) 8x1+8x4+8x5+8x6+8x7+4y1>=400
2) 8x1+8x2+8x5+8x6+8x7+4y2>=400
3) 8x1+8x2+8x3+8x6+8x7+4y3>=400
4) 8x1+8x2+8x3+8x4+8x7+4y4>=400
5) 8x1+8x2+8x3+8x4+8x5+4y5>=640
6) 8x3+8x4+8x5+8x6+8x7+4y6>=640
7) 8x2+8x3+8x4+8x5+8x6+4y7>=720
8) 12y1+12y2+12y3+12y4+12y5+12y6+12y7-40x1-40x2-40x3-40x4-40x5-40x6-40x7<=0
9)x1>=0
x2>=0
x3>=0
x4>=0
x5>=0
x6>=0
x7>=0
y1>=0
y2>=0
y3>=0
y4>=0
y5>=0
y6>=0
y7>=0
end
GIN 14
运行结果
Global optimal solution found.
Objective value: 16240.00
Objective bound: 16240.00
Infeasibilities: 0.000000
Extended solver steps: 34
Total solver iterations: 374
Variable Value Reduced Cost X1 32.00000 200.0000 X2 0.000000 200.0000 X3 18.00000 200.0000 X4 0.000000 200.0000 X5 18.00000 200.0000 X6 0.000000 200.0000 X7 0.000000 200.0000 Y1 0.000000 12.00000 Y2 0.000000 12.00000 Y3 0.000000 12.00000 Y4 0.000000 12.00000 Y5 24.00000 12.00000 Y6 88.00000 12.00000 Y7 108.0000 12.00000
Row Slack or Surplus Dual Price
1 16240.00 -1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 0.000000 0.000000
6 0.000000 0.000000
7 0.000000 0.000000
8 0.000000 0.000000
9 80.00000 0.000000
10 32.00000 0.000000
11 0.000000 0.000000
12 18.00000 0.000000
13 0.000000 0.000000
14 18.00000 0.000000
15 0.000000 0.000000
16 0.000000 0.000000
17 0.000000 0.000000
18 0.000000 0.000000
19 0.000000 0.000000
20 0.000000 0.000000
21 24.00000 0.000000
22 88.00000 0.000000
23 108.0000 0.000000
⏹解释结果
77
目标函数最小值Min z=16240
⏹具体方案
该方案的总酬金为16240元。
至此,问题(1)(2)全部解决。