陳學文 陳銳瀚 李志 陸運勇 朱健君 唐奕澤 葉敏華 李升










摘要:人員排班管理對于服務行業,特別是飯店、超市和零售店等領域具有重要意義。然而,目前在服務行業的排班管理領域,排班編制工作主要依賴于人工手動操作,這導致了排班表生成效率的低下問題。對于傳統排班系統的架構問題,傳統的單體架構隨著功能增多而出現橫向擴展難、模塊之間緊密耦合、更新和維護困難等問題,難以適應不斷變化的排班需求。為了解決這些難題,該研究采用了自適應模擬退火算法,并結合了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.
【通聯編輯:謝媛媛】