APP下载

疫情期间的护士排班优化模型及智能算法

2023-10-08易校石易正俊祁宝川

关键词:约束条件交叉染色体

易校石,易正俊,祁宝川**

(1.伊犁师范大学 数学与统计学院,新疆 伊宁 835000;2.重庆大学 数学与统计学院,重庆 401331;3.伊犁师范大学 化学与环境科学学院,新疆 伊宁 835000;4.伊犁师范大学 应用数学研究所,新疆 伊宁 835000)

突发重大传染疾病有极大可能给社会带来灾难性的损失,如2019 年突发的COVID-19 病毒具有极强的传染性.统计数据表明:截止2021 年1 月26 日,全球感染新冠病毒COVID-19 累计人数达到1 个亿,死亡人数达到200 多万人.在疫情爆发时,医院组建传染病病区,抽调护士进入传染病病区中,传统的护士排班一般是由护士长采用缓慢轮班的排班机制,即在一个排班周期内,护士只工作一种班型,这样的好处是避免打乱护士的生物钟,造成护士身体的疲惫、困倦,一定程度上能降低医疗风险[1-2].这种排班方法是基于护士值班的均衡性,追求的目标是提升护士满意度,增加护士对医院的认同感,保障医院正常运转.但是排班的难度和繁琐性会随着护士人员的增加而急剧增加,需要耗费较长的时间,且排班结果还受到护士长主观因素的影响,很难同时照顾到均衡性和护士的心理特点.国外的护士排班一般采用三班快速轮班制度,即:护士在一个排班周期内,会工作不同的班型;三班制指的是24 h 内每个班型工作8 h,这种排班算法基于医院的人力资源管理,追求的目标是降低医院人力成本.比较经典的模型是Rahimian[3-4]等提出了整数-约束规划相结合的模型,首先使用整数规划的强度,获得一个解的下界,然后再利用约束规划的能力去寻找最优解,求解算法有精确算法、启发算法和混合算法.精确算法在面对较多的约束条件时,求解耗时长,还有可能最优解不存在;启发式算法得到的解容易陷入局部最优.在疫情期间医院的护士排班应该是一个多目标护士排班问题,目标函数应该是多个目标函数的优化,既能照顾护士身心健康,又能保证抗击疫情的工作顺利开展和适当地降低救援成本,构建突发重大传染病期间的多目标护士排班模型,并且该模型能够通过计算机快速求解,以达到应对突发重大传染病期间的护士排班需求.

1 护士排班涉及的概念

护士排班结果是护士在一个排班周期内值班的状态表,相当于学校教师的课表.排班周期是指一个排班周期的长度,一般将排班周期设置为一周,实际的护士排班表在一个周期内是不会变更的;医院在节假日照常运行,医院的护士采用轮休制度,即在一个排班周期内,满足休息条件的护士都能达到休息要求[5-7].考虑到重大传染病爆发期间,医院的人力资源紧张等状况,每个护士在一个排班周期内的休息时间一般为1 d;医院里护士值班的类型包括早班(A 班,08:00—16:00)、中班(P 班,16:00—24:00)和晚班(N 班,00:00—8:00).在重大传染病期间,护士的工作压力激增,不能让护士处于过度疲劳而增加疫情防控风险,对护士的连续工作时长需要作出明确规定;每个值班类型需要确定护士的需求量,一般由医院根据病人量和工作量确定护士人数的上下限;每个值班类型至少需要ICU 护士、呼吸科护士和感染科护士各1 名,这主要保证有相应专业护士处理;模型包含每个护士的基本信息和科室属性[8-11].

2 护士排班的约束条件

为建立护士的排班模型,用I表示护士集合,I={1,2,3,···,n},Ik为k班型护士集合;J表示工作日期集合,J={1,2,3,4,5,6,7};K表示排班班型集合,K={1,2,3,4},约定k=1表示早班(A 班),k=2表示中班(P 班),k=3表示夜班(N 班),k=4 表示休息状态;g表示护士类型属性下标,g=1为ICU 护士,g=2为感染科护士,g=3为呼吸科护士,g=4为普通科护士;URk,LRk分别表示上k班型护士人数的上下限;W1为每周P 班工作次数上限;W2每周N 班工作次数上限.

护士排班的约束条件划分为硬约束(HC)条件和软约束条件(SC),硬约束条件是考虑护士的生理状况、工作强度,病人的数量、医院的管理条例和疫情防控的特殊要求,避免医疗事故的发生和感染扩散.排班时必需满足硬约束条件,否则排班问题便无可行解,需要新增相应的护士类型和数量[12-16];在排班的过程中尽可能满足的条件称为软约束条件,可以把软约束条件作为优化的目标函数.

硬约束条件1(HC1):每个护士每天只能上1 种班型.

设xijk为第i个护士在j天的第k个班型的工作状态变量,该变量取值为1 时,表明护士在这个班型值班;如果该变量取值为0,表明护士在该班型没有值班,即:

由于规定每个护士每天只能上1 个班型,所以该硬约束条件可表为:

硬约束条件2(HC2):每个班至少需要ICU 护士、传染病科护士和呼吸科护士各1 名.

g表示护士类型,qig表示第i个护士的类型变量,其取值规则为:

硬约束条件3(HC3):为保证护士有充沛的精力,降低医疗事故的风险,护士前一天的值班状态不能随便向第二天的值班状态进行转移,如中班和夜班(P,N 班)第二天不能安排早班(A 班),夜班(N 班)不能安排第二天的中班(P 班),护士不能连续休息2 d,具体值班状态转移图如图1 所示.

图1 值班状态转移图Fig.1 Shift diagram of duty status

按照值班状态转移图(图1),前一天上了中班和夜班的护士在第二天不能安排早班,即:

前一天上了夜班的护士第二天不能安排中班,即:

硬约束条件4(HC4):对于每一个班型,护士的配备数量不超过要求的上下限:

硬约束条件5(HC5):连续上2 d 夜班(N 班)的护士必须安排休息:

硬约束条件6(HC6):连续上3 个中班(P 班)后安排休息.

硬约束条件7(HC7):每周只工作6 d,即:

软约束条件(SC)是医院为避免护士连续工作时间过长和过于集中,降低医疗事故发生的概率和护士日常生活的正常需求所作出的规定.护士的排班尽可能不扰乱护士的生物钟,同时还要注意排班的均衡性,“排班均衡”是指各个班型在护士之间进行均匀分配,每个护士的劳动强度几乎相同,这主要是照顾护士的心理健康,避免引起护士的不满,引发消极抗疫的工作局面.根据调研的结果确定了以下5 个软约束条件.

软约束条件1(SC1):每个排班周期内护士上中班(P 班)次数不大于规定值W1.

软约束条件2(SC2):每个排班周期内护士上夜班(N 班)次数不大于规定值W2.

软约束条件3(SC3):夜班(N 班)在一个排班周期内,其连续工作次数计数不大于2 次.(连续工作次数计数统计规则为:每相邻2 次相同班型记为发生1 次连续工作,例如NNN 的排班情况记为2 次连续工作次数).

软约束条件4(SC4):中班(P 班)在一个排班周期内,其连续工作次数计数不大于3 次.

软约束条件5(SC5):一个排班周期内,每个护士工作的不同班型天数之差不超过3 d.

3 护士排班的数学模型

护士排班的原则是必须满足硬约束条件,尽可能满足软约束条件.满足硬约束条件的解就是可行解,软约束条件是尽可能不扰乱护士的生物钟和排班的均衡性,关心护士的身心健康,把软约束条件作为目标函数进行优化,每一个软约束条件就作为一个优化目标,因此护士排班模型应该是一个多目标优化模型[15],对每个目标fi赋予一个权重 αi,多目标的加权组合就构成护士排班的目标函数.权重 αi的确定采用层次分析法,层次分析法是把问题分解成不同小目标,每个小目标就形成一个层次,每个小目标相对于总目标的重要程度就能确定权重.

4 模型的智能求解算法

粒子群算法是模拟鸟群觅食的群体智能算法,每一只鸟就是一个基本粒子,鸟群就是粒子群.鸟群觅食的初始状态比较杂乱无章,但鸟在觅食过程会向鸟群共享觅食信息,相互学习,最终找到最优觅食点.粒子群算法包括初始化粒子群,粒子的适应度,粒子的位置和速度的更新,粒子的最优位置就是最优解.但粒子群算法的迭代过程容易陷入局部最优,为了避免获得的解是局部最优解,我们在粒子群算法中加入遗传智能算法,因为它是模拟生物进化过程的算法,它的交叉过程可以组成新的染色体,在新染色体上修改若干基因的值,这种方法有利于寻找全局最优.

粒子群遗传算法的具体步骤:

步骤1:录入护士排班优化模型基本信息,包括护士编号,护士所属科室等参数值.

步骤2:进行染色体(粒子)基因编码:算法应采用两层编码技术,第一层编码表示护士的编号,第二层编码表示护士的排班状态.如3 名护士在3 d 内的排班编码如下:

左边第一层编码111222333 是护士的编号及工作时间,第一层编码的长度就是一个排班周期;右边第二层编码411334142 对应护士的排班状态,其中的4,1,2,3 分别表示休息、早班、中班、夜班.对这两层编码的染色体的解释是:护士1 在3 d 内的工作状态411 分别表示休息、早班、早班;护士2 在3 d 内的排班334 分别表示夜班、夜班、休息;护士3 在3 d 内的排班142 分别表示早班、休息、中班.

第二层编码采用随机编码已经满足了硬约束条件HC1,但有可能无法满足其他硬约束条件,此时需要调整,采用以下3 个调整规则使其每一条染色体均是一个可行解.

调整规则1:对于硬约束HC3,按照图1 的班型转移来进行第2 天的排班,对于任意一名护士,检测其染色体编码,如果未出现转移图的转移情况,再一次随机生成该护士的排班状态,直到所有护士均满足HC3 即可,同理对于HC5,HC6,HC7 执行类似的操作.

调整规则2:检测每一天各班型所需的各科室类型护士,如果不满足要求,则替换护士,直到满足HC2的不等式为止.

调整规则3:统计每一班型的护士编号数,检测其是否满足硬约束HC4,如果有多于数量要求上限的,则调整至未满足数量下限的班型.

步骤3:粒子个体初始化,根据目标函数计算粒子的适应度,对比适应度大小,记录当前最优适应度.

步骤4:个体交叉,交叉操作能够获得新的染色体,使得种群能够向前操作.首先选取2 条用于交叉的染色体,如有如下2 个个体:

染色体1:122331231|21 103021;

染色体2:132113232|31022110.

选取染色体的n×m位,并随机选择交叉位置,交叉位置随机到4,则前4 位编码保留,从第5 位开始对第一层编码进行交换,交叉后为:

染色体1:122313232|21 103021;

染色体2:132131231|31022110.

对于交叉后的染色体1可以看出护士2多工作了1 d,护士1少工作了1 d,因此将交叉后的最后一个2调整为1,对于个体2执行相同的操作.这调整后的染色体变为:

染色体1:122313231|21 103021;

染色体2:132131232|31022110.

通过以上操作实现对第一层的编码的交叉,可以看出交叉前后护士的工作状态产生了很大的变化,有可能交叉后的染色体会违反某些硬约束条件,此时则需要依据步骤2调整第二层编码,以保证交叉后的新染色体能够满足硬约束条件.

经过如上操作后便生成了新的粒子.此时比较新旧粒子的所有目标函数值,如果新粒子的所有目标函数值均不大于旧粒子,此时新粒子支配旧粒子,便更新粒子;反之,则保存旧粒子;如果新旧粒子互不支配,则随机保留一个粒子.最后将保留下来的粒子与个体最优支配解比较,在含有支配关系的情况下,则更新个体最优支配解,保存到最优支配解集中,否则随机选择.

步骤5:群体交叉

将种群中的粒子同最优支配解集中随机抽取的一个粒子交叉,交叉操作同步骤4,然后比较粒子间的支配关系,存在支配关系则选取支配解,否则随机选择支配解,将新产生的粒子群与原群体最优支配解集合并成新的最优支配解集,在集合内进行支配关系比较操作,删除劣解,如此变形成了新的群体最优支配解集.

步骤6:变异

变异操作的对象为第二层编码,首先设定变异因子µ,在变异前产生一个介于(0,1)之间的随机数Random,如果Random >µ,则相对应的交叉组进行变异,反之则不变异.变异完成后比较新旧粒子,存在支配关系则选取,否则随机选择,之后重复步骤5.

步骤7:重复步骤4,5,6,进行下一次迭代,直到达到预先设置的迭代次数.

步骤8:最优解选取

将所有的非劣解集合并,筛选出最优解.在本模型中,存在5 个目标函数,模型中每个目标的取值范围均有不同,同时其取值波动也不同,同时在计算过程中,某些软约束可能会不可避免地被违反,因此为保证每一个目标有着同等的地位,将使用如下方法进行最优解筛选:

(1)求合并后的非劣解集中各目标的最小值 mini,i=1,2,···,5;最大值 maxi,i=1,2,···,5.

(2)计算每个粒子的每一个目标的适应度值与最小值差值和最大值差值的比值:

其中fi(x)为粒子第i个目标的适应度值.如果对于该粒子的所有Pi都小于0.5,则保留该粒子,否则删除,通过该操作可以淘汰掉大量非劣解.

(3)挑选最优粒子.经过(2)的筛选后,使用距离法挑选最优粒子,距离公式如下:

fi(i)指第i个目标中的最小值.如果D最小,则为最优方案.

粒子群-遗传智能混合算法的具体设计流程图如图2 所示.

图2 粒子群-遗传智能混合算法流程图Fig.2 Flowchart of particle swarm optimization and genetic intelligent hybrid algorithm

5 模型及算法的检验

为验证本文的护士排班优化模型和模型的求解算法,采用重庆三峡中心医院在抗击新冠肺炎的护士排班的数据,其相关基本信息如表1 所示.

表1 护士智能排班的基本信息表Tab.1 Basic information of intelligent nurse scheduling

本文采用Python 语言对多目标护士排班优化模型采用粒子群-遗传算法进行迭代求解,在迭代次数达到150 次后,各个优化目标的最小值和最优值变化已经不再明显,呈现收敛的态势,最小值是指在多次迭代后所得的所有解集中,目标函数的最小值,最优值是总目标函数最小时该分目标函数的取值.最优值是多个目标所决定的,分目标间可能存在冲突,有可能为了整体目标函数达到最优需要牺牲局部分目标的最优.迭代次数运算结果如表2 所示.

表2 迭代次数及分目标函数最值Tab.2 Iteration times and maximum value of sub-objective function

采用层次分析法得到各个分目标的权重为w=(0.291 5,0.064 9,0.359 8,0.083 0,0.200 8),并通过了一致性的检验,λ=5.394 2,C.R=0.088 <0.1.

因此目标函数为:

将本文的模型及智能求解算法用于三峡中心医院抗击疫情的数据进行护士智能排班,排班结果如表3 所示.从排班结果可知使用层次分析法得出目标2 的权重0.064 9 最小,与医院人工排班的理念一致;目标5 保证排班均匀性、平稳性.在疫情期间,组织的抗疫护士人数较多,人工排班很难考虑到每一个护士在一个周期内其排型安排的合理性.

6 结束语

护士排班采用人工排班方法耗时很长,且排班的结果违反目标的护士人次较多,容易导致某些护士的工作强度加大,可能出现一些不必要的医疗事故,因为排班的不均匀引起护士的不满情绪,在工作中带有消极情绪.本文的护士智能排班算法基于护士排班的优化模型,满足7 个硬约束条件和5 个软约束条件,能满足疫情管理规定要求,更符合护士个人生理状态和排班的人性化.护士每个排班周期的中班、夜班工作次数的减少,连续上中班、夜班的次数减少,能够显著地减少护士工作的强度,这在重大传染病爆发期间是相当重要的.智能排班除了能够以快速积极的状态响应疫情,在紧缺的医疗资源中优化配置中,提升人力资源的利用率外,还能够降低护士的健康风险,医院的疫情管理工作也能够得到有效的提高.

猜你喜欢

约束条件交叉染色体
基于一种改进AZSVPWM的满调制度死区约束条件分析
“六法”巧解分式方程
多一条X染色体,寿命会更长
为什么男性要有一条X染色体?
A literature review of research exploring the experiences of overseas nurses in the United Kingdom (2002–2017)
能忍的人寿命长
连一连
基于Fast-ICA的Wigner-Ville分布交叉项消除方法
再论高等植物染色体杂交
双线性时频分布交叉项提取及损伤识别应用