《基于线性规划的护士排班优化问题.doc》由会员分享,可在线阅读,更多相关《基于线性规划的护士排班优化问题.doc(21页珍藏版)》请在三一办公上搜索。
1、基于线性规划的护士排班优化问题姓名1: 学号: 专业: 姓名1: 学号: 专业: 日期:2011年7月15日基于线性规划的护士排班优化问题摘要本文研究的是关于医院护士排班最优问题,本文的主要思想是根据约束条件建立相关的线性规划模型,利用Lingo求解,分别计算出每天,每星期的最少护士数,并给出具体的排班方案。问题一:计算每天该科所需的最少护士数。针对这一问,从各班次护士需求量考虑,依据每个护士每天至多工作8个小时,即上两个班次且两个班次不连上这一假定条件,假设每个时间段开始登记上班的人数为xi,建立规划模型,进而运用Lingo软件进行求解,从而求出每天该科所需最少护士数为145人。问题二,以一
2、个星期为周期,计算该科最少需签约多少护士。针对第二问,依据题目给出的约束条件:时间段02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息。经过本文规划约束可以得出每个星期该科至少需签约210名护士。问题三,以一个星期为周期,试给出具体的排班方案。依据问题二得出的结果,综合考虑题目中各约束条件,将一个星期(七天)六个班次设为42个班次,引进0,1变量,即,建立线性规划模型,给出具体的排班方案,见附录1,由于有的排班人数大于该次排班的最少要求人数所以该方案不唯一。问题四,计算最少需要多少护师职称以上的护士。运用问题三的方法,增加约束条件,即每班次上 班的护士中护师以上(包括护师)
3、职称的所占比例不低于40%。同样引进0,1变量,即,以需要最少的护师职称以上的护士为目标函数,同样建立线性规划模型。得出需要最少的护师(包括护师)职称以上的护士为:84人。 关键词:护士排班 线性规划 0-1变量 Lingo目录1、问题重述42、问题分析53、模型假设54、符号说明65、模型建立与求解65.1问题一求解65.2问题二求解75.3问题三求解75.4问题四求解96、模型评价与改进10参考文献10附录11附录一 :11附录二:121、问题重述1.1基本条件某医院某科室的一个工作日分为6个4小时时间长的时间段,每个时间段所需要的护士人员数各不相同。每日每个时间段的人员需求量如下所示:班
4、次该班时间段(24小时)该班所需最少护士数16:00-10:0060210:00-14:0070314:00-18:0060418:00-22:0050 522:00-02:0020602:00-06:0030每班的护士在值班开始时向病房报道,排班需满足:(1) 每天至多工作8个小时,即上两个班次,两个班次不连上;(2) 第一天排班在时间段22:00-02:00(小夜班)的护士,第二天在时间段06:00-10:00不排班;(3) 时间段02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息;(4) 每个星期每位护士工作40小时;1.2需解决的问题问题1:每天该科所需的最少护士数
5、?问题2:以一个星期为周期,该科最少需签约多少护士?问题3:以一个星期为周期,试给出具体的排班方案,该方案是否唯一?问题4:根据医院要求,每班次上班的护士中护师以上(包括护师)职称的所占比例不低于40%,问在护士数最少的条件下(第二问决定的最少护士数),最少需要多少护师职称以上(包括护师职称)的护士才能满足院方对职称的要求。注:护士职称评定共分五级别,分别是:护士、护师、主管护师、副主任护师、主任护师。2、问题分析2.1问题背景护士是医院日常运营的基础,科学合理地安排护士工作时间不仅能够缓解其压力,提高护理质量,而且能够降低医院的人力资源运营成本,提高医院的护理质量和工作积极性,保证护士心身健
6、康,因此护士排班已成为医院管理工作的重要内容之一。2.2具体问题分析排班问题是一类带有一定约束条件的优化类问题。在满足各时间段人员需求量的条件下,要对现有人员做出最优安排,从而达到医院的运营需求。问题一的分析:本问题需要解决的是该医院该科每天所需最少护士数,根据各时间段人员需求量表及题目给出的约束条件1,本文假设个时间段开始上班的人数为决策变量,所需护士数最少为目标函数,建立优化模型,进行求解。问题二的分析:本文题需解决的问题是以一个星期为周期,该科所需的最少护士数,由条件,时间段02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息可以知道排在大夜班的人都不相同,故可计算出最
7、少护士数。问题三的分析:本问题需给出一个星期内具体的排班方案,也就是说需要知道该班次谁上班,有多少人上班,为此,本问题引进0,1变量,建立优化模型,进行求解。在满足每天至多工作8个小时,每班次不连上,每个星期工作40个小时;第一天排班在时间段22:00-02:00(小夜班)的护士,第二天在时间段,06:00-10:00不排班;时间段02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息等的条件下,给出一个排班方案。问题四的分析:本文题需给出一个星期最少需要多少护师职称以上的护士。相对于问题三,本文增加了一个条件,即每班次上班的护士中护师以上(包括护师)职称的所占比例不低于40%
8、。根据问题三的排班程序可知至少需要84位护师,再经过分析具体排班情况时,对其进行调整,得到最终结果。3、模型假设1、 正常上班情况下,没人每天至多工作8个小时,即上两个班次,两个班次不连上。2、 第一天排班在时间段22:00-02:00(小夜班)的护士,第二天在时间段06:00-10:00不排班。3、 时间段02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息;4、 护士工作时间按劳动法规定,即每个星期每位护士工作40小时;5、 每个护士不能缺勤。6、 一周工作日为七天。4、符号说明ai :第 i个时间段所需人员数;xi :安排在第 i个时间段开始上班的人数;z :满足需求最
9、少需要的护士人员总数;xij :第i班j号护士;5、模型建立与求解5.1问题一求解:每天该科所需的最少护士数。(1)模型建立本文假设xi为安排在第 i个时间段开始登记上班的人数并设为决策变量。目标函数为该天各时间段开始上班的人数之和,即:由题目中的约束条件:每天至多工作8个小时,即上两个班次,两个班次不连上。可以得出:第三个时间段(14:00-18:00)+第一个时间段(6:00-10:00)=第三个时间段所需的人员数a3,即第四个时间段(18:00-22:00)+第二个时间段(10:00-14:00)=第四个时间段所需人员数a4,即以此类推,当i=1,2,.,6循环时,有,i=1,2,.,6
10、综上所述:目标函数:min 约束条件:(2)模型求解编写程序,运用Lingo求解得出每天该科所需最少护士为145人。程序见附录1。5.2问题二求解:以一个星期为周期,计算该科最少需签约的护士数。由条件:时间段02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息,从中可以知道上大夜班的护士都不相同,一个星期中每天需要30个护士上大夜班,则一个星期所需最少护士数为:30*7=210。本问题的检验将在问题三中体现。5.3问题三求解:以一个星期为周期,给出具体的排班方案。(1)模型建立本问题需给出每个护士每天每班次的上班情况,为此本问题引进0,1变量,设xij表示第i个班次j号护士,
11、其具体意义如下:由于每天六个班次,则一个星期总共有42班次,即i取1,2,3.42。约束条件如下:1、 每天至多工作8个小时,即上两个班次,即 j=1,2,.2102、 两个班次不连上,即 j=1,2,.2103、 第一天排班在时间段22:00-02:00(小夜班)的护士,第二天在时间段06:00-10:00不排班,即 j=1,2,.2104、 时间段02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息,即 j=1,2,.2105、 每个星期每位护士工作40小时,即 ,j=1,2,.210 (2)问题求解编写程序,利用Lingo求解,程序见附录1,具体每人每天每班次的排班方案
12、见附录2。每天每班次的上班人数如表一。从程序可以验证问题二中的145人为一个星期所需最少护士数。表一 人员分配表星期班次星期一星期二星期三星期四星期五星期六星期天6:00-10:0011360606060606010:00-14:007071707170707014:00-18:006260606061616018:00-22:005052505351505022:00-02:002220202022212002:00-06:00303030303030305.3.1方案唯一性分析:由表一知,星期一的第一个时间段,第三个时间段,第五时间段等都大于题目要求的最少护士数,应此交换这些多的人就可以排
13、出多种方案,所以不唯一。5.4问题四求解:求最少需要的护师职称以上(包括护师职称)的护士。问题四在以问题二的前提下,即确定了一个星期最少需要护士为145人,为此本问题做一下求解。目标函数:1. 引进0,1变量2. 新增一约束条件:,其它约束条件与问题三相同,在此不做重复。3. 编写程序求解,可得最少需要84位护师职称(包括护师职称)以上的护士才能满足院方对职称的要求。6、模型评价与改进6.1模型的优点1. 该模型将护士排班所要求的条件都用数学语言表达清楚了,非常符合题目意思,很好的解决了这一类问题。实际医院的排班都可借鉴该模型对限制条件进行修改即可得到该院方的排班要求,所以本模型具有很好的通用
14、性,实用性强。而且是在满足医院要求下线人数下的优化,可以为医院减少开支。2. 该模型巧妙的将非线性问题转化为线性问题,避免了程序运行时间长等缺点。3. 在问题三中引进了0,1变量,直观易懂,将问题简化了,更容易着手解决问题。6.2模型的缺点与改进1. 该模型得出的结果不是很明了,需要大量的处理工作才能制作真实的排班表。2. 该模型只考虑了一些劳动法约束等客观因素,并没有考虑护士请假约束和护士对工作时段偏好以及护士间配合默契程度的软约束。鉴于此,该模型可进一步改进,即通过增加护士的工作时段偏好、相互配合默契程度等因素进一步扩展护士排班模型, 使其在满足各种实际约束的同时更具人性化,实现“护士心意
15、卡”排班方式。参考文献1 姜启源,谢金星,叶俊.数学模型M . 北京:高等教育出版社,2003.2 秦裕瑗,秦明复.运筹学简明教程M.北京:高等教育出版社,施普林格出版社,2000.3 韩大卫.管理运筹学M .大连:大连理工大学出版社,2006.4 附录附录一 :问题一程序:model:sets:s/1.6/:a,x;endsetsdata:a=60 70 60 50 20 30;enddatamin=sum(s(i):x(i);for(s(i):x(i)+x(wrap(i-2,6)=a(i);for(s(i):gin(x(i);End问题三程序:model:sets:r/1.210/;b/1
16、.42/:a;link(b,r):x;endsetsdata:a=60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30;enddatafor(r(j):sum(b(i)|i#GE#1#and#i#le#6:x(i,j)2);for(r(j):sum(b(i)|i#GE#7#and#i#le#12:x(i,j)2);for(r(j):sum(b(i)|i#GE#13#and#i#le#18:x(i,j
17、)2);for(r(j):sum(b(i)|i#GE#19#and#i#le#24:x(i,j)2);for(r(j):sum(b(i)|i#GE#25#and#i#le#30:x(i,j)2);for(r(j):sum(b(i)|i#GE#31#and#i#le#36:x(i,j)2);for(r(j):sum(b(i)|i#GE#37#and#i#le#42:x(i,j)2);for(r(j):for(b(i)|i#GE#1#and#i#le#5:x(i,j)+x(i+1,j)1);for(r(j):for(b(i)|i#GE#7#and#i#le#11:x(i,j)+x(i+1,j)1)
18、;for(r(j):for(b(i)|i#GE#13#and#i#le#17:x(i,j)+x(i+1,j)1);for(r(j):for(b(i)|i#GE#19#and#i#le#23:x(i,j)+x(i+1,j)1);for(r(j):for(b(i)|i#GE#25#and#i#le#29:x(i,j)+x(i+1,j)1);for(r(j):for(b(i)|i#GE#31#and#i#le#35:x(i,j)+x(i+1,j)1);for(r(j):for(b(i)|i#GE#37#and#i#le#41:x(i,j)+x(i+1,j)1);for(r(j):for(b(i)|i
19、#ge#1#and#i#le#6:x(6*i-1,j)+x(6*i+1,j)1);for(r(j):sum(r(j):x(6,j)+x(12,j)+x(18,j)+x(24,j)+x(30,j)+x(36,j)+x(42,j)1);for(r(j):for(b(i)|i#ge#1#and#i#le#6:2*x(6*i,j)+(x(6*i+1,j)+x(6*i+2,j)+x(6*i+3,j)+x(6*i+4,j)+x(6*i+5,j)+x(6*i+6,j)a(i);for(link(i,j):bin(x(i,j);End问题四程序:model:sets:r/1.210/:x;b/1.42/:a;
20、link(b,r):m;endsetsdata:a=60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30,60,70,60,50,20,30;enddatamin=sum(r:x);for(r(j):sum(b(i)|i#GE#1#and#i#le#6:m(i,j)2);for(r(j):sum(b(i)|i#GE#7#and#i#le#12:m(i,j)2);for(r(j):sum(b(i)|i#GE#13#and#i#le#18
21、:m(i,j)2);for(r(j):sum(b(i)|i#GE#19#and#i#le#24:m(i,j)2);for(r(j):sum(b(i)|i#GE#25#and#i#le#30:m(i,j)2);for(r(j):sum(b(i)|i#GE#31#and#i#le#36:m(i,j)2);for(r(j):sum(b(i)|i#GE#37#and#i#le#42:m(i,j)2);for(r(j):for(b(i)|i#GE#1#and#i#le#5:m(i,j)+m(i+1,j)1);for(r(j):for(b(i)|i#GE#7#and#i#le#11:m(i,j)+m(i+
22、1,j)1);for(r(j):for(b(i)|i#GE#13#and#i#le#17:m(i,j)+m(i+1,j)1);for(r(j):for(b(i)|i#GE#19#and#i#le#23:m(i,j)+m(i+1,j)1);for(r(j):for(b(i)|i#GE#25#and#i#le#29:m(i,j)+m(i+1,j)1);for(r(j):for(b(i)|i#GE#31#and#i#le#35:m(i,j)+m(i+1,j)1);for(r(j):for(b(i)|i#GE#37#and#i#le#41:m(i,j)+m(i+1,j)1);for(r(j):for(
23、b(i)|i#ge#1#and#i#le#6:m(6*i-1,j)+m(6*i+1,j)1);for(r(j):sum(r(j):m(6,j)+m(12,j)+m(18,j)+m(24,j)+m(30,j)+m(36,j)+m(42,j)1);for(r(j):for(b(i)|i#ge#1#and#i#le#6:2*m(6*i,j)+(m(6*i+1,j)+m(6*i+2,j)+m(6*i+3,j)+m(6*i+4,j)+m(6*i+5,j)+m(6*i+6,j)a(i)*0.4);for(link(i,j):bin(m(i,j);for(r(i):bin(x(i);End附录二:问题三护士
24、具体排班方案:周一第1班护士编号周一第2班护士编号周一第3班护士编号周一第4班护士编号周一第5班护士编号周一第6班护士编号周二第1班护士编号周二第2班护士编号周二第3班护士编号周二第4班护士编号周二第5班护士编号周二第6班护士编号15111311020213422112292162134965221441041723751373224196115182786141533252071561931923212951262383572432112922425627291736825391230314659303421401228441333394962313526463337481435405267
25、323627493438551541476169393728534345582243489570413830555250602644539673424031566981633449549980434833627483643651551128944504167108856540585611392455751701158671426257115934662587615210576476364131944763598815510977526575139974964619316112278536682185106516566941771279354688819011152687510218613695
26、577110111753697911418815097597710312854728111915498617810812955748212115710069801101375676841261621017290111143588387141169102739611614759888914217510774991181646099911481781107910211919961101921511831148211712020167102951631891208412112420271103961661218712312573105971701238912912675110100174125911
27、301377711410417912892131138781191061901309413214079121107191132103133141801221111961341041341458212411219714110613514784126113199144113142163851271162001511151511668612911820115311615316787134123202158124158170891441282031601381601819014613020416313916118291152132205164140168188921541332061651431711
28、929315513520716614617219494157137208167148174198951661432091681491762009616814521017115218020397170149173155184204981721561741561862081001741591761591871041761601841701901061771641871771911071791651911791931081821671931822061091831711941852071111841732061922091121871812071952101131881851961151921931
29、97117195198118198199120201200123202201125204202128205203130209204131210205132208133135136137138139140141142143145147148149150151153156158159160161162163164165167169171173175178180181185186189190191194196197周三第1班护士编号周三第2班护士编号周三第3班护士编号周三第4班护士编号周三第5班护士编号周三第6班护士编号周四第1班护士编号周四第2班护士编号周四第3班护士编号周四第4班护士编号1036
30、110125731115148284391051221169292671216813231712483082017111424182053311124181316251923574113251915172622249942142823201830273812143372927211931294413247403233222035344614255493534242238394715258543637252740415415375563846283446426115482593949353648456415998634454383749506516110465455940395260681621
31、076748624443536672170131715067484455757717713473517253455776811841397752746054587896189148785784646061821011738060906564638610218181619166726887105185846611169867190108190906811271877495109194917011373887998114196977611680908399115198100791178110085100118200101831188710791110119209102851198811696112
32、120210112861239312010311312211388127951221041161301158913597123105123144117921371001251081251481189313810512610913515512794140109127114136160136991411221301151381671371031421241381181391691381051441301401211401711431061471361441241451751441081491461451311491761471101501511491321571781491141521541521
33、33158179150120158156157134159180157122159157158141161182163124162161165142168186165125163164168146173190172126165172176150174205176128166180177151183207178129170189182153184210180130174192187154185183132177199188155187186133183201192156191191145186207195160192192146187197162195203151193200166196204153195203167197205154197205169198206155204