李姣姣, 何利力, 鄭軍紅
(浙江理工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院, 杭州 310018)
生鮮農(nóng)產(chǎn)品包括果蔬、肉類以及水產(chǎn)品等初級產(chǎn)品,在居民日常生活消費中占據(jù)重要地位[1]。 然而,生鮮農(nóng)產(chǎn)品具有保質(zhì)期短、儲存困難和損耗率高等特性。 發(fā)達(dá)國家生鮮產(chǎn)品的損腐率約為5%,而中國果蔬、肉類、水產(chǎn)品損腐率則分別高達(dá)15%、8%、10%,大幅提高了生鮮農(nóng)產(chǎn)品的成本[2]。 冷鏈物流可以使生鮮農(nóng)產(chǎn)品在加工、運(yùn)輸、儲藏等過程中保持低溫狀態(tài),從而保證產(chǎn)品質(zhì)量,減少損耗。 而中國果蔬、肉類、水產(chǎn)品冷鏈流通率僅為35%、57%、69%[3]。 特別的,相較批發(fā)商,零售商還存在諸如庫存管理粗放,冷庫設(shè)施不足等問題。 因此,建立一個以生鮮農(nóng)產(chǎn)品為核心的零售商庫存成本控制模型具有現(xiàn)實意義。
傳統(tǒng)的供應(yīng)鏈庫存管理模型能夠降低庫存成本,但在實際運(yùn)用中存在較大局限性。 如:供應(yīng)商管理庫存模型、協(xié)同式庫存管理模型和聯(lián)合庫存管理模型[4]等管理成本高、操作難度大,ABC 庫存管理法和CVA(Critical Value Analysis)庫存管理法均無法給出科學(xué)定量的庫存控制方案,經(jīng)濟(jì)訂貨批量模型的前提條件較為苛刻等。
強(qiáng)化學(xué)習(xí)方法可用于研究序貫決策和最優(yōu)控制問題,近年來有學(xué)者將其引入供應(yīng)鏈庫存控制研究中。 蔣國飛等[5]提出基于計數(shù)器的直接探索策略,并將該策略和Q 學(xué)習(xí)(Q-learning)相結(jié)合,解決具有連續(xù)狀態(tài)和決策空間的庫存控制問題。 Yu 等[6]將多智能體強(qiáng)化學(xué)習(xí)方法用于解決兩級備件庫存控制問題,結(jié)果表明優(yōu)于(s,S) 策略的遺傳算法。Bharti 等[7]使用Q-learning 算法求解一個四階段串行供應(yīng)鏈模型,解決訂單管理問題。 考慮到易腐品不易儲存、易腐爛、儲藏時間短等特性,Kara 等[8]將強(qiáng)化學(xué)習(xí)用于易腐爛產(chǎn)品的庫存訂貨策略,結(jié)果證明Q-learning 和SARSA 算法性能都優(yōu)于遺傳算法。
在前人工作的基礎(chǔ)上,本文針對生鮮農(nóng)產(chǎn)品零售商庫存成本問題,將其轉(zhuǎn)換為馬爾可夫決策過程,更加全面地考慮費用項。 其中包括過期費、缺貨費、訂貨費、持有費和損腐費。 另外考慮到在現(xiàn)實生活中生鮮農(nóng)產(chǎn)品損腐率并非一成不變,使用三參數(shù)Weibull 分布描述損腐率。 從供應(yīng)鏈的視角,對由一個批發(fā)商和一個零售商構(gòu)成的單級供應(yīng)鏈進(jìn)行分析,運(yùn)用深度強(qiáng)化學(xué)習(xí)領(lǐng)域中的DDQN 方法,制定訂貨策略以控制庫存總成本。
馬爾可夫性質(zhì)是指將來的狀態(tài)僅取決于當(dāng)前狀態(tài),而與過去狀態(tài)無關(guān)。 馬爾可夫決策過程(Markov Decision Process,MDP)滿足馬爾可夫性質(zhì)。 MDP狀態(tài)轉(zhuǎn)移函數(shù)為
MDP 是強(qiáng)化學(xué)習(xí)的數(shù)學(xué)基礎(chǔ),強(qiáng)化學(xué)習(xí)是基于智能體和環(huán)境的交互式學(xué)習(xí)方法。 智能體進(jìn)行試錯學(xué)習(xí),通過與環(huán)境交互獲得的獎勵指導(dǎo)動作,找到最優(yōu)策略,以最大化累計獎勵[9]。 智能體與環(huán)境交互過程如圖1 所示。
圖1 智能體與環(huán)境交互圖Fig.1 Diagram of interaction between agent and environment
Watkins 等[10]提出的Q-learning 方法,是強(qiáng)化學(xué)習(xí)中經(jīng)典的價值迭代算法。 Q-learning 通過觀測、動作、獎勵的歷史序列,使智能體能夠在馬爾可夫域中學(xué)習(xí),選擇最優(yōu)行動。 Q-learning 中用貝爾曼最優(yōu)方程進(jìn)行估值更新。 貝爾曼最優(yōu)方程為
通過求解該方程,尋找最優(yōu)價值函數(shù)和最優(yōu)策略。Q-learning 算法的動作價值函數(shù)更新迭代式為
Q-learning 用于復(fù)雜的現(xiàn)實問題不僅存在維度災(zāi)難問題,還存在自舉和最大化導(dǎo)致的非均勻高估問題。 因此,Q-learning 在現(xiàn)實中表現(xiàn)并不理想。
Mnih 等[11]提出的深度Q 網(wǎng)絡(luò)(Deep Q Networks,DQN)將神經(jīng)網(wǎng)絡(luò)和Q-learning 相結(jié)合,其中目標(biāo)網(wǎng)絡(luò)和經(jīng)驗回放的設(shè)計可以緩解Q-learning 自舉導(dǎo)致的非均勻高估。 經(jīng)驗回放降低了樣本間的相關(guān)性,目標(biāo)網(wǎng)絡(luò)則可以減弱預(yù)測Q值和目標(biāo)Q值間的相關(guān)性。 DQN預(yù)測網(wǎng)絡(luò)的優(yōu)化目標(biāo)為
Van Hasselt 等[12]在DQN 的基礎(chǔ)上,將動作選擇和動作Q值估計分離,提出了DDQN,進(jìn)一步緩解了Q-learning 最大化造成的高估。 DDQN 中使用目標(biāo)網(wǎng)絡(luò)獲取最優(yōu)動作,再通過預(yù)測網(wǎng)絡(luò)估計該動作的Q值。 DDQN 預(yù)測網(wǎng)絡(luò)優(yōu)化目標(biāo):
三參數(shù)Weibull 分布是概率論中的一種連續(xù)型分布,被廣泛應(yīng)用于電子元器件的失效情況、物品的變質(zhì)和擬合度模擬等諸多方面[13]。 本文采用三參數(shù)Weibull 函數(shù)描述生鮮農(nóng)產(chǎn)品的損腐特征。
三參數(shù)Weibull 累積分布函數(shù)和概率密度函數(shù)的公式分別為:
式中:α、β、γ分別是三參數(shù)Weibull 函數(shù)的尺度因子、形狀因子和位置因子,t為時間。
單周期隨機(jī)型庫存成本控制模型是運(yùn)籌學(xué)存儲論中的一種庫存模型[14]。 單周期是指上一期剩余的庫存不會轉(zhuǎn)結(jié)到下一期,而多周期則與之相反。
設(shè):貨物需求r是連續(xù)隨機(jī)變量,密度函數(shù)為Ф(r),k為單位貨物進(jìn)價,p為售價,C1為存儲費。分布函數(shù)為
貨物存儲費為
最佳訂貨量q滿足
此時,庫存總成本最低。
供應(yīng)鏈管理協(xié)調(diào)成員企業(yè)間合作關(guān)系,控制物流、資金流和信息流3 個關(guān)鍵流,涉及需求、生產(chǎn)運(yùn)作、物流及供應(yīng)4 個領(lǐng)域,具有交叉性、需求導(dǎo)向性、動態(tài)性等特征[15]。
如圖2 所示,整條供應(yīng)鏈由供應(yīng)商、制造商、批發(fā)商、零售商和顧客組成,本文主要研究批發(fā)商、零售商和顧客這3 個實體。
圖2 供應(yīng)鏈模型Fig.2 Supply chain model diagram
假設(shè):顧客需求D ~N(μ,σ2),商品售價為p,則期望總收入為pμ,是一個與庫存數(shù)量無關(guān)的常數(shù)。 因缺貨導(dǎo)致失去銷售機(jī)會而未實現(xiàn)的收入是潛在損失,是一種機(jī)會成本,定義為缺貨成本。 定義庫存總成本為缺貨成本加實際成本,則利潤等于期望總收入減去庫存總成本。 因期望總收入為常數(shù),則庫存總成本越低,利潤越高。
為滿足顧客需求,零售商每天向批發(fā)商提交訂貨訂單,每天都更新一次庫存。 批發(fā)商每天向零售商提供貨物,批發(fā)商的商品數(shù)量無限。 商品訂貨提前期用m表示,訂貨提前期表示零售商發(fā)出訂單到收到貨物的時間。 商品生命周期用l表示,商品被零售商接收后,就進(jìn)入生命周期,生存期也開始增加。
銷售產(chǎn)品使用先進(jìn)先出策略,即先賣生存期大的產(chǎn)品以滿足客戶需求。 若商品生存期大于生命周期l,就產(chǎn)生過期成本;若商品生存期在損腐時期內(nèi)就產(chǎn)生損腐成本;若商品無法滿足顧客需求,就產(chǎn)生缺貨成本。 DDQN 庫存成本控制模型如圖3 所示。
圖3 DDQN 庫存成本控制模型圖Fig.3 DDQN inventory cost control model diagram
具體業(yè)務(wù)流程如下:
(1)零售商將上一日訂購的商品入庫,并更新庫存。
(2)零售商接收客戶需求,如果能滿足需求則計算是否產(chǎn)生過期量和損腐量;否則產(chǎn)生缺貨量。
(3)零售商計算當(dāng)日剩余庫存量和庫存成本,并更新庫存。
(4)零售商根據(jù)DDQN 庫存成本控制模型制定的訂貨策略,向批發(fā)商發(fā)送次日訂貨量
生鮮農(nóng)產(chǎn)品屬于易損腐類商品,損腐率使用非線性函數(shù)μ(t),其計算公式為
其中,1<β <2 且γ >0,損腐率變化情況如圖4。 物品進(jìn)入庫存系統(tǒng)不會立即損腐,而是經(jīng)過一段時間才會損腐,該參數(shù)設(shè)置適合時滯或者易損腐物品庫存模型。
圖4 三參數(shù)Weibull 函數(shù)損腐率隨時間變化情況Fig.4 Change of decay rate of three-parameter Weibull function with time
本文使用DDQN 方法解決生鮮農(nóng)產(chǎn)品零售商庫存成本控制問題,下面分別對狀態(tài)空間、動作空間、回報函數(shù)進(jìn)行設(shè)計。 其中數(shù)學(xué)符號定義見表1。
表1 數(shù)學(xué)符號表示Tab.1 Mathematical symbol
2.2.1 狀態(tài)空間設(shè)計
在MDP 問題中,狀態(tài)信息代表智能體感知到的環(huán)境信息及其動態(tài)變化。 如果產(chǎn)品當(dāng)前處于生命周期中,但產(chǎn)品數(shù)量不足,則認(rèn)為是缺貨;如果產(chǎn)品有庫存但不在生命周期內(nèi),則視為過期。 產(chǎn)品生存期在損腐時期內(nèi)就以一定比例進(jìn)行損腐。 滿足庫存充足和生命周期要求的產(chǎn)品視為可供銷售。l為產(chǎn)品生命周期,t天的狀態(tài)變量為(l +3) 維向量。 狀態(tài)空間可表示為
2.2.2 動作空間設(shè)計
動作是指由智能體發(fā)出的行為和動作,以及智能體與環(huán)境之間發(fā)生的動作交互。 對于特定任務(wù)而言,動作空間在事實上決定任何算法所能達(dá)到的性能上限。 顧客需求D ~ N(μ,σ2),需求數(shù)據(jù)分布在(μ -3σ,μ +3σ) 的概率是99.73%,因此設(shè)qt為訂貨數(shù)量,qt∈[0,μ +3σ]取整數(shù)。 動作空間可表示為
2.2.3 回報函數(shù)設(shè)計
在強(qiáng)化學(xué)習(xí)任務(wù)中,智能體根據(jù)探索過程中來自環(huán)境的反饋信號持續(xù)改進(jìn)策略,這些返回信息被稱為回報。 零售商滿足完需求后,剩余庫存量為
回報函數(shù)可表示為
根據(jù)上述模型與算法分析,首先對算法的神經(jīng)網(wǎng)絡(luò)進(jìn)行設(shè)置。 設(shè)置經(jīng)驗池容量大小N為300 000,每回合將隨機(jī)從中采樣;折扣率設(shè)為0.95;更新目標(biāo)網(wǎng)絡(luò)的間隔設(shè)為1 周期;使用ε -greedy 探索策略,在訓(xùn)練開始時以概率ε =0.9 隨機(jī)選擇動作,此時探索力度最大;隨著訓(xùn)練進(jìn)行,ε 逐漸線性下降直至最終的ε =0。
在這個過程中,DDQN 庫存成本控制模型訓(xùn)練逐漸從“強(qiáng)探索弱利用”過渡到“弱探索強(qiáng)利用”。結(jié)合單周期隨機(jī)型庫存成本控制模型和固定訂貨量庫存成本控制模型,對比DDQN 庫存成本控制模型能否有效降低生鮮農(nóng)產(chǎn)品庫存總成本。
實驗以白菜為例,跟據(jù)2022 年國家統(tǒng)計局?jǐn)?shù)據(jù)得知白菜各種參數(shù)值見表2。 以1 000 天為一個周期,每天僅進(jìn)行一次發(fā)送訂單和入庫操作,庫存總成本為1 000rt。 取α =0.2、β =1.5、γ =1,損腐率μ(t)=0.3(t -1)0.5。
表2 實驗參數(shù)Tab.2 Experimental parameters
為了驗證模型的有效性及實用價值,選擇固定訂貨量庫存成本控制模型和單周期隨機(jī)型庫存成本控制模型采用定期定量訂貨法,深度強(qiáng)化學(xué)習(xí)模型采用DDQN 方法進(jìn)行對比實驗,3 種模型參數(shù)(如安全庫存、訂貨提前期、產(chǎn)品生命周期、損腐率等)均一致。
假設(shè)客戶需求數(shù)據(jù)服從正態(tài)分布,每個實驗周期為1 000 天,每天僅進(jìn)行一次發(fā)送訂單和入庫操作。 將成本匯總得出結(jié)論。
圖5 和圖6 分別為在不同需求函數(shù)下,3 種庫存成本控制模型在相同條件下的獎勵值變化曲線。從圖中可以看出,在訓(xùn)練初始階段,由于動作網(wǎng)絡(luò)均處于動作探索階段,因此DDQN 庫存成本控制模型獎勵值較低,且存在較大波動。 隨著智能體開始從經(jīng)驗池中提取歷史數(shù)據(jù)進(jìn)行學(xué)習(xí),獎勵值逐漸呈現(xiàn)明顯上升趨勢。 圖5 中,在50 周期左右時,DDQN庫存成本控制模型逐漸收斂于-6.94 萬元;圖6 中,在350 周期左右時,DDQN 庫存成本控制模型逐漸收斂于-68.39 萬元,優(yōu)于固定訂貨量庫存成本控制模型和單周期隨機(jī)型庫存成本控制模型。
圖5 需求D ~N(100,102)時庫存成本控制模型實驗結(jié)果Fig.5 Experimental results of inventory cost control model for demand D~N(100,102)
圖6 需求D ~N(1000, 1002)時庫存成本控制模型實驗結(jié)果Fig.6 Experimental results of inventory cost control model for demand D~N(1 000,1002)
見表3,當(dāng)需求服從正態(tài)分布N(100,102) 時,DDQN 庫存成本控制模型的總成本相對于單周期隨機(jī)型庫存成本控制模型和固定訂貨量100 庫存成本控制模型的總成本降低5.89%和10.04%;當(dāng)需求服從正態(tài)分布N(1 000,1002) 時, DDQN 庫存成本控制模型的總成本相對于單周期隨機(jī)型庫存成本控制模型和固定訂貨量1 000庫存成本控制模型的總成本降低6.50%和11.57%。 固定訂貨量庫存成本控制模型損腐量最多,DDQN 庫存成本控制模型沒有損腐量。 可以看出,DDQN 庫存成本控制模型不僅優(yōu)于單周期隨機(jī)型庫存成本控制模型和固定訂貨量庫存成本控制模型,且能夠解決維度災(zāi)難問題。
表3 庫存成本控制模型實驗對比結(jié)果Tab.3 Comparison results of different inventory cost control models
本文將零售商生鮮農(nóng)產(chǎn)品庫存成本控制問題轉(zhuǎn)換為馬爾可夫決策過程,引入三參數(shù)Weibull 分布描述生鮮農(nóng)產(chǎn)品損腐特征,并使用深度強(qiáng)化學(xué)習(xí)中DDQN 方法進(jìn)行求解。 通過多重對比實驗,驗證了DDQN 庫存成本控制模型能夠找到更優(yōu)的訂貨策略以更有效的降低生鮮農(nóng)產(chǎn)品庫存總成本。
本文研究零售商單級庫存結(jié)構(gòu),對于更加復(fù)雜的整個供應(yīng)鏈的多級庫存結(jié)構(gòu)、倉儲物品更加繁多的情況,可以通過多智能體深度強(qiáng)化學(xué)習(xí)方法解決。