护士工作调度优化方案

温柔似野鬼°
588次浏览
2020年08月04日 01:23
最佳经验
本文由作者推荐

南麂-干部作风心得体会



《数学模型》课程结业论文


护士工作调度优化方案

















任 务 书

[要求]
1、将所给的问题翻译成汉语;
2、给论文起个题目(名字或标题)
3、根据任务来完成数学模型论文;
4、论文书写格式要求按给定要求书写;
5、态度要认真,要独立思考,独立完成任务;
6、论文上交时间:6月1日前(要求交纸质论文和电子文档)。

7、
严禁抄袭行为,若发现抄袭,则成绩记为“不及格”


[任务]

Mr. Schedule 先生受人之托要为St. Joseph 医院的心脑血管部门制定护
士的工作时间表。在心脑血管部门中一个工作日分为12 个两小时长的时< br>段,每个时段的人员要求都不同。例如,在夜间只要求有很少几个护士
就足够了,但在早晨为了给 病人提供特殊服务,需要很多护士。下表列
出了每个时段的人员需求量。
问题1:请计算出为满足需求最少需要多少个护士,假定已知每个护
士每天工作8 小时,且在工作四小时后需要休息两个小时。
问题2:此部门目前只有80 名护士,这个数目不足以满足给定的需
求。因此Schedule 先生建议每天安排部分人加班。每天加班时间为2 小
时,且紧随在后一个四小时工作时段之后,中间没 有休息。请给出护士
工作时间安排方案,以使需要加班的护士数目最少。

表11 每个时段的人员需求表

编号 时段 需要护士人数
0 00am - 02am 15
1 02am - 04am 15
2 04am – 06am 15
3 06am – 08am 35
4 08am – 10am 40
5 10am – 12pm 40
6 12pm – 02pm 40
7 02pm – 04pm 30
8 04pm – 06pm 31
9 06pm – 08pm 35


10
11




评语:



08pm – 10pm
10pm – 12am
30
20
成 绩 评 定 单
成绩
任课教师签字 年 月 日



摘 要
本题是在一定条件下求最值的 问题,是典型的规划问题。首先我们在
满足工作时间和强度约束的条件下优选出两种模式,然后利用集循 环函
数的特点建立非线性规划模型。然后利用数学模拟和Lingo规划对其进
行了有效的编程 求解。
问题一:在满足护士每日工作时间,工作强度以及当班人员配备要求
的条件下,达 到护士需求量最小的目的。由于各时段所需护士数量不同,
且护士工作存在间歇性,所以如何安排护士工 作时段就成了解题的关
键。就此问题,我们从所有满足工作时间和强度约束的工作模式中,优
选 出两种独立的工作模式S1,S2,利用其推导出所需护士人数即目标
函数表达式为:
M
1



S1

i

S2(i)
,Lingo求解结果为:min
M
1
=87,即
i1< br>12
满足需求该医院至少需要87名护士,护士工作时间调度方案见附录。
问题二 :在限定医院护士人数为80的前提下,安排最少的护士加班,
完成医院需要达到的固定工作量。它给出 的 限制是加班的护士在完成
正常时段工作后继续加班两个小时。同样,选出一组独立工作模式S1,< br>S2,此时加班人数即目标函数变为
M
2


S
1< br>(i)
,Lingo求解结果为min
i1
12
M
226
,即最少需要26名护士加班,对应的护士工作时间安排方案详
见附录。
最后通过对求解结果和问题的在分析,我们发现在医院工作总量不变
的前提下,目标人数其实已经可以确 定。同时我们对数据的灵敏度以及
模型的优缺点也进行了分析,并据此对模型的改进方向和可应用领域分
别作出说明和推荐。



目 录
一.问题重述 ....................................... .................................................. .............................. 1
二.模型假设 ...... .................................................. .................................................. ............. 2
2.1模型假设 ...................... .................................................. ............................................. 2
2.2符号约定 ...................................... .................................................. ............................. 2
三.问题分析 ....... .................................................. .................................................. ............ 3
四.模型建立 ........................ .................................................. ............................................. 4
五.模型处理 ....................................... .................................................. .............................. 5
5.1数据处理 ..... .................................................. .................................................. ............ 5
5.2编程求解 ....................... .................................................. ............................................ 5
六.结果分析与检验 .................................... .................................................. ..................... 6
6.1模型一 ............... .................................................. .................................................. ...... 6
6.2模型二 .............................. .................................................. ......................................... 6
七.模型评价与改进 .................................... .................................................. ..................... 8
7.1模型优缺点 ............. .................................................. .................................................. 8
7.2模型改进 .................................... .................................................. ............................... 8
参考文献 ....... .................................................. .................................................. .................... 9


一.问题重述
某医院一个工作日(分为12个两个时长的时段)每个时段需要护士人数如下表:
编号
0
1
2
3
4
5
6
7
8
9
10
11
时段
00am - 02am
02am - 04am
04am – 06am
06am – 08am
08am – 10am
10am – 12pm
12pm – 02pm
02pm – 04pm
04pm – 06pm
06pm – 08pm
08pm – 10pm
10pm – 12am
需要护士人数
15
15
15
35
40
40
40
30
31
35
30
20
问题1:假定每个护士每天工作8个小时 ,且在连续工作4个小时后需要休息2小
时,计算为满足需求至少需要多少护士。
问题2:此 医院目前有80名护士,这个数目不足以满足需求,因此需要安排部分人
加班,每天加班时间为2个小时 ,且紧跟随在后一个4小时工作时间之后,中间没
有休息,求护士工作时间安排方案,以使需要加班的护 士人数最少。


二.模型假设
2.1模型假设
1.假设所有护士都能保持全勤率。
2.假设所有护士都能服从安排,准时上下班。
3.假设不考虑各种客观因素对护士人数的影响。
4.假设没有突发事件发生,医院无需作出人员调整。
2.2符号约定
i,j:表示i,j个工作时段,i,j=1,2...12;
n:表示护士编号即第n个护士;

1,表示n护士在i时段值班
A
in


0,表示n护士在i时段不值班

M
1
:表示所需护士的人数;
M
2
:表示所需加班护士的人数;
P
i
:表示i时段所需护士的人数;
S1,S2:表示设定的护士每日单板的时段排列情况即值班模式;
S1(i):表示第i 个时间段以S1模式开始工作的人数;
S2(j):表示第i 个时间段以S2模式开始工作的人数
i@j:表示为满足时段循环而定义的算法,
i@jijk*12,i@j

1,12

,kN





三.问题分析
本题是规划问题,我们想到建立一般规划模型求解,为能 够用数学语言表示引

1,表示n护士在i时段值班
入一个二维的0-1整型变量A
in


;利用集循环函数建

0,表示n护士在i 时段不值班
立相应模型顺利的完成了求解,其分析过程如下:
问题一,首先我们引入集函数为 ;@function,sets:times1....12:
star1,star2,requi red:min=@sum(times:star1+star2)和@for,相应数学语言转化:
Star1 即S1模式:1,1,0,1,1
Star2 即S2模式:1,0,1,0,1,0,1
我们设定每名护士只能按其中一种工作模式值班,这时我们 可以得出所需护士人数
就是按照两种独立工作模式值班的护士之和即目标函数
M
1


S1

i

S2(i)
< br>;由于
i1
12
工作模式以满足两个约束条件,此时只有各时段护士需求约束 ,为解决首尾时段连
续的影响,我们定义了一个算法
i@jijk*12,i@j
1,12

,kN
,此时该约束
可以表示为:
st :s
1
(i)s
1
(i@8)s
1
(i@9)s1
(i@11)s
2
(i)s
2
(i@6)s
2
(i@8)s
2
(i@10)P(i)

最后利用lingo编 程即可进行求解。
问题二,与上题相类似,首先设定相应工作模式:
Star1 即S1模式:1,1,0,1,0,1,1
Star2 即S2模式:1,0,1,0,1,1 此时加班护士人数即为按照s1模式值班的护士人数:
M
2


S
1
(i)

i1
12
P(i)s
1
(i)s
1
(i@6)s
1
(i@7)s
1
(i@9 )s
1
(i@11)s
2
(i)s
2
(i@7)s
2
(i@8)s
2
(i@10)
除此之外,问题二还有一个限制条 件,护士总人数确定为80人即,
M
1



S1

i

S2(i)

=80;最后应用lingo即可完成求解。
i1
12


四.模型建立
根据以上分析,建立相应的规划模型如下:
模型一:
模式设定:s1模式:1,1,0,1,1 (1表示工作,0表示不工作)
模式设定:s2模式:1,0,1,0,1,0,1 (1表示工作,0不是不工作)
min
M
1


(s1(i)s2(i))

i1< br>12
st:s
1
(i)s
1
(i@8)s
1(i@9)s
1
(i@11)s
2
(i)s
2
( i@6)s
2
(i@8)s
2
(i@10)P(i)
模型二:
模式设定:s1加班模式:1,1,0,1,0,1,1 (1表示工作,0表示不工作)
模式设定:s2加班模式:1,0,1,0,1,1 (1表示工作,0不是不工作)
Min
M
2


s1(i)

i1
12
St:
P(i)s
1
(i)s
1
(i@6)s
1
(i@7)s
1
(i@9)s
1(i@11)s
2
(i)s
2
(i@7)s
2
( i@8)s
2
(i@10)


S1

i

S2(i)

80

i1
12






五.模型处理
5.1数据处理

1

2 3 4 5 6 7 8 9 10 11 12
2

————————————

02 04 06 08 10 12 14 16 18 20 22 24
表一:各编号对应的时间段
Pi


P1
15
P2
15
P3
15
P4
35
P5
40
P6
40
P7
40
P8
30
P9
31
P10 P11 P12
35 30 20
表二:在第i时间段所需要的护士人数
5.2编程求解
模型一:Lingo求解结果如下(代码见附录)
结论:在每个护 士每天工作8小时,且在连续工作4小时后需休息2小时的条件下,
该医院为满足工作量的需求至少需要 87名护士,对应调度安排见附录。
模型二:Lingo求解结果如下(代码见附录)
结论 :在医院只有80名护士的前提下,为满足加班要求,至少需要26名护士加班。
对应护士工作时间安排 见附录。






六.结果分析与检验
6.1模型一
应用lingo求解的灵敏度结果如下:

OBJBound86.5,Best 87,对该题进行分析知,该医院护士工作时段总量是固定的,
结果346,由于每个护士需要工作4个 时段是确定的,在不考虑工作强度的约束下,
我们可以求出最优解M=3464=86.5,考虑M是整 数,即所需要最少的护士数为87
人,这时总工作量为348个时段,与理论计算的吻合度比较好。
6.2模型二
Lingo求解的结果是80人中至少需要26人加班,即每人每日工作5个时 段,其余
54人工作4个时段。此时有总工作时段为26*5+54*4=346,与要求工作量一致, 说
明该模型所得的护士工作时间安排方案是满足要求的优化方案。






七.模型评价与改进
7.1模型优缺点
优点:1.文中数据处理采用图表的形式给出,清晰,直观;
2.预设两种工作模式,避免约束条件的复杂化,简化了运算
3.充分利用集循环函数的 特性,是该模型具有很好的可行性和退惯性,
即该模型求解的思路可以应用到其他领域
不足 :1.该模型的建立是在一定理想的情况得出的结果,未考虑各种客观因素
的影响,难免有一些欠缺之处 。
2.该模型设定的工作模式只是所有可能模式中的一种,不能涵盖所有的
优 化方案,在实践中不能很好的应对各种突发状况。
7.2模型改进
1.上述模型建立过程中 ,为将多目标规划转化为单目标规划,其中工作模式的
选取存在偶然性。
2.在解决护士工作 时间问题的规划后,我们建立设置一个客观因素的权重系数,
代表个客观因素对护士人数的影响大小,通 过对他们进行分析,确定相应的约束目
标,然后通过本模型的求解思路得出对应最优解。


参考文献
[1] 陈日耀. 金属切削原理. 北京: 机械工业出版社, 1985:33-36
[2] 张钰, 王丹, 张风和等. 一种新的疲劳可靠寿命计算方法.东北大学学报(自然
科学版), 2000, 21(1): 42-45
[3] 宋来忠,王志明 数学建模与实验,北京科学出版社 2005.8


























模型一:
Lingo代码:
sets:
附录

times1 2 3 4 5 6 7 8 9 10 11 12:start1,start2,required;
endsets
data:
required=15 15 15 35 40 40 40 30 31 35 30 20;
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))+
start1(@wrap(J+6,12))+
start1(@wrap(J+8,12))+
start1(@wrap(J+10,12))+
start1(@wrap(J,12))+
>=required(J);
end
运行结果:



1 2 3
0
0
0
0
0
0
0
0
0
1
1
4
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
0
0
6









1
1
7









1
1
8











9











10 11 12 13 14 15


































































1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
8 1 1
9 1 1
1
0

1


1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6














1
1
1
1
1






1
1
1
1
1
1
1
1
1






1
1
0
0
0
0
0
0
0








1
1
1
1
1
1
1
1







0
0
1
1
1
1
1
1







1
1





0







0
0





1







1
1





1
1
1
1
1











1
1
1
1











0
0
0
0
1
1
















































1 1
1 1
1 1
1 1
1 0
1 0




2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
































1
1
1













0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0



1
1
1
1
1
1
1
1
1
1
1
1
1
















































































4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
















































1















0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
































































5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
6
9
7
0
7
1
7
2
7
3
7
4
































































1
1
1
1
1
1
1
1
1
1
1





0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0











1
1
1
1
1
















































7
5
7
6
7
7
7
8
7
9
8
0
8
1
8
2
8
3
8
4
8
5
8
6
8
7

































































1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1







































对应护士工作安排如下:

模型2:
Lingo代码:
sets:


times1 2 3 4 5 6 7 8 9 10 11 12:start1,start2,required;
endsets
data:
required=15 15 15 35 40 40 40 30 31 35 30 20;
enddata
min=@sum(times:start1);
@sum(times:start1+start2)=80;
@for(times:@gin(start1));
@for(times:@gin(start2));
@for(times(J));
start1(@wrap(J,12))+
start1(@wrap(J+6,12))+
start1(@wrap(J+7,12))+
start1(@wrap(J,9))+
start1(@wrap(J+11,12))+
start1(@wrap(J+7,12))+
start1(@wrap(J+8,12))+
start1(@wrap(J+10,12))+
start1(@wrap(J,12))+
>=required(J);
end
运行结果:




时间工作表安排如下:

1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1









2









3
1
1










4
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
1
1
1
1
1
1
1
1
1
1
6
1
1
0
0
0
0
0
0
0
0
0
0
7
0
0
1
1
1
1
1
1
1
1
1
1
8
1
1
0
0
0
0
0
0
0
0
0
0
9
1
1
1
1
1
1
1
1
1
1
1
1
10


1
1
1
1
1
1
1
1
1
1
11












12












13












14












15















1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3













1
1 0
1 0
1 0
1 0
1 0
1 0
1 0














1
1
1
1
1
1
1
1













0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1







0
1
1
1
1
1
1
1
1
1
1
1
1
1







1
0
0
0
0
0
0
0
0
0
0
0
0
0







1
1
1
1
1
1
1
1
1
1
1
1
1
1








1
1
1
1
1
1
1
1
1
1
1
1
0




















1






































































3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
1
1
1
1
1
1
1
1
1
1
1










0
0
0
0
0
0
0
0
0
0
0
1
1
1







1
1
1
1
1
1
1
1
1
1
1
0
0
0
1






0
0
0
0
0
0
0
0
0
0
0
1
1
1
0






1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1



1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1











1
1
1
1
1
1
1
0
0
0














1
0
0
0
1
1
1















1
1
1
1
0
0
















1
1
1
1
1
















1
1
1
1
1



















1
1










































5
5
5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
6
9
7
0
7
1
7
2
7
3
7
4
7
5















1
1
1
1
1 0
1 0



















1
1



















1
1































































1
1
1
1

















0
0
0
0

















0
0
0
0
1
1
1
1
1
1
1
1
1
1
1






1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1


1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0


1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1



1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1





1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0


7
6
7
7
7
8
7
9
8
0
1 0
0 1
0 1
0 1
0 1
1
0
0
0
0
1
1
1
1
1

1
1
1
1









































1




0
1
1
1
1

山东高考作文题目-初中亲情作文600字


企业经营理念-实习个人鉴定


过年是几号-五证合一是哪五证


福布斯世界排行榜-小兵张嘎的读后感


儿童节的英语-范跑跑


郭彦甫-2013上海高考英语


苏紫紫写真-汪国真热爱生命


河南工业大学分数线-难忘的一件事300字