文章作者:阿裡零售通演算法團隊 出品社區:DataFun 導讀: 零售通作為阿裡巴巴新零售的八路大軍之一,肩負著“共建智能分銷平臺”和“讓百萬小店擁抱DT時代”的重要使命。一方面,我們通過線上平臺(零售通APP)將零售品牌商的貨品展現給小店的店主,並提供交易渠道讓店主進行批發進貨;另一方面,我們通過天 ...
文章作者:阿裡零售通演算法團隊
出品社區:DataFun
導讀: 零售通作為阿裡巴巴新零售的八路大軍之一,肩負著“共建智能分銷平臺”和“讓百萬小店擁抱DT時代”的重要使命。一方面,我們通過線上平臺(零售通APP)將零售品牌商的貨品展現給小店的店主,並提供交易渠道讓店主進行批發進貨;另一方面,我們通過天貓小店和如意POS對小店進行賦能,幫助他們線上下的銷售中能迅速發現C端消費者的需求,提升小店的坪效。 在這種B2B2C的創新分銷模式中,智能化的供應鏈體系不僅要保證平臺能持續穩定的為小店進行供貨,還要控制供應鏈成本,讓數字化渠道成為最經濟的分銷方式。
我們在不斷迎接新零售模式下供應鏈各種挑戰的過程中,逐漸沉澱出一套利用大數據和智能演算法解決供應鏈補貨的方法論,在這裡與大家分享。本系列分為兩部分:第一部分主要介紹智能補貨的庫存模型;第二部分會詳細介紹補貨模型中的銷量預測演算法以及我們在預測中用的一些經驗和方法論。 本篇將對第一部分,即智能補貨的庫存模型進行介紹。
--
01 為什麼需要智能補貨
零售通作為連接商家、小店和C端消費者的數字化分銷平臺,保障貨品供應的持續性和穩定性成為供應鏈的首要目標之一。不同於天貓、淘寶等直接面向C端消費者的平臺,零售通直接觸達的用戶是小店的店主。他們在平臺上進行採購的主要目的之一是用於補貨。如果此時需要補充的貨品在平臺上已售罄,這不僅會損失平臺的成交額(GMV),也造成了店內的貨品供應不足,導致小店的收入降低。另一方面,如果為了最大化保障供應率,而將一大批貨品囤積在零售通的倉庫中進行售賣,則有可能導致某些貨品長時間賣不出去,增加了庫存周轉時間和滯銷率,降低了供應的效率。
因此,供應鏈補貨的目標是通過供應方式(供應時間,供應數量,供應周期等)的決策達到倉庫中需求和供給的平衡,使得倉庫中貨品的庫存既可以最大化滿足用戶的需求,也能將庫存周轉時間控制在一定範圍之內,保證供應的效率。(因此在很多行業中,供應鏈補貨又叫做“庫存平衡”。)
在某些傳統行業中,供應鏈的補貨任務大部分還是通過人工完成。一方面,傳統行業的渠道信息數字化大多構建得不完善,無法完全通過數據實現精準補貨;另一方面,傳統行業的計算能力有限,在求解某些優化問題中無法實現大規模的複雜計算。而零售通背靠阿裡巴巴集團這顆參天大樹,不僅在數據獲取渠道上突破了線下渠道數據的限制,還在計算資源上得到了充分的保證。這些優勢為零售通供應鏈在智能補貨演算法的應用和發展提供了成長的土壤,使得通過基於機器學習和運籌學構建的智能補貨演算法體系成為可能。
--
02 庫存理論(inventory theory)
無論是傳統零售還是新零售,貨品都會經歷從生產製造到分銷、再到消費整個周轉過程。分銷中的每個環節都需要維持一定貨品庫存來應對需求的不確定性。因此,分銷商或者零售通都需要解決以下三個問題並作出正確的決策:
-
未來某段時間的需求是多少?
-
需要為未來的需求準備多少貨?
-
每天的庫存水位是多少?
無論作出何種決策,這三個問題都可以用“進-銷-存”模型來描述。
該模型需要進行連續決策,即以上三個問題不是一次性決策,而需要周而複始的不斷進行下去。另外,上一次的決策結果(補貨數量)會影響下一次決策狀態(當前庫存)。用數學可以對此過程進行如下描述:
其中 是 t 時刻的貨品在庫數量,是需要進行決的 t 時刻的補貨量,是 t 至 t+1 時刻的需求量總和。t 到 t+1 是兩次決策的時間間隔,取決於補貨的具體形式。
在“進-銷-存”過程中,會發生成本的支出。進貨時會產生訂購和運輸成本;貨品儲存在倉庫中會產生存儲成本(比如倉租和管理成本);貨品售賣後會產生配送成本。
t 時刻的總成本可以用 來表示,它是進貨量、在庫數量和需求量的函數圖片。供應鏈補貨所採取的決策目標就是在滿足需求的情況下,最小化過程中產生的總成本。
在運籌學中,該模型被形式化,並擴充為庫存理論(Inventory theory),作為該學科的一個分支。庫存理論在建立後的近80年中不斷演化發展,為各行各業的生產製造和庫存存儲提供指導,發揮著十分重要的作用。有興趣的讀者可以進一步閱讀[1][2],以獲得庫存理論更多的細節。
--
03 安全庫存模型(safety stock)
上面的庫存理論講到補貨的決策目標是在滿足需求的情況下,最小化供應成本。作為模型的一種簡化,我們先忽略成本因素,僅考慮如何決策才能滿足用戶的需求。
顯而易見,如果不考慮成本,最佳的供應方式就是“用戶買多少就進多少貨”。但現實中進貨總是發生在用戶購買之前的,即“先進貨,再售賣”。因此決定當前進多少貨就變成了對未來的需求量預測。從統計學的角度,未來某段時間的需求服從一定的統計分佈:
對模型作進一步的簡化,我們假設需求服從的分佈是正態分佈:
其中均值 和標準差 是待確定的參數。根據“進-銷-存”模型,當給定 t 時刻的庫存時,t+1 時刻 的庫存 也服從正態分佈:
如果 ,說明 t 到 t+1 時刻的需求能被充分滿足;反之則會發生缺貨,導致成交額的損失。
從正態分佈的性質我們知道,無論我們如何增大補貨量,都無法100%的保障用戶的需求,因為正態分佈分佈的最大值是∞。(當然現實中不可能發生需求∞的情況,但是有可能是一個很大的數值,比如雙11促銷時的需求。)這裡我們引入一個名詞叫做服務水平(service level - sl),它表明需求有多大的概率可以被滿足。對於單個貨品來說,服務水平 = 1- 缺貨概率;而對於多個貨品,服務水平 = 1 - 缺貨率。通常我們所說“將缺貨率控制在5%”,即相當於“將服務水平提升至95%”以上。對於服從正態分佈的 來說,我們可以將服務水平通過積分表達出來:
等式右邊的積分可以用誤差函數進一步表示:
如果要保證服務水平大於95%,則需要誤差函數滿足:
通過查表可得:
上面不等式的右邊部分就是在圖片時刻滿足95%服務水平的最小補貨量。
不難看出,為了滿足較高的服務水平,我們不僅需要補足正常需求量(這裡叫做需求量的均值),還要考慮需求波動帶來的不確定性。為保證需求波動所額外準備的庫存,就叫做安全庫存(safety stock - SS)[3]。一般來說,安全庫存可以表示為以下形式[4]:
其中Z值對應了 服務水平下的顯著繫數,服務水平越高,Z值越大。安全庫存僅與服務水平和需求的標準差有關,與需求本身的數量無關。
--
04 現實中的限制
安全庫存模型僅考慮了為滿足需求而求解得到的補貨量最小值,但現實情況比該模型複雜得多。首先需要指出當補貨訂單下發後,貨品不會馬上入倉進行銷售。在這期間供應商需要及時作出響應,併進行生產備貨。在供應商發貨後,貨品還需要通過物流到達目的倉庫,在這期間也會產生時間的延遲。我們可以定義補貨訂單下發到貨品到倉的總體時間延遲為供應商交付時間(vendor leading time-VLT)。該交付時間我們我可以與供應商協商,保證交付時間小於一定的天數,也可以根據該供應商的歷史表現統計得到。在第一種情況下,我們可以認為VLT是一個定值,那麼安全庫存模型得到的最小補貨量只需要做稍微的改變:
其中需求的均值和標準差只需要改變為“t+1時刻再向前數VLT時間至t時刻”的需求分佈均值 和標準差 。後一種情況稍微複雜一些,因為根據歷史統計得到的VLT也是一個分佈。可以證明,在單位時間的需求分佈不變且需求和VLT分別獨立的服從正態分佈的情況下,最小補貨量可以表示為[5]:
其中 和 分別是單位時間需求的均值和標準差,和 分別是VLT的均值和標準差。
除了VLT之外,成本也是安全庫存模型沒有考慮的因素。成本分為物流成本和庫存成本。在需求一定的情況下,如果訂貨太多,則會提升庫存周轉天數,增加庫存成本。如果訂貨太少,則在供應商配送過程中貨品裝不滿一車,導致物流成本率的增加。庫存理論中有一種“經濟訂購批量”模型(economic order quantity - EOQ)[6]來最優化訂貨量,使得總成本最低。在零售通的供應鏈模式中,我們主要通過庫存周轉天數和最小起訂量(minimum order quantity - MOQ)來近似表達成本的限制。
在零售通平臺上,庫存周轉天數是指貨品從入倉到銷售之間存儲在倉庫中的天數。某個單品的庫存周轉天數越長,說明該單品所消耗的庫存成本越高。最小起訂量是一個補貨訂單中包含貨品金額的最小值。如果訂單中的補貨量小於最小起訂量,說明供應商的物流成本過高,不會進行發貨供應。最小起訂量是對一個供應商下的多個貨品而言的,因為某一次補貨訂單可以包含多個單品的補貨量。
除了考慮成本的因素,我們還需要考慮倉庫收貨的產能。倉庫的收貨發貨需要人工作業,每天處理的訂單量是有限的。如果某次補貨的數量過大,導致倉庫無法及時收貨,則有可能導致貨品無法入倉而發生損壞。另一種限制是“整箱補貨”,因為在銷售上可以零售,但供應上只能整箱批發。補貨模型需要作出相應的調整來滿足以上種種限制。
這一系列現實中的限制條件都使得一個簡單的需求平衡問題變得複雜化。事實上,這裡僅列出了零售通平臺上需要考慮的主要限制。在不同的場景下(比如雙11大促),限制條件將會變得更多更複雜。這導致了很多現實問題無法被數學形式化和模型化,從而給不出演算法最優解。這也是新零售場景中供應鏈補貨演算法需要迎接的挑戰和解決的難題。
--
05 整數線性規劃(ILP): 一個簡單的補貨模型
基於上述限制條件,我們可以基於安全庫存模型進一步改進補貨模型。首先我們應該定義一個優化的目標,比如“最小化整體庫存周轉天數”。優化該目標需要滿足以下限制:
1)保證每個貨品的服務水平大於;
2)供應商的最小起訂量大於元Q;
3)訂單中補貨總量不超過倉庫產能件K。
其它的限制暫時不考慮,因為它們並不影響我們對該問題的闡述。但其中有一個隱含的限制需要說明,就是即使不用整箱補貨,每個單品也只能“一件一件的補”,比如不可能補1.5個貨品。
下麵我們將用數學形式化的表達優化目標和每一個限制。首先對一些變數和下標進行定義:
限制1: 每個貨品的服務水平大於 (安全庫存模型):
限制2: 供應商的最小起訂量大於Q元:
限制3: 訂單中補貨總量不超過倉庫產能K件:
限制4: 單品的補貨數量大於0且為整數
優化目標:最小化整體庫存周轉天數。(因為單品庫存周轉天數是需求的函數,如果需求隨著時間變化,則無法將其表示為線性的形式。這裡為了簡單起見,假設每天的需求分佈不變。)
優化目標和限制條件均為關於 的線性表達式,加上 必須是整數的限制,可以很容易看出該問題是一個整數線性規劃(integer linear programming - ILP)[7],可以通過很多演算法工具包(比如cplex,gurobi等)進行求解。上面的公式寫成更加緊湊的形式為:
該整數規劃模型雖然是對複雜的真實環境進行了簡單的抽象,但它卻反映了供應鏈補貨的本質。我們可以形象的描述為“在鋼絲上跳舞”。首先我們的決策不是自由的,它需要在各種“條條框框”(比如MOQ、產能、整箱補貨等)中進行;其次補貨時不能“用力過猛”,補得太多會導致庫存周轉天數上升,成本增高;也不能用力過輕,補得太少會導致需求無法被充分滿足,導致成交額的損失。而整數規劃模型正是描述了這種“恰到好處”的決策。而這種恰到好處不僅需要我們深入的理解新零售業務,並對此進行模型抽象,也需要我們對未來的需求以及需求的波動性進行準確的預測。下一期我們將著重討論如何預測未來的需求分佈,以及大數據和智能演算法在其中的應用。
--
06 參考文獻
-
Zipkin Paul H., Foundations of Inventory Management, Boston: McGraw Hill, 2000, ISBN 0-256-11379-3
-
Porteus, Evan L. Foundations of Stochastic Inventory Theory. Stanford, CA: Stanford University Press, 2002. ISBN 0-8047-4399-1
-
Monk, Ellen and Bret Wagner. Concepts in Enterprise Resource Planning. 3rd Edition. Boston: Course Technology Cengage Learning, 2009
-
Steven Nahmias, Production and Operation Analysis, Irwin 1989
-
Harris, Ford W. Operations Cost (Factory Management Series), Chicago: Shaw (1915)