主頁 > 資料庫 > 阿里新零售中的智能補貨(I)— 庫存模型

阿里新零售中的智能補貨(I)— 庫存模型

2022-05-07 09:30:30 資料庫

文章作者:阿里零售通演算法團隊

出品社區:DataFun


導讀: 零售通作為阿里巴巴新零售的八路大軍之一,肩負著“共建智能分銷平臺”和“讓百萬小店擁抱DT時代”的重要使命,一方面,我們通過線上平臺(零售通APP)將零售品牌商的貨品展現給小店的店主,并提供交易渠道讓店主進行批發進貨;另一方面,我們通過天貓小店和如意POS對小店進行賦能,幫助他們在線下的銷售中能迅速發現C端消費者的需求,提升小店的坪效, 在這種B2B2C的創新分銷模式中,智能化的供應鏈體系不僅要保證平臺能持續穩定的為小店進行供貨,還要控制供應鏈成本,讓數字化渠道成為最經濟的分銷方式,

我們在不斷迎接新零售模式下供應鏈各種挑戰的程序中,逐漸沉淀出一套利用大資料和智能演算法解決供應鏈補貨的方法論,在這里與大家分享,本系列分為兩部分:第一部分主要介紹智能補貨的庫存模型;第二部分會詳細介紹補貨模型中的銷量預測演算法以及我們在預測中用的一些經驗和方法論, 本篇將對第一部分,即智能補貨的庫存模型進行介紹,

--

01 為什么需要智能補貨

零售通作為連接商家、小店和C端消費者的數字化分銷平臺,保障貨品供應的持續性和穩定性成為供應鏈的首要目標之一,不同于天貓、淘寶等直接面向C端消費者的平臺,零售通直接觸達的用戶是小店的店主,他們在平臺上進行采購的主要目的之一是用于補貨,如果此時需要補充的貨品在平臺上已售罄,這不僅會損失平臺的成交額(GMV),也造成了店內的貨品供應不足,導致小店的收入降低,另一方面,如果為了最大化保障供應率,而將一大批貨品囤積在零售通的倉庫中進行售賣,則有可能導致某些貨品長時間賣不出去,增加了庫存周轉時間和滯銷率,降低了供應的效率,

因此,供應鏈補貨的目標是通過供應方式(供應時間,供應數量,供應周期等)的決策達到倉庫中需求和供給的平衡,使得倉庫中貨品的庫存既可以最大化滿足用戶的需求,也能將庫存周轉時間控制在一定范圍之內,保證供應的效率,(因此在很多行業中,供應鏈補貨又叫做“庫存平衡”,)

file

在某些傳統行業中,供應鏈的補貨任務大部分還是通過人工完成,一方面,傳統行業的渠道資訊數字化大多構建得不完善,無法完全通過資料實作精準補貨;另一方面,傳統行業的計算能力有限,在求解某些優化問題中無法實作大規模的復雜計算,而零售通背靠阿里巴巴集團這顆參天大樹,不僅在資料獲取渠道上突破了線下渠道資料的限制,還在計算資源上得到了充分的保證,這些優勢為零售通供應鏈在智能補貨演算法的應用和發展提供了成長的土壤,使得通過基于機器學習和運籌學構建的智能補貨演算法體系成為可能,

--

02 庫存理論(inventory theory)

無論是傳統零售還是新零售,貨品都會經歷從生產制造到分銷、再到消費整個周轉程序,分銷中的每個環節都需要維持一定貨品庫存來應對需求的不確定性,因此,分銷商或者零售通都需要解決以下三個問題并作出正確的決策:

  1. 未來某段時間的需求是多少?

  2. 需要為未來的需求準備多少貨?

  3. 每天的庫存水位是多少?

無論作出何種決策,這三個問題都可以用“進-銷-存”模型來描述,

file

該模型需要進行連續決策,即以上三個問題不是一次性決策,而需要周而復始的不斷進行下去,另外,上一次的決策結果(補貨數量)會影響下一次決策狀態(當前庫存),用數學可以對此程序進行如下描述:

file

其中 file是 t 時刻的貨品在庫數量,file是需要進行決的 t 時刻的補貨量,file是 t 至 t+1 時刻的需求量總和,t 到 t+1 是兩次決策的時間間隔,取決于補貨的具體形式,

在“進-銷-存”程序中,會發生成本的支出,進貨時會產生訂購和運輸成本;貨品儲存在倉庫中會產生存盤成本(比如倉租和管理成本);貨品售賣后會產生配送成本,

t 時刻的總成本可以用 file 來表示,它是進貨量、在庫數量和需求量的函式圖片,供應鏈補貨所采取的決策目標就是在滿足需求的情況下,最小化程序中產生的總成本,

file

在運籌學中,該模型被形式化,并擴充為庫存理論(Inventory theory),作為該學科的一個分支,庫存理論在建立后的近80年中不斷演化發展,為各行各業的生產制造和庫存存盤提供指導,發揮著十分重要的作用,有興趣的讀者可以進一步閱讀[1][2],以獲得庫存理論更多的細節,

--

03 安全庫存模型(safety stock)

上面的庫存理論講到補貨的決策目標是在滿足需求的情況下,最小化供應成本,作為模型的一種簡化,我們先忽略成本因素,僅考慮如何決策才能滿足用戶的需求,

顯而易見,如果不考慮成本,最佳的供應方式就是“用戶買多少就進多少貨”,但現實中進貨總是發生在用戶購買之前的,即“先進貨,再售賣”,因此決定當前進多少貨就變成了對未來的需求量預測,從統計學的角度,未來某段時間的需求服從一定的統計分布:

file

對模型作進一步的簡化,我們假設需求服從的分布是正態分布:

file

其中均值 file 和標準差 file 是待確定的引數,根據“進-銷-存”模型,當給定 t 時刻的庫存時,t+1 時刻 的庫存 file 也服從正態分布:

file

如果file ,說明 t 到 t+1 時刻的需求能被充分滿足;反之則會發生缺貨,導致成交額的損失,

從正態分布的性質我們知道,無論我們如何增大補貨量,都無法100%的保障用戶的需求,因為正態分布分布的最大值是∞,(當然現實中不可能發生需求∞的情況,但是有可能是一個很大的數值,比如雙11促銷時的需求,)這里我們引入一個名詞叫做服務水平(service level - sl),它表明需求有多大的概率可以被滿足,對于單個貨品來說,服務水平 = 1- 缺貨概率;而對于多個貨品,服務水平 = 1 - 缺貨率,通常我們所說“將缺貨率控制在5%”,即相當于“將服務水平提升至95%”以上,對于服從正態分布的 file 來說,我們可以將服務水平通過積分表達出來:

file

等式右邊的積分可以用誤差函式進一步表示:

file

如果要保證服務水平大于95%,則需要誤差函式滿足:

file

通過查表可得:

file

上面不等式的右邊部分就是在圖片時刻滿足95%服務水平的最小補貨量,

file

不難看出,為了滿足較高的服務水平,我們不僅需要補足正常需求量(這里叫做需求量的均值),還要考慮需求波動帶來的不確定性,為保證需求波動所額外準備的庫存,就叫做安全庫存(safety stock - SS)[3],一般來說,安全庫存可以表示為以下形式[4]:

file

其中Z值對應了 file服務水平下的顯著系數,服務水平越高,Z值越大,安全庫存僅與服務水平和需求的標準差有關,與需求本身的數量無關,

--

04 現實中的限制

安全庫存模型僅考慮了為滿足需求而求解得到的補貨量最小值,但現實情況比該模型復雜得多,首先需要指出當補貨訂單下發后,貨品不會馬上入倉進行銷售,在這期間供應商需要及時作出回應,并進行生產備貨,在供應商發貨后,貨品還需要通過物流到達目的倉庫,在這期間也會產生時間的延遲,我們可以定義補貨訂單下發到貨品到倉的總體時間延遲為供應商交付時間(vendor leading time-VLT),該交付時間我們我可以與供應商協商,保證交付時間小于一定的天數,也可以根據該供應商的歷史表現統計得到,在第一種情況下,我們可以認為VLT是一個定值,那么安全庫存模型得到的最小補貨量只需要做稍微的改變:

file

其中需求的均值和標準差只需要改變為“t+1時刻再向前數VLT時間至t時刻”的需求分布均值 file 和標準差 file ,后一種情況稍微復雜一些,因為根據歷史統計得到的VLT也是一個分布,可以證明,在單位時間的需求分布不變且需求和VLT分別獨立的服從正態分布的情況下,最小補貨量可以表示為[5]:

file

其中filefile 分別是單位時間需求的均值和標準差,filefile 分別是VLT的均值和標準差,

除了VLT之外,成本也是安全庫存模型沒有考慮的因素,成本分為物流成本和庫存成本,在需求一定的情況下,如果訂貨太多,則會提升庫存周轉天數,增加庫存成本,如果訂貨太少,則在供應商配送程序中貨品裝不滿一車,導致物流成本率的增加,庫存理論中有一種“經濟訂購批量”模型(economic order quantity - EOQ)[6]來最優化訂貨量,使得總成本最低,在零售通的供應鏈模式中,我們主要通過庫存周轉天數和最小起訂量(minimum order quantity - MOQ)來近似表達成本的限制,

在零售通平臺上,庫存周轉天數是指貨品從入倉到銷售之間存盤在倉庫中的天數,某個單品的庫存周轉天數越長,說明該單品所消耗的庫存成本越高,最小起訂量是一個補貨訂單中包含貨品金額的最小值,如果訂單中的補貨量小于最小起訂量,說明供應商的物流成本過高,不會進行發貨供應,最小起訂量是對一個供應商下的多個貨品而言的,因為某一次補貨訂單可以包含多個單品的補貨量,

除了考慮成本的因素,我們還需要考慮倉庫識訓的產能,倉庫的識訓發貨需要人作業業,每天處理的訂單量是有限的,如果某次補貨的數量過大,導致倉庫無法及時識訓,則有可能導致貨品無法入倉而發生損壞,另一種限制是“整箱補貨”,因為在銷售上可以零售,但供應上只能整箱批發,補貨模型需要作出相應的調整來滿足以上種種限制,

這一系列現實中的限制條件都使得一個簡單的需求平衡問題變得復雜化,事實上,這里僅列出了零售通平臺上需要考慮的主要限制,在不同的場景下(比如雙11大促),限制條件將會變得更多更復雜,這導致了很多現實問題無法被數學形式化和模型化,從而給不出演算法最優解,這也是新零售場景中供應鏈補貨演算法需要迎接的挑戰和解決的難題,

--

05 整數線性規劃(ILP): 一個簡單的補貨模型

基于上述限制條件,我們可以基于安全庫存模型進一步改進補貨模型,首先我們應該定義一個優化的目標,比如“最小化整體庫存周轉天數”,優化該目標需要滿足以下限制:

1)保證每個貨品的服務水平大于file

2)供應商的最小起訂量大于元Q;

3)訂單中補貨總量不超過倉庫產能件K,

其它的限制暫時不考慮,因為它們并不影響我們對該問題的闡述,但其中有一個隱含的限制需要說明,就是即使不用整箱補貨,每個單品也只能“一件一件的補”,比如不可能補1.5個貨品,

下面我們將用數學形式化的表達優化目標和每一個限制,首先對一些變數和下標進行定義:

file

限制1: 每個貨品的服務水平大于 file (安全庫存模型):

file

限制2: 供應商的最小起訂量大于Q元:

file

限制3: 訂單中補貨總量不超過倉庫產能K件:

file

限制4: 單品的補貨數量大于0且為整數

file

優化目標:最小化整體庫存周轉天數,(因為單品庫存周轉天數是需求的函式,如果需求隨著時間變化,則無法將其表示為線性的形式,這里為了簡單起見,假設每天的需求分布不變,)

file

優化目標和限制條件均為關于 file 的線性運算式,加上 file 必須是整數的限制,可以很容易看出該問題是一個整數線性規劃(integer linear programming - ILP)[7],可以通過很多演算法工具包(比如cplex,gurobi等)進行求解,上面的公式寫成更加緊湊的形式為:

file

該整數規劃模型雖然是對復雜的真實環境進行了簡單的抽象,但它卻反映了供應鏈補貨的本質,我們可以形象的描述為“在鋼絲上跳舞”,首先我們的決策不是自由的,它需要在各種“條條框框”(比如MOQ、產能、整箱補貨等)中進行;其次補貨時不能“用力過猛”,補得太多會導致庫存周轉天數上升,成本增高;也不能用力過輕,補得太少會導致需求無法被充分滿足,導致成交額的損失,而整數規劃模型正是描述了這種“恰到好處”的決策,而這種恰到好處不僅需要我們深入的理解新零售業務,并對此進行模型抽象,也需要我們對未來的需求以及需求的波動性進行準確的預測,下一期我們將著重討論如何預測未來的需求分布,以及大資料和智能演算法在其中的應用,

--

06 參考文獻

  1. Zipkin Paul H., Foundations of Inventory Management, Boston: McGraw Hill, 2000, ISBN 0-256-11379-3

  2. Porteus, Evan L. Foundations of Stochastic Inventory Theory. Stanford, CA: Stanford University Press, 2002. ISBN 0-8047-4399-1

  3. Monk, Ellen and Bret Wagner. Concepts in Enterprise Resource Planning. 3rd Edition. Boston: Course Technology Cengage Learning, 2009

  4. Steven Nahmias, Production and Operation Analysis, Irwin 1989

  5. https://en.wikipedia.org/wiki/Safety_stock

  6. Harris, Ford W. Operations Cost (Factory Management Series), Chicago: Shaw (1915)

  7. https://en.wikipedia.org/wiki/Integer_programming


轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/469869.html

標籤:其他

上一篇:【SDE】在ArcMap10.8.1、Oracle12102環境下配置SDE空間資料庫,并激活st_geometry

下一篇:資料科學、資料工程學習路線

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more