李 鋒,許 偉
(華南理工大學(xué) 工商管理學(xué)院, 廣東 廣州 510640)
隨著人口紅利的逐漸消失,中國經(jīng)濟增長逐漸面臨著勞動力緊缺的問題。對于勞動力密集型的傳統(tǒng)制造行業(yè)而言,招工難成為企業(yè)普遍面臨的困境,甚至成為企業(yè)生存與發(fā)展的瓶頸。以廣州市海珠區(qū)大塘村的紡織產(chǎn)業(yè)為例,即便是開出月薪1萬元的條件也難以招到熟練的制衣工人,2019年此處的產(chǎn)業(yè)集群面臨著迅速萎縮的尷尬局面。因此,如何通過合理調(diào)度企業(yè)的現(xiàn)有員工,在人員數(shù)量不增加的前提下滿足企業(yè)的用工需求,成為企業(yè)迫切需要解決的現(xiàn)實問題。同時,多品種、小批量的產(chǎn)品生產(chǎn)特點,以及資源調(diào)度問題混合整數(shù)規(guī)劃的計算復(fù)雜性(NP-Hard)天性,造成了當(dāng)前企業(yè)所面臨的人員調(diào)度問題非常復(fù)雜,難以求解。而市場需求的不確定性,特別是其隨機性難以采用傳統(tǒng)數(shù)學(xué)建模的方式建立其隨機分布函數(shù),使得資源調(diào)度問題難以建立其數(shù)學(xué)模型,模型求解更是無從下手。
然而,大數(shù)據(jù)技術(shù)的不斷發(fā)展,“數(shù)據(jù)驅(qū)動+模型驅(qū)動”逐漸成為此類復(fù)雜應(yīng)用問題的分析和求解范式。“數(shù)據(jù)驅(qū)動+”能夠解決調(diào)度前端產(chǎn)品需求不確定性引發(fā)的需求建模困難問題,即并不強求于建立隨機因素的分布密度函數(shù)或累計分布函數(shù)(數(shù)學(xué)表達(dá)式);而“模型驅(qū)動”能夠?qū)崿F(xiàn)應(yīng)用問題的原始數(shù)據(jù),而不是簡化后的數(shù)學(xué)模型,與現(xiàn)有求解算法和算法引擎的無縫銜接。因此,大數(shù)據(jù)推動下的“數(shù)據(jù)驅(qū)動+”研究范式逐漸替代傳統(tǒng)數(shù)學(xué)建模方法。本文也正是在此市場牽引、技術(shù)推動下,以具體制造企業(yè)的維修人員調(diào)度問題為研究對象,探索“數(shù)據(jù)驅(qū)動+”研究范式下的理論、方法和工具。
資源調(diào)度問題是運營管理領(lǐng)域中的經(jīng)典優(yōu)化問題。由于此類問題中資源(如員工、機器、設(shè)備等)通常要求取整數(shù)值,構(gòu)建出的模型通常是NP-Hard問題,即問題求解的時間隨著問題規(guī)模的增加呈現(xiàn)指數(shù)型增長。因此,各種啟發(fā)式算法、智能優(yōu)化算法被提出用于求解各種具體資源調(diào)度問題。其中,代表性研究工作包括:劉振元等[1]將啟發(fā)式算法引入到分支定界法中,用于求解多技能資源時間窗約束下的人員調(diào)度問題;張揚等[2]設(shè)計了多條規(guī)則,采用啟發(fā)式算法求解訂單隨機調(diào)度問題;袁彪等[3-4]在分支定界算法基礎(chǔ)上采用分支定價算法求解家庭護(hù)理問題中的人員調(diào)度問題。然而,更多的求解算法是基于智能優(yōu)化算法。例如,遺傳算法[5-6]、啟發(fā)式算法與遺傳算法相結(jié)合的混合算法[7-8]、候鳥優(yōu)化算法[9]、模擬退火算法[10]、粒子群算法[11-12]、離散煙花算法[13]與螢火蟲膜算法[14]等。
將資源調(diào)度問題建模為一個混合整數(shù)規(guī)劃問題,采用以上智能優(yōu)化算法進(jìn)行求解,能夠?qū)崿F(xiàn)問題求解。但是,隨著研究的深入,現(xiàn)實問題中的不確定性和隨機性因素導(dǎo)致問題的數(shù)學(xué)建模成為研究工作的瓶頸:問題中的隨機性因素通常難以用一些常見的隨機模型進(jìn)行擬合。如果刻意為了數(shù)學(xué)建模而對研究問題進(jìn)行簡化,必然導(dǎo)致模型脫離了實際,模型的解釋力度下降。例如,張揚等[2]將訂單的生產(chǎn)時間和服務(wù)時間都分別簡化為一個正態(tài)分布隨機量,袁彪等[4]將服務(wù)時間簡化為正態(tài)分布隨機量,陳蓉等[5]將員工狀態(tài)刻畫為一個簡單的馬爾可夫鏈。而李磊等[12]則指出常見的理論模型難以刻畫應(yīng)用問題中的非線性和隨機性,必須采用更加“復(fù)雜”的刻畫模型。
隨著大數(shù)據(jù)技術(shù)的不斷發(fā)展和成熟,“數(shù)據(jù)驅(qū)動+模型驅(qū)動”的研究范式逐漸興起[15]。在此研究范式下,應(yīng)用問題中難以采用數(shù)學(xué)建模的部分直接用原始數(shù)據(jù)進(jìn)行分析。因此,“數(shù)據(jù)驅(qū)動+”是對傳統(tǒng)“模型驅(qū)動”研究范式的一個重要且有益的補充。但是,由于“數(shù)據(jù)驅(qū)動+”的研究范式對該領(lǐng)域?qū)<姨岢隽诵碌囊螅壳皩τ诖搜芯糠妒降膽?yīng)用主要集中在背景相對簡單的場景。例如,許鵬程等[16]對網(wǎng)上用戶的用戶畫像建模;宋小康等[17]對網(wǎng)絡(luò)上信息(情報)的文本進(jìn)行分析,對信息進(jìn)行存儲;尹忠博等[18]對科技類電子文獻(xiàn)的文本進(jìn)行分析等。這些應(yīng)用領(lǐng)域即便在“數(shù)據(jù)驅(qū)動+”研究范式尚未提出之前就采取了類似的數(shù)據(jù)分析范式[19-20]。對于一些更加復(fù)雜的應(yīng)用領(lǐng)域,“數(shù)據(jù)驅(qū)動+”研究范式的應(yīng)用相對較少。其中,代表性工作包括:陳彬等[21]對社會問題的數(shù)據(jù)驅(qū)動和仿真模型驅(qū)動進(jìn)行了論述何康樂[22]對網(wǎng)絡(luò)安全領(lǐng)域的網(wǎng)絡(luò)節(jié)點采取了數(shù)據(jù)驅(qū)動的在線篩選李勝會等[23]對基本醫(yī)療保險領(lǐng)域中的問題進(jìn)行了分析等。本文鑒于研究問題的復(fù)雜性,探索“數(shù)據(jù)驅(qū)動+”研究范式在運營管理領(lǐng)域中的經(jīng)典問題應(yīng)用。
本文以一個代工制造企業(yè)的維修部門為例,研究該維修部門的維修工人的調(diào)度問題。從企業(yè)信息系統(tǒng)中獲取維修部門的工作記錄。整理后數(shù)據(jù)字段如表1所示。
表1 數(shù)據(jù)字段及含義對照表
表中,故障類型(C1)分為機械故障和電氣故障兩類;是否停機(C2)表明了故障對設(shè)備運行的影響;故障設(shè)備銘牌(C4)是發(fā)生故障設(shè)備的唯一標(biāo)識,其分屬不同的故障設(shè)備類型(C3);故障維修時間(C5)和故障解除時間(C7)記錄了故障的實際維修時間。
原始記錄數(shù)合計5 969條,時間跨度一年(2017年9月27日至2018年9月26日)。從數(shù)據(jù)中剔除重復(fù)的設(shè)備故障維修記錄,并剔除維修工人工號(C6)為空的記錄數(shù),最終得到一年統(tǒng)計數(shù)據(jù)如表2所示。
表2 預(yù)處理后維修記錄的匯總統(tǒng)計
對企業(yè)的維修員工進(jìn)行工作量統(tǒng)計,發(fā)現(xiàn)30名員工中,部分維修員工全年的維修時間不超過100小時。過濾這些工作時間較短的員工后,對維修時間超過100小時的維修員工(人數(shù)為16人)進(jìn)行每月和全年的工作時間統(tǒng)計。統(tǒng)計的結(jié)果如圖1所示。
(a)部分員工每月工作時間統(tǒng)計
(b)部分員工全年工作時間統(tǒng)計
從圖1可以看出,企業(yè)維修部門的16名員工實際工作時間差異較大,工作沒有實現(xiàn)平均分配。因此,需要對維修部門的員工調(diào)度方案實施優(yōu)化。
為了實現(xiàn)對員工調(diào)度管理,需要對設(shè)備維修的“需求”進(jìn)行分析和建模,即對設(shè)備維修任務(wù)進(jìn)行分析。對設(shè)備維修任務(wù)的數(shù)量和工時需求進(jìn)行統(tǒng)計分析,如圖2所示。
(a)每日需要維修的設(shè)備數(shù)量
(b)每日維修需要的工時
對這兩組數(shù)據(jù)采用常見的隨機分布模型進(jìn)行擬合。結(jié)果表明,每天設(shè)備維修的所需工時不服從常見的分布形式,成為數(shù)學(xué)建模分析的瓶頸。
繼續(xù)根據(jù)維修記錄中的故障類型對每天維修所需工時進(jìn)行分類統(tǒng)計,具體如表3所示。
表3 每日維修任務(wù)的分類統(tǒng)計
表3中無論是機械故障還是電氣故障維修所需工時差異性較大,并且兩類故障的日統(tǒng)計也無法采用常見的隨機分布函數(shù)擬合,每日維修任務(wù)的分類統(tǒng)計直方圖如圖3所示。
(a)每日機械故障維修需要的工時
(b)每日電氣故障維修需要的工時
如果按照自然月進(jìn)行維修工時統(tǒng)計,得到的時間序列如圖4所示。
(a)每月機械故障維修需要的工時
(b)每月電氣故障維修需要的工時
從以上對機器故障的分類和分時統(tǒng)計可以發(fā)現(xiàn),維修部門每個月的工時需求基本穩(wěn)定。但是也存在少數(shù)幾個月工時需求低于平均值50%,或高于平均值50%的現(xiàn)象。這個結(jié)果說明工廠設(shè)備維修員工的人數(shù)可以較好地被預(yù)測。但是,這些員工可能需要通過加班的方式應(yīng)對部分工時需求較多的情況。
進(jìn)而,對維修記錄中維修總工時最長的設(shè)備進(jìn)行維修時間統(tǒng)計,得到排名前4的設(shè)備單次維修時間的分布情況,如圖5所示。
(a)排名第1位的設(shè)備54#
(b)排名第2位的設(shè)備19#
(c)排名第3位的設(shè)備24#
(d)排名第4位的設(shè)備10#
從圖5可以看出,即使是同一類設(shè)備,單次維修的時間差異也較大。為了檢驗維修時間的長短是否與故障類型相關(guān),我們以排名第1位的設(shè)備54#為例,進(jìn)行分類統(tǒng)計。設(shè)備54#維修時間的分類統(tǒng)計如圖6所示。
圖6中,設(shè)備維修時間與故障類型無關(guān),維修時間都呈現(xiàn)比較復(fù)雜的分布形式。
根據(jù)以上數(shù)據(jù)統(tǒng)計和分析,可以得到以下結(jié)論:企業(yè)維修部門的每日維修需求數(shù)量和工時呈現(xiàn)較強的隨機性,差異性較大;每日維修需求無論是維修數(shù)量(故障數(shù)量),還是維修工時都難以用常規(guī)的數(shù)學(xué)模型進(jìn)行擬合;即使是同一類設(shè)備,無論是機械故障還是電氣故障,其維修時間同樣難以用常規(guī)的數(shù)學(xué)模型進(jìn)行擬合。
鑒于維修需求數(shù)學(xué)建模遇到的實際困難,下面將以“數(shù)據(jù)驅(qū)動+”的研究范式,即根據(jù)維修需求原始數(shù)據(jù)進(jìn)行人員調(diào)度問題求解。
(a)機械、停機故障
(b)機械、非停機故障
(c)電氣、停機故障
(d)電氣、非停機故障
根據(jù)當(dāng)前企業(yè)一線員工的工作安排,可以知道部門每位員工:每周工作6天,每天正常工作8小時;每位每月總加班工時不超過20小時。據(jù)此,以月為基本單位,構(gòu)建求解最優(yōu)維修員工數(shù)量和調(diào)度的數(shù)學(xué)模型。以2017年11月為例,定義周一至周日每天休息的員工數(shù)量分別為xi(i=1,2,…,7),每天員工的總加班工時為yj(j=1,2,…,30),每天的實際維修工時需求為dj(j=1,2,…,30),目標(biāo)為總員工人數(shù)Z最?。?/p>
(1)
用AMPL軟件并調(diào)用混合整數(shù)規(guī)劃C-PLEX求解引擎,求解問題[24]363-369。得到最優(yōu)解為:
(2)
在這個月的30天中,有23天員工的實際工作時間要低于8個小時,7天員工需要加班。2017年11月最優(yōu)的維修員工的實際工作情況如圖7所示。
(a)28名員工正常工作時間和維修任務(wù)工時需求
(b)28名員工加班情況
作為對比,如果不加班,僅以員工的正常工作時間滿足維修工時需求(yj=0.00,j=1,2,…,30),在式(1)基礎(chǔ)上構(gòu)建的問題模型如下,
(3)
求解得到的最優(yōu)解為:
X*=[0, 5, 0, 0, 15, 26, 0],Z*=46
(4)
此計算結(jié)果遠(yuǎn)遠(yuǎn)高于最佳的人員配置,即企業(yè)按照維修工時峰值配置的員工數(shù)量,必然導(dǎo)致人力資源的浪費。
由于員工加班總時長為530.30小時,考慮到加班工資是正常工作時間工資的1.50倍,如果多招1名員工(1名員工能夠工作25天,即工作200個正常工時),嘗試以29名員工滿足工作需求。此時,以員工的總加班時間最短為優(yōu)化目標(biāo),得到調(diào)整后的問題模型如下:
(5)
求解得到的最優(yōu)解為:
(6)
對比(6)與(2)的計算結(jié)果,可以知道增加1名員工只能降低加班時間52.53小時(530.30-477.77)。如果考慮加班成本,可以知道雇傭第29名員工,維修部門的成本實際增加了253.82%[200÷(52.53×1.5)]。
(7)
式(7)中,為了完成2017—2018年的維修任務(wù),最為合理的員工數(shù)量為29個人(max{Z*(k)})。因此,設(shè)定員工數(shù)量為29人,以式(5)為模板重新計算每月的加班時間,最終得到加班時間為:
(8)
假定維修部門的員工分為兩類,一類員工僅能夠完成機械故障的修理工作,另一類員工也僅能夠完成電氣故障的修理工作(在此設(shè)定下,原模型中維修員工為“全能型”員工,既可以維修機械故障,又可以維修電氣故障)。因此,將每天的維修任務(wù)按照機械故障和電氣故障進(jìn)行分類,然后重新計算所需的員工數(shù)量。
計算得到機械故障維修員工的人數(shù)和加班情況如下:
(9)
同樣,計算得到電氣故障維修員工的人數(shù)和加班情況為:
(10)
將機械故障維修人員和電氣故障維修人員的數(shù)量加在一起,可以發(fā)現(xiàn)當(dāng)員工的專業(yè)技能有限時,企業(yè)的用工和加班工時都在增加。為滿足全年的機械故障維修需求,需要24名機械故障維修人員。同樣,為滿足全年的電氣故障維修需求,需要12名電氣故障維修人員。
以24名機械故障維修人員和12名電氣故障維修人員,重新計算每月的加班工時,得到結(jié)果如下:
(11)
(12)
將式(11)和(12)的結(jié)果與式(8)的結(jié)果對比,可以知道,專業(yè)分工及人數(shù)增加后,加班工時略有減少(2 559.65=2 014.10+545.55),但是加班狀況并未實質(zhì)解決。
從前文對2017年11月的員工調(diào)度分析中,可以知道通過增加員工數(shù)量來減少加班工時,其成本更高。因此,設(shè)定維修部門的維修員工具有不同的專業(yè)技能,但是工資水平有所差異。在此差異下,研究工資水平對人員調(diào)度的影響。
為了簡化計算,本文設(shè)定每位員工的每月工資以200工時計算。并且,假定機械故障維修人員的工資水平為1.00,電氣故障維修人員的工資水平為k1(0.70≤k1≤100),而原模型中“全能型”維修人員的工資水平為k2(0.70≤k2≤100)。
根據(jù)式(8)(11)(12)的結(jié)果,計算原模型全年的員工成本和專業(yè)分工后全年的員工成本的差值。該差值大于0,表明原模型成本更低,反之則專業(yè)分工的成本更低。具體結(jié)果如圖8所示。
(a)電氣故障維修人員工資系數(shù)k1對調(diào)度方案的影響
(b)“全能型”維修人員工資系數(shù)k2對調(diào)度方案的影響
如圖8所示,當(dāng)“全能型”維修人員的工資水平k2顯著高于電氣故障維修人員的工資水平時,根據(jù)故障類型調(diào)度不同維修人員,運營總成本會更低(圖8(b)中,成本差值小于0);如果電氣故障維修人員的工資水平顯著低于機械故障維修人員的工資水平時,根據(jù)故障類型調(diào)度不同維修人員,運營總成本會更低(圖8(a)中,成本差值小于0)。
為了進(jìn)一步檢驗“數(shù)據(jù)驅(qū)動”對人員調(diào)度問題的影響,繼續(xù)以2017年11月的數(shù)據(jù)為例,對比“模型驅(qū)動”與“數(shù)據(jù)驅(qū)動”的差異性。
假定以星期為單位,統(tǒng)計得到一個星期中每天的設(shè)備維修工時需求的平均值。接著,以此平均值作為“模型驅(qū)動”下人員調(diào)度問題中需求數(shù)據(jù),并以此構(gòu)建問題模型(模型中假定一個月只有4個星期,因此員工的最多加班工時為5小時)。
對此問題進(jìn)行求解,得到問題的解如下:
(14)
將此結(jié)果與式(2)所示的實際結(jié)果對比會發(fā)現(xiàn):如果忽略實際問題中的波動性因素,工廠在人員配置上一定會出現(xiàn)短缺的情況。
如果將此人員配置應(yīng)用到2017年11月,得到實際情況如下:
(a)供需情況對比
(b)供需差異對比
從圖9中可以看出,在11月的30個工作日中,總共有10天維修能力不足,并且有3天維修能力的缺口接近或超過150小時。
通過對以上應(yīng)用問題的分析過程,明確了“數(shù)據(jù)驅(qū)動+”研究范式下問題的研究思路:對研究問題的模型參數(shù)進(jìn)行數(shù)據(jù)分析和挖掘,嘗試發(fā)現(xiàn)數(shù)據(jù)的模式或數(shù)學(xué)模型;如果數(shù)據(jù)的數(shù)學(xué)模型能夠被建立,那么可采用數(shù)學(xué)模型刻畫該參數(shù);如果數(shù)據(jù)的數(shù)學(xué)模型難以建立,那么可采用原始數(shù)據(jù)刻畫該參數(shù);以模型和數(shù)據(jù)共同構(gòu)建應(yīng)用問題模型(數(shù)學(xué)),并對模型進(jìn)行求解。
以前文所示的對具體應(yīng)用問題的分析和求解,得出“數(shù)據(jù)驅(qū)動+”研究范式的優(yōu)勢:能夠突破數(shù)學(xué)建模方法在面對復(fù)雜企業(yè)實際情況的應(yīng)用瓶頸(數(shù)學(xué)建模的困境),并實現(xiàn)問題的優(yōu)化求解;如果單獨以數(shù)學(xué)模型驅(qū)動問題求解,必然導(dǎo)致實際問題中的不確定性/隨機性因素被忽視,最終導(dǎo)致研究問題的解并非最優(yōu)解;不僅能夠解決具體應(yīng)用問題,還可以從多個角度對問題進(jìn)行擴展研究;通過大數(shù)據(jù)分析,能夠?qū)?yīng)用問題分解或整合,并進(jìn)行對比。
本文以一個企業(yè)維修部門的實際維修需求為例,通過數(shù)據(jù)分析確認(rèn)了傳統(tǒng)數(shù)學(xué)建模方法應(yīng)用上的困境。進(jìn)而采取“數(shù)據(jù)驅(qū)動+”的研究范式,以數(shù)據(jù)驅(qū)動克服數(shù)學(xué)建模無法解決的瓶頸,最終以模型驅(qū)動實現(xiàn)問題求解。在此研究范式和理論框架下,不僅能夠?qū)崿F(xiàn)問題求解,還能夠用數(shù)據(jù)驅(qū)動的研究方法,對問題深入挖掘,從而給出更加細(xì)致的管理啟示。