基于自适应模拟退火算法的服务业智能排班系统
作者: 陈学文 陈锐瀚 李志 陆运勇 朱健君 唐奕泽 叶敏华 李升
摘要:人员排班管理对于服务行业,特别是饭店、超市和零售店等领域具有重要意义。然而,目前在服务行业的排班管理领域,排班编制工作主要依赖于人工手动操作,这导致了排班表生成效率的低下问题。对于传统排班系统的架构问题,传统的单体架构随着功能增多而出现横向扩展难、模块之间紧密耦合、更新和维护困难等问题,难以适应不断变化的排班需求。为了解决这些难题,该研究采用了自适应模拟退火算法,并结合了TPE-BP神经网络、Web技术与微服务架构等,成功开发出了一套能够满足大部分服务行业门店排班需求的智能排班系统。该系统按功能拆分为多个服务模块,有效地降低了系统耦合度,高度可扩展,能够自动化、灵活化、高效化地进行排班编制,提高了排班表生成的效率,为服务行业提供了更为便捷和智能的排班管理工具。
关键词:智能排班;自适应模拟退火;微服务架构;服务行业
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2023)35-0038-05
开放科学(资源服务)标识码(OSID)
0 引言
人员排班管理对于服务零售等行业具有重要意义。目前,在服务行业中,主要依赖手动排班来分配人力资源以降低成本,通过人工计算和制定排班表格,这一流程不仅烦琐耗时,而且伴随多个问题。此外,协调不同门店值班人员时,必须满足多重约束条件,包括员工的岗位匹配和技能要求、员工的意愿工作时间,以及门店的具体工作需求[1]。使用人工方式进行排班容易引发错误,通常造成排班表不符合门店甚至行业要求,很难确保最佳的排班结果。此外,值班员工的时间安排受到多项限制,服务行业相关规定包括连续值班时长、休息时间、每周总值班时长,以及每月总值班时长等多项要求。这些规定对门店的员工排班加以限制,直接影响员工的薪酬,然而手动排班难以确保这些规定的公平和合理性,这也导致了人力资源的不合理分配问题[2]。
当前,已有研究学者研究了智能排班。1992年,Melachrinoudis.E和Olafsson.M提出一种移位选择整数线性规划模型,并将其有针对性地应用于当时位于马萨诸塞州波士顿的Stop & Shop超市商店[3]。2018年,宋兵结合贪心算法与Web技术,开发了一个专为沈阳空中交通管制中心设计的管制员智能排班系统[4]。在2023年,夏天舒等人设计了一种基于遗传算法的银行员工智能排班算法[5]。以上研究均提高了他们所针对研究区域的人员排班效率,但它们的普适性有限。为了满足服务行业门店的排班需求,开发一款智能员工排班系统,集成了自动化生成推荐排班表功能,以替代传统的手动排班,同时提供便捷而安全的排班数据管理,显然至关重要。
该系统采用B/S架构,使用Python进行数据处理和核心算法的编写,Java服务端开发技术用于排班管理业务逻辑的实现。系统架构基于MVC模型,以实现用户界面和服务端应用逻辑完全解耦。此外,该架构还秉承分布式系统理论,确保了系统的高可用性和卓越的扩展性。门店需求预测功能采用TPE-BP神经网络算法,根据门店历史客流量数据以及其余特征来预测未来客流量,为排班提供依据。排班功能利用自适应温控模拟退火算法,根据员工的多种工作偏好和门店规则自动生成合理的员工排班表。管理员可以生成、预览、保存和查询本周或下几周的排班表,查看和调整详细的日排班,支持灵活的班次指派。
1 系统总体框架
根据模块化思想将本系统分为三个功能模块,分别是综合信息管理模块、门店需求预测模块、智能员工排班管理模块。
以管理员身份成功登录系统后,在综合信息管理模块,管理员具备查询门店和员工信息的权限,同时可根据实际需求进行信息的增加、删除、修改和查询操作。在门店需求预测模块中,管理员可以选择特定时间段进行客流量的预测,以进一步分析门店所需员工数量。在自动排班模块,管理员能够获得各时段的员工需求人数以及相应的排班表,一旦操作完成,排班表将被更新并管理员可以安全退出系统。本系统的主要功能模块示例如图1所示。
2 数据库设计
本系统使用MySQL数据库,MySQL作为一款广泛应用于多个行业的开源关系型数据库管理系统,适用于各种数据规模的应用,以其卓越的性能、可扩展性、易用性、安全性和低成本而享誉业界。在本系统主要用于存储门店、员工以及排班相关信息,以实现排班数据的持久化。系统数据库信息表详见表1。
3 门店需求预测模块算法流程
本系统的门店需求预测模块采用了TPE算法来优化BP神经网络的参数,以实现门店客流量的全自动预测。这一方法在无须管理员手动输入模型参数的同时实现了最优的客流量预测效果。
3.1 TPE算法原理
TPE算法采用对[px | y]和[py]同时建模的方法,代替仅对 [py | x]建模 [6]。在这里,[py]代表解的分布情况,而[px | y]代表已知解的情况下,参数[x]的分布情况。[px | y]的计算详见式(1):
[px | y=lx y<y'gx y≥y'] (1)
式中: [y']是一个预先定义的阈值; [lx]表示观测值[xi]的损失函数小于[y']的密度估计值;[gx]表示观测值[xi]的损失函数大于[y']的密度组成。
优化标准[EI]的定义详见式(2) 。
[EIy*x∝y+gxlx1-y-1] (2)
在最大化[EI]寻找更优的超参数过程中,[EI]应该逐步逼近最大概率的[lx]和最小概率的[gx]。
3.2 BP神经网络
BP神经网络属于一种多层前馈神经网络结构,由输入层、隐藏层和输出层构成。BP神经网络实现步骤如下:
第一步:输入数据序列[N=X1,X2... ,Xm];经权值和激活函数映射到隐藏层,生成新序列[W1,W2... ,Wn],新序列即为隐含层输入值。这些值通过隐藏层的激活函数[θ·]计算,然后经过输出层的权值和激活函数返回输出值。
第二步:通过误差的反向传播不断调整权重和阈值,推导公式详见式(3) 、式(4) :
隐藏层权值:
[Δwij=-γp=1p n=1NTpn-Opn⋅ϕ'netn⋅wji⋅φ'neti⋅xj] (3)
输出层权值:
[Δwij=-γp=1p n=1NTpn-Opn⋅φ'netn⋅yi] (4)
其中,i表示隐藏层节点,j表示输入层节点,k表示输出层节点,γ表示学习率,[neti]表示神经元i的输入加权和,[wij]代表节点[i]到节点[j]之间的权值,n代表输入层第[j]个节点的输入值,[φ]表示隐藏层的激励函数,[ϕ]中代表输出层激励函数,[Tpk]表示输出层第k个节点期望输出值,[Opk]表示输出层第[k]个节点的输出值。
第三步:模型均方误差计算公式详见式(5) :
[Ek=12j=1nYnj-ynj2] (5)
3.3 基于TPE优化参数的BP神经网络
在本系统中,门店需求预测模块采用TPE-BP神经网络算法,它以多种因素作为输入特征,包括是否节假日、促销活动的程度、上班高峰期、天气预报状况以及过去同一时间段的平均客流量,而本周该时间段的客流量则作为输出特征进行训练。本系统的TPE-BP神经网络算法流程如图2所示:
4 门店需求预测模块算法流程
4.1 排班规则
在人工排班的情况下,排班规则通常多种多样且缺乏规范性,然而,当需要运用运筹学算法来实现排班时,各种规则必须以可表达的方式进行描述。如表2所示,这些规则需要进行分类并确定各自的优先级。
4.2 自适应模拟退火算法
模拟退火算法的理念源自固体退火原理,其在处理离散变量优化和非线性优化问题中具有独特的优势受到了广泛关注。模拟退火算法通过模拟金属退火过程中的温度变化来搜索问题的最优解,以解决组合优化问题。本系统的模拟退火算法进行了自适应改进:
1) 初始温度的改进:
不合适的初始温度会影响模拟退火算法性能。因此,为提高算法性能,本系统设置了改进初始温度,详见式(6) :
[T=-EXmax-EXminlnX] (6)
其中,E(Xmax) 和 E(Xmin) 分别代表解空间内随机选取的N个可行解对应的目标函数值的最大值和最小值。X值的设定范围推荐为 (0.9, 0.99),而在本项目中,X的值默认被设定为 0.99[7]。
2) Metropolis准则的改进:
Metropolis准则是决定是否接受经过扰动的新解的关键步骤,这直接影响算法的性能和速度[8]。原始Metropolis准则详见式(7) 。
[P= 1, EXnew<EXolde- EXnew-EXoldT EXnew>EXold] (7)
在不同规模的组合优化问题中,[EXnew-E(Xold)]可能与当前的T值存在数量级差异,导致 P 值过大或过小,从而影响算法的性能。本系统采用了改进的表达式,详见式(8) :
[P=e- EXnew-EXoldS∙T] (8)
其中,[S=e- EXAverage-EXminT0],[EXAverage]和[EXmin]分别表示从解空间内随机选取的N个可行解对应的目标函数的平均值和最小值,T0是初始温度。通过S的调节,Metropolis准则能够更加灵敏地适应[EXnew-E(Xold)]和当前T值的数量级差异。
3) 温度控制方式的改进
合适的温度控制可以减少局部最优解的风险。因此,本系统针对智能员工排班问题的多目标规划,对传统模拟退火算法的温度控制方式进行了改进。当温度T小于终止温度时,判断是否还存在未成功安排的排班班次,若存在,则执行如式(9) 所示的回温公式:
[T=T+lnTinitial∙Sizeschedule] (9)
其中:[Tinitial]是初始温度,[Sizeschedule]为排班矩阵的大小。
本系统的改进模拟退火算法总体流程如图3所示。
5 微服务系统架构设计
微服务架构是一种分布式系统架构模式,该架构将单个大型系统按功能拆分为多个相对独立的服务模块,以便进行开发和维护,并使用容器化技术进行服务部署。与传统单体架构相比,微服务架构有高度可扩展、高内聚、低耦合、故障可隔离以及资源利用率高等特点,这些特性提升了开发团队的系统开发和维护效率。
5.1 系统架构分析
本系统适合采用微服务架构,系统可以按功能拆分为多个模块,如综合信息管理模块、智能员工排班管理等,符合微服务的服务可拆分特性。此外,排班系统需要具备高度可伸缩性,以应对门店排班工作负载的不断变化。在实现综合信息管理模块和排班生成功能时,使用适当的技术可以提升排班效率。微服务架构支持不同服务使用不同技术,使模块的开发更加灵活、独立。
当系统排班请求流量较大时,使用单体架构可能会导致单个服务无法处理大量请求,从而导致整个系统崩溃。但采用微服务架构可以创建多个排班微服务实例,利用负载均衡器将请求均匀分布到各个排班微服务实例。当微服务实例存在故障时,负载均衡器将自动隔离故障实例,并将请求分发到其他实例,确保了系统具有高可用性和可靠性。本系统的负载均衡器请求分发过程见图4。