护士排班优化问题_第1页
护士排班优化问题_第2页
护士排班优化问题_第3页
护士排班优化问题_第4页
护士排班优化问题_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2015高教社杯全国大学生数学建模竞赛承 诺 书我们仔细阅读了全国大学生数学建模竞赛章程和全国大学生数学建模竞赛参赛规则(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网站下载)。我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。如有违反竞赛章程和参赛

2、规则的行为,我们将受到严肃处理。我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。我们参赛选择的题号是(从A/B/C/D中选择一项填写): 我们的报名参赛队号为(12位数字组成的编号): 所属学校(请填写完整的全名): 参赛队员 (打印并签名) :1. 2. 3. 指导教师或指导教师组负责人 (打印并签名): (论文纸质版与电子版中的以上信息必须一致,只是电子版中无需签名。以上内容请仔细核对,提交后将不再允许做任何修改。如填写错误,论文可能被取消评奖资格。) 日期: 年 月 日赛区评阅编号(由赛区组委会

3、评阅前进行编号):2015高教社杯全国大学生数学建模竞赛编 号 专 用 页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):评阅人评分备注全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):护士工作时间的安排摘要当前社会“看病难”成了大中城市的一块难以根治的顽疾。在城市的医院里常常出现患者爆满、医护人员人手不足的状况,现有的排班管理办法难以适应当前医院需求。在这种情况下医护人员工作效率较低,导致医院人力资源的浪费。为了缓解这一状况,本文以某医院的心脑血管科护士的工作时间安排表制定为例,在保证各时段护士人员需求下,分成求解最优安排

4、方式的两类问题,即不考虑加班情况下人员规模最小和人员规模固定情况下加班人数最少。针对问题一,为达到既满足工作需要又要尽可能少的人员编制,本文采取0-1整数规划,将护士1天的8小时工作分成5个模式。通过LINGO软件对5个模式进行组合分析得到最小人员需求为87人,并将每时段安排人数做成EXCEL表格。考虑到工作时长(工作时段+休息时段)给护士生活带来的影响,删减掉工作时长最长的模式。随后对保留的四种模式进行随机组合,在所有组合中挑选出所有人数最少的模式,然后进行比较分析,综合考虑夜班人数等因素,遴选出最优模式组合。具体模式选择及工作时间调度详见模型求解及附录。针对问题二,护士人员限制为80人,需

5、要部分护士加班2小时。本文研究的是如何使得加班护士人数最少,并给出最优工作安排方案。在问题一的基础上,增加两种加班模式,利用LINGO软件求解得到最少加班人数为26人。随后利用EXCEL软件进行分析,在保证加班人数最少的前提下,综合夜班人数等因素选出最优安排方式。具体模式选择及工作时间调度详见模型求解及附录。关键字:线性规划 0-1整数规划 LINGO EXCEL 工作模式一、问题重述某医院的心脑血管科需要制定护士的工作时间表。在心脑血管科的一个工作日分为12个两小时的时段,每个时段的人员要求不同。例如,在夜间只要求有很少几名护士就足够了,但在早晨为了给病人提供特殊报务,需要很多护士。表B1列

6、出了每个时段的人员需求量。表B1每个时段的人员需求问题1: (1)为满足需求最少需要多少名护士?这里假定每位护士每天工作8小时,且在工作4小时后需要休息1小时。 (2)如果满足需求的排班方案不止一种,请给出你认为最合理的排班方案,并说明其理由。问题2:目前心脑血管科只有80名护士,如果这个数目不能满足指定的需求,只能考虑让部分护士加班。如果加班,每天加班的时间为2小时,且紧随在后一个4小时工作时段之后,中间没有休息。 (1)请给出护士工作时间安排的方案,以使需要加班的护士数目最少。 (2)如果排班(包括加班)的方案不止一种,请给出你认为最合理的排班和加班方案,并说明其理由。二、模型假设1、不考

7、虑国家法定假期及护士年假对排班的影响2、不考虑护士因病假、事假换班带来的影响3、不考虑护士因个人问题对排班的影响4、所有给出的约束条件都真实、准确,且医院排班严格按照此执行三、符号说明1、i,j:表示第i,j个工作时段2、a(i):第i个时间段所需护士人数3、b(i):第i个时间段安排护士人数4、z:表示所需最少护士总数5、z:表示所需最少加班护士总数, y:表示加班模式下,正常工作护士人数6、start1,start2startn:表示护士的n种工作模式6、j=i+p-k*limit,取适当值kN,使p0,limit,表示为满足时段循环而定义的算法7、T:总工时(h)8、A:0-6时段安排加

8、班护士人数, B:6-12时安排加班护士人数C:6-12时段安排工作人数, D:0-6时段安排工作人数9、权重计算总分M注:i,j=1、2、312四、问题一的模型建立与求解4.1问题分析此问中首要考虑的是满足工作需要条件下所需要人员数量最少,该问题是一个典型的线性规划问题。根据题目要求,护士每工作4小时需要休息1小时,由于护士是按工作时段上岗,休息完1小时后不能在中间时刻上岗,因此我们默认护士每工作4小时休息2小时。考虑到护士工作和休息是两种状态,本文采用0-1整数规划,用1表示工作时段,用0表示休息时段,利用集循环函数建立相应模型完成求解。针对问题需要,本文引用的集函数主要为:集操作函数 w

9、rap(index,limit),集循环函数 for(setname:expression_list)sum(setname:expression_list)相应的等同于:start1模式: 1,1,0,1,1 start2模式: 1,0,1,0,1,1start3模式:1,1,0,1,0,1start4模式:1,0,1,1,0,1start5模式: 1,0,1,0,1,0,1本文假定每个护士选择1种工作方式,由5种模式随机组合。每时段工作的护士由前几个时段开始工作的护士和本时段新增的护士组成,因此需要解决首尾时段连续的影响,为满足时段循环我们定义如下算法:j=i+p-k*limit,取适当值

10、kN,使p0,limit利用LINGO软件进行求解得到最小人数Z=87。考虑到实际情况下,五种值班模式排班过于繁琐,且start5工作时间过长,在此不作考虑。对剩下的4种模式随机组合进行分析,利用LINGO软件进行求解得到数据。再将分析结果通过EXCEL进行整理,从人员需求数目、夜班人数等因素进行比较排序,得到最优结果。4.2模型的求解所提供数据分析表1:每个工作区间对应的时间段时段编号(i)123456789101112时段00-0202-0404-0606-0808-1010-1212-1414-1616-1818-2020-2222-24表2:、各时间段需求护士人数时段编号(i)1234

11、56789101112a(i)151515354040403031353020编程求解LINGO(部分)求解结果如下(代码见附录):本文首先对五种模式共存的情况用LINGO进行求解得到最少需要人数87人(求解代码和生成见附录),并将护士排班情况绘成EXCEL表格。在表格中,模式5持续时间过长,且工作休息间歇安排极不合理,在后面的分析中不作考虑。随后,对另4种模式相互组合的情况分别用LINGO进行逐一求解,并将部分模式分析的程序代码呈现(见附录)。求解完数据后,通过EXCEL软件对所有数据按所需最少人数、0-6时段开始上班人数、6-12时段开始上班人数进行排序分析,并用不同的颜色填充符合要求的解

12、。(最优的前30%)具体权衡条件如下:1、以所需人数最少为优先考虑条件2、考虑0-6时开始上班人数尽可能少3、要保证护士人员在6-12时上班的人数尽可能多结论:在每个护士每天工作8小时,且在连续工作4小时后至少需休息1小时的条件下,该医院为满足工作需求至少需要87名护士,为减少0-6时段开始上班人数,将上班时间集中在6-12时段,通过对照分析,模式3(101101)和模式4(110101)的组合为最优选择。对应调度安排见表3:护士值班安排表-34(问题一)表4:护士值班安排表1(问题一)注:1.模式组合中的数字代表不同模式,多个数字代表多种模式组合,例如:“123”代表模式1、模式2、模式3的

13、组合2.0-6人数,6-12人数分别代表从0:00到6:00以及从6:00到12:00开始上班的人数五、问题二的模型建立与求解5.1问题的分析此问题整体解题思路与问题一相似,在护士人员只有80人的前提下要保证工作的完成,且尽可能少的安排加班人数,这也是一个典型的0-1整数规划问题。此处新增加约束条件:护士总人数限定位80人,加班人数最少,加班时间为2小时,加班时段紧随在正常工作时长结束后,不休息。在此继续采用保留的4种正常工作模式,编号同上。因为条件的限制,且必须满足护士工作4小时后需要休息2小时,所以只有两种加班模式符合,用start6和start7表示:start6:1,0,1,1,0,1

14、,1start7:1,1,0,1,0,1,1在用LINGO软件分析求解之前,先进行简单数据分析。将总工时与护士人数列二元一次方程组,设需要加班护士人数为,正常工作护士人数为y。解得=26 y =54由此可见加班人数最少为26人,在后面的LINGO求解过程中可以此为参考。5.2模型求解LINGO(部分)求解结果如下(代码见附录):本问首先对4种正常工作模式与2种加班模式用LINGO程序进行求解,得到最少加班人数为26人,并将护士排班情况绘成EXCEL表格。(求解代码和生成见附录)。在EXCEL表格中对所有数据按所需加班人数、0-6时段安排加班人数(A)、6-12时段安排加班人数(B),0-6时段

15、安排开始上班人数(C)、6-12时段安排开始上班人数(D)进行排,并用不同的颜色填充单元格以示区分(最优30%)。具体数据及分析结果见表5。具体权衡条件如下:1、以加班所需人数最少为优先考虑条件,在人数相同时再考虑下述条件2、对A、B、C、D人数通过加权综合分析,具体权重计算如下:A 0,9 B 0,25 C6,27 D34,52(1)由表格数据可知A区间长度为9,B区间长度为25,C区间长度为21,D区间长度为18(2)0-6时段,人数越少越好,系数取负;6-12时段,人数越多越好,系数取正;ABCD区间长度不同,做系数调整,*9=*25=*21=*18(3)对ABCD不同因素,我们做如下权

16、重分配:A占36%,B占24%,C占24%,D占16%。加权值M=0.36*A+0.24*B+0.24*C+0.16*D3.通过分数计算结果得到最优答案,得分最高的即为最优解结论:在护士总数为80人前提下,考虑到护士每天加班的时间为2小时,且紧随在后一个4小时工作时段之后,中间没有休息,为保证完成工作需要至少有26名护士加班。考虑到加班人员工作时间较长,尽可能集中安排在上午(6-12)开始上班;尽量减少加班护士在凌晨(0-6)上班的情况,同时也兼顾正常上班护士的需求,综合考量,模式1、模式2、模式3、模式6和模式7的组合为最优选择,即正常工作模式:11011、101011、101101,加班工

17、作模式:1101011、 1011011组合。对应调度安排见表5:护士值班安排表-12367(问题二)。表6:护士值班安排表2(问题二)六、模型的评价与改进6.1模型优点文中采用EXCEL表格处理数据,使得工作安排醒目、分析逻辑清楚;在解决两个问题的时候,均采用了基于工作模式的0-1整数规划方式,使得问题分析更简单;在权衡模式选择的时候,文中对各种因素进行加权划分,结果更科学化、人性化。6.2模型缺点由于该模型完全假设在护士保证全勤工作能力相同的理想条件下,一些客观因素考虑不周;在假设工作模式的时候,文中假设每个护士只有一种工作模式这在事实很难做到,而且在这种情况下可能不是最优答案。在加权过程

18、中,所用的加权方式有一定局限性,对客观因素菇凉不到位6.3模型改进(1)在模型建立过程中,为将多目标规划转化为0-1整数规划,在工作模式的选取存在偶然性。现实中,考虑到医院自己、护士本身受其他因素的影响,我们应该尽可能结合多种情况建立更多模型求解。(2)在求解完护士工作的规划后,应该设计一个影响护士自身出勤的因数、以及不同护士工作能力差别的因数,并在加权计算中体现【参考文献】1 姜启源、谢金星、叶俊./ 数学模型(第四版). 北京: 高等教育出版社,2011.1;2 卓金武、李必文、魏永生./MATLAB在数学建模中的应用(第2版).北京:北京航空航天大学出版社3 三峡大学 2009年三峡大学

19、数学建模热身赛.网络附录模型一:1、五种模式组合分析Lingo程序代码如下:model:! start1 11011;! start2 101011;! start3 101101;! start4 110101;! start5 1010101;sets: times/1.12/: start1,start2,start3,start4,start5,required;endsetsdata: !每时段所需的最少护士数; required = 15 15 15 35 40 40 40 30 31 35 30 20; ole('G:/值班.xls')=start1; ole(&

20、#39;G:/值班.xls')=start2; ole('G:/值班.xls')=start3; ole('G:/值班.xls')=start4; ole('G:/值班.xls')=start5;enddata!最小化所需安排护士数;min=sum(times: start1+start2+start3+start4+start5);!人数取整;for(times:gin(start1);for(times:gin(start2);for(times:gin(start3);for(times:gin(start4);for(times:

21、gin(start5);for(times(J):start1(wrap(J+8,12)+start1(wrap(J+9,12)+start1(wrap(J+11,12)+start1(wrap(J,12)+ start2(wrap(J+7,12)+start2(wrap(J+9,12)+start2(wrap(J+11,12)+start2(wrap(J,12)+start3(wrap(J+7,12)+start3(wrap(J+9,12)+start3(wrap(J+10,12)+start3(wrap(J,12)+start4(wrap(J+7,12)+start4(wrap(J+8,1

22、2)+start4(wrap(J+10,12)+start4(wrap(J,12)+start5(wrap(J+6,12)+start5(wrap(J+8,12)+start5(wrap(J+10,12)+start5(wrap(J,12)>= required(J);End运行结果:2、四种模式下的随机组合例:模式3、4组合Lingo程序代码如下:model:! start3 101101;! start4 110101;sets: times/1.12/: start3,start4,required;endsetsdata: !每时段所需的最少护士数; required = 15

23、15 15 35 40 40 40 30 31 35 30 20; ole('G:/值班.xls')=start3; ole('G:/值班.xls')=start4;enddata!最小化所需安排护士数;min=sum(times: start3+start4);!人数取整;for(times:gin(start3);for(times:gin(start4);for(times(J):start3(wrap(J+7,12)+start3(wrap(J+9,12)+start3(wrap(J+10,12)+start3(wrap(J,12)+start4(wra

24、p(J+7,12)+start4(wrap(J+8,12)+start4(wrap(J+10,12)+start4(wrap(J,12)>= required(J);End运行结果:模型二:1、123467,6种模式综合求解model:! start1 11011;! start2 101011;! start3 101101;! start4 110101;! start6 1101011;! start7 1011011;sets: times/1.12/: start1,start2,start3,start4,start6,start7,required;endsetsdata:

25、 !每时段所需的最少护士数; required = 15 15 15 35 40 40 40 30 31 35 30 20; ole('G:/值班.xls')=start1; ole('G:/值班.xls')=start2; ole('G:/值班.xls')=start3; ole('G:/值班.xls')=start4; ole('G:/值班.xls')=start6; ole('G:/值班.xls')=start7;enddata!最小化安排加班护士数;min=sum(times: start6

26、+start7);!人数取整;for(times:gin(start1);for(times:gin(start2);for(times:gin(start3);for(times:gin(start4);for(times:gin(start6);for(times:gin(start7);!限定护士人数为80;sum(times: start1+start2+start3+start4+start6+start7)=80;for(times(J):start1(wrap(J+8,12)+start1(wrap(J+9,12)+start1(wrap(J+11,12)+start1(wrap

27、(J,12)+ start2(wrap(J+7,12)+start2(wrap(J+9,12)+start2(wrap(J+11,12)+start2(wrap(J,12)+start3(wrap(J+7,12)+start3(wrap(J+9,12)+start3(wrap(J+10,12)+start3(wrap(J,12)+start4(wrap(J+7,12)+start4(wrap(J+8,12)+start4(wrap(J+10,12)+start4(wrap(J,12)+start6(wrap(J+6,12)+start6(wrap(J+7,12)+start6(wrap(J+9

28、,12)+start6(wrap(J+11,12)+start6(wrap(J,12)+start7(wrap(J+6,12)+start7(wrap(J+8,12)+start7(wrap(J+9,12)+start7(wrap(J+11,12)+start7(wrap(J,12)>= required(J);End运行结果:2、组合模式随机求解例:1、2、3、6、7模式Lingo程序代码如下:model:! start1 11011;! start2 101011;! start3 101101;! start6 1101011;! start7 1011011;sets: times/1.12/: start1,start2,start3,start6,start7,required;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论