第1页,共14页护士工作时间调度优化方案【摘要】本文是在一定约束条件下求最值问题,是典型的规划问题,为此我们针对题目中的两个问题建立了相应的数学模型。为简化约束条件,避免因变量过多导致求解不便,我们首先在满足工作时间和强度约束的条件下优选出两种工作模式,然后充分利用集循环函数的特点建立非线性规划模型。然后利用数学模拟和Lingo规划对其进行了有效的编程求解。问题一:我们要研究的是,在满足护士每日工作时间,工作强度以及当班人员配备要求的条件下,达到护士需求量最少的目的。由于各时段所需护士数量不同,且护士工作存在间歇性,所以如何安排护士工作时段就成了解题的关键。针对此问题,我们从所有满足工作时间和强度约束的工作模式中,优选出两种独立的工作模式1,2ss,利用其推导出所需护士人数即目标函数表达式为:12111()2()iMsisi,Lingo求解结果为:1min87M,即为满足需求该医院至少需要87名护士,护士工作时间调度方案详见附录。问题二:我们所要研究的是,在限定医院护士人数为80的前提下,安排最少的护士加班,完成医院需要达到的固定工作量。它给出的限制是加班的护士在完成正常时段工作后继续加班两小时。这仍是一个求最小值的规划问题。同样的,我们也相应选出一组独立工作模式1,2ss,此时加班人数即目标函数变为12211()iMsi,Lingo求解结果为2min26M,即最少需要16名护士加班,对应的护士工作时间安排方案详见附录。最后通过对求解结果和问题的再分析,我们发现在医院工作总量不变的前提下,目标人数其实已经可以确定。同时我们对数据的灵敏度以及模型的优缺点也进行了分析,并据此对模型的改进方向和可应用领域分别作出了说明和推介。【关键字】规划模型工作模式集循环函数应用分析2009年三峡大学数学建模竞赛热身赛,由三峡大学数学建模协会策划、组织和举办。2一、问题重述某医院一个工作日(分为12个两小时长的时段)每个时段需要护士人数如下表:每个时段的人员需求表编号时段需要护士人数000am-02am15102am-04am15204am-06am15306am-08am35408am-10am40510am-12pm40612pm-02pm40702pm-04pm30804pm-06pm31906am-08pm351008am-10pm301110pm-12am20问题1:假定每个护士每天工作8小时,且在连续工作4小时后需要休息2小时,请计算为满足需求至少需要多少个护士。问题2:此医院目前只有80名护士,这个数目不足以满足需求,因此需要安排部分人加班,每天加班时间为2小时,且紧跟随在后一个4小时工作时段之后,中间没有休息,请给出护士工作时间安排方案,以使需要加班的护士人数最少。二、模型假设与符号约定2.1模型假设(1)假设所有护士都能保持全勤率。(2)假设所有护士都能服从安排,准时上下班。(3)假设不考虑各种客观因素对护士人数的影响。(4)假设没有突发事件发生,医院无需做出人员调整。2009年三峡大学数学建模竞赛热身赛,由三峡大学数学建模协会策划、组织和举办。32.2符号约定,ij:表示第,ij个工作时段,,1,2...12ij;n:表示护士编号即第n个护士;10{inA,表示n护士在i时段不、值班,表示n护士在i时段不值班1M:表示所需护士的人数;2M:表示所需加班护士的人数;iP:表示i时段所需护士的人数;1s2s,:表示设定的护士每日当班的时段排列情况即值班模式is1():i表示第个时间段以模式开始工作的人数s1;is2():i表示第个时间段以模式开始工作的人数s2;@ij:表示为满足时段循环而定义的算法,@*12,@[1,12],ijijkijkN三、问题分析本题是一个规划问题,我们想到建立一般规划模型求解,为能够用数学语言表示,引入一组二维的0-1整型变量10{inA,表示n护士在i时段值班,表示n护士在i时段不值班,利用集循环函数建立相应模型顺利的完成了求解,其分析过程如下:问题一,针对问题需要我们主要引用的集函数为:@function,sets:times/1..12/:start1,start2,required;min=@sum(times:start1+start2)和@for,相应数学语言转化:start1即1s模式:1,1,0,1,1start2即2s模式:1,0,1,0,1,0,1我们设定每名护士只能按其中一种工作模式值班,这时我们可以得出所需护士人数就是按照两种独立工作模式值班的护士之和即目标函数121211()()iMsisi;由于工作模式以满足两个约束条件,此时只有各时段护士需求约束,为解决首尾时段连续的影响,我们定义了一个算法@*@12,[1,12],ijijkijkN,此时该约束可以表示为:11112222:()(@8)(@9)(@11)()(@6)(@8)(@10)()stsisisisisisisisiPi最后利用lingo编程即可进行求解。问题二,由于问题的相似性,据问题一的分析过程,我们可以很简单的将问题二的模型2009年三峡大学数学建模竞赛热身赛,由三峡大学数学建模协会策划、组织和举办。4建立起来,首先设定相应工作模式:start1即1s加班模式:1,1,0,1,0,1,1start2即2s正常模式:1,0,1,0,1,1此时加班护士人数即为按照1s模式值班的护士人数:12211()iMsi111112222()()(@6)(@7)(@9)(@11)()(@7)(@8)(@10)Pisisisisisisisisisi除此约束外,问题二还增加了一个限制条件,护士总人数确定为80人即12121()()80isisi,最后利用lingo应用集循环函数编程即可完成求解。四、模型建立根据以上分析,建立相应的规划模型如下:模型一:模式设定:1s模式:1,1,0,1,1(1表示工作,0表示休息)2s模式:1,0,1,0,1,0,1(1表示工作,0表示休息)Min12111()2()iMsisi:1()1(@8)1(@9)1(@11)2()2(@6)2(@8)2(@10)()stsisisisisisisisiPi,/i时段护士配备约束模型二:模式设定:1s加班模式:1,1,0,1,0,1,1(1表示工作,0表示休息)2s正常模式:1,0,1,0,1,1(1表示工作,0表示休息)Min12211()iMsi:st1()1(@6)1(@7)1(@9)1(@11)2()2(@7)2(@8)2(@10)()sisisisisisisisisiPii,/时段护士配备约束1211()2()80,/isisi总人数约束2009年三峡大学数学建模竞赛热身赛,由三峡大学数学建模协会策划、组织和举办。5五、模型求解5.1数据预处理表一:各编号对应的工作时段(注:为计算方便,我们将编号从1开始计数,对应时段如下表所示)编号123456789101112时段00-0202-0404-0606-0808-1010-1212-1414-1616-1818-2020-2222-24表二:在i时段所需要护士的人数iP1P2P3P4P5P6P7P8P9P10P11P12P人数1515153540404030313530205..2编程求解模型一:Lingo求解结果如下(代码见附录):结论:在每个护士每天工作8小时,且在连续工作4小时后需休息2小时的条件下,该医院为满足工作量的需求至少需要87名护士,对应调度安排见附录。模型二:Lingo求解结果如下(代码见附录)结论:在医院只有80名护士的前提下,为满足加班要求,至少需要26名护士加班。对应护士工作时间安排方案见附录。六、模型检验与结果分析6.2模型一的目标是在满足各种约束条件下,使所需护士人数最少,要做的决策是如何安排护士工作时段。应用Lingo求解的灵敏度结果如下:2009年三峡大学数学建模竞赛热身赛,由三峡大学数学建模协会策划、组织和举办。6OBJBound86.5,Best87,对该题进行再分析知,该医院护士工作时段总量是固定的,结果为121346iiP,由于每个护士需要工作4个时段是确定的,在不考虑工作强度的约束下,我们可以求出最优解346/486.5M,考虑到M是整数,即所需最少护士数为87人。这与我们的模型求解结果刚好一致,这时总工作量为348个时段,与理论计算的吻合度比较好。6.2模型二Lingo求解的结果是80人中至少需要26人加班,即每人每日需工作5个时段,其余54人工作4个时段。此时有总工作时段为26*554*4346,刚好与要求的工作量一致,说明该模型所得出的护士工作时间安排方案是满足要求的优化方案。七、模型评价及改进7.1模型优缺点优点:①文中数据处理采用图表的形式给出,清晰,直观;②预设两种工作模式,避免约束条件的复杂化,简化了运算,从Lingo程序的编写可以感觉到该模型求解的方便。③充分利用集循环函数的特性,使该模型具有很好的可行性和推广性,即该模型求解的思路可以应用其它相类似领域,如策划工厂,学校等的值班安排方案等。不足:①该模型的建立是在一定理想情况得出的结果,未考虑各种客观因素的影响,难免有一些欠妥之处。②另外,该模型设定的工作模式只是所有可能模式中的一种,不能涵盖所有的优2009年三峡大学数学建模竞赛热身赛,由三峡大学数学建模协会策划、组织和举办。7化方案,在实践中不能很好的应对各种突发状况。7.2模型改进(1)上述模型建立过程中,为将多目标规划转化为单目标规划,其中工作模式的选取存在偶然性。在实际中,考虑到客观因素对医院、护士本身出勤的影响,我们应该尽可能多的选取不同工作模式进行求解,这样可以根据不同情况做出调整,增强模型的适应性。(2)在解决护士工作时间问题的规划后,我们建议设置一个客观因素的权重系数,代表各个客观因素对护士人数的影响大小,通过对他们进行分析,确定相应的约束目标,然后通过本模型的求解思路得出对应最优解。【参考文献】[1]宋来忠、王志明./数学建模与实验[M].北京:科学出版社,2005.8;[2]朱道元等/数学建模案例精选P28-41页北京:科学出版社,2003.3;[3]清华大学数学建模讲义关于集循环函数应用章节(姜启源)/网络查询2009.5.[4]苏伶娥;护理人力资源配置不足现状及对策[J];广西医科大学学报;2006年S2期[5]吴慧堃,曾桂珍;有限护理人力资源的合理使用[J];实用护理杂志;2003年03期附录:模型一Lingo程序代码如下:model:sets:times/1..12/:start1,start2,required;endsetsdata:!每天所需的最少职员数;required=151515354040403031353020;enddata!最小化每时间段所需职员数;min=@sum(times:start1+start2);@for(times:@gin(start1));@for(times:@gin(start2));@for(times(J):start1(@wrap(J+8,12))+start1(@wrap(J+9,12))+start1(@wrap(J+11,12))+start1(@wrap(J,12))+2009年三峡大学数学建模竞赛热身赛,由三峡大学数学建模协会策划、组织和举办。8start2(@wrap(J+6,12))+start2(@wrap(J+8,12))+start2(@wrap(J+10,12))+start2(@wrap(J,12))=required(J));End运行结果:结论:在各种约束条件下,该医院为满足需求至少需要87名护士.2009年三峡大学数学建模竞赛热身赛,由三峡大学数学建模协会策划、组织和举办。9对应护士工作时间安排方案如下(注:空格处全部为0)