導(dǎo)讀
美團(tuán)配送業(yè)務(wù)場景復(fù)雜,單量規(guī)模大。更直觀的規(guī)模數(shù)字,可能是美團(tuán)每年給騎手支付的薪水,目前早已達(dá)到幾百億這個(gè)量級。所以,在這么大規(guī)模的業(yè)務(wù)場景下,配送智能化就顯得十分重要,而智能配送的核心就是做資源的優(yōu)化配置。
美團(tuán)配送業(yè)務(wù)場景復(fù)雜,單量規(guī)模大。
更直觀的規(guī)模數(shù)字,可能是美團(tuán)每年給騎手支付的薪水,目前早已達(dá)到幾百億這個(gè)量級。所以,在這么大規(guī)模的業(yè)務(wù)場景下,配送智能化就顯得十分重要,而智能配送的核心就是做資源的優(yōu)化配置。
資源優(yōu)化配置
外賣配送是一個(gè)典型的O2O場景。既有線上的業(yè)務(wù),也有線下的復(fù)雜營運(yùn)。配送聯(lián)接訂單需求和運(yùn)力供給。為了達(dá)到需求和供給的平衡,除了要在線下營運(yùn)店家、運(yùn)營騎手,還要在線中將這種需求和運(yùn)力供給做合理的配置,其目的是提升整體的效率。只有將配送效率最大化,能夠帶來良好的客戶體驗(yàn),實(shí)現(xiàn)較低的配送成本。而做資源優(yōu)化配置的過程,實(shí)際上是有分層的。按照我們的理解,可以分為三層:
基礎(chǔ)層是結(jié)構(gòu)優(yōu)化,它直接決定了配送系統(tǒng)效率的上限。這些基礎(chǔ)結(jié)構(gòu)的優(yōu)化,周期比較長,頻度比較低,包括配送網(wǎng)路規(guī)劃、運(yùn)力結(jié)構(gòu)規(guī)劃等等。
中間層是市場調(diào)節(jié),相對來說是中短期的,主要通過定價(jià)或則營銷手段,使供需達(dá)到一個(gè)相對理想的平衡狀態(tài)。
再下層是實(shí)時(shí)匹配,通過調(diào)度做實(shí)時(shí)的資源最優(yōu)匹配。實(shí)時(shí)匹配的頻度是最高的,決策的周期也最短。
智能配送系統(tǒng)構(gòu)架
依照智能配送的這三層體系,配送算法團(tuán)隊(duì)也針對性地進(jìn)行了運(yùn)作。如上圖所示,左邊三個(gè)子系統(tǒng)分別對應(yīng)這三層體系,最底層是規(guī)劃系統(tǒng),中間層是定價(jià)系統(tǒng),最下層是調(diào)度系統(tǒng)。同樣十分重要的還包括圖中另外四個(gè)子系統(tǒng),在配送過程中做精準(zhǔn)的數(shù)據(jù)采集、感知、預(yù)估,為優(yōu)化決策提供確切的參數(shù)輸入,包括機(jī)器學(xué)習(xí)系統(tǒng)、IoT和感知系統(tǒng)、LBS系統(tǒng),這都是配送系統(tǒng)中十分重要的環(huán)節(jié),涉及大量復(fù)雜的機(jī)器學(xué)習(xí)問題。
而運(yùn)籌優(yōu)化則是調(diào)度系統(tǒng)、定價(jià)系統(tǒng)、規(guī)劃系統(tǒng)的核心技術(shù)。接出來,將分享幾個(gè)典型的運(yùn)籌優(yōu)化案例。
實(shí)戰(zhàn)業(yè)務(wù)項(xiàng)目
智能區(qū)域規(guī)劃
為了幫助你們快速理解配送業(yè)務(wù)的基本背景,這兒首先分享智能區(qū)域規(guī)劃項(xiàng)目中常常碰到的問題及其解決方案。
配送網(wǎng)路基本概念
配送聯(lián)接的是店家、顧客、騎手三方,配送網(wǎng)路決定了這三方的聯(lián)接關(guān)系。當(dāng)用戶打開App,查看什么店家可以點(diǎn)餐,這由店家配送范圍決定。每位店家的配送范圍不一樣,看似是店家細(xì)度的決策,但實(shí)際上直接影響每位C端用戶得到的商流供給,這本身也是一個(gè)資源分配或則資源搶劫問題。店家配送范圍智能化也是一個(gè)組合優(yōu)化問題,而且我們這兒講的是店家和騎手的聯(lián)接關(guān)系。
用戶在美團(tuán)點(diǎn)外賣,為他服務(wù)的騎手是誰呢?又是如何確定的呢?那些是由配送區(qū)域邊界來決定的。配送區(qū)域邊界指的是一些店家集合所對應(yīng)的范圍。為何要界定區(qū)域邊界呢?從優(yōu)化的角度來講,對于一個(gè)確定問題來說,約束條件越少,目標(biāo)函數(shù)值更優(yōu)的可能性就越大。做優(yōu)化的朋友肯定都不喜歡約束條件,并且配送區(qū)域邊界實(shí)際上就是給配送系統(tǒng)強(qiáng)加的約束。
在傳統(tǒng)貨運(yùn)中,影響末端配送效率最關(guān)鍵的點(diǎn),是配送員對他所負(fù)責(zé)區(qū)域的熟悉程度。這也是為何在傳統(tǒng)貨運(yùn)領(lǐng)域,配送站或配送員,就會(huì)固定負(fù)責(zé)某幾個(gè)新村的誘因之一。由于越熟悉,配送效率都會(huì)越高。
即時(shí)配送場景也類似,每位騎手須要盡量固定地去熟悉一片店家或則配送區(qū)域。同時(shí),對于管理者而言,站點(diǎn)的管理范圍也比較明晰。另外,若果有新店家上線,也很容易確定由那個(gè)配送站來提供服務(wù)。所以,這個(gè)問題有好多營運(yùn)管理的訴求在其中。
區(qū)域規(guī)劃影響配送效率
其實(shí),區(qū)域規(guī)劃項(xiàng)目的發(fā)起,存在好多問題須要解決。主要包括以下三種情況:
配送區(qū)域里的店家不聚合。這是一個(gè)典型站點(diǎn),店家主要集中在左下角和右上角,導(dǎo)致騎手在區(qū)域里取餐、送餐時(shí)執(zhí)行任務(wù)的地理位置十分分散,須要不停往返兩個(gè)商圈,無效跑位十分多。
區(qū)域奇形怪狀,空駛嚴(yán)重。之前在店面上線外賣平臺(tái)的發(fā)展過程中,好多地方本來沒有店家,后來上線的店家多了,就單獨(dú)作為一個(gè)配送區(qū)域。這樣的區(qū)域形狀可能還會(huì)不規(guī)則,致使騎手好多時(shí)侯在區(qū)域外跑。而店家和騎手都有綁定關(guān)系,騎手只能服務(wù)自己區(qū)域內(nèi)的店家,因而騎手未能接到配送區(qū)域外的取餐任務(wù),空駛率特別高。好多時(shí)侯騎手送完餐以后,只能空跑回去才可能接到新任務(wù)。
站點(diǎn)的大小不合理。圖三這個(gè)站點(diǎn),每晚的單量只有一二百單。假如從騎手平均單量的角度去配置騎手的話,只能配置3~4個(gè)騎手。假如某一兩個(gè)人忽然有事要事假,可想而知,站點(diǎn)的配送體驗(yàn)一定會(huì)顯得十分差,營運(yùn)管理難度會(huì)很高。反之,假如某一個(gè)站點(diǎn)顯得十分大,站長也不可能管得了這么多的騎手,這也是一個(gè)問題。所以,須要給每位站點(diǎn)規(guī)劃一個(gè)合理的單量規(guī)模。
既然存在如此多的問題,這么做區(qū)域規(guī)劃項(xiàng)目就顯得十分有必要。這么,哪些是好的區(qū)域規(guī)劃方案?基于統(tǒng)計(jì)剖析的優(yōu)化目標(biāo)設(shè)定。
多目標(biāo)優(yōu)化問題
優(yōu)化的三要素是:目標(biāo)、約束、決策變量。
第一點(diǎn),首先要確定優(yōu)化目標(biāo)。在好多比較穩(wěn)定或則傳統(tǒng)的業(yè)務(wù)場景中,目標(biāo)十分確定。而在區(qū)域規(guī)劃這個(gè)場景中,如何定義優(yōu)化目標(biāo)呢?首先,我們要思索的是區(qū)域規(guī)劃主要影響的是哪些。從昨天幾類問題的剖析可以發(fā)覺,影響的主要是騎手的順路性、空駛率,也就是騎手平均為每一單付出的路程成本。所以,我們將問題的業(yè)務(wù)目標(biāo)定為優(yōu)化騎手的單均行駛距離。基于現(xiàn)有的大量區(qū)域和站點(diǎn)積累的數(shù)據(jù),做大量的統(tǒng)計(jì)剖析后,可以定義出這樣幾個(gè)指標(biāo):店家聚合度、訂單的聚合度、訂單重心和店家重心的偏離程度。數(shù)據(jù)剖析結(jié)果說明,這幾個(gè)指標(biāo)和單均行駛距離的相關(guān)性很強(qiáng)。經(jīng)過這一層的建模轉(zhuǎn)化,問題明晰為優(yōu)化這三個(gè)指標(biāo)。
第二點(diǎn),須要梳理業(yè)務(wù)約束。在這方面,我們耗費(fèi)了大量的時(shí)間和精力。例如:區(qū)域單量有上限和下限。區(qū)域之間不能有重合,不能有店家歸多個(gè)區(qū)域負(fù)責(zé)。所有的AOI不能有遺漏,都要被某個(gè)區(qū)域覆蓋到,不能出現(xiàn)店家沒有站點(diǎn)的服務(wù)。
基于業(yè)務(wù)場景的約束條件梳理
最難的一個(gè)問題,雖然是要求區(qū)域邊界必須沿路網(wǎng)。原本我們很難理解,由于本質(zhì)上區(qū)域規(guī)劃只是對店家進(jìn)行分類,它只是一個(gè)店家集合的概念,為何要畫出邊界,還要求邊界沿路網(wǎng)呢?雖然剛剛介紹過,區(qū)域邊界是為了回答假如有新店家上線究竟屬于那個(gè)站點(diǎn)的問題。并且,從一線管理成本來講,更習(xí)慣于哪條路以東、哪條路以南這樣的敘述方法,以便記憶和理解,提升管理效率。所以,就有了這樣的訴求,我們希望區(qū)域邊界更“便于理解”。
整體方案設(shè)計(jì)
在目標(biāo)和約束條件確定了以后,整體技術(shù)方案分成三部份:
首先,按照三個(gè)目標(biāo)函數(shù),確定店家最優(yōu)集合。這一步比較簡單,做運(yùn)籌優(yōu)化的朋友都可以快速地解決這樣一個(gè)多目標(biāo)組合優(yōu)化問題。
前面的步驟比較難,如何把區(qū)域邊界畫下來呢?為了解決這個(gè)問題,配送團(tuán)隊(duì)和美團(tuán)地圖團(tuán)隊(duì)進(jìn)行合作。先借助路網(wǎng)信息,把城市劈成若干互不重疊的六邊形,之后按照估算幾何,將一批店家對應(yīng)的六邊形拼成完整的區(qū)域邊界。
最后,用美團(tuán)自主研制的配送仿真系統(tǒng),評測這樣的區(qū)域規(guī)劃對應(yīng)的單均行駛距離和體驗(yàn)指標(biāo)是否符合預(yù)期。由于一線直接變動(dòng)的成本極其高,仿真系統(tǒng)就起到了極其好的作用。
下邊是一個(gè)實(shí)際案例,我們用算法把一個(gè)城市做了重新的區(qū)域規(guī)劃。其實(shí),這兒必需要指出的是,在這個(gè)過程中,人工介入還是十分必要的。對于一些算法很難處理好的邊角場景,須要人工進(jìn)行微調(diào),使整個(gè)規(guī)劃方案愈發(fā)合理。中間的圖是算法規(guī)劃的結(jié)果。
經(jīng)過試點(diǎn)后,測試城市整體的單均行駛距離增長了5%,平均每一單騎手的行駛距離節(jié)約超過100米。可以想像一下,在如此龐大的單量規(guī)模下,每單平均降低100米,總節(jié)約的路程、節(jié)省的電池車電量,都是一個(gè)十分可觀的數(shù)字。更重要的是,可以讓騎手自己顯著覺得到自己的效率得到了提高。
落地應(yīng)用療效明顯
智能騎手輪班
業(yè)務(wù)背景
這是隨著外賣配送的營業(yè)時(shí)間越來越長而衍生出的一個(gè)項(xiàng)目。初期,外賣只服務(wù)午高峰到晚高峰,后來你們漸漸可以點(diǎn)早餐、點(diǎn)晚餐。到現(xiàn)在,好多配送站點(diǎn)早已提供了24小時(shí)服務(wù)。并且,騎手不可能全天24小時(shí)復(fù)工,勞動(dòng)法對每晚的工作時(shí)長也有規(guī)定,所以這一項(xiàng)目勢在必行。
另外,外賣配送場景的訂單“峰谷效應(yīng)”非常顯著。上圖是一個(gè)實(shí)際的進(jìn)單曲線。可以看見全天24小時(shí)內(nèi),午晚高峰兩個(gè)時(shí)段單量十分高,而閑時(shí)和燒烤相對來說單量又少一些。因而,系統(tǒng)也沒辦法把三天24小時(shí)依照每位人的工作時(shí)長做平均切分,也須要進(jìn)行輪班。
對于輪班,存在兩類方案的選型問題。好多業(yè)務(wù)的輪班是基于人的維度,用處是配置的細(xì)度十分精細(xì),每位人的工作時(shí)段都是個(gè)性化的,可以考慮到每位人的訴求。并且,在配送場景的缺點(diǎn)也顯而易見。假如站長須要為每位人去規(guī)劃工作時(shí)段,其難度可想而知,也很難保證分配的公正性。
輪班方案選型
配送團(tuán)隊(duì)最終選用的是按組輪班的方法,把所有騎手分成幾組,規(guī)定每位組的復(fù)工時(shí)段。之后你們可以按組輪崗,每位人的每位班次還會(huì)輪到。
這個(gè)問題最大的挑戰(zhàn)是,我們并不是在做一項(xiàng)業(yè)務(wù)工具,而是在設(shè)計(jì)算法。而算法要有自己的優(yōu)化目標(biāo),這么輪班的目標(biāo)是哪些呢?假如你要問站長,怎樣樣的輪班是好的,可能他只會(huì)說,要讓須要用人的時(shí)侯有人。但這不是算法語言,更不能弄成模型語言。
決策變量及目標(biāo)設(shè)計(jì)
為了解決這個(gè)問題,首先要做設(shè)計(jì)決策變量,決策變量并沒有選用班次的起止時(shí)刻和結(jié)束時(shí)刻,那樣做的話,決策空間太大。我們把時(shí)間做了離散化,以半小時(shí)為細(xì)度。對于三天來講,只有48個(gè)時(shí)間單元,決策空間急劇削減。之后,目標(biāo)定為運(yùn)力需求滿足訂單量的時(shí)間單元最多。這是由于,并不能保證站點(diǎn)的人數(shù)在對應(yīng)的進(jìn)單曲線情況下可以滿足每位單元的運(yùn)力需求。所以,我們把業(yè)務(wù)約束轉(zhuǎn)化為帶懲罰的目標(biāo)函數(shù)。這樣做還有一個(gè)用處,那就是沒必要曉得站點(diǎn)的總?cè)藬?shù)是多少。
在建模層面,標(biāo)準(zhǔn)化和通用的模型才是最優(yōu)選。所以,我們把人數(shù)做了歸一化,算法分配每位班次的騎手比列,但不分人數(shù)。最終只須要輸入站點(diǎn)的總?cè)藬?shù),就得到每位班次的人數(shù)。在算法決策的時(shí)侯,不決策人數(shù)、只決策比列,這樣也可以把單量進(jìn)行歸一化。每位時(shí)間單元的進(jìn)單量乘以每天峰值時(shí)間單元的單量,也弄成了0~1之間的數(shù)字。這樣就可以覺得,假如某個(gè)時(shí)間單元內(nèi)人數(shù)比列小于單量比例,這么叫作運(yùn)力得到滿足。這樣,通過各類歸一化,弄成了一個(gè)通用的問題,而不須要對每種場景單獨(dú)處理。
另外,這個(gè)問題涉及大量復(fù)雜的強(qiáng)約束,涉及各類管理的訴求、騎手的體驗(yàn)。約束有好多,例如每位工作時(shí)段盡量連續(xù)、每個(gè)工作時(shí)段持續(xù)的時(shí)間不過短、不同工作時(shí)段之間休息的時(shí)間不過短等等,有好多這樣的業(yè)務(wù)約束。梳理以后可以發(fā)覺,這個(gè)問題的約束太多了,求最優(yōu)解甚至可行解的難度太大了。另外,站長在使用輪班工具的時(shí)侯,希望能馬上給出系統(tǒng)輪班方案,再快速做后續(xù)微調(diào),因而對算法運(yùn)行時(shí)間要求也比較高。
算法核心思想
基于約束條件的構(gòu)造算法與局部搜索
綜合考慮以上誘因,我們最終基于約束條件,按照啟發(fā)式算法構(gòu)造初始方案,再用局部搜索迭代優(yōu)化。使用這樣的形式,求解速率才能達(dá)到微秒級,并且可以給出任意站點(diǎn)的輪班方案。整體的優(yōu)化指標(biāo)還不錯(cuò)。其實(shí),不保證是最優(yōu)解,只是可以接受的滿意解。
落地應(yīng)用療效
這些算法也在自營場景做了落地應(yīng)用,跟這些輪班經(jīng)驗(yàn)豐富的站長相比,療效基本持平,一線的接受程度也比較高。最重要的是帶來輪班時(shí)間的節(jié)約,每次輪班幾分鐘就搞定了,這樣可以讓站長有更多的時(shí)間去做其它的管理工作。
騎手路徑規(guī)劃
具體到騎手的路徑規(guī)劃問題,不是簡單的路線規(guī)劃,不是從a到b該走哪條路的問題。這個(gè)場景是,一個(gè)騎手頭上有好多配送任務(wù),這種配送任務(wù)存在各類約束,如何選擇最優(yōu)配送次序去完成所有任務(wù)。這是一個(gè)NP難問題,當(dāng)有5個(gè)訂單、10個(gè)任務(wù)點(diǎn)的時(shí)侯外賣配送系統(tǒng),就存在11萬多條可能的次序。而在高峰期的時(shí)侯,騎手常常背負(fù)的不止5單,甚至有時(shí)侯一個(gè)騎手會(huì)同時(shí)接到十幾單,這時(shí)侯可行的取送次序就弄成了一個(gè)天文數(shù)字。
算法應(yīng)用場景
再看算法的應(yīng)用場景,這是智能調(diào)度系統(tǒng)中最為重要的一個(gè)環(huán)節(jié)。系統(tǒng)派單、系統(tǒng)改派,都依賴路徑規(guī)劃算法。在騎手端,給每位騎手推薦任務(wù)執(zhí)行次序。另外,用戶點(diǎn)了外賣然后,美團(tuán)會(huì)實(shí)時(shí)展示騎手當(dāng)前任務(wù)還須要執(zhí)行幾分鐘,要給用戶提供更多預(yù)估信息。如此多應(yīng)用場景,共同的訴求是對時(shí)效的要求十分高,算法運(yùn)行時(shí)間要越短越好。
然而,算法僅僅是快就可以嗎?并不是。由于這是派單、改派這種環(huán)節(jié)的核心模塊,所以算法的優(yōu)化求解能力也十分重要。假如路徑規(guī)劃算法不能給出較優(yōu)路徑,可想而知,下層的委派和改派很難作出更好的決策。
所以,對這個(gè)問題做明晰的梳理,核心的訴求是優(yōu)化療效必須是穩(wěn)定的好。不能此次的優(yōu)化結(jié)果好,上次就不好。另外,運(yùn)行時(shí)間一定要短。
核心設(shè)計(jì)思想
在求解路徑規(guī)劃這類問題上,好多公司的技術(shù)團(tuán)隊(duì),都經(jīng)歷過這樣的階段:原本,采用類似遺傳算法的迭代搜索算法,并且隨著業(yè)務(wù)的單量變大,發(fā)覺算法歷時(shí)太慢,根本不可接受。之后,改為大規(guī)模鄰域搜索算法,但算法仍然有很強(qiáng)的隨機(jī)性,由于沒有隨機(jī)性在就沒辦法得到比較好的解。而這些基于隨機(jī)迭代的搜索策略,帶來很強(qiáng)的不確定性,在問題規(guī)模大的場景會(huì)出現(xiàn)特別多的BadCase。
另外,迭代搜索歷時(shí)太長了。主要的緣由是,隨機(jī)迭代算法是把組合優(yōu)化問題當(dāng)作一個(gè)單純的問題去求解,極少用到問題結(jié)構(gòu)特點(diǎn)。這種算法,求解TSP時(shí)這樣操作,求解VRP時(shí)也這樣操作,求解還是這樣操作,這種類似“無腦”的方法很難有出眾的優(yōu)化療效。
所以,在這個(gè)項(xiàng)目中,基本可以確定這樣的技術(shù)路線。首先,只能做啟發(fā)式定向搜索,不能在算法中加隨機(jī)擾動(dòng)。不能容許同樣的輸入在不同運(yùn)行時(shí)刻給出不一樣的優(yōu)化結(jié)果。之后,不能用普通迭代搜索,必須把這個(gè)問題結(jié)構(gòu)特點(diǎn)挖掘下來,做基于知識(shí)的多樣化搜索。
說上去容易,具體要怎樣做呢?我們覺得,最重要的是看待這個(gè)問題的視角。這兒的路徑規(guī)劃問題,對應(yīng)的精典問題模型,是開環(huán)TSP問題,或是開環(huán)VRP的變種么?可以是,也可以不是。我們做了一個(gè)有意思的建模轉(zhuǎn)換,把它看作流水線調(diào)度問題:每位訂單可以覺得是job;一個(gè)訂單的兩個(gè)任務(wù)取餐和送餐,可以覺得是一個(gè)job的。任意兩個(gè)任務(wù)點(diǎn)之間的通行時(shí)間,可以覺得是序列相關(guān)的打算時(shí)間。每一單承諾的送達(dá)時(shí)間,包括預(yù)訂單和即時(shí)單,可以映射到流水線調(diào)度問題中的提早和拖期懲罰上。
算法應(yīng)用療效
做了這樣的建模轉(zhuǎn)換以后,流水線調(diào)度問題就有了大量的啟發(fā)式算法可以借鑒。我們把一個(gè)精典的基于問題特點(diǎn)的啟發(fā)式算法做了適配和改進(jìn),就可以得到特別好的療效。相比于之前的算法,歷時(shí)增長70%,整體優(yōu)化療效不錯(cuò)。由于這是一個(gè)確定性算法,所以運(yùn)行多少次的結(jié)果都一樣。我們的算法運(yùn)行一次,跟其它算法運(yùn)行10次的最優(yōu)結(jié)果相比,優(yōu)化療效是持平的。
訂單智能調(diào)度
配送調(diào)度場景,可以用物理語言描述。它除了是一個(gè)業(yè)務(wù)問題,更是一個(gè)標(biāo)準(zhǔn)的組合優(yōu)化問題,而且是一個(gè)“馬爾可夫決策”過程。
調(diào)度問題的物理描述
并非對于某個(gè)時(shí)刻的一批訂單做最優(yōu)分配就足夠,還須要考慮整個(gè)時(shí)間窗維度,每一次指聚會(huì)旁邊的影響。每一次訂單分配,都影響了每位騎手后續(xù)時(shí)段的位置分布和行進(jìn)方向。假如騎手的分布和方向不適宜未來的訂單結(jié)構(gòu),相當(dāng)于增加了后續(xù)調(diào)度時(shí)刻最優(yōu)性的天花板。所以,要考慮長周期的優(yōu)化,而不是一個(gè)靜態(tài)優(yōu)化問題。
問題簡化剖析
為了易于理解,我們還是先看某個(gè)調(diào)度時(shí)刻的靜態(tài)優(yōu)化問題。它不僅僅是一個(gè)算法問題,還須要我們對工程構(gòu)架有特別深刻的理解。由于,在對問題輸入數(shù)據(jù)進(jìn)行拆解的時(shí)侯,會(huì)發(fā)覺算法的輸入數(shù)據(jù)太龐大了。例如說,我們須要任意兩個(gè)任務(wù)點(diǎn)的導(dǎo)航距離數(shù)據(jù)。
而我們面臨的問題規(guī)模,前幾年只是區(qū)域維度的調(diào)度細(xì)度,一個(gè)商圈一分鐘峰值100多單,匹配幾百個(gè)騎手,而且這些乘積關(guān)系對應(yīng)的數(shù)據(jù)早已十分大了。如今,因?yàn)槊缊F(tuán)有更多業(yè)務(wù)場景,例如跑腿和全城送,會(huì)跨特別多的商圈,甚至跨越半個(gè)城市,所以只能做城市級的全局優(yōu)化匹配。目前,調(diào)度系統(tǒng)處理的問題的峰值規(guī)模,是1萬多單和幾萬名騎手的匹配。而算法容許的運(yùn)行時(shí)間只有幾秒鐘,同時(shí)對顯存的消耗也十分大。
另外,配送和網(wǎng)約車派單場景不太一樣。打車的調(diào)度是做司機(jī)和旅客的匹配,本質(zhì)是個(gè)二分圖匹配問題,有方程時(shí)間的最優(yōu)算法:KM算法。打車場景的難點(diǎn)在于,怎么描畫每對匹配的權(quán)重。而配送場景還須要解決,對于沒有方程時(shí)間最優(yōu)算法的情況下,怎樣在指數(shù)級的解空間,短時(shí)間得到優(yōu)化解。假如覺得每一單和每位騎手的匹配有不同的適應(yīng)度,這么這個(gè)適應(yīng)度并不是可線性疊加的。也就意味著多單對多人的匹配方案中,任意一種匹配都只能重新運(yùn)算適應(yīng)度,其估算量可想而知。
總結(jié)一下,這個(gè)問題有三類挑戰(zhàn):
性能要求極高,要做到萬單對千人的秒級求解。我們之前做了一些比較有意思的工作,例如基于歷史最優(yōu)委派的結(jié)果,用機(jī)器學(xué)習(xí)模型做分株。基于大量的歷史數(shù)據(jù),可以幫助我們節(jié)約好多無用的匹配方案評價(jià)。
動(dòng)態(tài)性。作為一個(gè)MDP問題,須要考慮動(dòng)態(tài)優(yōu)化場景,這涉及大量的預(yù)估環(huán)節(jié)。在只有當(dāng)前未完成訂單的情況下,騎手怎樣執(zhí)行、每一單的完成時(shí)刻怎么預(yù)估、未來時(shí)段會(huì)進(jìn)什么結(jié)構(gòu)的訂單、對業(yè)務(wù)指標(biāo)和效率指標(biāo)形成如何的影響……你可能會(huì)認(rèn)為這是一個(gè)典型的加強(qiáng)學(xué)習(xí)場景,但它的難點(diǎn)在于決策空間太大,甚至可以覺得是無限大的。目前我們的思路,是通過其它的建模轉(zhuǎn)換手段進(jìn)行解決。
配送業(yè)務(wù)的隨機(jī)誘因多。例如店家的出餐時(shí)間,其實(shí)是很長時(shí)間內(nèi)都未能解決的隨機(jī)性。就連歷史上每一個(gè)已完成的訂單,店家出餐時(shí)間的真值都很難獲得,由于人為點(diǎn)擊的數(shù)據(jù)并不能保證確切和完整。店家出餐時(shí)刻不確定,這個(gè)隨機(jī)誘因永遠(yuǎn)存在,而且十分阻礙配送效率的提高。另外,在客戶位置交付的時(shí)間也不確定。寫字樓工作日的午高峰,上扶梯、下扶梯的時(shí)間,很難確切進(jìn)行預(yù)估。其實(shí),我們也在不斷努力讓預(yù)估顯得更精準(zhǔn),但隨機(jī)性永遠(yuǎn)存在。對于騎手來說,平臺(tái)無法規(guī)定每位騎手的任務(wù)執(zhí)行次序。騎手在配送過程中可以自由發(fā)揮,所以騎手執(zhí)行次序的不確定性也仍然存在。
為了解決這種問題,我們嘗試用魯棒優(yōu)化或是隨機(jī)規(guī)劃的思想。并且,假如基于隨機(jī)場景取樣的方法,運(yùn)算量又會(huì)急劇降低。所以,我們須要進(jìn)行基于學(xué)習(xí)的優(yōu)化,優(yōu)化不是單純的機(jī)器學(xué)習(xí)模型,也不是單純的啟發(fā)式規(guī)則,優(yōu)化算法是結(jié)合真實(shí)數(shù)據(jù)和算法設(shè)計(jì)者的經(jīng)驗(yàn),學(xué)習(xí)和演化而得。只有這樣,就能在性能要求極高的業(yè)務(wù)場景下,快速地得到魯棒的優(yōu)化方案。
公眾號(hào)
泛物流行業(yè)IT及營運(yùn)知識(shí)分享傳播、從業(yè)人士互幫互助外賣配送系統(tǒng),覆蓋快件快運(yùn)/互聯(lián)網(wǎng)貨運(yùn)平臺(tái)/城配/即時(shí)配送/3PL/倉配/報(bào)關(guān)/冷鏈/貨運(yùn)軟件公司/貨運(yùn)武器/貨運(yùn)手動(dòng)化設(shè)備/貨運(yùn)機(jī)器人等細(xì)分行業(yè)。辨識(shí)兩側(cè)二維碼即刻加入我們,假如你是以上行業(yè)公司中的從業(yè)人士加營運(yùn)小哥微信(兩側(cè)二維碼)后可入群交流。
知識(shí)星球
知識(shí)星球:包含期貨/商業(yè)咨詢機(jī)構(gòu)的行業(yè)研究報(bào)告(超10000份,行業(yè)內(nèi)相關(guān)報(bào)告超1000份);行業(yè)內(nèi)企業(yè)實(shí)戰(zhàn)資料(產(chǎn)品研制、運(yùn)營、企業(yè)管理一線實(shí)戰(zhàn)資料超100G)。聚焦上游供應(yīng)鏈、電商(含跨境)、零售及泛物流行業(yè)(快件快運(yùn)、合同貨運(yùn)、電商倉配、跨境貨運(yùn)、園區(qū)、冷鏈等細(xì)分市場)。
行業(yè)研究報(bào)告+真實(shí)業(yè)內(nèi)企業(yè)實(shí)戰(zhàn)資料,加入星球后全部可下載。
如今添加營運(yùn)小哥微信,可享限時(shí)驚喜特惠讓利哦~
免責(zé)聲明:部分文章信息來源于網(wǎng)絡(luò)以及網(wǎng)友投稿,本站只負(fù)責(zé)對文章進(jìn)行整理、排版、編輯,出于傳遞更多信息之目的,并不意味著贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,如本站文章和轉(zhuǎn)稿涉及版權(quán)等問題,請作者在及時(shí)聯(lián)系本站,我們會(huì)盡快為您處理。
熱門資訊
- 美團(tuán)外賣的抽成規(guī)則 餓了么抽點(diǎn)比例是多少
- 外賣好評30字有哪些 常見的外賣評語大全
- 木屋燒烤價(jià)目表一覽 微信外賣訂餐系統(tǒng)推薦
- 海底撈排隊(duì)取號(hào)微信是多少 海底撈是怎么預(yù)約排隊(duì)
- 如何通過微信掃碼支付找到支付人微信號(hào)?看這里!
- 胡桃里消費(fèi)人均大概是多少錢 二維碼掃碼點(diǎn)餐系統(tǒng)哪個(gè)好用
- 美團(tuán)外賣怎么點(diǎn)兩份?步驟及注意事項(xiàng)!!
- 肯德基優(yōu)惠券怎么獲得 肯德基微信外賣怎么點(diǎn)
- 連鎖收銀系統(tǒng)對連鎖門店運(yùn)營會(huì)有怎么樣的影響?
- 微信公眾號(hào)點(diǎn)餐是怎么實(shí)現(xiàn) 餐飲商家怎么制作外賣訂餐系統(tǒng)