基于偏好矩阵和覆盖需求的护士排班模型研究
2022-07-08杨媚
杨 媚
(乐山职业技术学院 财经管理系,四川 乐山 614000)
引言
随着医疗模式的转变,护理理念发生了巨大变化。如何合理配置护理人力,提高护理工作质量与服务水平,是我国护理管理者积极探索的重要问题。
已有文献对护士排班、加班进行研究,大多侧重对算法研究[1,2,3],但对护士排班模型对影响护士排班的偏好、人员需求等因素进行定量研究研究较少[4,5],本文结合我国医院的实际情况考虑护士排班的连续性、均衡性、合理性、公平性、人性化等多方面因素,构建以APN 护士排班模式为基础,考虑护士偏好和覆盖需求的整数规划模型,改进已有文献的偏好矩阵与覆盖需求产生方法,运用Gurobi 优化器和python 语言编程,选取满意的偏好和覆盖需求指标[6,7,8],得到较优的排班方案,合理地缩减了医院成本、提高了护士满意度、提升了病人满意度。
1 偏好矩阵和覆盖需求
1.1 符号说明
N:护士总人数;S:班次类型总数;D:排班周期(天);yil=1:护士i 对某一天某个班次选择的偏好程度为l;yil=0:护士i 对某一天某个班次选择的偏好程度不为l;rjz:第j 天班次z 对护士的需求量;rˉ:整个排班周期中每一天护士的平均需求量;rˉj:第j 天每个班次护士的平均需求量;pijz:护士i 在第j 天对班次z 的偏好。
1.2 护士偏好及覆盖需求分布指标
1.2.1 护士偏好分布
护士偏好分布(Nurse-preference distribution,NPD)
1.2.2 班次偏好分布
班次偏好分布(Shift-preference distribution,SPD)
1.2.3 工作日偏好分布
工作日偏好分布(Day-preference distribution,DPD)
1.2.4 总体覆盖约束总体覆盖约束(Total-coverage constrainedness,TCC)
1.2.5 日需求分布
日需求分布(Day-coverage distribution,DCD)
1.2.6 班次需求分布
班次需求分布(Shift-coverage distribution,SCD)
1.3 偏好矩阵的生成
在已知1.2 六个指标值的情况下,获得相应的多组随机偏好矩阵。根据Maenhout B,Vanhoucke M 提出给出的护士排班实例产生法(NSPGen),引入两个约束条件简化矩阵的产生过程。在指标取表1 所示的不同数值时,随机产生护士偏好矩阵。
表1 指标取值
1.3.1 改进的护士偏好矩阵的产生法
Maechout B, Vanhoucke M 提出,首先随机产生班次列,然后在班次列产生的基础上随机组合产生日矩阵,最后在随机组合产生日矩阵的基础上产生周期矩阵。由式(1)得到一个方程组(7),x 表示护士对班次S1 的偏好人数,y 表示护士对班次S2 的偏好人数,z 表示护士对班次S3 的偏好人数,考虑到排班的实际情况,每个班次都需要有护士上班,且在实际情况下,同一护士一天上两种以上班次可能性小,故假设对三种班次偏好人数之和为护士人数之和。m 为N/S,M 表示NPD 与的乘积。因此,式(7)的N、M、m 为常数,可产生符合NPD 值的可能的班次列,再通过C 语言编程产生偏好矩阵,减少了计算机重复运算次数。
1.3.2 改进的护士覆盖需求的产生法
由式(4)、(5)、(6)得到式(8)。x1、x2、…、xD分别表示每天上班的护士数,yj1、yj2、yj3分别表第j天每个班次上班的护士数,G 表示可能的 最 大值 与DCD 的 乘积,H 表 示可能的最大值与SCD 的乘积。因此,式(8)的TCC、N、G、H 均为常数,得方程的可行解,通过C 语言编程随机产生需要的覆盖需求分布。
2 护士排班模型
2.1 符号说明
z:采用APN 排班模型,上班类型有早(A)、中(P)、晚(N)三种类型:A 班07:30 -15:30,P 班15:00-22:30,N 班22:00-8:00;n:护士数量;g:护士等级;m:排班周期;Cijz:第i 名护士在第j 天上第z种类型的班所获得的工资;xijz:是否第i 名护士在第j 天上第z 种类型的班,如果是取值为1,否则为0;Dgjz:在第j 天z 种班次时对等级为g 的护士的需求数;qig:如果第i 名护士的等级不低于g,qig取值为1,否则为0;low: 护士在一个排班周期内工作班次数的下限;up: 护士在一个排班周期内工作班次数的上限;wijz:是否第i 名护士在第j 天z 种类型的班请假,如果是取值为1,否则为0;ai3:第i 名护士是否上夜班。α:医院成本的权重;β:护士偏好的权重。
2.2 排班模型
根据我国医院护士排班的一般情况建立规划模型的数学表达式如下:
式(9)为目标函数,由工资成本和护士偏好两部分组成,表示医院成本最小化和护士偏好值最小化(即护士满意度最大化),一般可分别考虑Cijz和pijz为工资等级(系数)与偏好等级(系数)。式(10)至式(17)为约束条件,式(10)表示第j 天第z种类型的班对级别为g 的护士的需求数不能低于Dgjz;式(11)、(12)表示对排班周期内每位护士上班天数的上下限;式(13)表示每位护士每天只能上某一种类型的班;式(14)表示护士上完夜班之后紧邻的一天地需要休息一天;式(15)表示护士不能连续三天上班,即连续三天中,至少有一天休息;式(16)表示第i 位护士在第j 天上第z 种类型的班请假;式(17)表示第i 位护士不上晚班。
2.3 模型复杂度分析
该模型是一个典型的0-1 规划模型,包含n×m×z 个决策变量,该模型中z 的取值为3,包含m×z+2n+2×m×n+m×n×z 个约束条件。约束条件和目标函数都是线性的。
3 算例分析
假设某医院科室有护士18 名,排班周期为14天,护士的等级和上班日工资系数见表2;每天每个班次的人员需求数见表3。其中N1 为护士长,不上夜班;N6、N7、N12 已经满50 岁也不上夜班,N8 在第7 个排班日请假。排班周期内每位护士至少上5 次班,最多上10 次班。α、β的取值分别为0.7 和0.3。进行排班。
表2 护士等级及工资表
表3 各班次需求人数
根据偏好矩阵的生成方法(见1.3),在指标取不同数值(见表1)时,产生100 个指定指标值下的班次列,再由班次列产生40 组符合指标值的日偏好矩阵,接着由日偏好矩阵组合产生算例中所需要的周期偏好矩阵。产生多组不同的偏好矩阵后,将产生的每组偏好矩阵代入排班模型进行求解,直到有10 组可行解为止,最后分别计算这10 组解的CPU 运算时间与目标函数值的平均值,如表4,它们的对比情况见图1。本文采用python语言编程由Gurobi5.0.0 优化器对该模型求解。
图1 不同指标下的运算时间(s)和目标值
表4 不同指标值下的CPU 运算时间(s)和目标值
从图1 可看出,NPD 值越高,即护士对某班次的偏好程度越高,排班就越复杂,目标值也越高。SPD 值由低到高时,CPU 值呈现出一种高低高的状态,当SPD 值为0.25 时,CPU 速度最快,即排班最容易,目标值也比较低。DPD 取值由低到高时,也呈现出高低高的状态,说明护士对排班周期中的班次存在一定的偏好是比较好的,有利于排班的需要。SCD 表明当每一班次护士需求数相同和某一班次护士需求数最多,其他班次需求量几乎为0 时,排班最快捷,目标值最小。DCD表明护士需求分布平均容易排班,且目标值最小。TCC 表明利用率越低越容易排班。
从图1 中可以看到,当SPD 和DPD 在取值为0.25 时,CPU 速度最快且目标值最低,其他值则是越小也好,因此,为了得到较优的排班结果,我们取SPD 和DPD 的值为0.25,同样用2.3 提到的方法产生偏好矩阵,并计算出这些矩阵的指标值,选取NPD 值最低(NPD=0.3)的一组数据,代入3.2 中的排班模型中进行计算,排班方案结果见表5。
表5 护士排班方案(SPD=0.25 DPD=0.25 NPD=0.3)
4 结束语
本文根据我国医院护士排班的实际情况建立较为合理的整数规划模型,并改进了护士偏好和覆盖分布指标的求解方法,最后通过编程对算例给出了较优的排班方案。结果表明,考虑医院成本和护士偏好,更好地体现了医院护士排班工作的人性化,同时有利于医院高效地有针对性地招聘护士,应用偏好矩阵分配各科室护士等。