基于自适应模拟退火算法的服务业智能排班系统

2024-01-26 22:06陈学文陈锐瀚李志陆运勇朱健君唐奕泽叶敏华李升
电脑知识与技术 2023年35期
关键词:服务行业

陈学文 陈锐瀚 李志 陆运勇 朱健君 唐奕泽 叶敏华 李升

摘要:人员排班管理对于服务行业,特别是饭店、超市和零售店等领域具有重要意义。然而,目前在服务行业的排班管理领域,排班编制工作主要依赖于人工手动操作,这导致了排班表生成效率的低下问题。对于传统排班系统的架构问题,传统的单体架构随着功能增多而出现横向扩展难、模块之间紧密耦合、更新和维护困难等问题,难以适应不断变化的排班需求。为了解决这些难题,该研究采用了自适应模拟退火算法,并结合了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。

5.2 服务间的远程调用

在本系统中,通过对服务进行拆分以减少耦合度,并将服务部署在不同容器或主机上,导致无法通过本地调用的方式实现必要的功能。为了确保各个服务能够远程调用彼此的接口,系统采用了OpenFeign技术,这是一种基于HTTP协议的RESTful API客户端,具有声明式特性,通常与Spring Cloud微服务框架一起使用。通过HTTP请求,OpenFeign允许访问远程服务。

集成该技术只需引入依赖,创建被调用服务的接口方法,并添加必要的注解即可启用远程调用功能。这种调用方式有良好的封装性,调用者只需按照接口方法名进行调用,无须深入了解具体实现细节,类似于本地方法的调用方式。OpenFeign远程调用图如图5。

在智能员工排班管理模块中调用综合信息管理模块获取员工信息及偏好列表如下流程。在实现流程中,智能员工排班管理模块充当接口的消费者服务,综合信息管理模块充当生产者服务。

1) 创建一个feign模块并在pom.xml项目文件引入OpenFeign的依赖。将所需实体类(员工类,员工偏好类)添加到feign模块。

2) 在feign模块中创建员工Client接口类,使用@FeignClient注解来标识生产者服务的名称。编写接口方法,确保接口方法的路径和请求方式与员工控制类对应的接口一致。

3) 分别在生产者服务和消费者服务引入feign模块的依赖,并在配置文件中配置feign的属性。在这两个服务的启动类添加@EnableFeignClients注解以启用Feign,并指定要扫描的Client的包路径。

4) 在生产者服务的控制器类中编写需要进行远程调用的接口,包括获取员工列表的接口和获取员工偏好列表的接口。在消费者服务的服务层实现类中,当使用上述两个接口方法时,需要先将员工Client类的实例通过依赖注入的方式注入实现类,再调用接口方法获取返回值。

6 系统主要功能模块和页面设计

6.1 综合信息维护模块

本系统综合信息管理模块包括门店信息子模块和员工信息子模块。门店信息子模块具备对门店营业时间、门店地址、占地面積、门店员工的基本信息以及正式员工数量等信息进行“增加、删除、修改、查询”的功能。员工信息子模块则允许根据员工的工号、性别、职位、技能等条件进行特定员工的查询,同时也提供“增加、删除、修改、查询”的操作选项,页面设计见图6。

6.2 门店需求预测模块

本系统门店需求预测模块包含员工需求预测模块和门店需求查询模块。员工需求预测模块用于设定门店在特定时间段内的客流量与员工需求量的预测。门店需求查询模块则用于在排班周期内查询各时段的需求人数。门店员工需求量是智能排班模块制定具体员工班次的重要决策依据,页面设计见图7。

6.3 自动排班管理模块

本系统智能员工排班管理模块是系统的核心功能,该模块采用自适应温控模拟退火算法,基于门店需求预测模块生成的门店员工需求量,结合门店员工的工作时间偏好和请假情况等因素,生成详细的员工排班表,并提供多种查询功能以满足不同需求。页面设计见图8。

7 结束语

本系统以服务业员工排班为案例,实际上是对具备一定条件的排列组合进行优化。系统的门店需求预测模块采用了TPE-BP神经网络,充分利用历史客流量数据,实现了对未来门店客流量的全自动预测。同时,引入自适应模拟退火算法到智能排班模块中,有效解决了传统模拟退火算法中需要手动设置参数的问题,实现了全自动排班。系统界面友好,操作简便,具有高度实用性,可满足服务零售门店的员工排班需求,为解决服务业排班问题提供了可行的解决方案。

参考文献:

[1] 程丹丹,何利力.基于遗传算法关联规则的零售户行为特征挖掘[J].工业控制计算机,2016,29(8):116-117,120.

[2] 夏正洪,潘卫军.呼叫中心智能排班系统关键技术[J].计算机工程与设计,2015,36(5):1332-1336.

[3] MELACHRINOUDIS E,OLAFSSON M.A scheduling system for supermarket cashiers[C]//Proceedings of the 14th annual conference on Computers and industrial engineering.ACM,1992:121-124.

[4] 宋兵.管制员智能排班系统设计[J].信息与电脑(理论版),2018(15):77-79.

[5] 夏天舒,李宇豪,宣明辉,等.基于遗传算法的银行智能排班系统设计[J].现代信息科技,2023,7(12):128-132,136.

[6] 查雯婷,闫利成,陈波,等.基于TPE-LSTM的区域超短期风电功率预测[J].计算机应用与软件,2022,39(11):25-30,111.

[7] 陈晟宗,张纪会,于守水,等.求解旅行商问题的波动温控模拟退火算法[J].控制与决策,2023,38(4):911-920.

[8] 汤飞,何永义.基于离散二进制粒子群-模拟退火算法求解0-1背包问题[J].工业控制计算机,2021,34(5):83-84,86.

【通联编辑:谢媛媛】

猜你喜欢
服务行业
语言服务行业的本地化专业建设
把握行业脉动 服务行业发展 中国洗涤用品工业协会简介
安徽省粮食局:培育粮工巧匠 服务行业发展
立足学术传承 服务行业创新——《制造技术与机床》杂志第五届编委会2018年会议
汽车维修服务行业经营管理研究
互联网上网服务行业面临转型升级关工委“五老”开展网吧监督
2016年《黄金》 传播信息 传递经验 促进创新 服务行业
把握行业脉动 服务行业发展 中国洗涤用品工业协会简介
把握行业脉动 服务行业发展 中国洗涤用品工业协会简介
把握行业脉动 服务行业发展 中国洗涤用品工业协会简介