汪黎明



摘要:制造企業為減少庫存成本、優化資金結構實施零庫存管理,在生產經營過程中如何高效調度物資使倉儲保持零庫存動態平衡是后續需要解決的難題。以制造企業倉儲部門為研究對象,在零庫存管理思想指導下,提出一種基于Q學習的零庫存物資調度方法,并用實驗驗證方法的有效性,以期提高制造企業倉儲管理效率,減少人為誤差,為實施零庫存管理提供后續技術支持。
Abstract: In order to reduce the cost of inventory and optimize the capital structure, the manufacturing enterprise implements zero inventory management. In the process of production and operation, how to efficiently dispatch materials to keep the dynamic balance of zero inventory is a difficult problem to be solved later. Taking the warehouse department of manufacturing enterprises as the research object, under the guidance of zero inventory management thought, a zero inventory material scheduling method based on Q-learning is proposed, and the effectiveness of the method was verified by experiments, in order to improve the efficiency of warehouse management and reduce human error. Provide follow-up technical support for implementing zero inventory management.
關鍵詞:零庫存管理;物資調度;Q學習;制造企業
Key words: zero inventory management;material dispatching;Q-learning;manufacturing enterprise
中圖分類號:F253.4 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文章編號:1006-4311(2019)23-0126-04
0 ?引言
庫存是企業生產管理的重要組成部分,儲備著原材料、中間產品和產成品,適量的庫存對企業的正常運作發揮著重要作用,如維持生產銷售穩定,平衡企業物流與流通資金的占用等[1]。然而,多余的庫存會增加成本、占用企業大量資金,并掩蓋生產經營中的很多問題。制造企業在我國經濟發展中扮演著重要角色,庫存成本控制能夠提高企業的管理效率和經濟效益,一直以來降低庫存成本成為企業想要達到的目標,也是學術界研究的熱點。零庫存管理(Zero Inventory Management)是一種特殊的管理理念,它并不是指庫存物資的數量為零,而是通過特殊的管理控制策略,使庫存量最小化,維持在一個對企業最有利的水平上。制造企業科學應用零庫存管理,能夠降低成本、提高質量、縮短產品生產周期,使其能夠快速響應市場需求、提高企業競爭力。
對于制造企業零庫存管理的研究,主要集中在以下幾個方面:①零庫存管理的可行性與風險研究。吳丹潔等[2]、黃文杰等[3]從經營環境、供應商、供應鏈、信息系統、不可控因素等方面闡述了企業實施零庫存管理的可行性,并對各方面存在的風險隱患提出了相應對策。②零庫存管理的問題與對策研究。陳宏佳[4]針對我國企業照搬豐田汽車公司零庫存管理模式產生的存貨管理失控和出庫數據不準確影響核算準確性等問題提出了改進措施。屈冠林[5]全面剖析零庫存的含義,提出企業實施零庫存管理的原則和充分利用第三方物流服務、協作生產、實行看板管理等實現零庫存的途徑。③零庫存管理實現方式研究。王涵等[6]、廖華昌[7]、朱文英等[8]以不同類型的制造企業為研究對象,在深度理解零庫存管理理論基礎上,從規范庫存管理流程、業務流程特點、供應鏈等角度對零庫存管理進行實踐探索。④零庫存管理的其他研究。潘燕華等[9]使用層次分析法構建零庫存管理物資類別選擇決策優化模型,研究某一物資類別是否適用于零庫存管理。
綜上所述,現階段學術界大都從企業或供應鏈等宏觀視角出發研究零庫存管理的可行性、風險、對策措施、實現方式等方面,對于制造企業實施零庫存管理后倉儲部門如何調度物資保持零庫存狀態的問題則沒有涉及。在企業實際生產經營過程中,庫存不可能一直保持不變,故實行零庫存管理后調度物資在動態情況下保持平衡是非常重要的,我國大多數制造企業仍采用以人為主的傳統庫存管理模式,由于出入庫頻繁、人為誤差大等因素,該模式不僅需要較高的人力成本,且存在管理流程不規范、庫存信息不完整等問題,企業信息系統應用程度不高,零庫存管理下倉儲物資調度缺乏規范有效的指導方法。本文提出一種基于Q學習(Q-Learning)的制造企業零庫存管理倉儲物資調度方法,依據零庫存管理思想與Q學習算法,結合制造企業倉儲部門特點,設計方法需要的各項參數、函數,輸出結果為調度物資達到零庫存狀態的全局最優策略,最后用實際案例驗證方法的有效性。
1 ?方法概述
1.1 Q學習算法
Q學習(Q-learning)算法是一種與模型無關的強化學習算法,以馬爾科夫決策過程(Markov decision processes, MDPs)為理論基礎[10]。標準的馬爾科夫決策過程可以用一個五元組表示,其中:S是一個離散有界的狀態空間;A是一個離散的動作空間;P為狀態轉移概率函數,表示agent在狀態s下選取動作a后轉移到s'的概率;R為回報函數,用于計算agent由當前狀態s選取動作a后轉移到下一狀態s'得到的立即回報值,由當前狀態和選取的動作決定,體現了馬爾科夫性的特點;γ∈[0,1]是折扣因子,用于確定延遲回報與立即回報的相對比例,γ越大表明延遲回報的重要程度越高。馬爾科夫決策問題的目標是找到一個策略π:S→A,使其回報函數R(s,a)的長期累積值的數學期望
最大。其中,策略π只和狀態相關,與時間無關(靜態的)。st是t時刻的環境狀態,at是t時刻選擇的動作。根據Bellman最優準則,得到最優策略π*對應的最優指標為[11]:
其中,R(s,a)為R(st,at)的數學期望,Ps,a(s')為在狀態s下選取動作a后轉移到下一狀態狀態s'的概率。由于倉庫環境中狀態之間的轉移概率P不容易獲得,直接學習π*:S→A是很困難的,而Q學習不需要獲取轉移概率P,因而本文采用Q學習算法解決此類具有馬爾可夫性的倉儲物資調度問題。
Q學習是一種與環境無關的算法,是一種基于數值迭代的動態規劃方法[12]。定義一個Q函數作為評估函數:
評估函數Q(s,a)的函數值是從狀態s開始選擇第一個動作a執行后獲得的最大累積回報的折算值,通俗地說,Q值等于立即回報值R(s,a)加上遵循最優策略的折算值,此時的最優策略可改寫為:
該策略表達式的意義在于:如果agent用Q函數代替Vπ函數,就可以不考慮轉移概率P,只考慮當前狀態s的所有可供選擇的動作a,并從中選出使Q(s,a)最大的動作,即agent對當前狀態的部分Q值做出多次反應,便可以選出動作序列,使全局最優化。在Q學習中,agent由初始狀態轉移到目標狀態的過程稱為“Episode”,即“場景”。Q函數可以表示為以下的迭代形式進行Q矩陣的更新:
在每一步的迭代中,上式又可寫為:
即Q矩陣(st,at)位置元素的值等于回報函數R的相應值加上折扣因子γ乘以轉換到下一個狀態后最大的Q值。
上述的Q學習算法可以看出,當劃分的狀態有限時,每一節隨機選擇的初始狀態s在算法的指導下探索環境,最終一定可以到達目標狀態s*,回報函數R(s,a)是有界的,并且動作的選擇能夠使每個狀態映射到動作對的訪問是無限頻率,則整個學習過程就能夠訓練出來。Q學習通過對環境的不斷探索,積累歷史經驗,agent通過不斷試錯來強化自身,最終可以達到自主選擇最優動作的目標,即不論出于何種狀態,都可給出到達目標狀態的最優選擇路徑,該算法中環境和動作相互影響,動作的選擇影響環境狀態,環境也可以通過強化回報函數R(s,a)來反饋動作的優劣性,影響動作的選擇[13]。
1.2 基于Q學習的零庫存物資調度方法
根據Q學習理論和制造企業倉儲環境實際情況,本文對庫存管理方法的系統狀態、動作選擇、回報函數、評估矩陣等設計如下:
1.2.1 系統狀態
在實際的庫存問題中,對于可以進行零庫存管理的物資,根據其具體狀況進行狀態的劃分,這是方法應用的第一步。通常影響狀態劃分的因素有:物資的計量單位,零庫存狀態時物資之間是否有相互關系,物資的物理狀態是否會發生改變等。本文為了將倉儲環境劃分為有限狀態,一方面,庫存的變化量默認以整數為單位,實現離散化處理;另一方面,零庫存狀態是唯一的,也就是說達到零庫存狀態時各種物資的量是一定的,零庫存狀態可采用機器學習方法從歷史數據中訓練得到。
1.2.2 動作選擇
環境劃分為有限個狀態,狀態之間相互聯系,可以設計動作實現狀態的轉移。在訓練過程中,采用隨機動作作為選擇策略,任一動作被選中的概率相同。動作即管理人員調整庫存物資的行為,用a表示,動作空間A表示所有可能動作的集合。
1.2.3 回報函數R
在Q學習算法中,回報函數R(s,a)設計的好壞直接影響著學習訓練的效果,通過設計回報函數可以將從歷史數據中學習到的先驗知識應用到學習過程中。在物資調度問題中,希望每一場景中agent可以盡快達到零庫存最優狀態,同時希望Q矩陣盡快收斂。本方法將狀態與動作抽象到二維或多維空間,用點和線表示,回報函數設計為三部分,第一部分對agent當前狀態到目標狀態的距離進行懲罰(即靠近目標位置會獲得獎勵),第二部分對agent到達目標狀態進行巨額獎勵,第三部分對agent超出庫存狀態限定范圍進行巨額懲罰(狀態空間是有界)。
單從數值上看,第一、三部分的回報值遠遠大于第二部分,故agent在面臨選擇時,零庫存狀態處于最高優先級,而選擇使狀態超出限定范圍的動作的可能性趨于0。第二部分回報值設置為負,越靠近目標狀態,則回報值越大,這樣設置的意義在于,該算法的最終目標是使庫存達到零庫存狀態,而不僅僅是為了縮短與目標狀態間的距離,添加距離懲罰機制,有助于提高學習效率,可以防止agent為獲取回報而產生不必要的移動。
1.2.4 評估矩陣Q
agent對環境不斷探索、試錯,Q矩陣相當于它的大腦,記錄每一場景得到的信息,使用公式(6)對Q矩陣進行更新,不斷訓練直到Q矩陣收斂。訓練的基本思路如圖1所示。
基于算法思想,訓練Q矩陣的具體流程如下:
步驟1.初始化倉庫環境:抽象倉儲環境,根據管理的各種物資的實際情況設計狀態空間和動作空間。
步驟2.初始化算法參數:最大訓練周期數(每一場景即為一個周期),折扣因子γ,即時回報函數R和評估矩陣Q。
步驟3.隨機選擇一個初始狀態s。
步驟4.在當前狀態s的所有可能動作中隨機選擇一個動作a,選擇每一動作的概率相等。
步驟5.當前狀態s選取動作a后到達狀態s'。
步驟6.對于下一狀態s',根據其所有可能的動作,以下式更新Q矩陣:
步驟7.設置下一狀態為當前狀態:s'→s。若s未達到目標狀態,則轉步驟4。
步驟8.如果算法未達到最大訓練周期數,轉步驟3進入下一場景。否則結束訓練,此時得到訓練完畢的收斂Q矩陣。
在上述算法中,Q矩陣訓練到一定場景數后收斂,故最大周期數應設置的足夠大,保證算法結束后Q矩陣已收斂,根據Q矩陣輸出agent的最優動作序列。
2 ?實驗與分析
2.1 實驗環境和參數設置
本文以制造企業小型倉儲問題為例,介紹該方法的具體實施步驟,分析結果并對其可行性進行闡述。案例描述如下:假設某倉庫存儲A、B兩種物資,均可進行零庫存管理,倉儲環境的約束條件為:
當且僅當A、B的庫存量分別為2單位和3單位時庫存達到最優狀態(即零庫存狀態,此目標狀態可利用機器學習的方法處理歷史數據得到),每種物資均可通過消耗、轉移等方式進行調整(減少1單位,保持不變或者增加1單位)。
根據已知條件,設A和B的庫存量為wA和wB,wA∈[0,10],wB∈[0,10]且均為整數,倉儲環境里每一個狀態均由兩物資的庫存量共同組成,即S=(wA,wB),共11×11個狀態,零庫存狀態設置為s*=(2,3)。物資A、B的庫存量變化分為三種情況:-1、0、+1,設計動作要綜合二者的變化,故共有32種動作 ,所有可能動作的集合記為A,表示如下:
動作即為庫存量變化的組合,為方便后續程序的索引處理,用序號0-8與上式中的動作一一對應。將整個狀態空閑抽象為一個二維直角坐標系,橫坐標為wA,縱坐標為wB,坐標系中每個點都是一個狀態,回報函數如下:
式中:R(s,a)——狀態s選擇動作a后獲得的回報值;
xk——agent下一狀態的坐標,即xk=sk+ak;
xg——目標狀態(零庫存狀態),即xg=(2,3)。
agent對倉儲環境不斷探索、試錯,Q矩陣相當于它的大腦,記錄每一場景得到的信息,使用公式(6)對Q矩陣進行更新,不斷訓練直到Q矩陣收斂。本案例中Q矩陣是一個121×9的矩陣,行表示agent的當前狀態,列表示到達下一狀態的可能動作,矩陣元素Q(st,at)表示立即回報值R(st,at)加上轉換到下一狀態后此行的最大Q值乘上折扣因子γ。初始化的Q矩陣如圖2所示,按圖中狀態、動作的順序建立索引(0-120;0-8),方便后續操作。
2.2 結果與分析
各種編程語言均可進行程序的編寫,部分軟件也滿足本方法的需要,本文采用python語言進行程序編寫。設置折扣因子γ為0.8,最大訓練周期數為1000。程序運行結果如圖3所示。
訓練之后會得到收斂的Q矩陣,通過比較數值能夠得到某個狀態下選擇各個動作的優先程度,即選擇該狀態對應行的最大Q值的對應動作,從初始狀態到目標狀態每一步最優即可得到整體的最優策略。例如,若當前庫存狀態為(5,7),即A、B的庫存量分別為5單位和7單位,程序給出最優策略:(5,7)→(4,6)→(3,5)→(2,4)→(2,3),管理人員只要依據此策略調整物資即可快速實現零庫存管理的目標。為了更加直觀地展示實驗結果,選擇4個初始狀態進行程序測試,結果可視化展示如圖4所示,圖中標注了初始狀態點和零庫存目標狀態點,連接線段即為調整庫存的策略路徑,能夠明顯看出,程序結果為案例已知條件下調整物資的最優策略,實驗證明本方法能夠有效應用于零庫存管理物資調度問題。
3 ?結論
本文針對制造企業實施零庫存管理下如何快速調度物資維持零庫存動態平衡這一問題進行研究,提出基于Q學習的零庫存物資調度方法。實驗結果表明,該方法提高了庫存調整效率,減少了人為因素造成的偏差,能夠有效地解決此問題。在實際應用場景中,存在更為復雜的倉儲狀況,需要根據實際情況進行狀態劃分,動作選擇、回報函數、評估矩陣等設計,最后根據算法流程圖進行編程或者軟件處理,依據輸出結果調度物資實現零庫存。在“互聯網+”大背景下,將信息技術應用到制造企業生產管理中是必然趨勢,傳統的管理模式正在向智能化管理轉變。本文提出的制造企業零庫存管理倉儲物資調度方法,將信息技術與零庫存管理思想相結合,用計算機代替人為判斷,為企業實施零庫存管理后的的物資調度提供方法支撐,提高了庫存管理效率,適應新形勢下追求企業整體經營成本降低的需要,有效減少企業庫存成本和人力成本,提高整體效益和市場競爭力,實現企業高質量發展。
參考文獻:
[1]胡雨亭.庫存的弊端與實現零庫存的方法[J].湖北社會科學,2011(03):87-89.
[2]吳丹潔,蘇俊華,鄭建陽.企業零庫存的適用與風險探析[J].改革與戰略,2015,31(05):83-91.
[3]黃文杰,黃奕.零庫存可行性分析和風險防范措施[J].企業經濟,2009(09):38-40.
[4]陳宏佳.我國企業應用零庫存管理法存在的問題[J].財務與會計,2016(04):56-57.
[5]屈冠林.科學地認識零庫存——淺議零庫存策略的內涵與實施[J].中國物流與采購,2003(11):34-35.
[6]王涵,蔡安江,褚崴.制造企業庫存管理信息系統的研究與實施[J].制造業自動化,2014,36(10):17-20.
[7]繆華昌.制造企業零庫存模式的實踐探索與研究[J].物流工程與管理,2015,37(06):56-58.
[8]朱文英,馬天山.零庫存管理理論在制造企業中的應用[J].物流技術,2009,28(08):140-142.
[9]潘燕華,陳婷婷,李向遠.船舶制造企業零庫存管理物資類別選擇決策模型構建[J].財會月刊,2017(29):43-47.
[10]聶春雨,祝明,鄭澤偉,等.基于Q-Learning算法和神經網絡的飛艇控制[J].北京航空航天大學學報,2017,43(12):2431-2438.
[11]PUTERMAN M L. Markov Decision Processes: Discrete Stochastic Dynamic Programming[M]. New York: John Wiley & Sons, 1994.
[12]方敏,李浩.基于狀態回溯代價分析的啟發式Q學習[J].模式識別與人工智能,2013,26(9):838-844.
[13]張佳立,尼俊紅.基于Q學習的配電異構無線網絡選擇算法[J].南京郵電大學學報(自然科學版),2018,38(02):54-59.