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