护士工作时间的安排Word下载.docx
《护士工作时间的安排Word下载.docx》由会员分享,可在线阅读,更多相关《护士工作时间的安排Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
00—4:
3
4:
00—6:
4
6:
00—8:
35
5
8:
00—10:
40
6
10:
00—12:
7
12:
00—14:
8
14:
00—16:
30
9
16:
00—18:
31
10
18:
00—20:
11
20:
00—22:
12
22:
00—24:
20
问题1:
(1)为满足需求最少需要多少名护士?
这里假定每位护士每天工作8小时,且在工作4小时后需要休息1小时。
(2)如果满足需求的排班方案不止一种,请给出你认为最合理的排班方案,并说明其理由。
问题2:
目前心脑血管科只有80名护士,如果这个数目不能满足指定的需求,只能考虑让部分护士加班。
如果加班,每天加班的时间为2小时,且紧随在一个4小时工作时段之后,中间没有休息。
(1)请给出护士工作时间安排的方案,以使需要加班的护士数目最少。
(2)如果排班(包括加班)的方案不止一种,请给出你认为最合理的排班和加班方案,并说明其理由。
2.问题分析
本题属于带有一定约束条件的数学规划问题。
在满足各时间段人员需求量的条件下,需要对现有人员做出最优安排,从而达到医院的需求,同时使人员利用率最高从而降低成本。
对于问题一,本题给出了该医院心血管科各时间段的护士人员需求量,并假定每个护士每天工作8小时,且在工作4个小时后需要休息1个小时,要求我们求出满足需求的最少护士人数。
若护士休息1小时后立即开始工作,则会出现护士在2小时时段间开始工作或休息,在这种情况下想要解决问题就还需要将现有的2小时时段分割为2个1小时时段,再重新确定新的每个1小时时段护士需要人数,然后再进行求解,但是如果这样处理不仅加剧了模型求解的复杂程度而且在重新确定新的每个1小时时段护士需要人数时主观臆断太强,这样会降低模型的一般性和准确性。
故为降低模型的复杂性和提高准确度,我们假定每个时段为2小时且护士只在时段初开始工作,时段间不开始工作,即允许0点开始工作但是不允许1点开始工作。
在该假设条件下,护士休息1个小时作休息2小时处理。
故每个护士的每天的在岗时间为连续5个时段,包括4个时段的工作时间及1小时休息(做1个时段处理)。
因为变量为护士人数,故所得结果为自然数。
我们假定在各时间段开始上班的人数为自变量,所需人员总数为应变量,各个时段的需要人数为限制条件,建立整数规划模型,运用软件进行求解。
对于问题二,与问题一相比,增加了该医院心脑血管科现有护士为80人,加班人员每天加班时间为2个小时,且紧随在一个4小时工作时段之后,中间没有休息的限定条件。
对于是否要加班,要先看第一题的结果,若大于80人,则必须有人加班,若小于80人,则反之。
此时,我们假定在各时间段开始正常上班的人数以及开始上班且需要加班的人数为自变量,所需加班人员总数为应变量,在限定条件下,建立整数规划模型,运用软件进行求解。
3.符号说明
1.
:
为满足需求所需要的护士人员总数;
2.
需要加班的护士人员总数;
3.
各个时段需要的人数;
,
=15...
=20.
4.
第
个时间段开始上班的人数。
为自然数。
5.
个时间段开始正常上班的人数。
6.
个时间段开始上班且需要加班的人数。
4.模型假设
1.正常上班时,每个护士每天工作8小时,且在工作4个小时后需要休息1个小时;
2.护士只在时段初开始工作,时段间不开始工作,即允许0点开始工作但是不允许1点开始工作;
3.在假设2下,将护士休息1小时作1个时段处理;
4.加班人员每天加班时间为2个小时,且紧随在一个4小时工作时段之后,中间没有休息。
5.建模过程
5.1问题一的建模与求解
5.1.1问题分析
本题给出了该医院心血管科各时间段的护士人员需求量,并假定每个护士每天工作8小时,且在工作4个小时后需要休息1个小时,要求我们求出满足需求的最少护士人数。
假定护士只在时段初开始工作,时段间不开始工作,即允许0点开始工作但是1点不允许开始工作,故在每个时段为2小时的条件下,护士休息1个小时作休息了两小时处理。
故每个护士的每天的在岗时间为连续5个时段,包括4个时段的工作时间及一小时休息(作一个时段处理)。
因为变量为护士人数,所以所得结果为自然数。
我们假定在各时间段开始上班的人数为自变量,所需人员总数为应变量,各个时段的需要人数为限制条件,建立数学规划模型,运用软件进行求解。
5.1.2模型建立
为满足需求所需要的护士人员总数等于各个时段开始上班的护士人数之和,即:
以第一个时段即0:
00-2:
00为例,在该时段工作的护士分别为第9、10、12、1时段开始上班的护士。
为满足该时段人员需求,则应满足有以下条件:
其他时段与第一个时段同理。
故可建立数学规划模型如下:
上述式子中
为
时,
.
5.1.3模型求解
①运用MATLAB编写程序求解可得(程序见附录8.1.1):
由上述结果可知,为满足需求所需要的护士人员总数最少为100人,但是所求得的各个时段开始上班的护士人数存在小数,出现这种情况无法避免。
若四舍五入取值,虽然能得到正确有效的结果,但是需进行检验,该过程工作量大且较麻烦。
于是考虑再用lingo编程求解。
②运用lingo编写程序求解可得(程序见附录8.1.2):
由上述结果可知,为满足需求所需要的护士人员总数最少为100人,与用MATLAB求得的结果相同,故可确定上述结果是正确的。
且由上述结果可知各个时段最优的护士排班方案为:
该时段开始上班的护士人数
23
13
17
5.1.4模型结果分析
该模型得出的结果经检验完全符合题意,故接受。
5.2问题二的建模与求解
5.2.1问题分析
故每个护士的每天的在岗时间为连续6个时段,包括4个时段的工作时间,1个时段的加班时间及一小时休息(作一个时段处理)。
由于第一问求出为满足需求最少需要护士100人,故必须有人加班。
我们假定在各时间段开始正常上班的人数以及开始上班且需要加班的人数为自变量,所需加班人员总数为应变量,在限定条件下,建立数学规划模型,运用软件进行求解。
5.2.2模型建立
需要加班的护士人员总数等于在各个时间段开始上班且需要加班的护士人数之和,即:
由于题中未提及加班时间紧随在哪一个4小时工作时段之后,故在问题一的基础上应分情况讨论再建立线性规划模型,此处分两种情况讨论,分别为加班时间紧随在前一个4小时工作时段之后和加班时间紧随在后一个4小时工作时段之后。
下面分情况讨论建立模型。
①加班时间紧随在前一个4小时工作时段之后
00为例,在该时段工作的护士分别为第9、10、12、1时段开始正常上班的护士和在第1、12、11、9、8时段开始工作且需要加班的护士。
为满足该时段人员需求,则应满足以下条件:
①加班时间紧随在后一个4小时工作时段之后
00为例,在该时段工作的护士分别为第9、10、12、1时段开始正常上班的护士和在第1、12、10、9、8时段开始工作且需要加班的护士。
5.2.3模型求解
5.2.3.1加班时间紧随在前一个4小时工作时段之后
①运用MATLAB编写程序求解可得(程序见附录8.2.1.1):
由上述结果可知,需要加班的护士人员总数最少为40人,但是所求得的各个时间段开始上班且需要加班的护士人数存在小数,出现这种情况无法避免。
②运用lingo编写程序求解可得(程序见附录8.2.1.2):
由上述结果可知,需要加班的护士人员总数最少为40人,与用MATLAB求得的结果相同,故可确定上述结果是正确的。
该时段开始正常上班的护士人数
该时段开始上班且需要加班的护士人数
5.2.3.2加班时间紧随在后一个4小时工作时段之后
①运用MATLAB编写程序求解可得(程序见附录8.2.2.1):
②运用lingo编写程序求解可得(程序见附录8.2.2.2):
14
5.2.4模型结果分析
通过5.2.3的模型求解,我们可以发现分情况讨论下来所得到的结果完全一样,即需要加班的护士人员总数最少为40人。
故猜测护士加班时间无论紧随在哪一个4小时工作时段之后对结果都无影响。
又该模型得出的结果经检验完全符合题意,故可接受。
6.模型的综合评价
模型的优点
本文所建立的模型操作简单,准确性高,贴合实际,能够完美解决题目所提出的问题。
模型的缺点
在运用该模型求解第二题时,我们默认所有参与加班的护士都按同一种方式加班,即要么全部紧随在前一个4小时工作时段之后加班,要么全部紧随在后一个4小时工作时段之后加班。
但是实际中这种默认情况一般不存在,常常是有的护士按前一种方式加班,有的护士按后一种方式加班。
模型在这个问题上有待改进。
模型的改进
在问题二中加入三个自变量,分别为各时间段开始正常上班的人数、开始上班且在前一个4小时工作时段加班的人数、开始上班且在后一个4小时工作时段加班的人数。
分析方法与原模型相同。
模型的推广
本文所建立的模型除了可以解决护士工作时间安排的问题,还可以解决其他类似的排班问题。
7.参考文献
[1]胡运权,《运筹学教程》,清华大学出版社,2010.11
8.附录
8.1.1
Matlab:
A=[-10000000-1-10-1;
-1-10000000-1-10;
0-1-10000000-1-1;
-10-1-10000000-1;
-1-10-1-10000000;
0-1-10-1-1000000;
00-1-10-1-100000;
000-1-10-1-10000;
0000-1-10-1-1000;
00000-1-10-1-100;
000000-1-10-1-10;
0000000-1-10-1-1];
b=[-15;
-15;
-35;
-40;
-30;
-31;
-20];
f=[111111111111];
x=[000000000000];
[x,fval]=linprog(f,A,b,[],[],x,[])
8.1.2
Lingo:
Min=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12;
x1+x12+x9+x10>
=15;
x2+x1+x10+x11>
x3+x2+x11+x12>
x4+x3+x12+x1>
=35;
x5+x4+x1+x2>
=40;
x6+x5+x2+x3>
x7+x6+x3+x4>
x8+x7+x4+x5>
=30;
x9+x8+x5+x6>
=31;
x10+x9+x6+x7>
x11+x10+x7+x8>
x12+x11+x8+x9>
=20;
@gin(x1);
@gin(x2);
@gin(x3);
@gin(x4);
@gin(x5);
@gin(x6);
@gin(x7);
@gin(x8);
@gin(x9);
@gin(x10);
@gin(x11);
@gin(x12);
8.2.1.1
A=[-10000000-1-10-1-1000000-1-10-1-1;
-1-10000000-1-10-1-1000000-1-10-1;
0-1-10000000-1-1-1-1-1000000-1-10;
-10-1-10000000-10-1-1-1000000-1-1;
-1-10-1-10000000-10-1-1-1000000-1;
0-1-10-1-1000000-1-10-1-1-1000000;
00-1-10-1-1000000-1-10-1-1-100000;
000-1-10-1-1000000-1-10-1-1-10000;
0000-1-10-1-1000000-1-10-1-1-1000;
00000-1-10-1-1000000-1-10-1-1-100;
000000-1-10-1-1000000-1-10-1-1-10;
0000000-1-10-1-1000000-1-10-1-1-1;
111111111111111111111111];
-20;
80];
f=[000000000000111111111111];
x=[000000000000000000000000];
8.2.1.2
Min=x21+x22+x23+x24+x25+x26+x27+x28+x29+x210+x211+x212;
x11+x112+x19+x110+x21+x212+x211+x29+x28>
x12+x11+x110+x111+x22+x21+x212+x210+x29>
x13+x12+x111+x112+x23+x22+x21+x211+x210>
x14+x13+x112+x11+x24+x23+x22+x212+x211>
x15+x14+x11+x12+x25+x24+x23+x21+x212>
x16+x15+x12+x13+x26+x25+x24+x22+x21>
x17+x16+x13+x14+x27+x26+x25+x23+x22>
x18+x17+x14+x15+x28+x27+x26+x24+x23>
x19+x18+x15+x16+x29+x28+x27+x25+x24>
x110+x19+x16+x17+x210+x29+x28+x26+x25>
x111+x110+x17+x18+x211+x210+x29+x27+x26>
x112+x111+x18+x19+x212+x211+x210+x28+x27>
x11+x12+x13+x14+x15+x16+x17+x18+x19+x110+x111+x112+x21+x22+x23+x24+x25+x26+x27+x28+x29+x210+x211+x212<
=80;
@gin(x13);
@gin(x14);
@gin(x15);
@gin(x16);
@gin(x17);
@gin(x18);
@gin(x19);
@gin(x110);
@gin(x111);
@gin(x112);
@gin(x21);
@gin(x22);
@gin(x23);
@gin(x24);
@gin(x25);
@gin(x26);
@gin(x27);
@gin(x28);
@gin(x29);
@gin(x210);
@gin(x211);
@gin(x212);
8.2.2.1
A=[-10000000-1-10-1-1000000-1-1-10-1;
-1-10000000-1-10-1-1000000-1-1-10;
0-1-10000000-1-10-1-1000000-1-1-1;
-10-1-10000000-1-10-1-1000000-1-1;
-1-10-1-10000000-1-10-1-1000000-1;
0-1-10-1-1000000-1-1-10-1-1000000;
00-1-10-1-1000000-1-1-10-1-100000;
000-1-10-1-1000000-1-1-10-1-10000;
0000-1-10-1-1000000-1-1-10-1-1000;
00000-1-10-1-1000000-1-1-10-1-100;
000000-1-10-1-1000000-1-1-10-1-10;
0000000-1-10-1-1000000-1-1-10-1-1;
1111111