数学建模排班问题.docx
《数学建模排班问题.docx》由会员分享,可在线阅读,更多相关《数学建模排班问题.docx(12页珍藏版)》请在冰豆网上搜索。
数学建模排班问题
值班人员安排问题
摘要
某部队后勤值班室准备聘请4名兼职值班员和2名兼职带班员值班两种职位,相应的报酬也不同。
为使部队的支出最少,现需合理的设计出一张人员的值班时间表,在安排兼职值班员的过程中,需要考虑多方面的的问题与因素.因此,一个合理有效的兼职值班时间表的安排是非常有实际意义的.本次设计在综合了解一定的数学模型、以及LINGO软件中一些知识的基础上,以线性规划理论为基础,对实际例子进行一定的分析后,建立合理的整数规划模型.然后,利用LINGO软件求得结果.给出一个最优化的值班计划,使后勤值班室总支付的报酬为最少.
关键词:
值班时间表,LINGO软件,模型,报酬
一.问题重述
某部队后勤值班室准备聘请4名兼职值班员(代号为1,2,3,4)和2名兼职带班员(代号5,6)值班,已知每人从周一到周日每天最多可以安排的值班时间及每人每小时值班的报酬如下表.
代号
报酬
每天最多可以安排的值班时间
周一
周二
周三
周四
周五
周六
周日
1
10
6
0
6
0
7
12
0
2
10
0
6
0
6
0
0
12
3
9
4
8
3
0
5
12
12
4
9
5
5
6
0
4
0
12
5
15
3
0
4
8
0
12
0
6
16
0
6
0
6
3
0
12
每人每天可值班的时间和报酬
该值班室每天需要值班的时间为早上8:
00至晚上22:
00,值班时间内须有一名值班员值班.要求兼职值班员每周值班不少于10h,兼职带班员每周值班不少于8h.每名值班员每周值班不超过4次,每次值班不少于2h,每天安排值班的值班员不超过3人,且其中必须有一名兼职带班员值班.试为该值班室安排一张值班人员表,使总支付的报酬为最少.
二.模型的假设
(1)兼职员在可安排的时间内无特殊情况发生均可按时值班;
(2)值班室需要值班的时间稳定不变;
(3)值班员的兼职工资稳定不变.
三.符号的说明
ijx表示第i个值班员在星期j是否值班,如果值班,则ijx=1,否则ijx=0。
ija表示第i个值班员在星期j的值班时间。
ik表示第i个值班员值班一个小时所能够获取的报酬,ijA表示第i个值班员在星期j的值班时间的上限。
四.问题设计
本题是在通过安排不同人员的值班时间来是部队支付的报酬最少,在给定的约束条件和每人每天的工作时间和报酬来设计。
由于知道员工每天的工作时间和报酬,这样就可确定目标函数,再通过给定的约束条件来解答,从而得出最优的值班时间表。
五.模型的建立与求解
解:
设ijx表示第i个值班员在星期j是否值班,如果值班,则ijx=1,否则ijx=0。
ija表示第i个值班员在星期j的值班时间。
ik表示第i个值班员值班一个小时所能够获取的报酬,ijA表示第i个值班员在星期j的值班时间的上限。
我们要达到的目标是使总支付的报酬最少,把每一个值班员值班的时间及其每小时的报酬做乘法,就是某一个值班员一星期内所获得的报酬,把每一个值班员一星期内所获得的报酬相加,就是这个公司总的支付费用。
所以,目标函数为:
又要一下约束:
第一:
值班时间内须有一名值班员值班,即一天总的值班时间为22-8=14。
第二:
兼职值班员每周值班不少于10h。
第三:
兼职带班员每周值班不少于8h。
第四:
每名值班员每周值班不超过4次。
第五:
每次值班不少于2h。
第六:
每天安排值班的值班员不超过3人,其中必须有一名兼职带班员值班。
所以相关约束如下:
具体值班安排如下表
周一
周二
周三
周四
周五
周六
周日
1
8:
00-13:
00
8:
00-12:
00
8:
00-15:
00
2
8:
00-10:
00
8:
00-14:
00
8:
00-10:
00
3
10:
00-17:
00
15:
00-20:
00
8:
00-20:
00
4
13:
00-17:
00
17:
00-22:
00
12:
00-18:
00
10:
00-22:
00
5
17:
00-22:
00
18:
00-22:
00
14:
00-16:
00
20:
00-22:
00
6
16:
00-22:
00
20:
00-22:
00
注:
相关程序及运行结果见附录
六.模型的评价
1.过程简单,求值较精确。
2.本模型建模过程创新不足,计算能力有待加强,知识面有待拓展。
七.附录
lingo源程序:
min=10*(a11*x11+a13*x13+a15*x15+a16*x16)
+10*(a22*x22+a24*x24+a27*x27)
+9*(a31*x31+a32*x32+a33*x33+a35*x35+a36*x36+a37*x37)
+9*(a41*x41+a42*x42+a43*x43+a45*x45+a47*x47)
+15*(a51*x51+a53*x53+a54*x54+a56*x56)
+16*(a62*x62+a64*x64+a65*x65+a67*x67);
a11*x11+a13*x13+a15*x15+a16*x16>=10;
a22*x22+a24*x24+a27*x27>=10;
a31*x31+a32*x32+a33*x33+a35*x35+a36*x36+a37*x37>=10;
a41*x41+a42*x42+a43*x43+a45*x45+a47*x47>=10;
a51*x51+a53*x53+a54*x54+a56*x56>=8;
a62*x62+a64*x64+a65*x65+a67*x67>=8;
x11+x12+x13+x14+x15+x16+x17<=4;
x21+x22+x23+x24+x25+x26+x27<=4;
x31+x32+x33+x34+x35+x36+x37<=4;
x41+x42+x43+x44+x45+x46+x47<=4;
x51+x52+x53+x54+x55+x56+x57<=4;
x61+x62+x63+x64+x65+x66+x67<=4;
x11+x21+x31+x41+x51+x61<=3;
x12+x22+x32+x42+x52+x62<=3;
x13+x23+x33+x43+x53+x63<=3;
x14+x24+x34+x44+x54+x64<=3;
x15+x25+x35+x45+x55+x65<=3;
x16+x26+x36+x46+x56+x66<=3;
x17+x27+x37+x47+x57+x67<=3;
x51+x61>0;
x52+x62>0;
x53+x63>0;
x54+x64>0;
x55+x65>0;
x56+x66>0;
x57+x67>0;
a11*x11+a31*x31+a41*x41+a51*x51>=14;
a22*x22+a32*x32+a42*x42+a62*x62>=14;
a13*x13+a33*x33+a43*x43+a53*x53>=14;
a24*x24+a54*x54+a64*x64>=14;
a15*x15+a35*x35+a45*x45+a65*x65>=14;
a16*x16+a36*x36+a56*x56>=14;
a27*x27+a37*x37+a47*x47+a67*x67>=14;
@bin(x11);@bin(x12);@bin(x13);@bin(x14);@bin(x15);@bin(x16);@bin(x17);
@bin(x21);@bin(x22);@bin(x23);@bin(x24);@bin(x25);@bin(x26);@bin(x27);
@bin(x31);@bin(x32);@bin(x33);@bin(x34);@bin(x35);@bin(x36);@bin(x37);
@bin(x41);@bin(x42);@bin(x43);@bin(x44);@bin(x45);@bin(x46);@bin(x47);
@bin(x51);@bin(x52);@bin(x53);@bin(x54);@bin(x55);@bin(x56);@bin(x57);
@bin(x61);@bin(x62);@bin(x63);@bin(x64);@bin(x65);@bin(x66);@bin(x67);
a11<=6;a11>=2;
a13<=6;a13>=2;
a15<=7;a15>=2;
a16<=12;a16>=2;
a22<=6;a22>=2;
a24<=6;a24>=2;
a27<=12;a27>=2;
a31<=4;a31>=2;
a32<=8;a32>=2;
a33<=3;a33>=2;
a35<=5;a35>=2;
a36<=12;a36>=2;
a37<=12;a37>=2;
a41<=5;a41>=2;
a42<=5;a42>=2;
a43<=6;a42>=2;
a45<=4;a45>=2;
a47<=12;a47>=2;
a51<=3;a51>=2;
a53<=4;a53>=2;
a54<=8;a54>=2;
a56<=12;a56>=2;
a62<=6;a62>=2;
a64<=6;a64>=2;
a65<=3;a65>=2;
a67<=12;a67>=2;
@gin(a11);@gin(a12);@gin(a13);@gin(a14);@gin(a15);@gin(a16);@gin(a17);
@gin(a21);@gin(a22);@gin(a23);@gin(a24);@gin(a25);@gin(a26);@gin(a27);
@gin(a31);@gin(a32);@gin(a33);@gin(a34);@gin(a35);@gin(a36);@gin(a37);
@gin(a41);@gin(a42);@gin(a43);@gin(a44);@gin(a45);@gin(a46);@gin(a47);
@gin(a51);@gin(a52);@gin(a53);@gin(a54);@gin(a55);@gin(a56);@gin(a57);
@gin(a61);@gin(a62);@gin(a63);@gin(a64);@gin(a65);@gin(a66);@gin(a67);
Lingo运行结果:
Localoptimalsolutionfound.
Objectivevalue:
1012.000
Objectivebound:
1012.000
Infeasibilities:
0.000000
Extendedsolversteps:
258
Totalsolveriterations:
10940
VariableValue
A115.000000
X111.000000
A134.000000
X131.000000
A157.000000
X151.000000
A162.000000
X160.000000
A222.000000
X221.000000
A246.000000
X241.000000
A272.000000
X271.000000
A314.000000
X311.000000
A327.000000
X321.000000
A333.000000
X330.000000
A355.000000
X351.000000
A3612.00000
X361.000000
A3712.00000
X370.000000
A415.000000
X411.000000
A425.000000
X421.000000
A436.000000
X431.000000
A454.000000
X450.000000
A4712.00000
X471.000000
A513.000000
X510.000000
A534.000000
X531.000000
A542.000000
X541.000000
A562.000000
X561.000000
A622.000000
X620.000000
A646.000000
X641.000000
A652.000000
X651.000000
A6712.00000
X670.000000
X120.000000
X140.000000
X170.000000
X210.000000
X230.000000
X250.000000
X260.000000
X340.000000
X440.000000
X460.000000
X520.000000
X550.000000
X570.000000
X610.000000
X630.000000
X660.000000
A120.000000
A140.000000
A170.000000
A210.000000
A230.000000
A250.000000
A260.000000
A340.000000
A440.000000
A460.000000
A520.000000
A550.000000
A570.000000
A610.000000
A630.000000
A660.000000
每人每天可值班的时间
值班员
代号
每天安排的值班时间/h
周一周二周三周四周五周六周日
1
2
3
4
5
6
5040700
0206002
47005120
55600012
0042020
0006200
值班人员表
周一
周二
周三
周四
周五
周六
周日
1
8:
00-13:
00
8:
00-12:
00
8:
00-15:
00
2
8:
00-10:
00
8:
00-14:
00
8:
00-10:
00
3
10:
00-17:
00
15:
00-20:
00
8:
00-20:
00
4
13:
00-17:
00
17:
00-22:
00
12:
00-18:
00
10:
00-22:
00
5
17:
00-22:
00
18:
00-22:
00
14:
00-16:
00
20:
00-22:
00
6
16:
00-22:
00
20:
00-22:
00