一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于上门和门诊双服务模式的医护人员调度优化方法

2022-05-18 06:58:16 来源:中国专利 TAG:


1.本发明属于调度优化技术领域,具体涉及一种基于上门和门诊双服务模式的医护人员调度优化方法。


背景技术:

2.人口老龄化程度的加重,使得人们对医疗卫生服务资源的需求日益增加。传统的以医院为中心的医疗服务模式不再能满足人们对长期且连续健康照顾的需求。在基层推进家庭医生签约服务成为新形势下健全分级诊疗和维护群众健康的重要途径。我国家庭医生签约服务是在社区范围内,以全科医生为核心,家庭医生服务团队(由全科医生、卫生院医师、乡村医生、护士等组成)为支撑,为签约病人提供个性化服务。不仅可以为普通病人提供门诊服务,还能为行动不便、高龄病人提供上门服务。在医疗资源紧缺的现状下,上门和门诊双服务模式下的医护人员调度优化问题研究有利于推动家庭医生服务的发展和完善。
3.虽然上门和门诊两种服务模式的融合可以使得医疗资源的分配更加灵活,但是同时也给医疗资源紧缺下的医护人员调度优化问题提出了难题。现有研究对仅上门服务的路径规划问题展开了丰富研究,将该问题描述为车辆路径问题的扩展,但缺乏同时考虑门诊服务的调度研究。双服务模式下的医护人员调度优化问题需要确定医护人员的服务模式分配,上门服务的线路规划和门诊服务的医患匹配,问题复杂度更高。同时,若每位医护人员仅提供一种模式的服务,部分上门医护人员可能会较早结束服务,造成医疗资源的浪费,且上门和门诊的医护人员工作量又会严重失衡。因此,本发明提出一类允许医护人员服务模式改变的家庭医护人员调度优化问题。该问题复杂度高,如何求解该类问题是目前研究的核心问题之一。本发明提出一种基于遗传算法的混合遗传算法对问题进行求解,并取得较优结果。
4.遗传算法是一类基于群体的启发式算法,借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。目前少有针对上门和门诊双服务模式的家庭医护人员调度问题的研究,已有的遗传算法无法有效的求解该类问题,主要的问题有两个:第一,家庭医生服务目前处于发展完善阶段,缺乏将上门和门诊两种服务模式的调度融合的数学模型;第二,虽然上门和门诊服务均涉及到医护人员的调度,但两种服务模式有很大的不同,如何在算法中将两种服务模式的调度融合至关重要。该问题的个性化特征明显,设计出适合该问题的编码方式、交叉变异算子,对于提高算法的搜索效率尤为重要。遗传算法结构简单、搜索效率高,已被广泛应用于求解扩展的家庭医护人员调度优化问题。但同时,遗传算法存在易陷入局部最优的缺点。基于邻域结构的局部搜索可以有效提高算法的搜索效率。因此,本发明结合问题特征,在基本的遗传算法框架中嵌入局部搜索过程,设计了一种混合遗传算法。


技术实现要素:

5.本发明的目的是为了解决上门和门诊双服务模式下的家庭医护人员调度优化的
问题,提出了一种基于上门和门诊双服务模式的医护人员调度优化方法。
6.本发明的技术方案是:一种基于上门和门诊双服务模式的医护人员调度优化方法包括以下步骤:
7.s1:根据病人的预约类型,构建调度目标模型;
8.s2:利用遗传算法调度目标模型,确定医护人员调度方案。
9.进一步地,步骤s1中,病人的预约类型包括上门服务和门诊服务;
10.所述调度目标模型的表达式为:
[0011][0012][0013][0014][0015][0016][0017]
0≤sk《uk·
r,
[0018]
0≤vk《(e0 r-α0)
·
uk,
[0019][0020]
ta
|n| 1,k-ta
0k
≤r,
[0021][0022][0023][0024]
e0·
min{δk,1}≤ta
0k
≤l0·
min{δk,1},
[0025]
e0·
min{δk,1}≤ta
|n| 1,k
≤l0·
min{δk,1},
[0026]
ta
|n| 1,k
≤e0 α0 (2-δk)
·
m,
[0027]
ta
jk
≥max{ei,ta
ik
} τi t
ij-m
·
(1-x
ijk
),
[0028][0029]
[0030][0031]
x
ijk
∈{0,1},
[0032][0033][0034][0035][0036][0037][0038][0039]
δk∈{0,1,2},
[0040]
其中,完备图g=(v,a),点集v={0,|n| 1}∪n1,弧a={(i,j):i∈v\{|n| 1,j∈v\{0},i≠j},n={1,2,

,|n|}表示预约病人集合,n1表示上门服务病人集合,n2表示门诊服务病人集合,k表示医护人员集合,c
ij
表示完备图中点i和点j间的路径成本,x
ijk
表示医护人员k是否从点i到点j的0-1决策变量,w1表示引入门诊病人单位等待时间的惩罚,e0表示社区医院开放的时间起点,r表示医护人员的标准工作时长,α0表示时间节点,uk表示平均服务率,vk表示上门服务转门诊服务的医护人员k服务的门诊病人数量,sk表示仅门诊服务的医护人员k服务的门诊病人数量,w2表示病人单位偏好满意度的效益,表示医患匹配偏好系数,qk表示医护人员的技能级别,表示病人i0的技能需求级别,表示医护人员k被安排为服务病人i0的决策变量,表示医护人员k被安排为服务上门病人i1的决策变量,δk表示医护人员k被安排的服务类型的辅助变量值,表示医护人员k被安排为服务门诊病人i2的决策变量,m表示极大的正数,表示医护人员k是否从点i到上门病人j1的0-1决策变量,表示医护人员k被安排为服务上门病人j1的决策变量,ta
|n| 1,k
表示上门服务的医护人员k返回社区医院的时间,ta
0k
表示上门服务的医护人员k从社区医院出发的时间,表示医护人员k是否从上门病人j1到点j的0-1决策变量,表示医护人员k是否从社区医院出发第一个访问上门病人i1的决策变量,表示医护人员k是否访问完上门病人i1后回到社区医院的决策变量,l0表示社区医院关闭的时间节点,ta
jk
表示医护人员k到达点j处的时间,ei表示点i接受服务的时间窗起点,τi表示点i的服务时间,t
ij
表示完备图中点i和点j间的路径时间,ta
ik
表示医护人员k到达点i处的时间,表示医护人员到达上门病人i1的时间,表示上门病人i1愿意接受服务的时间窗终点,e表示医护人员服务病人的技能偏差。
[0041]
进一步地,步骤s2包括以下子步骤:
[0042]
s21:确定遗传算法中种群个体的编码方式;
[0043]
s22:基于编码方式,利用病人和医护人员产生初始种群;
[0044]
s23:对初始种群进行选择操作,得到最新种群;
[0045]
s24:基于个体编码,对最新种群进行交叉操作;
[0046]
s25:设定变异算子,对最新种群进行变异操作;
[0047]
s26:基于调度目标模型,进行局部搜索,确定医护人员调度方案。
[0048]
进一步地,步骤s21中,采用列表进行个体编码的具体方法为:在列表中,每行表示一个医护人员的调度方案,每行第一个序号表示医护人员,第二个序号表示医护人员的服务类型,其中,第一个序号为0表示门诊服务,第一个序号为1表示上门服务,其余序号表示医护人员服务的病人,上门服务中的病人序列表示医护人员访问病人的先后顺序。
[0049]
进一步地,步骤s22中,初始种群由相等的第一初始种群和第二初始种群组成;
[0050]
产生第一初始种群个体的具体方法为:随机选择一个未被安排的病人和为该病人服务的未分配医护人员,构建第一服务调度方案;在个体编码的列表中,将病人逐渐插入当前行,若不存在可插入病人则开始新的一行,重复该过程直到所有病人被安排。
[0051]
产生第二初始种群个体的具体方法为:随机选择一个未被安排的病人,若该病人的预约类型为上门服务,则随机选择一位为该病人服务的医护人员,构建第二服务路径;将可插入第二服务路径的预约上门服务的病人放入第一集合γ,并通过第一准则确定第一集合γ中所有病人插入第二服务路径的最优位置,通过第二准则选择最优病人,将选择的最优病人插入至第二服务路径的最优位置,将该最优病人标记为被安排的病人并更新第一集合γ;
[0052]
若随机选择的病人的预约类型为门诊服务,则随机选择一位为该病人服务的医护人员k,构建医护人员k服务的门诊病人集合pk,将可被医护人员k服务但未被安排的门诊病人放入第二集合s,在满足且|pk|《uk·
r-1的前提下,其中,uk表示平均服务率,r表示医护人员的标准工作时长,通过第二准则从第二集合s选择最优病人,将该最优病人加入该医护人员服务的门诊病人集合pk,将最优病人从第二集合s中移除。重复以上过程,直到所有病人被安排。
[0053]
进一步地,步骤s22中,通过第一准则确定插入服务路径的最优位置的计算公式为:
[0054][0055]
其中,表示确定最优位置函数运算,u表示未被安排的病人,i(u)表示病人u最优插入位置的前序病人,j(u)表示病人u最优插入位置的后序病人,表示完备图的原始路径中插入病人后的病人等待时间差,表示完备图的弧(i
p-1
,i
p
)中插入病人后的病人等待时间差,i
p-1
表示原路径中第p-1个位置的病人,i
p
表示原路径中第p个位置的病人,m表示原路径中的病人数量;
[0056]
通过第二准则确定最优病人的计算公式为:
[0057][0058]
其中,确定最优病人运算,u
*
表示最优病人,p
uk
表示病人u与医护人员k匹配的偏好系数,qu表示病人u的技能需求级别,qk表示医护人员k的技能级别。
[0059]
进一步地,步骤s23中,进行选择操作的具体方法为:重复随机选择初始种群中的两个个体,比较调度模型目标值,将目标值较小的个体放入初始种群,直至达到预设种群规模,形成最新种群集合。
[0060]
进一步地,步骤s24中,进行交叉操作的具体方法为:随机选择一位医护人员k1,随
机选择当前种群中的两个个体p1和p2作为交叉操作的父代个体,并根据医护人员k1在个体p1和个体p2中的服务类型采用不同的交叉策略,具体为:
[0061]
若医护人员k1在个体p2中未被安排,则将个体p1复制给子代;
[0062]
若医护人员k1在个体p2中被安排且在个体p1中未被安排,则将医护人员k1服务的病人从个体p1中移除,并在个体编码的列表中,将医护人员k1在个体p2对应的调度路径加入个体p1,构成子代;
[0063]
若医护人员k1在个体p1中被安排且在个体p2中的预约类型为上门服务,则采用的交叉策略分别为:
[0064]
若医护人员k1在个体p1中被安排为上门服务,则在个体编码的列表中,将个体p2对应的上门服务路径r2中的病人从个体p1中删除,将个体p1对应的上门服务路径r1从个体p1中删除,将个体p2对应的上门服务路径r2加入个体p1,将个体p1对应的上门服务路径r1中的其余病人重新插入至个体p1对应的上门服务路径r1中,并将插入失败的个体p1复制至子代;
[0065]
若医护人员k1在个体p1中被安排为门诊服务,则将个体p1复制至子代;
[0066]
若医护人员k1在个体p1中被安排为上门服务转门诊服务,则将个体p2对应的上门服务路径r2中的病人从个体p1中删除,将个体p1对应的上门服务路径r1从个体p1中删除,并将个体p2对应的上门服务路径r2中的病人加入个体p1中,将个体p1对应的上门服务路径r1中的其余病人重新插入至个体p1,若个体p1中医护人员k1的上门服务在设定服务模式转换时间节点前结束,则结束交叉操作,否则将个体p1对应的门诊服务路径s1从个体p1中删除,并将个体p1对应的门诊服务路径s1中的病人重新插入至个体p1中;
[0067]
若医护人员k1在个体p1中被安排且在个体p2中的预约类型为门诊服务,则采用的交叉策略分别为:
[0068]
若医护人员k1在个体p1中被安排为上门服务,则在个体编码的列表中,在个体p1中删除个体p2对应的门诊服务路径s2中的病人,将个体p1对应的上门服务路径r1从个体p1中删除,将个体p1对应的上门服务路径r1中的病人重新插入至个体p1中除个体p1对应的上门服务路径r1外的其余上门服务路径中,并将个体p2对应的门诊服务路径s2加入个体p1;
[0069]
若医护人员k1在个体p1中被安排为门诊服务,则在个体编码的列表中,在个体p1中删除个体p2对应的门诊服务路径s2中的病人,将个体p2对应的门诊服务路径s2中的病人加入个体p1对应的门诊服务路径s1;
[0070]
若医护人员k1在个体p1中被安排为上门服务转门诊服务,则在个体编码的列表中,在个体p1中删除个体p2对应的门诊服务路径s2中的病人,将个体p2对应的门诊服务路径s2中的病人插入个体p1对应的门诊服务路径s1,若医护人员k1能够服务完个体p1对应的门诊服务路径s1中的所有病人,则结束交叉,否则,删除个体p1对应的上门服务路径r1,并将个体p1对应的上门服务路径r1中的病人重新插入个体p1。
[0071]
进一步地,步骤s24中,进行变异操作的具体方法为:设定六个变异算子,对最新种群的每一代,随机选择第一变异算子至第六变异算子中的一个变异算子对上门服务路径进行变异,随机选择第五变异算子至第六变异算子中的一个变异算子对门诊服务路径进行变异;
[0072]
其中,第一变异算子用于路径内两点交换,即随机选择同一调度路径中的两个病
人,并交换位置;
[0073]
第二变异算子用于调度路径内重定位,即随机删除一条调度路径中的一个病人,并将其重新插入当前调度路径;
[0074]
第三变异算子用于调度路径内进行两点优化,即随机选择一条调度路径中的两个病人,将两个病人间的调度路径进行反转;
[0075]
第四变异算子用于调度路径间进行两点优化,即随机从两条调度路径中选择两个病人,分别以两个病人作为分割点,将每条调度路径分成两个部分,交换重组,得到两条新调度路径;
[0076]
第五变异算子用于行间两点交换,即在个体编码的列表中,随机选择同一服务类型中不同行的病人,并交换位置;
[0077]
第六变异算子用于行间重定位,即随机选择一个病人,在个体编码的列表中,将该病人插入同一服务类型的另一行中。
[0078]
进一步地,步骤s26包括以下子步骤:
[0079]
s261:设定第七变异算子、第八变异算子和第九变异算子,并将第一变异算子至第八变异算子构成算子集合中;
[0080]
s262:从算子集合中随机选择一个变异算子,若被选择的变异算子为第一变异算子至第四变异算子或第七变异算子至第八变异算子中的一个,则在个体编码的列表中对上门服务路径对应的行进行搜索,若被选择的变异算子为第五变异算子或第六变异算子,则在个体编码的列表中对门诊服务路径对应的行进行搜索;
[0081]
s263:判断步骤s262中随机选择的变异算子是否对调度模型目标值有改善,若是则重复步骤s262直至无法得到更小的调度模型目标值,并进入步骤s265,否则进入步骤s264;
[0082]
s264:将步骤s262中随机选择的变异算子从算子集合中移除,若当前算子集合为空,则进入步骤s265,否则返回步骤s262;
[0083]
s265:重复执行第九变异算子,直至无法得到更小的调度模型目标值,并根据最新调度目标模型确定医护人员调度方案;
[0084]
所述步骤s261中,第七变异算子用于多点重定位,即随机选择若干个病人,并将若干个病人进行重新插入调度路径;
[0085]
第八变异算子用于子序列交换,即随机从两条调度路径中选择两条子路径,并进行交换;
[0086]
第九变异算子用于医护人员交换,即随机选择两个医护人员,交换列表中对应行的病人序列。
[0087]
本发明的有益效果是:
[0088]
(1)本发明的医护人员调度优化方法允许较早结束上门服务的医护人员提供门诊服务,在考虑技能匹配,病人接受服务的时间窗以及医护人员的工作管理等约束下,以最小化上门服务路径成本、门诊病人等待时间和最大化病人偏好满意度为目标建立了目标模型,提出一种针对上门和门诊双服务模式的家庭医护人员调度优化问题的遗传算法,可加快算法的收敛速度和提高解的质量,获得较优的调度方案;
[0089]
(2)本发明的医护人员调度优化方法增加了家庭医护人员调度问题研究范围,并
且与实际情况相连接。以遗传算法为框架,嵌入局部搜索,设计了能够在较短时间内求出高质量解的混合遗传算法。
附图说明
[0090]
图1为医护人员调度优化方法的流程图;
[0091]
图2为编码示例图;
[0092]
图3为本发明实施例中情形2中的交叉操作示意图;
[0093]
图4为本发明实施例中情形3的(1)中交叉操作示意图;
[0094]
图5为本发明实施例中情形3的(3)中交叉操作示意图;
[0095]
图6为本发明实施例中情形4的(1)中交叉操作示意图;
[0096]
图7为本发明实施例中情形4的(2)中交叉操作示意图;
[0097]
图8为本发明实施例中情形4的(3)中交叉操作示意图。
具体实施方式
[0098]
下面结合附图对本发明的实施例作进一步的说明。
[0099]
如图1所示,本发明提供了一种基于上门和门诊双服务模式的医护人员调度优化方法,包括以下步骤:
[0100]
s1:根据病人的预约类型,构建调度目标模型;
[0101]
s2:利用遗传算法调度目标模型,确定医护人员调度方案。
[0102]
本发明结合问题特征设计了一种基于遗传算法的混合遗传算法对问题进行求解。
[0103]
遗传算法的具体步骤为:
[0104]
步骤1:设置当前迭代代数t=0,根据问题特性随机生成多个个体构成初始种群p(0)。步骤2:计算初始种群中个体的适应度。
[0105]
步骤2:为了把优化的个体遗传到下一代,将选择算子作用于当前种群。选择操作是建立在群体中个体的适应度评估基础上的。
[0106]
步骤3:将交叉算子作用于当前种群。
[0107]
步骤4:将变异算子作用于群体,即对种群中个体串的某些基因值进行变动。
[0108]
步骤5:将种群p(t)经过选择、交叉、变异后得到的种群称为子代种群p(t 1),重复执行步骤2-步骤5。
[0109]
步骤6:若满足终止条件,则以进化过程中所得到的最大适应度个体作为最优解输出;否则继续搜索。
[0110]
在本发明实施例中,步骤s1中,病人的预约类型包括上门服务和门诊服务;
[0111]
调度目标模型的表达式为:
[0112][0113]
[0114][0115][0116][0117][0118]
0≤sk《uk·
r,
[0119]
0≤vk《(e0 r-α0)
·
uk,
[0120][0121]
ta
|n| 1,k-ta
0k
≤r,
[0122][0123][0124][0125]
e0·
min{δk,1}≤ta
0k
≤l0·
min{δk,1},
[0126]
e0·
min{δk,1}≤ta
|n| 1,k
≤l0·
min{δk,1},
[0127]
ta
|n| 1,k
≤e0 α0 (2-δk)
·
m,
[0128]
ta
jk
≥max{ei,ta
ik
} τi t
ij-m
·
(1-x
ijk
),
[0129][0130][0131][0132]
x
ijk
∈{0,1},
[0133][0134][0135][0136][0137][0138][0139][0140]
δk∈{0,1,2},
[0141]
其中,完备图g=(v,a),点集v={0,|n| 1}∪n1,弧a={(i,j):i∈v\{|n| 1,j∈
v\{0},i≠j},n={1,2,

,|n|}表示预约病人集合,n1表示上门服务病人集合,n2表示门诊服务病人集合,k表示医护人员集合,c
ij
表示完备图中点i和点j间的路径成本,x
ijk
表示医护人员k是否从点i到点j的0-1决策变量,w1表示引入门诊病人单位等待时间的惩罚,e0表示社区医院开放的时间起点,r表示医护人员的标准工作时长,α0表示时间节点,uk表示平均服务率,vk表示上门服务转门诊服务的医护人员k服务的门诊病人数量,sk表示仅门诊服务的医护人员k服务的门诊病人数量,w2表示病人单位偏好满意度的效益,表示医患匹配偏好系数,qk表示医护人员的技能级别,表示病人i0的技能需求级别,表示医护人员k被安排为服务病人i0的决策变量,表示医护人员k被安排为服务上门病人i1的决策变量,δk表示医护人员k被安排的服务类型的辅助变量值,表示医护人员k被安排为服务门诊病人i2的决策变量,m表示极大的正数,表示医护人员k是否从点i到上门病人j1的0-1决策变量,表示医护人员k被安排为服务上门病人j1的决策变量,ta
|n| 1,k
表示上门服务的医护人员k返回社区医院的时间,ta
0k
表示上门服务的医护人员k从社区医院出发的时间,表示医护人员k是否从上门病人j1到点j的0-1决策变量,表示医护人员k是否从社区医院出发第一个访问上门病人i1的决策变量,表示医护人员k是否访问完上门病人i1后回到社区医院的决策变量,l0表示社区医院关闭的时间节点,ta
jk
表示医护人员k到达点j处的时间,ei表示点i接受服务的时间窗起点,τi表示点i的服务时间,t
ij
表示完备图中点i和点j间的路径时间,ta
ik
表示医护人员k到达点i处的时间,表示医护人员到达上门病人i1的时间,表示上门病人i1愿意接受服务的时间窗终点,e表示医护人员服务病人的技能偏差。
[0142]
在调度目标模型中,签约病人在接受服务前根据签约内容和自身需求向社区医院预约服务类型(上门或门诊)。假设所有预约病人集合n={1,2,

,|n|},上门服务病人集合n1={1,2,

,|n1|},门诊病人集合为n2={1,2,

,|n2|},提供服务的医护人员集合k={1,2,

,|k|}。
[0143]
每位医护人员均可服务任意类型的病人,且工作时间不超过标准工作时长r。其中门诊医护人员的工作时间窗为[e0,e0 r],上门服务医护人员的工作时间窗为社区医院的开放时间窗[e0,l0]。通过引入时间节点α0将门诊工作时间分为[e0,α0]和(α0,e0 r]两段,允许在α0时刻之前完成上门服务并返回护理中心的医护人员加入门诊服务中。每位医护人员具有一个表示服务能力和质量的技能级别qk,每位病人具有一个服务的技能需求,病人的服务必须由具有更高或相同技能水平的医护人员执行。为了合理分配医疗资源,医护人员服务病人的技能偏差不超过e。在满意度方面,病人偏好于之前服务过的医护人员:若医护人员服务过病人,对应的医患匹配偏好系数p
ik
=1,否则为0。
[0144]
在上门服务中,问题可以定义在完备图g=(v,a)上,点集v={0,|n| 1}∪n1,其中0和|n| 1表示社区医院,a为弧的集合,a={(i,j):i∈v\{|n| 1,j∈v\{0},i≠j}。每位病人具有一个服务时间τi和一个愿意开始接受服务的硬时间窗[ei,li],每位医护人员从社区医院出发开始服务,服务完病人后必须返回社区医院。点i和j间的路径时间和路径成本分别表示为t
ij
和c
ij

[0145]
在门诊服务中,病人到社区医院接受服务,仅上门服务的医护人员被看成一个工作时长为r的独立服务台,完成上门服务后进行门诊服务的医护人员可以看成是一个工作
时长为e0 r-α0的独立服务台。假设医护人员k的服务时间服从参数为uk(平均服务率)的负指数分布。病人到达社区医院的时间相互独立且服从参数为λk的泊松分布,并按照先到先服务的准则接受服务,则每位医护人员服务病人的过程可描述为一个m/m/1排队模型。当为仅上门服务的医护人员k分配sk个门诊病人时,病人的平均到达率λk=sk/r,服务过程中病人总的等待时间为:tk=sk·
λk/(uk(u
k-λk))=uk·
r2/(uk·
r-sk)-sk/u
k-r。当为完成上门服务后进行门诊服务的医护人员k分配vk个门诊病人时,服务过程中病人总的等待时间为:tk=vk·
λk/(uk(u
k-λk))=(e0 r-α0)2·
uk/((e0 r-α0)
·uk-vk)-vk/u
k-(e0 r-α0)。
[0146]
设定决策变量为:(1)x
ijk
:若医护人员k从点i到点j为1,否则为0。辅助变量:(1)y
jk
:若医护人员k被安排为服务病人i为1,否则为0;(2)ta
ik
:医护人员k到达点i处的时间;(3)sk:仅门诊服务的医护人员k服务的门诊病人数量;(4)vk:上门转门诊服务的医护人员k服务的门诊病人数量;(5)δk:若医护人员k被安排为仅门诊服务取0,仅上门服务取1,上门转门诊取2;
[0147]
引入门诊病人单位等待时间的惩罚w1、病人单位偏好满意度的效益w2,以最小化上门服务路径成本、门诊病人等待惩罚和最大化病人偏好满意度效益为目标建立模型。
[0148]
调度目标函数表示最小化上门服务的路径成本、上门转门诊和仅门诊服务过程中的门诊病人等待惩罚,以及最大化病人偏好满意度效益。约束(2)表示每位病人必须被一位医护人员服务一次。约束(3)表示当且仅当医护人员的服务模式为仅上门或上门转门诊(δk=1或2)时,才可以服务上门病人。约束(4)表示当且仅当医护人员的服务模式为仅门诊或上门转门诊(δk=0或2)时,才可以服务门诊病人。约束(5)和(6)分别为δk与sk、vk的关系。约束(7)和(8)分别表示仅门诊、上门转门诊的医护人员服务的门诊病人数量不超过平均工作量。约束(9)为y
jk
和x
ijk
的关系。约束(10)表示上门服务的医护人员工作时间不超过标准工作时长。约束(11)表示上门服务中,医护人员服务完病人后离开该病人。约束(12)和(13)分别表示执行上门服务的医护人员从社区医院出发,最终返回医院。约束(14)和(15)表示执行上门服务的医护人员必须在社区医院开放的时间范围内开始和结束上门服务。约束(16)表示上门转门诊服务的医护人员必须在时间节点e0 α0前返回社区医院。约束(17)为上门服务的医护人员到达病人的时间传递关系。约束(18)表示医护人员必须在上门服务病人时间窗关闭前到达病人。约束(19)和(20)为医患的技能匹配约束,保证了病人必须由具有更高或相同技能水平的医护人员执行,且医护人员服务病人的技能偏差不超过最大技能偏差。约束(21)至(29)为决策变量范围。
[0149]
在本发明实施例中,步骤s2中,为了求解大规模问题,本发明以遗传算法为框架,嵌入一种个性化的局部搜索过程,提出一种混合遗传算法。设计了新的个体编码方式,并在初始种群构造、交叉和变异操作等关键步骤中进行了改进。具体包括以下子步骤:
[0150]
s21:确定遗传算法中种群个体的编码方式;
[0151]
s22:基于编码方式,利用病人和医护人员产生初始种群;
[0152]
s23:对初始种群进行选择操作,得到最新种群;
[0153]
s24:基于个体编码,对最新种群进行交叉操作;
[0154]
s25:设定变异算子,对最新种群进行变异操作;
[0155]
s26:基于调度目标模型,进行局部搜索,确定医护人员调度方案。
[0156]
在本发明实施例中,步骤s21中,采用列表进行个体编码的具体方法为:在列表中,
每行表示一个医护人员的调度方案,每行第一个序号表示医护人员,第二个序号表示医护人员的服务类型,其中,第一个序号为0表示门诊服务,第一个序号为1表示上门服务,其余序号表示医护人员服务的病人,上门服务中的病人序列表示医护人员访问病人的先后顺序。
[0157]
在本发明实施例中,如图2所示,本发明采用列表表示个体的编码方式。在该方法中,每个个体包含多行,每一行代表一个调度方案。具体为:列表中每行第一个序号代表医护人员,第二个序号代表医护人员的服务类型(0为门诊服务,1为上门服务),其余序号为医护人员服务的病人。同时,上门服务中的病人序列还代表医护人员服务的先后顺序,而门诊服务的病人服从先到先服务的准则。模型中允许部分医护人员结束上门服务后提供门诊服务,故可能存在既上门又门诊的医护人员。图2的实例中包括5位医护人员,其中:医护人员1和2的服务模式为仅上门服务;医护人员4和5的服务模式为仅门诊服务;医护人员3先上门服务病人7和8,再门诊服务病人10。
[0158]
在本发明实施例中,为了维持种群的多样性,本发明中的初始种群由两种方式产生。一半的个体采用“随机”的方式产生:随机选择一个没有被安排的病人和能服务该病人的未分配医护人员,开始构造一条服务路径或一个由该医护人员服务的病人集合。若存在可插入的病人,将其加入当前路径或集合,否则开始新的一行。重复该过程直到所有病人均被安排。另一半的个体采用vrptw插入算法为框架的构造法,该构造算法中,随机选择一个未被安排的上门病人和可服务该病人的医护人员开始构造上门服务路线。依据准则和找到可插入的病人及其最佳插入位置。在满足约束的前提下重复该部分步骤,直到所有的上门病人均被安排。然后,随机选择一个未被安排的门诊病人,和能服务该病人的空闲或在服务模式变换节点前完成上门服务的医护人员开始构造上门服务调度。依据准则找到最佳插入的病人。在满足医护人员工作量、技能匹配等约束的前提下重复该部分步骤,直到所有门诊病人均被安排。结合问题特性,具体为:步骤s22中,初始种群由相等的第一初始种群和第二初始种群组成;
[0159]
产生第一初始种群个体的具体方法为:随机选择一个未被安排的病人和为该病人服务的未分配医护人员,构建第一服务调度方案;在个体编码的列表中,将病人逐渐插入当前行,若不存在可插入病人则开始新的一行,重复该过程直到所有病人被安排。
[0160]
产生第二初始种群个体的具体方法为:随机选择一个未被安排的病人,若该病人的预约类型为上门服务,则随机选择一位为该病人服务的医护人员,构建第二服务路径;将可插入第二服务路径的预约上门服务的病人放入第一集合γ,并通过第一准则确定第一集合γ中所有病人插入第二服务路径的最优位置,通过第二准则选择最优病人,将选择的最优病人插入至第二服务路径的最优位置,将该最优病人标记为被安排的病人并更新第一集合γ;
[0161]
若随机选择的病人的预约类型为门诊服务,则随机选择一位为该病人服务的医护人员k,构建医护人员k服务的门诊病人集合pk,将可被医护人员k服务但未被安排的门诊病人放入第二集合s,在满足且|pk|《uk·
r-1的前提下,其中,uk表示平均服务率,r表示医护人员的标准工作时长,通过第二准则从第二集合s选择最优病人,将该最优病人加入该医护人员服务的门诊病人集合pk,将最优病人从第二集合s中移除。重复以上过程,直到所有病人被安排。
[0162]
在本发明实施例中,步骤s22中,假设当前上门服务路径为(i0,i1,...,im),其中i0和im为社区医院,对于集合中的每个未被安排的病人u,第一准则旨在最小化节约的路径成本和等待时间惩罚,通过第一准则确定插入服务路径的最优位置的计算公式为:
[0163][0164]
其中,表示确定最优位置函数运算,u表示未被安排的病人,i(u)表示病人u最优插入位置的前序病人,j(u)表示病人u最优插入位置的后序病人,表示完备图的原始路径中插入病人后的病人等待时间差,表示完备图的弧(i
p-1
,i
p
)中插入病人后的病人等待时间差,i
p-1
表示原路径中第p-1个位置的病人,i
p
表示原路径中第p个位置的病人,m表示原路径中的病人数量;
[0165]
第二准则旨在最大化所插入病人的偏好满意度,通过第二准则确定最优病人的计算公式为:
[0166][0167]
其中,确定最优病人运算,u
*
表示最优病人,p
uk
表示病人u与医护人员k匹配的偏好系数,qu表示病人u的技能需求级别,qk表示医护人员k的技能级别。
[0168]
在本发明实施例中,步骤s23中,选择操作采用精英策略。随机选择两个个体并比较目标函数值,选择较优的个体放入新的种群集合。重复该过程,直到被选择的个体数量达到种群的规模np。新选择的个体参加交叉和变异操作。进行选择操作的具体方法为:重复随机选择初始种群中的两个个体,比较调度模型目标值,将目标值较小的的个体放入初始种群,直至达到预设种群规模,形成最新种群集合。
[0169]
在本发明实施例中,步骤s24中,进行交叉操作的具体方法为:随机选择一位医护人员k1,随机选择当前种群中的两个个体p1和p2作为交叉操作的父代个体,并根据医护人员k1在个体p1和个体p2中的服务类型采用不同的交叉策略,随机选择一个医护人员k1,两个个体p1和p2作为交叉的父代个体。根据医护人员k1在p1和p2中的服务类型采用不同的交叉策略。在交叉操作过程中对可行性进行检验,以保证子代个体是可行的。为了便于描述,以子代1的生成为例对交叉过程进行阐述,主要包括四种不同情形。具体为:
[0170]
情形1:若医护人员k1在个体p2中未被安排,则将个体p1复制给子代;
[0171]
情形2:若医护人员k1在个体p2中被安排且在个体p1中未被安排,则将医护人员k1服务的病人从个体p1中移除,并在个体编码的列表中,将医护人员k1在个体p2对应的调度路径加入个体p1,构成子代;
[0172]
如图3所示,若医护人员k1在p2中被安排但在p1中未被安排,在p1中将医护人员k1服务的病人移除,然后将医护人员k1在p2中对应的行加入p1。图3中给出了医护人员k1在p2中的服务类型为上门转门诊的示例。其中,医护人员6在p2中对应的上门服务线路和门诊调度分别被标记为r2和s2,则在p1中移除r2和s2中的所有病人10,9,2,13,15后,将r2和s2均加入p1,构成子代1。
[0173]
情形3:若医护人员k1在个体p1中被安排且在个体p2中的预约类型为上门服务,将p2对应的上门服务线路标记为r2,则采用的交叉策略分别为:
[0174]
(1)若医护人员k1在个体p1中被安排为上门服务,则在个体编码的列表中,将个体
p2对应的上门服务路径r2中的病人从个体p1中删除,将个体p1对应的上门服务路径r1从个体p1中删除,将个体p2对应的上门服务路径r2加入个体p1,将个体p1对应的上门服务路径r1中的其余病人重新插入至个体p1对应的上门服务路径r1中,并将插入失败的个体p1复制至子代;
[0175]
如图4所示,医护人员k1在p1中被安排为仅上门,对应的行被标记为r1,执行以下操作:
[0176]
step 1:将r2中的病人{10,9,2}从p1中删除,如图4(a)所示;
[0177]
step 2:将r1从p1中删除,然后将r2加入p1,如图4(b)所示;
[0178]
step 3:将r1中剩余的病人{5,4}重新插入p1中的上门服务路径中,如图4(c)所示,若插入失败,则直接将p1复制给子代1。
[0179]
(2)若医护人员k1在个体p1中被安排为门诊服务,则将个体p1复制至子代;
[0180]
(3)若医护人员k1在个体p1中被安排为上门服务转门诊服务,则对应的上门服务线路和门诊调度分别被标记为r1和s1,将个体p2对应的上门服务路径r2中的病人从个体p1中删除,将个体p1对应的上门服务路径r1从个体p1中删除,并将个体p2对应的上门服务路径r2中的病人加入个体p1中,将个体p1对应的上门服务路径r1中的其余病人重新插入至个体p1,若个体p1中医护人员k1的上门服务在设定服务模式转换时间节点前结束,则结束交叉操作,否则将个体p1对应的门诊服务路径s1从个体p1中删除,并将个体p1对应的门诊服务路径s1中的病人重新插入至个体p1中;
[0181]
如图5所示,执行以下操作:
[0182]
step 1:将r2中的病人{7,9,3,2}从p1中删除,如图5(a)所示;
[0183]
step 2:将r1从p1中删除,然后将r2加入p1,r1中的剩余病人{5}重新插入p1,如图5(b)所示;
[0184]
step 3:若p1中k1的上门服务能在服务模式转换时间节点之前结束,结束交叉。否则,将s1从p1中删除,s1中的病人{17}重新插入p1,如图5(c)所示。
[0185]
情形四:若医护人员k1在个体p1中被安排且在个体p2中的预约类型为门诊服务,则采用的交叉策略分别为:
[0186]
(1)若医护人员k1在个体p1中被安排为上门服务,则在个体编码的列表中,在个体p1中删除个体p2对应的门诊服务路径s2中的病人,将个体p1对应的上门服务路径r1从个体p1中删除,将个体p1对应的上门服务路径r1中的病人重新插入至个体p1中除个体p1对应的上门服务路径r1外的其余上门服务路径中,并将个体p2对应的门诊服务路径s2加入个体p1;
[0187]
如图6所示,p1中被安排为仅上门,对应的行被标记为r1,执行以下操作:
[0188]
step 1:在p1中删除s2中的病人{11,15,13},如图6(a)所示;
[0189]
step 2:将r1从p1中删除,如图6(b)所示;
[0190]
step 3:将r1中的病人重新插入p1中的其他上门路径中,并将s2加入p1,如图6(c)所示。
[0191]
(2)若医护人员k1在个体p1中被安排为门诊服务,则在个体编码的列表中,在个体p1中删除个体p2对应的门诊服务路径s2中的病人,将个体p2对应的门诊服务路径s2中的病人加入个体p1对应的门诊服务路径s1;
[0192]
如图7所示,p1中被安排为或仅门诊服务,对应的行被标记为s1,执行以下操作:
[0193]
step 1:将s2中的病人{14,13,16}从p1中删除,如图7(a)所示;
[0194]
step 2:将s2中的病人加入s1,如图7(b)所示。
[0195]
(3)若医护人员k1在个体p1中被安排为上门服务转门诊服务,则在个体编码的列表中,在个体p1中删除个体p2对应的门诊服务路径s2中的病人,将个体p2对应的门诊服务路径s2中的病人插入个体p1对应的门诊服务路径s1,若医护人员k1能够服务完个体p1对应的门诊服务路径s1中的所有病人,则结束交叉,否则,删除个体p1对应的上门服务路径r1,并将个体p1对应的上门服务路径r1中的病人重新插入个体p1;
[0196]
如图8所示,对应的上门服务线路和门诊调度分别被标记为r1和s1,执行以下操作:
[0197]
step 1:将s2中的病人{14,13,16}从p1中删除,如图8(a)所示;
[0198]
step 2:将s2中的病人插入s1中,如图8(b)所示;
[0199]
step 3:若医护人员k1在门诊服务中能够服务完s1中所有的病人,结束交叉。否则,将k1的门诊调度r1删除,r1中的病人{1,6}重新插入p1,如图8(c)所示。
[0200]
在本发明实施例中,步骤s24中,进行变异操作的具体方法为:设定六个变异算子,第一变异算子-第四变异算子是针对的上门服务路径变化,第五变异算子-第六变异算子是针对的医患匹配,对上门和门诊服务调度均适用。对于每一代,依次随机选择第一变异算子-第六变异算子和第五变异算子-第六变异算子中的一个算子分别对上门服务线路和门诊服务调度进行变异,当新个体可行时,用新个体替换旧个体。
[0201]
对最新种群的每一代,随机选择第一变异算子至第六变异算子中的一个变异算子对上门服务路径进行变异,随机选择第五变异算子至第六变异算子中的一个变异算子对门诊服务路径进行变异;
[0202]
其中,第一变异算子用于路径内两点交换,即随机选择同一调度路径中的两个病人,并交换位置;
[0203]
第二变异算子用于调度路径内重定位,即随机删除一条调度路径中的一个病人,并将其重新插入当前调度路径;
[0204]
第三变异算子用于调度路径内进行两点优化,即随机选择一条调度路径中的两个病人,将两个病人间的调度路径进行反转;
[0205]
第四变异算子用于调度路径间进行两点优化,即随机从两条调度路径中选择两个病人,分别以两个病人作为分割点,将每条调度路径分成两个部分,交换重组,得到两条新调度路径;
[0206]
第五变异算子用于行间两点交换,即在个体编码的列表中,随机选择同一服务类型中不同行的病人,并交换位置;
[0207]
第六变异算子用于行间重定位,即随机选择一个病人,在个体编码的列表中,将该病人插入同一服务类型的另一行中。
[0208]
在本发明实施例中,为了提高算法的搜索效率,算法中加入一个包括9种算子的局部搜索算法。其中第七变异算子和第八变异算子为针对上门路径设计的,第九变异算子为医患匹配算子。步骤s26包括以下子步骤:
[0209]
s261:设定第七变异算子、第八变异算子和第九变异算子,并将第一变异算子至第
八变异算子构成算子集合中;
[0210]
s262:从算子集合中随机选择一个变异算子,若被选择的变异算子为第一变异算子至第四变异算子或第七变异算子至第八变异算子中的一个,则在个体编码的列表中对上门服务路径对应的行进行搜索,若被选择的变异算子为第五变异算子或第六变异算子,则在个体编码的列表中对门诊服务路径对应的行进行搜索;
[0211]
s263:判断步骤s262中随机选择的变异算子是否对调度模型目标值有改善,若是则重复步骤s262直至无法得到更小的调度模型目标值,并进入步骤s265,否则进入步骤s264;
[0212]
s264:将步骤s262中随机选择的变异算子从算子集合中移除,若当前算子集合为空,则进入步骤s265,否则返回步骤s262;
[0213]
s265:重复执行第九变异算子,直至无法得到更小的调度模型目标值,并根据最新调度目标模型确定医护人员调度方案;
[0214]
所述步骤s261中,第七变异算子用于多点重定位,即随机选择若干个病人,并将若干个病人进行重新插入调度路径;
[0215]
第八变异算子用于子序列交换,即随机从两条调度路径中选择两条子路径,并进行交换;
[0216]
第九变异算子用于医护人员交换,即随机选择两个医护人员,交换列表中对应行的病人序列。
[0217]
下面结合具体实施例进行说明:
[0218]
1.实验算例
[0219]
参考solomon提出的标准带时间窗车辆路径问题算例生成法生成算例:在solomon的紧时间窗算例(r1,c1,rc1型)中,将第一个点作为社区医院,之后的|n1|个点作为上门服务病人。每位上门需求病人的服务时长τi为服从均匀分布u[30min,90min]的随机整数。社区医院开放的时间窗为[0min,540min]。上门病人i接受服务的时间窗中心和宽度分别服从u[e0 t
0i
,l
0-t
i0-τi]和[60min,120min]的均匀分布。病人i和j之间的距离d
ij
定义为欧式距离,路径时间t
ij
和路径成本c
ij
均与两点间的距离d
ij
成正比,为了简化问题,设定行驶速度和单位距离的路径成本均为1,即t
ij
、c
ij
与d
ij
在数值上相等。随机生成|n2|个点作为门诊需求病人。每位医护人员的标准工作时长为480min,门诊平均服务率uk服从[1/30,1/10]的均匀分布。病人按技能级别需求分为1,2,3三个等级,对应的数量比例分别为50%,30%和20%。医护人员的技能级别也分为1,2,3三个等级,对应的数量比例各占1/3。若医护人员的技能级别高于病人的需求级别,随机生成1或0表示医护人员是否服务过该病人,否则生成0表示没有服务过。
[0220]
2.算法性能分析
[0221]
随机生成24个不同规模的算例,将混合遗传算法运行结果和gurobi中精确算法求解模型、无局部搜索的混合遗传算法结果进行对比。混合遗传算法和无局部搜索的混合遗传算法中:交叉概率pc=0.90,变异概率pm=0.1,局部搜索代数t
local
=10。以运行时间t作为算法的终止条件,t随问题规模的增加而增加。
[0222]
模型参数设置为:上门转门诊服务的时间节点α0=300min,医护人员的最大技能偏差e=1,门诊病人单位等待时间的惩罚w1=5,病人单位偏好满意度的效益w2=5。表1给出
了gurobi的运算结果对比,包括:运行时间(以秒为单位,终止运行时间设置为7200s)、上界(ubs)、下界(lbs)以及对应的gap%值。以及混合遗传算法和无局部搜索的混合遗传算法的运行时间t(以秒为单位),以及各算法各自运行10次的最优解、平均解和相对于lb对应的gap%值。
[0223]
表1
[0224]
[0225][0226]
从表1可以看到,当医护人员数量|k|≤8时,gurobi可以得到所有算例的最优解,混合遗传算法也能够在较短时间内得到最优解且平均解的gap%值不超过3.03%。当问题规模增大到10≤|k|≤15时,gurobi在7200s以内仅能得到可行解(对应的gap%值高达57.23%)或解的下界(|k|=12的rc1型算例,|k|=15的时的r1和c1型算例),对应的混合遗传算法能够在120s内得到平均解的gap%值小于等于10.64%的较优解。之后,随着问题规模的增大,gurobi无法对问题进行求解,混合遗传算法可以在300s内得到可行解。即:随着问题规模的增大,相较于gurobi中的精确算法,混合遗传算法可以在更短的时间内得到更好的解。
[0227]
将混合遗传算法与无局部搜索的混合遗传算法对比发现:当|k|≤8,|n1|≤15时(除算例1:|k|=6,r1型外),尽管无局部搜索的混合遗传算法也能在相同时间内得到最优解,但其对应的平均解和平均解gap%值均更大。之后随着问题规模的增大,无论是最优解还是平均解,无局部搜索的混合遗传算法结果均更优。即:局部搜索策略可以提高混合遗传算法的搜索效率。
[0228]
综上,局部搜索策略可以有效提高混合遗传算法的搜索效率。相较于gurobi中的精确算法,混合遗传算法可以更好的求解该问题。
[0229]
本发明的工作原理及过程为:本发明允许较早结束上门服务的医护人员提供门诊服务,建立以最小化上门服务路径成本、门诊病人等待时间和最大化病人偏好满意度为目标的数学模型,并设计了基于遗传算法的混合遗传算法求解该问题。
[0230]
本发明的有益效果为:
[0231]
(1)本发明的医护人员调度优化方法允许较早结束上门服务的医护人员提供门诊服务,在考虑技能匹配,病人接受服务的时间窗以及医护人员的工作管理等约束下,以最小化上门服务路径成本、门诊病人等待时间和最大化病人偏好满意度为目标建立了目标模型,提出一种针对上门和门诊双服务模式的家庭医护人员调度优化问题的遗传算法,可加快算法的收敛速度和提高解的质量,获得较优的调度方案;
[0232]
(2)本发明的医护人员调度优化方法增加了家庭医护人员调度问题研究范围,并且与实际情况相连接。以遗传算法为框架,嵌入局部搜索,设计了能够在较短时间内求出高质量解的混合遗传算法。
[0233]
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献