1. 引言
随着老年人口规模的庞大,老龄事业和养老服务面临发展不均衡和不完善等挑战[1]。为减轻老人的居家养老压力和满足社会不同群体的医疗需求,我国正积极推进家庭医疗服务。护理人员调度作为家庭医疗服务的重要环节,直接确保服务的及时性、连续性和有效性。因此,对护理人员调度问题(home health care routing and scheduling problem, HHCSRP)的研究具有深刻意义。
理论上家庭医护人员调度问题属于车辆路径问题(vehicle routing problem, VRP)的一种扩展,目前已被众多学者进行了广泛研究。关于考虑患者满意度,向婷等[2]考虑病人时间窗偏好,以最小化运营成本、最大化病人偏好满意度为目标建立了混合整数规划线性模型;马跃如等[3]利用前景理论刻画符合老人心理特征的服务满意度函数,建立最大化满意度和成本最小化的多目标护理员调度模型,并设计改进的遗传算法进行求解;Wang等[4]考虑全职和兼职两种护理人员的不同工作时间,构建了总成本最小化和患者满意度最大化的数学模型;Mascolo等[5]考虑护理时间和护理人员的性别以优化患者的满意度。Liu等[6]考虑同步访问、午休、护理的连续性和工作量平衡,以相关运营成本最小化、患者满意度最大化和护理人员满意度最大化为目标建立模型;Xiang T等[7]考虑了患者的技能要求、服务开始时间的硬时间窗口和护士的工作时间,以总成本最小以及患者和护理人员的满意度最大为目标构建模型。Wang等[8]以易腐食品新鲜度来衡量客户满意度,根据有形的配送成本和无形的配送产品新鲜度,提出了一个带时间窗的易腐食品车辆路由问题。户佐安等[9]考虑服务时间和货物完好性,提出基于模糊时间窗和货损率的时间满意度函数和货物完好满意度函数,构建最大化顾客满意度和最小化运输成本的目标模型。魏诗颜等[10]构建最小化护理人员数量和最大化老年人满意度的多目标优化模型。向婷等[11]综合考虑医患匹配、医护人员工作量、上门服务的时间窗以及标本时效性等约束,建立了最小化运营成本和最大化病人偏好的双目标混合整数规划模型。
在求解方法上,多数研究者使用启发式算法求解,例如蚁群算法[12]、禁忌搜索算法[13]、混合遗传算法[14]、混合启发式算法[15]等。这些算法可以快速求出近似解,但解的精度较低,收敛速度慢。本文结合时间窗偏好、技能匹配等问题特性,对初始解产生以及交叉、变异算子进行个性化的设计,设计改进遗传模拟退火算法(Improved Simulated Annealing Genetic Algorithms, ISAGA)进行求解。
综上所述,本文研究具有以下创新:(1) 现有文献大多都是基于硬、软时间窗量化满意度,然而患者服务时间存在不确定性,基于硬时间窗、软时窗甚至软硬结合的时间窗的求解法都难以对患者接受服务的真实满意度进行准确测测量。本文将服务时间窗口进行模糊化处理,可以更好地捕捉患者实际需求的复杂性和不确定性,从而提高服务的适配度和响应度。(2) 设计改进ISAGA算法。根据问题特性,改进初始解的生成并设计交叉算子;将模拟退火理念与遗传算法相结合,利用模拟退火的随机性,设计模拟退火变异算子,防止算法过早收敛,优化算法后期的定向寻优性能。(3) 考虑技能匹配,技能水平较高的护士具有较高的沟通或专业技能,使患者获得较高的技能满意度,更具现实意义。
2. 数学模型构建
2.1. 问题描述
本文研究的HHCSRP可以描述为:考虑一个医疗服务中心,已知各客户点的需求,各医护人员值班情况,将客户点按需分配的医护人员。医护人员从该服务中心出发,依次访问当天被分配给他的客户点,最后返回服务中心。以此为背景,现定义一个完全有向图
,
为所有病人的集合,不包括服务中心。
为图中的所有顶点的集合,包括
位病人以及一个医疗服务中心,令医疗服务中心为0和
,
,向护理中心预约服务的病人集合为
,服务的医护人员
。其中,
代表路线集合,
,
和
间的路径时间和路径成本分别表示为
和
。
2.2. 基本假设及参数说明
本文在构建HHCSRP数学模型之前做出以下假设:
(1) 只有一个医护中心,医护人员从医护中心出发最终返回医护中心;
(2) 一名医护人员一次只能访问一名患者;
(3) 每位患者最多可接受一次服务;
(4) 每个客户的位置、时间窗、以及医护中心位置均已知;
(5) 由于工作时间和携带的医疗资源(如药品和辅助医疗设备)有限,每位护工只能为一定数量的客户提供服务;
(6) 患者的满意度不低于医疗中心规定的最低水平满意度;
(7) 对于没有访问的患者,可以通过其他合适的模式来满足他们的服务需求,相应的成本在本章中不做考虑。
相关参数及变量如表1所示。
Table 1. System resulting data of standard experiment
表1. 参数及变量说明
参数 |
说明 |
|
护理人员集合,
|
|
患者集合,
|
|
需求类型集合,
|
|
访问节点集合,
|
|
医护人员
的技能级别 |
|
患者
的技能需求 |
续表
|
节点
到节点
的欧式距离 |
|
医护人员从
到
的路径时间 |
|
医护人员从
到
的路径成本(本文等价于
) |
|
医护人员在患者
处的服务时间 |
|
患者对医护人员到达时间的最低满意度 |
|
医护人员
到达患者
的时间 |
|
患者
对于医护人员
的到达时间满意度函数 |
|
患者
对医护人员到达时间的期望时间窗 |
|
患者
对于医护人员到达时间的可容忍时间窗 |
|
0-1变量,若医护人员
为患者
提供等级
的服务后继续为患者
提供需要的服务,则取为1,否则为0 |
|
0-1变量,如果医护人员
为患者
提供等级
的服务,则取值为1,否则为0 |
2.3. 患者满意度函数刻画
本文将模糊时间窗看作关于医护人员到达
时的凹模糊数,用模糊数的隶属度函数
表示患者对于医护人员到达时间的满意度,以此来反映患者的满意度程度。
模糊时间窗包含患者对于医护人员到达时间的期望时间窗和可接受时间窗,其中患者的期望时间窗和可接受时间窗分别用闭区间
和
表示,若医护人员在患者期望的时间窗内到达,则到达时间满意度为1;当在患者期望时间窗之外但在可接受的时间窗之内到达,则对于医护人员到达时间的满意度会随到达时间与患者期望时间窗的差值的增大而降低。为了保证服务质量,因此确保每一个患者对于医护人员到达时间的满意度不低于
。由此,更新患者可接受时间窗为
,当患者满意度小于
时,
为0。其中
和
为患者对事件的敏感系数,具体公式见(1)~(6)。
(1)
(2)
(3)
(4)
(5)
(6)
处理后的患者对于医护人员到达时间满意度函数如下。
(7)
2.4. 数学模型构建
2.4.1. 目标函数
通过以上分析,本文从患者对时间窗偏好、医患技能匹配来衡量客户满意度,引入基于模糊时间窗的满意度函数。以上门路径成本最小,患者满意度最大化和医护人员满意度最大化为目标,建立多目标混合整数规划模型。
(8)
(9)
2.4.2. 约束条件
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
其中式(8)、式(9)为目标函数,式(8)表示最小化上门路径成本;式(9)表示最大化患者满意度(包括平均患者对于医护人员到达时间满意、医患匹配满意);式(10)表示患者平均满意度应不低于最低服务水平满意度;式(11)为护理人员
从患者
到患者
和的时间;式(12)表示护理人员
到患者
处的时间;式(13)和(14)为医护人员和患者的技能匹配约束;式(15)表示保证每位患者都能被服务且只由一个护理人员提供服务;式(16)表示每位患者每天最多被服务一次;式(17)表示在上门服务中,医护人员服务完病人后即离开该病人;式(18)和(19)为医护人员在起点和终点的约束,即医护人员必须从医疗服务中心出发,完成服务后最终返回中心;式(20)为时间窗约束,表示医护人员必须在患者可接受的时间窗内到达;
3. 算法设计
3.1. 设计思路
NSGA-Ⅱ算法[16],是一种多目标优化算法,具有运行速度快和收敛性好等优点,在多个领域得到运用。但该算法也存在易陷入局部最优、过早收敛等缺陷。遗传模拟退火算法与传统NSGA-II算法相比,具备较好的稳定性、收敛性,在车辆路径优化[17]、人机协作装配[18]等领域均取得了研究成果。为此,本文针对所提出的多目标优化问题,提出种改进遗传模拟退火算法(ISAGA)进行求解。本文结合模型特征,在基本NSGA-Ⅱ算法基础上添加了模拟退火策略,并对部分算子进行改进。图1改进ISAGA算法框架图。
Figure 1. Basic framework diagram of the ISAGA algorithm
图1. ISAGA算法基本框架图
3.2. 编码方式
本文采用列表编码个体,列表中每行表示一条路线,其中第一个序号代表医护人员,其余序号为该护士服务的患者及其对应的先后顺序。该方法更容易识别出医护人员的服务路线,在算法实现过程中不需要再次解码或编码,快速完成匹配。其中
表示
个医护人员的访问路径,
。以3个医护人员,10个患者为例解释本文的编码和解码策略,如图2所示。
Figure 2. Encoding and decoding example diagram
图2. 编码及解码示例图
3.3. 选择和交叉操作
3.3.1. 精英选择策略
为了避免解的退化,本文使用锦标赛选择方法对种群进行筛选。它通过模拟竞争的方式来选择适应度较高的个体,以便在后续的交叉和变异过程中保留优良基因。
具体步骤:(1) 种群中随机抽取2个个体。(2) 比较它们的适应度函数值,优先选择适应度较小的个体进行接下来的交叉和变异操作。(3) 将一定数量的最优个体直接复制到下一代种群中,而不经过交叉和变异操作,这样可以确保在每一代种群中至少保留一部分最优解。
3.3.2. 交叉操作
交叉规则采用部分匹配交叉(PMX)。选择需要交换的基因部分,然后交换父代个体的基因段产生子代,再建立映射表,并根据所建立的映射表消除基因冲突。以3个医护人员服务13个患者为例生成的两个父代个体解释改进的PMX交叉算子。具体交叉过程如下。
步骤1:随机在父代1中选择一条服务路径
,假设该路径所对应的医护人员为
。然后,在父代2中,随机选择与
具有相同技能的医护人员
,假设其对应的服务路径为
。分别在路径
和
中随机选择几个基因的起始位置进行交叉,从交叉区域
和
中按顺序选择
位患者进行交叉,
。如图3所示。
Figure 3. Improvement of PMX crossover step 1
图3. 改进PMX交叉步骤1
步骤2:交换两组基因的位置,分别形成子代1和子代2。这时子代中因存在重复基因而不可行,如图4所示。
Figure 4. Improvement of PMX crossover step 2
图4. 改进PMX交叉步骤2
步骤3:冲突检测,根据交换的两组基因建立一个映射关系,如图所示,以6-3-9这一映射关系为例,第二步子代2存在两个基因6,这时将其通过映射关系转变为基因9,以此类推至没有冲突为止。最后所有冲突的基因都会经过映射,保证形成的新一对子代基因无冲突,如图5所示。
Figure 5. Improvement of PMX crossover step 3
图5. 改进PMX交叉步骤3
3.4. 模拟退火变异操作
模拟退火算法具有极强的变异能力,在一次变异操作中可以进行多次变异,因此,在选择交叉后,对每个新生成的个体,以一定概率使用模拟退火过程进行变异操作,以提升个体的质量。具体操作如下:(1) 在当前状态下生成新的候选解。(2) 计算当前解和候选解的能量差。(3) 以一定概率接受新解。(4) 采用指数冷却策略更新温度。(5) 执行变异操作,路径内随机选择两个病人并交换位置,以Metropolis准则判断是否接受新解。
3.5. 邻域搜索
ISAGA算法在局部搜索阶段采用邻域搜索,使该算法能有效避免陷入局部最优。从本文研究的问题可知,患者的服务顺序直接影响医护人员的路径成本,此外,患者与医护人员的技能匹配也是影响患者满意度的关键因素。基于此,本文结合分配的技能偏差结果,综合考虑路径成本设计了两种邻域搜索算子。
N(1):交换总成本最高的服务路径中的患者服务顺序,如图6所示,具体步骤如下。
步骤1:从种群中随机选择一个个体
,找出总成本最高的医护人员对应的服务路径
。
步骤2:随机选择
上的两个患者
和
,在满足时间床约束的前提上将患者
和患者
交换位置,得到新的服务路径
。
步骤3:根据支配关系判断,选择出一个更优的新个体
。
Figure 6. Schematic diagram of N(1)
图6. N(1)示意图
N(2):将患者满意度最低的服务路径上的患者重新安排到该路径上的所有其他可能位置,见图7,具体步骤如下。
步骤1:从种群中随机选择一个个体
,并找出患者满意度最低的服务路径
。
步骤2:随机选择
上的一个患者
。
步骤3:将患者
插入到医护人员的服务路径
上所有的可能位置,插入的位置需满足时间窗和同步约束,得到新的服务路径
。
步骤4:根据支配关系判断,选择出一个更优的新个体
。
Figure 7. Schematic diagram of N (2)
图7. N(2)示意图
4. 算例验证
4.1. 算例参数
模型参数设定单位距离路径成本为1,即路径成本
与
数值上相等。
为患者
和
之间的欧式距离。护理中心开放的时间窗为[0,540min]。医护人员行驶速度
为50 m/min,最低水平客户满意度
,患者的敏感系数
和
都为1。为简化实验,设定患者允许接受服务的最早时间在硬时间窗下限的基础上提前20%,患者允许接受服务的最晚时间在硬时间窗上限的基础上推后10%,即:
,
,设置
。
4.2. 算例求解与结果分析
为验证建立的调度模型的正确性和ISAGA算法的有效性,选取Solomon标准数据集R101、R104、R201、R204、C101、C104、C201、C204、RC101、RC104、RC201、RC204的12组数据测试案例,这些测试案例涵盖了R类、C类和RC类的数据,能够有效地代表多样化的实际应用场景。运行10次后的平均结果进行分析如表2、表3。
Table 2. Running result 1
表2. 运行结果1
迭代次数 |
数据类型 |
R101 |
R104 |
R201 |
R204 |
C101 |
C104 |
100 |
车辆数 |
21 |
23 |
22 |
19 |
23 |
21 |
路径成本 |
2482.40 |
2691.22 |
2443.07 |
2058.55 |
2727.59 |
2558.72 |
满意度 |
85.09 |
97.26 |
93.81 |
98.62 |
83.51 |
93.74 |
300 |
车辆数 |
18 |
15 |
16 |
14 |
18 |
14 |
路径成本 |
2098.23 |
1825.05 |
2254.61 |
1427.52 |
2359.58 |
1762.57 |
满意度 |
85.75 |
96.72 |
94.44 |
99.41 |
90.93 |
95.93 |
500 |
车辆数 |
15 |
15 |
15 |
12 |
16 |
12 |
路径成本 |
1893.21 |
1863.08 |
1977.05 |
1173.22 |
2193.51 |
1354.51 |
满意度 |
86.50 |
98.22 |
91.27 |
98.52 |
92.91 |
95.42 |
Table 3. Running result 2
表3. 运行结果2
迭代次数 |
数据类型 |
C201 |
C204 |
RC101 |
RC104 |
RC201 |
RC204 |
100 |
车辆数 |
23 |
19 |
22 |
24 |
26 |
20 |
路径成本 |
2791.98 |
2182.81 |
2723.18 |
2804.32 |
3278.94 |
2438.62 |
满意度 |
91.37 |
99.33 |
84.24 |
96.45 |
93.39 |
97.36 |
300 |
车辆数 |
18 |
13 |
17 |
17 |
23 |
16 |
路径成本 |
2073.89 |
1409.26 |
2331.74 |
2129.98 |
2795.15 |
1495.18 |
满意度 |
94.63 |
98.35 |
86.42 |
97.28 |
95.11 |
98.62 |
500 |
车辆数 |
17 |
11 |
18 |
16 |
17 |
14 |
路径成本 |
2028.17 |
1208.82 |
2351.06 |
2021.59 |
2365.25 |
1361.73 |
满意度 |
94.93 |
94.35 |
88.69 |
95.32 |
94.07 |
99.17 |
在表2、表3的基础上绘制图8~10。根据图示,当将迭代次数设置为300以上时,算法的运行表现显著优于将迭代次数限制在100的情况。即较高的迭代次数通常能够为算法提供更充裕的寻优时间,但迭代次数过多可能导致算法过拟合或者计算时间过长。在实际应用中,通常会设置一个迭代次数上限来控制算法的收敛性。
Figure 8. Satisfaction run results chart
图8. 满意度运行结果图
Figure 9. Total path cost run results chart
图9. 总路径成本运行结果图
Figure 10. Operational results chart for the number of medical personnel
图10. 医护人员数量运行结果图
根据实际运行结果发现:对于R类数据,将迭代次数设置为300,方可在合理的计算时间内达到较佳的性能表现。而对于C类和RC类数据,则可将迭代次数设置为500,进一步优化算法效果。
此外,本文采用反转世代距离IGD和世代距离GD作为算法性能对比的评价指标。IGD和GD的值越小,算法性能越好。观察收敛曲线,IGD和GD指标值逐渐减小并趋于稳定,如图11和图12,说明算法在不断优化解的质量,参数设置可能已接近最优。
Figure 11. Convergence plot of the IGD indicator with the number of generations
图11. IGD指标随代数的收敛曲线图
Figure 12. Convergence plot of the GD indicator with the number of generations
图12. GD指标随代数的收敛曲线图
如图13和图14,选择R101数据集,对解的分布进行观察与分析,与NSGA-II算法生成的解集相比,ISAGA算法所获得的非劣解更大程度地集中于坐标系的左上方。这一分布意味着ISAGA算法在优化多目标时能够获得相对更优的解集,即ISAGA算法生成的解大多在多个维度上支配了NSGA-II算法得到的解。
Figure 13. Trend chart of algorithmic changes in this paper
图13. 本文算法变化趋势图
Figure 14. Comparison of the Pareto solutions of the two algorithms
图14. 两种算法的帕累托解对比图
5. 结论
本文研究考虑模糊时间窗的家庭医护人员调度问题,构建最大化患者综合满意度,最小化医护人员路径成本的双目标调度优化模型。鉴于传统多目标遗传算法的局限性,本文通过多种策略设计改进遗传模拟退火算法,以求解所构建的模型。首先,采用精英选择策略加速优质解的生成速度;同时,改进的PMX交叉算子帮助更新个体位置,并结合设计的路径内两点交换邻域搜索算子,进一步提高算法在各个搜索阶段的调整灵活性和有效性;最后,模拟退火过程中的变异操作,避免了算法陷入局部最优。研究表明:(1) ISAGA算法在患者满意度提升和成本效率两方面均表现出显著优势,验证了所提出的数学模型及求解算法的可行性和有效性。(2) 在实际生活中,家庭医护人员调度既不是绝对的硬时间窗也不完全是软时间窗,大部分更偏向处于软硬时间窗之间的模糊时间窗,模糊时间窗机制也能更有效地把握患者需求的复杂性与变动性,进而增强服务的匹配性和快速响应能力。
此外,本文的研究范围仅限于单个服务中心下具有同步访问的家庭医护人员调度问题。然而,实际情况中,有些服务机构拥有多个服务中心共同提供服务。老年患者可能需要同时从多个配送中心调派医护人员,因此,未来研究将引入分布式生产调度思想到家庭医护人员调度问题中。虽然这会增加问题的复杂性,但具有更大的研究价值。