明正電子 業(yè)務說明:
【授牌代理線:風華高科、奇力新、普思、村田、三環(huán)、光頡、樂山、寶浦萊、揚杰、華晨、美磊、美桀 】【經(jīng)營產(chǎn)品線:阻容、磁感、晶體管等產(chǎn)品.】
六七萬種物料,要塞進5000種型號的箱子里,怎么辦?發(fā)表時間:2022-01-04 10:00
2019年,我去華為歐洲供應中心調(diào)研,看到越來越多的物料采用我設計的自動化分箱方法時,既忐忑又欣喜。而如今,這套方法已經(jīng)廣泛應用于公司產(chǎn)品的“包裝設計-貨量預估-理貨包裝”全鏈條環(huán)節(jié)中,整體自動分箱率超過70%。作為一名算法科學家,這個結果讓我振奮,因為在做科學研究的過程中,我看到過太多漂亮的算法因為不契合業(yè)務需求而“無疾而終”,無法真正發(fā)揮作用。如果要總結自己做對了什么,我想,可能就是關注到了業(yè)務的每一個細枝末節(jié),在各種約束條件中抓住最核心的問題,不斷思考,不斷迭代,不斷優(yōu)化。我覺得,我們的大部分工作沒有那么多的“靈光一現(xiàn)”,而是踏踏實實往下扎根,沉到業(yè)務中,努力把業(yè)務的潛力挖掘出來。大部分算法的誕生也是自然而然,那種“睡一覺醒來突然找到解題方法”的偶然性可遇而不可求。把物料裝進箱子,總共分幾步?
說實話,一開始我心理上有些許落差,覺得所做的事情看起來沒有那么酷。由于當時供應鏈剛開始做數(shù)字化轉(zhuǎn)型,“數(shù)字化”的底座沒有構建起來,很多優(yōu)化工作進行得比較艱難。但任何事情都有好的一面,真的投入進去后,我發(fā)現(xiàn),這是一片可以供我們自由馳騁的天地,得以發(fā)揮的空間非常大。我接到的第一個任務是自動化分箱問題。分箱,乍一聽似乎不難,不就是把物料裝進大小合適的箱子里?可是,了解之后,我嚇了一大跳——在華為,每年發(fā)貨的物料種類多達六七萬種,箱子的型號超過5000種,常用的也有兩三百種,每天要發(fā)出的訂單數(shù)量幾萬單。同時,每一個客戶對于分箱都可能有自己定制化的要求。既要滿足不同客戶多樣化的需求,又把龐大數(shù)量的物料裝進大小、材質(zhì)合適的箱子里,效率高,不出錯,還真不是一個簡單的問題。當時所有的裝箱都是人工來判斷。制單員根據(jù)物料編碼和數(shù)量,判斷其體積大小,然后勾選合適的箱子,輸出分箱配置清單,工人按此指引進行包裝。客戶有特殊要求的,還得按照要求來。這樣操作有兩個問題,一是效率低,需要大量制單人員投入,僅深圳供應中心就有制單員近百人。二是高度依賴員工經(jīng)驗積累,人員培養(yǎng)難度大,上崗培訓周期需要3個月,且容易造成客戶界面相同配置不同包裝結果,引起客戶包裝不一致投訴等問題。因此,我們亟需一種自動化分箱的方法來解決這些問題。“無米之炊”怎么做?一開始,我向外看,發(fā)現(xiàn)業(yè)界有一種自動包裝機器人,能夠自動掃描商品的三維尺寸,進而自動選擇合適的包裝箱材,能不能“移花接木”拿來使用?趕緊了解了一下,我發(fā)現(xiàn),這種自動包裝機器人需要購買專用的掃描和配套設備,改造成本非常大,且包裝尺寸受掃描設備的限制,不能適應華為這種裝配關系復雜的場景,只好放棄。我繼而研究了業(yè)界常用的傳統(tǒng)自動分箱算法,如數(shù)學規(guī)劃法、隨機搜索算法等,但很快發(fā)現(xiàn)這條路也走不通。因為這些算法都必須預先建立“物料畫像”,也就是知道所有物料的三維尺寸、重量等信息,但華為多達六七萬種物料,遍布各個產(chǎn)品線,這些物料的尺寸、重量信息散落在各個IT系統(tǒng)里、紙面記錄上,甚至是操作人員的頭腦中,獲取難度大,顯然一時半會是拿不到的。解決到這一步,物料畫像似乎成了橫亙在我們面前的一座大山。這就好比做飯沒有米,大家神情凝重,憂慮重重:這樣的“無米之炊”要怎么做?這時候,我提醒自己,不要只看到我們“沒有什么”,而要先看看我們“有什么”,從已經(jīng)掌握的資料入手。總結起來,我們有三部分數(shù)據(jù)是可以獲?。阂皇菤v史分箱數(shù)據(jù),一部分由IT系統(tǒng)自動記錄,還有一部分由員工手工錄入;二是所有箱子的尺寸、重量,我們可以通過統(tǒng)計和測量的方式確定下來;第三,盡管客戶對于分箱的需求也是文本化的,記錄在IT系統(tǒng)或者是紙面上,但如果讓業(yè)務人員總結出每個國家客戶的共同需求,并借助文本匹配的算法來總結、提煉,是可以把這部分數(shù)據(jù)識別出來的。有了這些數(shù)據(jù),我們可以估算出物料的體積和重量。舉個最簡單的例子,一個箱子裝了10件A物料,箱子的體積和重量已知,那我們就可以通過計算估算出A物料大致的體積和重量。當然,實際情況比這復雜得多,大量的混合包裝以及數(shù)量未知的錯誤數(shù)據(jù)增加了預估的難度,因此這部分估算出來的數(shù)據(jù)只能作為參考使用。盡管如此,這讓我感到極大的振奮。歷史分箱數(shù)據(jù)是我們所掌握的最有價值的數(shù)據(jù),我們必須像挖掘“寶藏”一樣繼續(xù)往下深挖,發(fā)掘出最大的潛力。那段日子,雖然在迷霧中穿梭,找不到方向,但我還蠻淡定的。不管壓力多大,但只要脫離工作回到家,我就會很快讓自己安靜下來,看看書、打打游戲,沉浸在自己的小世界里,這種習慣讓我比較能扛壓力,沒有啥過不去的坎。等到再次回到工作場景中時,又能以新的激情和面貌來面對。我靜下心思考,解題還是要回歸本質(zhì)。制單員為什么可以以較快的速度輸出分箱配置清單?這是因為他們記住了歷史上的很多分箱規(guī)律,所以我們要做的就是讓計算機來識別、記住這些規(guī)律,判斷目前的訂單和過往訂單比,有啥異同點。假如今天要發(fā)的貨,歷史上也曾經(jīng)發(fā)出過一模一樣的,那就只需要拿過來使用即可;假如今天要發(fā)出的貨和歷史上的有部分匹配,有部分不匹配,那就需要再卷入更多的歷史訂單來進行模糊匹配。同時參考我們估算出來的物料體積和重量,對其進行過濾、組合、挖掘,得到最終的分箱結果。這種基于歷史分箱數(shù)據(jù),通過多級多粒度模糊匹配、自動挖掘分箱結果的方法,就是我們解決分箱問題的“殺手锏”。誠實地說,這個項目的定制化要求非常多、繁瑣,帶來了大量的約束,對于算法優(yōu)越性的發(fā)揮是一個很大的阻礙,但我們“在螺螄殼里做道場”,盡可能地實現(xiàn)了業(yè)務的訴求和目標。2018年,這個方案在深圳供應中心上線,快速迭代,2019年,我們進一步優(yōu)化算法,把模糊匹配的算法和精確的三維裝載算法結合起來,大幅節(jié)省包裝全流程綜合成本,2020年已經(jīng)在公司幾乎所有的分箱場景中運行。一圖在手,裝車我行
把貨物裝進集裝箱,要解決幾個核心問題:一是,派幾輛車?哪輛車去哪些點?哪些貨裝哪輛車?二是,這些貨在集裝箱里面怎么碼放?這涉及路徑規(guī)劃、貨物配載、三維裝載等方面的問題。在此之前,盡管也有簡單的工具,但預測不準,有的時候派去的車不夠,需要調(diào)度臨時打電話調(diào)度車輛,有的時候派去的車太多,導致車廂大量空間閑置造成浪費。而怎么擺放貨物也是靠人工“拍腦袋”,隨心所欲,車輛的實際裝載量不高。
那如果用禁忌搜索、遺傳算法等元啟發(fā)算法,能行得通嗎?考慮到華為遍布珠三角各地的100多個提貨點以及數(shù)千種貨物,我們也只能早早拋棄這個想法。因為這些算法不確定性高且耗時也較長,很難應用在我們這樣復雜的工業(yè)級場景中。
這樣一來,每一輛車的司機接到任務的時候,就清晰地知道要去哪個提貨點提什么貨,并且會拿到一張裝箱模擬圖,根據(jù)圖片堆疊貨物,輕松完成裝貨任務。算法從2018年底上線以來,目前已應用于公司幾乎所有裝車場景和集裝箱的發(fā)運,大幅節(jié)約物流成本。讓倉庫的“大腦”更聰明
所謂訂單排產(chǎn),就是要告訴工人應該先完成哪個訂單、后完成哪個訂單,先撿什么料、后撿什么料,先包裝哪些貨物、后包裝哪些貨物,先運輸哪些貨物,后運輸哪些貨物……把把這些順序固定下來,關系著后續(xù)的庫存、加工和發(fā)貨等階段,是智能倉儲的核心環(huán)節(jié),相當于這個倉庫的“大腦”。以前,排產(chǎn)計劃主要靠人工去判斷,往往輸出的都不是最優(yōu)的排產(chǎn)結果。能不能讓系統(tǒng)直接根據(jù)業(yè)務目標,自動去求出最優(yōu)解?2019年初,收到業(yè)務部門的請求后,我開始帶著團隊重點攻克訂單排產(chǎn)算法。這是一個典型的“混合流水線作業(yè)”問題,難點在于倉庫里有比較多的線體,比方說A線體是處理小箱的,B線體是處理大箱的,T線體是處理棧板的,每條線體包含多個工作階段(如揀料、揀選、理貨、稱重等),線體之間還有交叉。而且很多情況下一個訂單會跨越線體,需要多條線體合理配合才能又好又快地完成。同時此問題包含多個優(yōu)化目標,分別是最小化單個訂單批次的處理周期和最小化所有訂單的完成時間,兩個目標實際上是有一定沖突的。針對這種情況,我們把這個問題分解為多個單目標優(yōu)化問題,一一攻破。因此,我們的解題思路是,先瞄準第一個目標——縮短訂單批次的處理周期。訂單往下排的時候,當某個批次的訂單在A線排到時,B線也盡量給它排上,保證相鄰操作可以連貫進行,不能撿完A線物料后等很久才撿B線的物料,再等幾個小時包裝。排產(chǎn)的時候,要盡可能讓一個訂單在短時間內(nèi)閉環(huán),縮短批次的處理周期。達成第一個目標后,我們再來做局部搜索的優(yōu)化。在滿足生產(chǎn)、工藝和資源約束的條件下,合理高效地編排訂單,按波次自動排產(chǎn),優(yōu)化第二個目標,最小化所有訂單的完成時間,提高整體的生產(chǎn)效率。智能排產(chǎn)算法從2020年初在東莞靈蜂自動物流中心推行以來,目前已推廣到上海、北京RDC(區(qū)域分發(fā)中心)等多個倉庫,有力支撐了倉庫作業(yè)的數(shù)字化和智能化,獲得了業(yè)務的積極認可。不做被“束之高閣”的算法回過頭看,供應鏈領域所有的優(yōu)化難題,都需要考慮非常多復雜的因素,在各種約束之間取得一個相對的平衡。很多時候,我們做出來的算法不是追求理論的最優(yōu)解,而是必須符合業(yè)務需要,才能發(fā)揮最大作用和價值。有時候也有人說,你是算法科學家,不要做dirty work(苦活),但在我看來這是不行的,要真正解決一個實際問題,不能活在真空狀態(tài),必須要碰觸業(yè)務的實質(zhì),了解業(yè)務的每一個細節(jié),把自己“逼”成半個業(yè)務人員。我們主管說過一句大實話,如果沒有收到過業(yè)務的投訴,那可能你創(chuàng)造的算法就沒有真正地使用起來。確實,很多算法誕生之后,由于不契合業(yè)務的場景,只能被“束之高閣”。而對我來說,最高興的莫過于業(yè)務人員對說“你的這個方法幫了我們大忙”,或者“追”著我提很多的改進建議。這些被需要的時刻就像前方一顆一顆的小星星,激勵著我繼續(xù)向前,產(chǎn)生更多有價值的發(fā)明創(chuàng)造。#供應鏈數(shù)字化故事##科學-無盡的前沿# |