徐常凱,周家萱,杜加剛
(空軍勤務學院 航材四站系, 江蘇 徐州 221000)
如何對航材庫存進行科學的優(yōu)化配置,尋求航材保障良好率與航材保障經濟性之間的最佳平衡,是航材庫存優(yōu)化的重要問題??哲姾蠓絺}庫編制體制調整后,航材庫存從空軍、戰(zhàn)區(qū)空軍、航材股三級變?yōu)槠鞑膫}庫和隊屬倉庫二級,解決二級庫存體制下的航材庫存優(yōu)化配置,成為航材庫存決策人員的現(xiàn)實難題。陳硯橋等[1]使用蒙特卡羅方法求解了允許橫向供應的庫存系統(tǒng)器材配置問題;劉少偉等[2]利用排隊論系統(tǒng),建立了可修件兩級庫存模型;Engin Topan等[3]通過分支與定價算法求解了多備件兩級庫存系統(tǒng)模型。本文提出一種基于馬爾科夫決策過程建模,利用強化學習的策略迭代方法求解,尋求保障效率與保障經濟性的平衡,最終得到在航材不斷消耗過程中的庫存優(yōu)化配置模型。
馬爾科夫決策過程是描述動態(tài)系統(tǒng)決策優(yōu)化的數(shù)學模型,通常由五元組{S,A,Psa,γ,R}表示,其中S表示狀態(tài)空間,A表示行動空間,Psa為在狀態(tài)s下執(zhí)行行動a的概率,γ為折扣因子,R為獎勵函數(shù)[4]。一個動態(tài)馬爾科夫決策過程可表述為:從狀態(tài)空間S中的某一狀態(tài)s0開始,在行動空間A中選擇行動a0執(zhí)行后,馬爾科夫決策過程的狀態(tài)隨機轉移到狀態(tài)s1,記為s1~Ps0a0,類似的,整個決策過程可表示如下[5]:
定義策略π是由狀態(tài)到行動的映射,即π∶S→A,當決策過程處于狀態(tài)s時,執(zhí)行行動a=π(s)時,定義價值函數(shù)Vπ:
Vπ(s)=E[R(s0)+γR(s1)+γ2R(s2)+…|s0=s,π]
(1)
對于某一確定的策略π,其價值函數(shù)滿足Bellman方程為[6]:
(2)
(3)
以及最佳策略π*:S→A:
(4)
即在達到式(3)最大值的策略。
從MDP的定義中可以看到,求解最優(yōu)策略的目的是在狀態(tài)空間S和行動空間A中,選擇恰當?shù)臓顟B(tài)和行動序列,達到最優(yōu)化價值函數(shù)的目的,即使V收斂至V*。顯然,狀態(tài)空間和行動空間的大小決定了MDP問題的求解難度,策略迭代方法用于解決有限狀態(tài)的MDP問題,即|S|<∞,|A|<∞。策略迭代算法的描述如下[8]:
1) 隨機初始化策略π
2) 重復至收斂{
b.對每一狀態(tài)s,令
(5)
其中a過程可以通過Bellman方程求解,b過程通常稱為策略迭代中的貪婪算法,經過有限次迭代后,最終V和π會收斂至V*和π*。
庫存模型由基地級和基層級構成。一個基地級倉庫可同時供應多個基層級倉庫,基層級倉庫之間具有橫向供應能力,當基層級出現(xiàn)缺件時,可以根據(jù)實際需求,選擇由基地級倉庫供應,或是由其他基層級倉庫橫向供應,具有橫向供應的航材二級庫存模型結構如圖1所示[9]。
圖1 航材二級庫存結構框圖
1) 為減少MDP求解的時間復雜度,模型簡化為1個基地級倉庫(D1)供應2個基層級倉庫(B1,B2),基層級倉庫間可以橫向運輸;
2) MDP按時間離散,以1天為離散單位時間,即各級倉庫的消耗和供應按天計數(shù);
3) 基層級倉庫正常消耗獲得收益(R1,R2),供應損失(L1,L2);
4) 各基層級對航材的消耗需求獨立,服從泊松分布,參數(shù)分別為λ11,λ21;
5) 各基層級接受供應的航材數(shù)量獨立,服從泊松分布,參數(shù)分別為λ12,λ22;
6) 各基層級倉庫的最大存儲數(shù)量(SMAX1,SMAX2),最大供應數(shù)量(MOVEMAX),整個系統(tǒng)內某器材的總數(shù)量(SMAX)有上限[10]。
狀態(tài)空間S:2個基層級倉庫各自的器材數(shù)量;
行動空間A:由基地級倉庫的直接供應數(shù)量和基層級倉庫的橫向供應數(shù)量;
獎勵函數(shù)R:正常消耗獲得的收益與供應造成的損耗之差;
折扣因子γ:目前策略對后續(xù)策略的影響程度,根據(jù)具體需要設定;
狀態(tài)轉移概率Psa:狀態(tài)轉移行動共包括4種,分布是2個基層級倉庫的消耗(C1,C2)和接受供應(S1,S2),其概率服從泊松分布,參數(shù)λ為消耗和接受供應數(shù)量均值的倒數(shù),可由航材業(yè)務數(shù)據(jù)統(tǒng)計后得出。
步長:MDP系統(tǒng)的步長為1天,即所有數(shù)據(jù)按天計算[11]。
系統(tǒng)內有1個基地級倉庫,2個基層級倉庫,基層級倉庫間滿足橫向供應條件?;緟?shù)設置如表1所示。
表1 算例參數(shù)
算法分為策略評估和策略迭代兩部分。首先,生成包含2個基層級航材股倉庫所有器材配屬情況的狀態(tài)矩陣S,在狀態(tài)矩陣S中的每一個狀態(tài)s上,對每一個可能的行動進行策略評估,計算執(zhí)行行動產生的最終獎勵值,選擇每一狀態(tài)的所有橫向供應行動中,結果最優(yōu)的橫向供應行動集合,作為下一次迭代的初始策略。算法退出的條件為兩輪策略迭代的獎勵值變化小于設定的閾值。算法流程見圖2。
圖2 算法流程框圖
3.3.1計算細節(jié)說明
本例需要迭代的次數(shù)過多,文章中無法將所有過程完整表示,因此本節(jié)選取第一次迭代過程進行計算細節(jié)說明。
1) 生成狀態(tài)矩陣S和初始策略矩陣P
在本例的2個航材股倉庫中,存放該器材的最大數(shù)量為10,即每個航材股的器材存儲狀態(tài)各有0-10共11種,則狀態(tài)矩陣S為11×11維矩陣。
本例中每天橫向供應的最大件數(shù)MOVEMAX為5,對于航材股1而言,有[-5,5]共11種情況,其中正數(shù)表示航材股1向航材股2橫向供應,負數(shù)反之,0為該天未發(fā)生橫向供應,航材股2亦是如此,為優(yōu)化計算,只使用航材股1作為策略執(zhí)行的主體,則策略矩陣同樣為11×11維矩陣,但矩陣的每一行都相同。
2) 計算策略實際執(zhí)行情況和下一狀態(tài)
以狀態(tài)矩陣S中的狀態(tài)s=(8,6)為例,執(zhí)行策略矩陣P的實際情況和執(zhí)行后狀態(tài)如表2所示。
3) 計算執(zhí)行策略產生的回報
在本例中,執(zhí)行策略的回報包含2個部分:橫向供應造成的損耗和正常器材供應產生的收益。其中,橫向供應的損耗可由表2中的實際執(zhí)行數(shù)量與供應損失(L1,L2)求出;正常供應產生的收益也可由實際供應數(shù)量與供應收益(R1,R2)求出。在本例中,倉庫正常供應和橫向供應的數(shù)量是一個泊松過程,實際消耗值(C1,C2)分別服從參數(shù)為λ11,λ21的泊松分布,實際橫向供應值(S1,S2)分別服從參數(shù)為λ12,λ22的泊松分布,即在狀態(tài)s下執(zhí)行行動a的狀態(tài)轉移概率Psa為:
(6)
表2 狀態(tài)s=(8,6)執(zhí)行后狀態(tài)
根據(jù)Bellman方程(式(2)),執(zhí)行行動后的獎勵函數(shù)R可表示為(第1次迭代):
R=∑Psa×(C1×R1+C2×R2-L1×S1-L2×S2)
(7)
根據(jù)V*Bellman方程(式(4)),第2次迭代至收斂的獎勵函數(shù)R可表示為:
R=R-1+∑Psa×(C1×R1+C2×R2-L1×S1-
L2×S2+γ×R-1(sB1,sB2))
(8)
式(8)中,R-1表示上一輪迭代得到的最優(yōu)獎勵函數(shù);(sB1,sB2)表示在本輪迭代執(zhí)行行動后,2個倉庫的實際庫存狀態(tài);R-1(sB1,sB2)表示在上一輪迭代后,執(zhí)行最優(yōu)策略得到獎勵函數(shù)中,狀態(tài)為(sB1,sB2)的函數(shù)值。將C1,C2組合,求得在狀態(tài)s=(8,6)中執(zhí)行行動a=2的獎勵函數(shù)值為8.825。類似的,在狀態(tài)s=(8,6)下,執(zhí)行策略矩陣P的最終獎勵函數(shù)如表3和圖3。
表3 執(zhí)行a=2獎勵函數(shù)值
圖3 執(zhí)行a=2獎勵函數(shù)值
得到在該次迭代下狀態(tài)s=(8,6)的最優(yōu)策略為a=2。
3.3.2計算結果
算例經過3輪迭代求得最優(yōu)解,分別得到1個策略矩陣和對應的獎勵函數(shù)值。第一輪迭代中經歷10次迭代,獎勵函數(shù)值從74.910 02至111.987 2,誤差值從314.609 7至0。第二輪迭代中經歷16次迭代,獎勵函數(shù)值從314.273 132至475.865 417,誤差值從959.625 916至0。第三輪迭代中經歷14次迭代,獎勵函數(shù)值從483.712 769至490.000 885,誤差值從3.641 499至0,具體變化如圖4所示,本輪迭代的獎勵函數(shù)值差為0,得到最優(yōu)策略矩陣P(1)為:
即矩陣P(1)為最優(yōu)策略π*(s),其數(shù)值分別對應初始狀態(tài)矩陣S中各狀態(tài)的最優(yōu)行動,例如在狀態(tài)s=(8,2)時,行動為a=2,即從倉庫B1向B2供應2個器材。從策略矩陣的分布來看,在狀態(tài)矩陣S主對角線兩側附近的最優(yōu)策略是0,即在兩倉庫的器材量接近時,不需要進行橫向供應,在副對角線上附近的狀態(tài)值基本對稱,且左下角比右上角的橫向供應量大,與假設的參數(shù)相符。
圖4 第三輪迭代中的獎勵函數(shù)值與誤差值
在上節(jié)算例的基礎上,將器材在倉庫B1、B2的最大庫存值設為100,即初始狀態(tài)矩陣和最優(yōu)決策矩陣為100×100維。設定在平時保障狀態(tài)下出現(xiàn)缺貨時,該天無法完成正常保障,第二天從另一倉庫橫向供應后正常保障。兩倉庫的器材需求到達時間服從參數(shù)為λ11和λ12的泊松分布。設定庫存系統(tǒng)的初始狀態(tài)為s=(40,20),使用模型前后,各倉庫庫存情況隨保障天數(shù)的變化分別如圖5、圖6所示。
圖5 使用模型前的庫存變化
圖6 使用模型后的庫存變化
從圖5和圖6的變化情況可知,使用模型前,兩倉庫沒有器材橫向供應,庫存量隨時間逐漸下降,B1倉庫庫存始終大于B2倉庫庫存,庫存系統(tǒng)在第8天后無法進行保障;使用模型后,兩倉庫在第二天時就發(fā)生了橫向供應,從第三天開始B2倉庫庫存大于B1倉庫庫存,最終在第10天時耗盡所有庫存器材。使用模型后,同樣的庫存系統(tǒng)延長了25%的保障時間,有效提高了航材保障效率。
本文利用馬爾科夫決策過程建立了航材股倉庫間允許橫向供應的器材供應離散模型,使用增強學習的思想,對模型的進行策略評估和策略迭代,求解對應整個狀態(tài)空間下所有狀態(tài)的最優(yōu)策略,即在不同器材配置方案下的最優(yōu)橫向供應方案,最終策略與算例假設情況相符,在對使用模型前后的保障情況進行仿真后,相同庫存系統(tǒng)的保障時間提升了25%。該模型能夠有效解決航材二級庫存系統(tǒng)的器材配置問題,此外,還可以針對不同器材調整算例參數(shù),擴展模型的適應范圍,減小庫存不平衡對航材保障能力的影響,提高部隊整體的航材保障效率。