徐常凱,周家萱,杜加剛
(空軍勤務學院 航材四站系, 江蘇 徐州 221000)
如何對航材庫存進行科學的優化配置,尋求航材保障良好率與航材保障經濟性之間的最佳平衡,是航材庫存優化的重要問題。空軍后方倉庫編制體制調整后,航材庫存從空軍、戰區空軍、航材股三級變為器材倉庫和隊屬倉庫二級,解決二級庫存體制下的航材庫存優化配置,成為航材庫存決策人員的現實難題。陳硯橋等[1]使用蒙特卡羅方法求解了允許橫向供應的庫存系統器材配置問題;劉少偉等[2]利用排隊論系統,建立了可修件兩級庫存模型;Engin Topan等[3]通過分支與定價算法求解了多備件兩級庫存系統模型。本文提出一種基于馬爾科夫決策過程建模,利用強化學習的策略迭代方法求解,尋求保障效率與保障經濟性的平衡,最終得到在航材不斷消耗過程中的庫存優化配置模型。
馬爾科夫決策過程是描述動態系統決策優化的數學模型,通常由五元組{S,A,Psa,γ,R}表示,其中S表示狀態空間,A表示行動空間,Psa為在狀態s下執行行動a的概率,γ為折扣因子,R為獎勵函數[4]。一個動態馬爾科夫決策過程可表述為:從狀態空間S中的某一狀態s0開始,在行動空間A中選擇行動a0執行后,馬爾科夫決策過程的狀態隨機轉移到狀態s1,記為s1~Ps0a0,類似的,整個決策過程可表示如下[5]:

定義策略π是由狀態到行動的映射,即π∶S→A,當決策過程處于狀態s時,執行行動a=π(s)時,定義價值函數Vπ:
Vπ(s)=E[R(s0)+γR(s1)+γ2R(s2)+…|s0=s,π]
(1)
對于某一確定的策略π,其價值函數滿足Bellman方程為[6]:
(2)

(3)
以及最佳策略π*:S→A:
(4)
即在達到式(3)最大值的策略。
從MDP的定義中可以看到,求解最優策略的目的是在狀態空間S和行動空間A中,選擇恰當的狀態和行動序列,達到最優化價值函數的目的,即使V收斂至V*。顯然,狀態空間和行動空間的大小決定了MDP問題的求解難度,策略迭代方法用于解決有限狀態的MDP問題,即|S|<∞,|A|<∞。策略迭代算法的描述如下[8]:
1) 隨機初始化策略π
2) 重復至收斂{

b.對每一狀態s,令
(5)
其中a過程可以通過Bellman方程求解,b過程通常稱為策略迭代中的貪婪算法,經過有限次迭代后,最終V和π會收斂至V*和π*。
庫存模型由基地級和基層級構成。一個基地級倉庫可同時供應多個基層級倉庫,基層級倉庫之間具有橫向供應能力,當基層級出現缺件時,可以根據實際需求,選擇由基地級倉庫供應,或是由其他基層級倉庫橫向供應,具有橫向供應的航材二級庫存模型結構如圖1所示[9]。

圖1 航材二級庫存結構框圖
1) 為減少MDP求解的時間復雜度,模型簡化為1個基地級倉庫(D1)供應2個基層級倉庫(B1,B2),基層級倉庫間可以橫向運輸;
2) MDP按時間離散,以1天為離散單位時間,即各級倉庫的消耗和供應按天計數;
3) 基層級倉庫正常消耗獲得收益(R1,R2),供應損失(L1,L2);
4) 各基層級對航材的消耗需求獨立,服從泊松分布,參數分別為λ11,λ21;
5) 各基層級接受供應的航材數量獨立,服從泊松分布,參數分別為λ12,λ22;
6) 各基層級倉庫的最大存儲數量(SMAX1,SMAX2),最大供應數量(MOVEMAX),整個系統內某器材的總數量(SMAX)有上限[10]。
狀態空間S:2個基層級倉庫各自的器材數量;
行動空間A:由基地級倉庫的直接供應數量和基層級倉庫的橫向供應數量;
獎勵函數R:正常消耗獲得的收益與供應造成的損耗之差;
折扣因子γ:目前策略對后續策略的影響程度,根據具體需要設定;
狀態轉移概率Psa:狀態轉移行動共包括4種,分布是2個基層級倉庫的消耗(C1,C2)和接受供應(S1,S2),其概率服從泊松分布,參數λ為消耗和接受供應數量均值的倒數,可由航材業務數據統計后得出。
步長:MDP系統的步長為1天,即所有數據按天計算[11]。
系統內有1個基地級倉庫,2個基層級倉庫,基層級倉庫間滿足橫向供應條件。基本參數設置如表1所示。

表1 算例參數
算法分為策略評估和策略迭代兩部分。首先,生成包含2個基層級航材股倉庫所有器材配屬情況的狀態矩陣S,在狀態矩陣S中的每一個狀態s上,對每一個可能的行動進行策略評估,計算執行行動產生的最終獎勵值,選擇每一狀態的所有橫向供應行動中,結果最優的橫向供應行動集合,作為下一次迭代的初始策略。算法退出的條件為兩輪策略迭代的獎勵值變化小于設定的閾值。算法流程見圖2。

圖2 算法流程框圖
3.3.1計算細節說明
本例需要迭代的次數過多,文章中無法將所有過程完整表示,因此本節選取第一次迭代過程進行計算細節說明。
1) 生成狀態矩陣S和初始策略矩陣P
在本例的2個航材股倉庫中,存放該器材的最大數量為10,即每個航材股的器材存儲狀態各有0-10共11種,則狀態矩陣S為11×11維矩陣。

本例中每天橫向供應的最大件數MOVEMAX為5,對于航材股1而言,有[-5,5]共11種情況,其中正數表示航材股1向航材股2橫向供應,負數反之,0為該天未發生橫向供應,航材股2亦是如此,為優化計算,只使用航材股1作為策略執行的主體,則策略矩陣同樣為11×11維矩陣,但矩陣的每一行都相同。

2) 計算策略實際執行情況和下一狀態
以狀態矩陣S中的狀態s=(8,6)為例,執行策略矩陣P的實際情況和執行后狀態如表2所示。
3) 計算執行策略產生的回報
在本例中,執行策略的回報包含2個部分:橫向供應造成的損耗和正常器材供應產生的收益。其中,橫向供應的損耗可由表2中的實際執行數量與供應損失(L1,L2)求出;正常供應產生的收益也可由實際供應數量與供應收益(R1,R2)求出。在本例中,倉庫正常供應和橫向供應的數量是一個泊松過程,實際消耗值(C1,C2)分別服從參數為λ11,λ21的泊松分布,實際橫向供應值(S1,S2)分別服從參數為λ12,λ22的泊松分布,即在狀態s下執行行動a的狀態轉移概率Psa為:
(6)

表2 狀態s=(8,6)執行后狀態
根據Bellman方程(式(2)),執行行動后的獎勵函數R可表示為(第1次迭代):
R=∑Psa×(C1×R1+C2×R2-L1×S1-L2×S2)
(7)
根據V*Bellman方程(式(4)),第2次迭代至收斂的獎勵函數R可表示為:
R=R-1+∑Psa×(C1×R1+C2×R2-L1×S1-
L2×S2+γ×R-1(sB1,sB2))
(8)
式(8)中,R-1表示上一輪迭代得到的最優獎勵函數;(sB1,sB2)表示在本輪迭代執行行動后,2個倉庫的實際庫存狀態;R-1(sB1,sB2)表示在上一輪迭代后,執行最優策略得到獎勵函數中,狀態為(sB1,sB2)的函數值。將C1,C2組合,求得在狀態s=(8,6)中執行行動a=2的獎勵函數值為8.825。類似的,在狀態s=(8,6)下,執行策略矩陣P的最終獎勵函數如表3和圖3。

表3 執行a=2獎勵函數值

圖3 執行a=2獎勵函數值
得到在該次迭代下狀態s=(8,6)的最優策略為a=2。
3.3.2計算結果
算例經過3輪迭代求得最優解,分別得到1個策略矩陣和對應的獎勵函數值。第一輪迭代中經歷10次迭代,獎勵函數值從74.910 02至111.987 2,誤差值從314.609 7至0。第二輪迭代中經歷16次迭代,獎勵函數值從314.273 132至475.865 417,誤差值從959.625 916至0。第三輪迭代中經歷14次迭代,獎勵函數值從483.712 769至490.000 885,誤差值從3.641 499至0,具體變化如圖4所示,本輪迭代的獎勵函數值差為0,得到最優策略矩陣P(1)為:
即矩陣P(1)為最優策略π*(s),其數值分別對應初始狀態矩陣S中各狀態的最優行動,例如在狀態s=(8,2)時,行動為a=2,即從倉庫B1向B2供應2個器材。從策略矩陣的分布來看,在狀態矩陣S主對角線兩側附近的最優策略是0,即在兩倉庫的器材量接近時,不需要進行橫向供應,在副對角線上附近的狀態值基本對稱,且左下角比右上角的橫向供應量大,與假設的參數相符。

圖4 第三輪迭代中的獎勵函數值與誤差值
在上節算例的基礎上,將器材在倉庫B1、B2的最大庫存值設為100,即初始狀態矩陣和最優決策矩陣為100×100維。設定在平時保障狀態下出現缺貨時,該天無法完成正常保障,第二天從另一倉庫橫向供應后正常保障。兩倉庫的器材需求到達時間服從參數為λ11和λ12的泊松分布。設定庫存系統的初始狀態為s=(40,20),使用模型前后,各倉庫庫存情況隨保障天數的變化分別如圖5、圖6所示。

圖5 使用模型前的庫存變化

圖6 使用模型后的庫存變化
從圖5和圖6的變化情況可知,使用模型前,兩倉庫沒有器材橫向供應,庫存量隨時間逐漸下降,B1倉庫庫存始終大于B2倉庫庫存,庫存系統在第8天后無法進行保障;使用模型后,兩倉庫在第二天時就發生了橫向供應,從第三天開始B2倉庫庫存大于B1倉庫庫存,最終在第10天時耗盡所有庫存器材。使用模型后,同樣的庫存系統延長了25%的保障時間,有效提高了航材保障效率。
本文利用馬爾科夫決策過程建立了航材股倉庫間允許橫向供應的器材供應離散模型,使用增強學習的思想,對模型的進行策略評估和策略迭代,求解對應整個狀態空間下所有狀態的最優策略,即在不同器材配置方案下的最優橫向供應方案,最終策略與算例假設情況相符,在對使用模型前后的保障情況進行仿真后,相同庫存系統的保障時間提升了25%。該模型能夠有效解決航材二級庫存系統的器材配置問題,此外,還可以針對不同器材調整算例參數,擴展模型的適應范圍,減小庫存不平衡對航材保障能力的影響,提高部隊整體的航材保障效率。