1、基于线性规划的护士排班优化问题姓名 1: 学号: 专业: 姓名 1: 学号: 专业: 日期:2011 年 7 月 15 日基于线性规划的护士排班优化问题摘要本文研究的是关于医院护士排班最优问题,本文的主要思想是根据约束条件建立相关的线性规划模型,利用 Lingo 求解,分别计算出每天,每星期的最少护士数,并给出具体的排班方案。问题一:计算每天该科所需的最少护士数。针对这一问,从各班次护士需求量考虑,依据每个护士每天至多工作 8 个小时,即上两个班次且两个班次不连上这一假定条件,假设每个时间段开始登记上班的人数为 xi,建立规划模型,进而运用 Lingo 软件进行求解,从而求出每天该科所需最少护
2、士数为 145 人。问题二,以一个星期为周期,计算该科最少需签约多少护士。针对第二问,依据题目给出的约束条件:时间段 02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息。经过本文规划约束可以得出每个星期该科至少需签约210 名护士。问题三,以一个星期为周期,试给出具体的排班方案。依据问题二得出的结果,综合考虑题目中各约束条件,将一个星期(七天)六个班次设为 42 个班次,引进 0,1 变量,即 ,建立线性规划模型,给班 次号 护 士 不 上 第第 班 次号 护 士 上 第第 ijxij01出具体的排班方案,见附录 1,由于有的排班人数大于该次排班的最少要求人数所以该方案不唯
3、一。问题四,计算最少需要多少护师职称以上的护士。运用问题三的方法,增加约束条件,即每班次上 班的护士中护师以上(包括护师)职称的所占比例不低于 40%。同样引进 0,1 变量,即 ,以需要最班 次 无 护 师 级 别 以 上第 班 次 有 护 师 级 别 以 上第 ixi01少的护师职称以上的护士为目标函数,同样建立线性规划模型。得出需要最少的护师(包括护师)职称以上的护士为:84 人。关键词:护士排班 线性规划 0-1 变量 Lingo目录1、问题重述 42、问题分析 53、模型假设 54、符号说明 65、模型建立与求解 65.1 问题一求解 65.2 问题二求解 75.3 问题三求解 75
4、.4 问题四求解 96、模型评价与改进 10参考文献 10附录 11附录一 : 11附录二: 121、问题重述1.1基本条件某医院某科室的一个工作日分为 6 个 4 小时时间长的时间段,每个时间段所需要的护士人员数各不相同。每日每个时间段的人员需求量如下所示:班次 该班时间段(24 小时) 该班所需最少护士数1 6:00-10:00 602 10:00-14:00 703 14:00-18:00 604 18:00-22:00 50 5 22:00-02:00 206 02:00-06:00 30每班的护士在值班开始时向病房报道,排班需满足:(1) 每天至多工作 8 个小时,即上两个班次,两个
5、班次不连上;(2) 第一天排班在时间段 22:00-02:00(小夜班)的护士,第二天在时间段06:00-10:00 不排班;(3) 时间段 02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息;(4) 每个星期每位护士工作 40 小时;1.2需解决的问题问题 1:每天该科所需的最少护士数?问题 2:以一个星期为周期,该科最少需签约多少护士?问题 3:以一个星期为周期,试给出具体的排班方案,该方案是否唯一?问题 4:根据医院要求,每班次上班的护士中护师以上(包括护师)职称的所占比例不低于 40%,问在护士数最少的条件下(第二问决定的最少护士数),最少需要多少护师职称以上(包括
6、护师职称)的护士才能满足院方对职称的要求。注:护士职称评定共分五级别,分别是:护士、护师、主管护师、副主任护师、主任护师。2、问题分析2.1问题背景护士是医院日常运营的基础,科学合理地安排护士工作时间不仅能够缓解其压力,提高护理质量,而且能够降低医院的人力资源运营成本,提高医院的护理质量和工作积极性,保证护士心身健康,因此护士排班已成为医院管理工作的重要内容之一。2.2具体问题分析排班问题是一类带有一定约束条件的优化类问题。在满足各时间段人员需求量的条件下,要对现有人员做出最优安排,从而达到医院的运营需求。问题一的分析:本问题需要解决的是该医院该科每天所需最少护士数,根据各时间段人员需求量表及
7、题目给出的约束条件 1,本文假设个时间段开始上班的人数为决策变量,所需护士数最少为目标函数,建立优化模型,进行求解。问题二的分析:本文题需解决的问题是以一个星期为周期,该科所需的最少护士数,由条件,时间段 02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息可以知道排在大夜班的人都不相同,故可计算出最少护士数。问题三的分析:本问题需给出一个星期内具体的排班方案,也就是说需要知道该班次谁上班,有多少人上班,为此,本问题引进 0,1 变量,建立优化模型,进行求解。在满足每天至多工作 8 个小时,每班次不连上,每个星期工作40 个小时;第一天排班在时间段 22:00-02:00(小
8、夜班)的护士,第二天在时间段,06:00-10:00 不排班;时间段 02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息等的条件下,给出一个排班方案。问题四的分析:本文题需给出一个星期最少需要多少护师职称以上的护士。相对于问题三,本文增加了一个条件,即每班次上班的护士中护师以上(包括护师)职称的所占比例不低于 40%。根据问题三的排班程序可知至少需要 84 位护师,再经过分析具体排班情况时,对其进行调整,得到最终结果。3、模型假设1、 正常上班情况下,没人每天至多工作 8 个小时,即上两个班次,两个班次不连上。2、 第一天排班在时间段 22:00-02:00(小夜班)的护士
9、,第二天在时间段06:00-10:00 不排班。3、 时间段 02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息;4、 护士工作时间按劳动法规定,即每个星期每位护士工作 40 小时;5、 每个护士不能缺勤。6、 一周工作日为七天。4、符号说明ai :第 i 个时间段所需人员数;xi :安排在第 i 个时间段开始上班的人数;z :满足需求最少需要的护士人员总数;xij :第 i 班 j 号护士;5、模型建立与求解5.1问题一求解:每天该科所需的最少护士数。(1)模型建立本文假设 xi 为安排在第 i 个时间段开始登记上班的人数并设为决策变量。目标函数为该天各时间段开始上班的人
10、数之和,即: 61ixz由题目中的约束条件:每天至多工作 8 个小时,即上两个班次,两个班次不连上。可以得出:第三个时间段(14:00-18:00)+第一个时间段(6:00-10:00)=第三个时间段所需的人员数 a3,即1x第四个时间段(18:00-22:00)+第二个时间段(10:00-14:00)=第四个时间段所需人员数 a4,即 424ax以此类推,当 i=1,2,.,6 循环时,有,i=1,2,.,6ii2综上所述:目标函数:min 61ixz约束条件: )(2iiixgna(2)模型求解编写程序,运用 Lingo 求解得出每天该科所需最少护士为 145 人。程序见附录 1。5.2问
11、题二求解:以一个星期为周期,计算该科最少需签约的护士数。由条件:时间段 02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息,从中可以知道上大夜班的护士都不相同,一个星期中每天需要 30 个护士上大夜班,则一个星期所需最少护士数为:30*7=210。本问题的检验将在问题三中体现。5.3问题三求解:以一个星期为周期,给出具体的排班方案。(1)模型建立本问题需给出每个护士每天每班次的上班情况,为此本问题引进 0,1 变量,设 xij 表示第 i 个班次 j 号护士,其具体意义如下: 班 次号 护 士 不 上 第第 班 次号 护 士 上 第第 ijxij01由于每天六个班次,则一个
12、星期总共有 42 班次,即 i 取 1,2,3.42。约束条件如下:1、 每天至多工作 8 个小时,即上两个班次,即j=1,2,.2102222423736102524191832761iijiijiijiijijijijxxxx2、 两个班次不连上,即j=1,2,.2104137)1(350)(29)1(31)(17)1()(51)1(i jiiji jiiji jiiji jiiji jiiji jiijijiijxxxx3、 第一天排班在时间段 22:00-02:00(小夜班)的护士,第二天在时间段06:00-10:00 不排班,即j=1,2,.210113752953917375jjj
13、jjjxx4、 时间段 02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息,即j=1,2,.210222222221423763610025424198183276421iijjiijjiijjiijjiijjijjijjijxxxx5、 每个星期每位护士工作 40 小时,即,j= 1,2,.210 1042ijx(2)问题求解编写程序,利用 Lingo 求解,程序见附录 1,具体每人每天每班次的排班方案见附录 2。每天每班次的上班人数如表一。从程序可以验证问题二中的 145 人为一个星期所需最少护士数。表一 人员分配表星期班次 星期一 星期二 星期三 星期四 星期五 星期
14、六 星期天6:00-10:00 113 60 60 60 60 60 6010:00-14:00 70 71 70 71 70 70 7014:00-18:00 62 60 60 60 61 61 6018:00-22:00 50 52 50 53 51 50 5022:00-02:00 22 20 20 20 22 21 2002:00-06:00 30 30 30 30 30 30 305.3.1方案唯一性分析:由表一知,星期一的第一个时间段,第三个时间段,第五时间段等都大于题目要求的最少护士数,应此交换这些多的人就可以排出多种方案,所以不唯一。5.4问题四求解:求最少需要的护师职称以上(
15、包括护师职称)的护士。问题四在以问题二的前提下,即确定了一个星期最少需要护士为 145 人,为此本问题做一下求解。目标函数: 210minixz1. 引进 0,1 变量 班 次 无 护 师 级 别 以 下第 班 次 有 护 师 级 别 以 上第 ixi012. 新增一约束条件: ,其它约束条件与问题三42,.1,.0*21iaxjiii相同,在此不做重复。3. 编写程序求解,可得最少需要 84 位护师职称(包括护师职称)以上的护士才能满足院方对职称的要求。6、模型评价与改进6.1模型的优点1. 该模型将护士排班所要求的条件都用数学语言表达清楚了,非常符合题目意思,很好的解决了这一类问题。实际医
16、院的排班都可借鉴该模型对限制条件进行修改即可得到该院方的排班要求,所以本模型具有很好的通用性,实用性强。而且是在满足医院要求下线人数下的优化,可以为医院减少开支。2. 该模型巧妙的将非线性问题转化为线性问题,避免了程序运行时间长等缺点。3. 在问题三中引进了 0,1 变量,直观易懂,将问题简化了,更容易着手解决问题。6.2模型的缺点与改进1. 该模型得出的结果不是很明了,需要大量的处理工作才能制作真实的排班表。2. 该模型只考虑了一些劳动法约束等客观因素,并没有考虑护士请假约束和护士对工作时段偏好以及护士间配合默契程度的软约束。鉴于此,该模型可进一步改进,即通过增加护士的工作时段偏好、相互配合
17、默契程度等因素进一步扩展护士排班模型, 使其在满足各种实际约束的同时更具人性化,实现“护士心意卡”排班方式。参考文献1 姜启源,谢金星 ,叶俊.数学模型M . 北京:高等教育出版社,2003.2 秦裕瑗,秦明复.运筹学简明教程M.北京:高等教育出版社,施普林格出版社,2000.3 韩大卫.管理运筹学 M .大连:大连理工大学出版社,2006.4 http:/ :问题一程序:model:sets:s/16/: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);f
18、or(s(i):gin(x(i);End问题三程序:model:sets:r/1210/;b/142/: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)a(i);for(link(i,j):bin(x(i,j);End问题四程序:model:
19、sets:r/1210/:x;b/142/:a;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)a(i)*0.4);for(link(i,j):bin(m(i,j);for(r(i):bin(x(i);End附录二:问题
20、三护士具体排班方案:周一第 1班护士编号周一第 2班护士编号周一第 3班护士编号周一第 4班护士编号周一第 5班护士编号周一第 6班护士编号周二第 1班护士编号周二第 2班护士编号周二第 3班护士编号周二第 4班护士编号周二第 5班护士编号周二第 6班护士编号15 11 1 3 1 10 20 2 1 3 4 221 12 2 9 2 16 21 3 4 9 6 522 14 4 10 4 17 23 7 5 13 7 3224 19 6 11 5 18 27 8 6 14 15 3325 20 7 15 6 19 31 9 23 21 29 5126 23 8 35 7 24 32 11 2
21、9 22 42 5627 29 17 36 8 25 39 12 30 31 46 5930 34 21 40 12 28 44 13 33 39 49 6231 35 26 46 33 37 48 14 35 40 52 6732 36 27 49 34 38 55 15 41 47 61 6939 37 28 53 43 45 58 22 43 48 95 7041 38 30 55 52 50 60 26 44 53 96 7342 40 31 56 69 81 63 34 49 54 99 8043 48 33 62 74 83 64 36 51 55 112 8944 50 41 6
22、7 108 85 65 40 58 56 113 9245 57 51 70 115 86 71 42 62 57 115 9346 62 58 76 152 105 76 47 63 64 131 9447 63 59 88 155 109 77 52 65 75 139 9749 64 61 93 161 122 78 53 66 82 185 10651 65 66 94 177 127 93 54 68 88 190 11152 68 75 102 186 136 95 57 71 101 11753 69 79 114 188 150 97 59 77 103 12854 72 81
23、 119 154 98 61 78 108 12955 74 82 121 157 100 69 80 110 13756 76 84 126 162 101 72 90 111 14358 83 87 141 169 102 73 96 116 14759 88 89 142 175 107 74 99 118 16460 99 91 148 178 110 79 102 119 19961 101 92 151 183 114 82 117 120 20167 102 95 163 189 120 84 121 124 20271 103 96 166 121 87 123 12573 1
24、05 97 170 123 89 129 12675 110 100 174 125 91 130 13777 114 104 179 128 92 131 13878 119 106 190 130 94 132 14079 121 107 191 132 103 133 14180 122 111 196 134 104 134 14582 124 112 197 141 106 135 14784 126 113 199 144 113 142 16385 127 116 200 151 115 151 16686 129 118 201 153 116 153 16787 134 12
25、3 202 158 124 158 17089 144 128 203 160 138 160 18190 146 130 204 163 139 161 18291 152 132 205 164 140 168 18892 154 133 206 165 143 171 19293 155 135 207 166 146 172 19494 157 137 208 167 148 174 19895 166 143 209 168 149 176 20096 168 145 210 171 152 180 20397 170 149 173 155 184 20498 172 156 17
26、4 156 186 208100 174 159 176 159 187104 176 160 184 170 190106 177 164 187 177 191107 179 165 191 179 193108 182 167 193 182 206109 183 171 194 185 207111 184 173 206 192 209112 187 181 207 195 210113 188 185 196115 192 193 197117 195 198118 198 199120 201 200123 202 201125 204 202128 205 203130 209
27、 204131 210 205132 208133135136137138139140141142143145147148149150151153156158159160161162163164165167169171173175178180181185186189190191194196197周三第 1班护士编号周三第 2班护士编号周三第 3班护士编号周三第 4班护士编号周三第 5班护士编号周三第 6班护士编号周四第 1班护士编号周四第 2班护士编号周四第 3班护士编号周四第 4班护士编号10 3 6 1 10 1 2 5 7 311 15 14 8 28 4 3 9 10 512 21 1
28、6 9 29 26 7 12 16 813 23 17 12 48 30 8 20 17 1114 24 18 20 53 31 11 24 18 1316 25 19 23 57 41 13 25 19 1517 26 22 24 99 42 14 28 23 2018 30 27 38 121 43 37 29 27 2119 31 29 44 132 47 40 32 33 2220 35 34 46 142 55 49 35 34 2422 38 39 47 152 58 54 36 37 2527 40 41 54 153 75 56 38 46 2834 46 42 61 154
29、82 59 39 49 3536 48 45 64 159 98 63 44 54 3837 49 50 65 161 104 65 45 59 4039 52 60 68 162 107 67 48 62 4443 53 66 72 170 131 71 50 67 4844 55 75 77 177 134 73 51 72 5345 57 76 81 184 139 77 52 74 6054 58 78 96 189 148 78 57 84 6460 61 82 101 173 80 60 90 6564 63 86 102 181 81 61 91 6672 68 87 105 1
30、85 84 66 111 6986 71 90 108 190 90 68 112 7187 74 95 109 194 91 70 113 7388 79 98 114 196 97 76 116 8090 83 99 115 198 100 79 117 81100 85 100 118 200 101 83 118 87107 91 110 119 209 102 85 119 88116 96 112 120 210 112 86 123 93120 103 113 122 113 88 127 95122 104 116 130 115 89 135 97123 105 123 14
31、4 117 92 137 100125 108 125 148 118 93 138 105126 109 135 155 127 94 140 109127 114 136 160 136 99 141 122130 115 138 167 137 103 142 124138 118 139 169 138 105 144 130140 121 140 171 143 106 147 136144 124 145 175 144 108 149 146145 131 149 176 147 110 150 151149 132 157 178 149 114 152 154152 133
32、158 179 150 120 158 156157 134 159 180 157 122 159 157158 141 161 182 163 124 162 161165 142 168 186 165 125 163 164168 146 173 190 172 126 165 172176 150 174 205 176 128 166 180177 151 183 207 178 129 170 189182 153 184 210 180 130 174 192187 154 185 183 132 177 199188 155 187 186 133 183 201192 15
33、6 191 191 145 186 207195 160 192 192 146 187197 162 195 203 151 193200 166 196 204 153 195203 167 197 205 154 197205 169 198 206 155 204207 170 208 207 156 205208 171 209 208 160 206172 167175 168178 169180 175181 179189 182193 188194 189204 199206 201202周四第 5班护士编号周四第 6班护士编号周五第 1班护士编号周五第 2班护士编号周五第 3
34、班护士编号周五第 4班护士编号周五第 5班护士编号周五第 6班护士编号周六第 1班护士编号周六第 2班护士编号9 6 1 2 19 1 9 3 4 210 12 20 3 23 2 16 35 5 1316 14 25 4 25 7 53 40 7 1417 15 26 5 26 8 56 44 8 1818 21 27 7 27 10 58 49 10 2219 22 30 8 28 13 60 52 12 2423 29 35 9 31 17 92 61 19 2532 34 36 10 36 18 105 71 21 2933 39 40 11 45 30 107 78 23 3350
35、46 42 16 47 32 111 91 26 3463 72 45 17 48 37 117 100 28 3768 76 47 18 49 38 135 113 30 4270 77 51 24 54 42 136 120 31 4578 79 57 32 55 44 147 123 32 4899 87 61 33 56 51 157 124 38 53159 95 62 37 57 59 162 125 41 54166 103 65 41 58 62 169 130 43 55177 108 66 43 60 65 184 142 47 58184 114 69 50 69 67
36、193 149 50 59203 115 73 52 73 70 199 151 51 64116 75 59 74 71 200 159 57 66152 84 64 84 80 206 160 63 68153 85 67 85 81 161 67 70155 86 68 86 83 163 72 73171 89 70 89 88 165 75 74174 93 78 91 94 166 77 76182 98 80 92 99 180 80 82191 101 81 97 100 186 81 83195 104 82 98 119 203 84 89197 106 83 101 12
37、2 205 85 92109 88 104 131 87 95117 90 106 134 88 98119 96 109 140 93 99121 102 111 141 94 102125 105 113 143 96 103127 107 120 146 106 104129 110 121 148 108 105134 118 128 150 110 109135 123 129 158 112 115138 124 132 170 114 121139 126 137 173 131 126143 133 139 177 133 128144 136 144 180 138 1291
38、45 140 145 181 139 132149 141 147 188 140 134150 142 154 189 143 136151 148 156 194 150 137169 158 157 198 153 141173 160 159 202 172 144175 161 165 209 178 145176 162 167 210 182 147179 163 172 183 148183 164 175 185 152185 168 176 188 154187 178 179 194 155189 181 183 195 157190 186 184 196 158192
39、 193 187 202 164208 194 192 207 174210 198 196 210 175199 208 179200 181201 191202 193203 197204 198205 200206 201207 204209 208周六第3班护士编号周六第 4班护士编号周六第 5班护士编号周六第6班护士编号周日第 1班护士编号周日第 2班护士编号周日第 3班护士编号周日第 4班护士编号周日第5班护士编号周日第 6班护士编号1 18 2 7 1 3 2 1 4 114 20 6 8 14 4 14 3 29 135 25 11 9 24 5 15 5 30 206 26
40、13 23 28 6 16 6 40 279 30 15 48 32 10 17 11 50 3612 31 16 53 35 13 25 12 76 6315 33 17 54 39 18 27 20 77 6416 34 22 57 41 19 41 22 79 6619 36 46 60 43 21 43 24 82 6821 38 66 65 45 26 44 28 83 7428 41 73 88 52 29 49 35 103 8432 43 79 99 56 31 50 36 104 9039 50 116 118 58 33 52 37 114 9646 51 127 121
41、62 34 56 39 116 10147 55 128 132 64 37 61 42 124 10256 60 129 138 69 38 62 45 127 11063 62 146 140 71 42 71 55 152 11265 68 155 141 72 46 72 69 165 11967 70 167 144 75 47 75 70 166 12669 72 169 145 78 51 77 73 198 13375 74 200 158 81 59 78 86 13577 76 170 82 63 79 97 14679 81 176 85 66 83 102 15680
42、83 177 91 67 85 108 16785 86 184 94 70 89 123 16887 89 192 95 74 91 128 17294 90 204 98 76 92 129 17996 92 206 100 80 94 131 18797 93 207 107 84 95 134 188107 98 208 108 86 98 142 193116 101 111 87 104 143117 103 115 90 106 148118 105 117 93 107 160119 106 119 97 109 162122 109 120 101 111 163127 11
43、0 122 103 112 164131 111 125 110 113 169133 112 126 114 117 173139 126 130 124 120 181143 135 131 127 122 183146 137 134 128 125 186150 164 136 129 133 190153 172 139 135 136 195156 174 147 137 146 196162 175 148 142 147 199168 181 153 149 151 200170 190 154 150 154 201171 191 157 152 155 203173 195 161 156 161 209176 202 162 159 165 210177 164 163 171178 166 169 174182 168 172 178184 171 173 179185 178 175 180188 180 183 182189 185 186 188196 194 187 189199 197 190 194206 209 191 197209 193195196198199201202203205210