類Uber/滴滴分單引擎中應用到的技術原理 (1)

文章內容來自互聯網,不做好壞評價。只對相關技術做以梳理、總結、學習。


總結技術內容之前,先看看這種“分單引擎”是應用在什么樣的場景中的,并提出問題。

首先,它應用在一個平臺之上,平臺粘合與匹配了多方的需求(Uber/滴滴 -- 乘客與司機,外賣 -- C端用戶、商家與騎手)。平臺以積極構建網絡效應為目的 -- 需求越多,供給就越多。

積極的網絡效應

其次,越大的規(guī)模,越有助于平臺來優(yōu)化需求與供給之間交互的價值單元,如,Uber/滴滴對于乘客提供更短時間接乘的司機;外賣對于用戶提供配送時效更短和更好服務體驗的騎手,而這也是平臺的價值。平臺通過收集乘客的需求數據(包括,歷史上這個區(qū)域的數據),司機的數據(車型、位置、速度等),并幫助過濾和篩選最優(yōu)的司機來滿足乘客的需求。

智能派單

第三,在平臺之上,隨著規(guī)模的增大,網絡效應會發(fā)生變化。準確的說,需要構建積極的網絡效應,而持續(xù)不斷的調節(jié)消極的網絡效應。比如,更多的乘客打車需求會帶來司機接乘時間的變長,從而又使得乘客的體驗下降。近些年滴滴推出的 -- 快車、專車、順風車、拼車等等模式,無不是通過不斷的調整產品和運營策略以調節(jié)供需之間的平衡在做努力,細分并開拓更多的場景,以滿足需求。不同的需求與供給,對于后端的分單引擎來說,帶來的是調度模式和策略的復雜化、計算量的指數增長。

消極的網絡效應

第四,“分單引擎”面對的不是一次只求解“單一需求與單一供給匹配”的最優(yōu)解問題,而是“多個需求與多供給匹配”之間的全局的最優(yōu)解問題。這里面的優(yōu)化目標,不僅需要考慮某一個時刻乘客的體驗問題(如,接乘時間指標、平臺響應時間(有司機接單)指標),也要考慮司機的情況(價格等指標),以及未來一段時間內其他更多乘客和司機的需求供給匹配的問題,即:站在全局視角,盡量去滿足盡可能多的出行需求,保證乘客的每一個叫車需求都可以更快更確定的被滿足,并同時盡力去提升每一個司機的接單效率,讓總的接駕距離和時間最短。

乘客與司機之間的匹配

仔細拆解問題來看,這里面又分為如下一些問題:

(從算法策略角度 & 問題規(guī)模 - 如果考慮全國的規(guī)模,每次匹配幾千乘客與司機,每天幾千萬單)

- 是否單單匹配?如果不是,而進行批量分單匹配的話,先拿出哪些乘客訂單進行匹配?多久匹配一次?并以多大的batch size進行乘客訂單和司機進行匹配?

- 打分和分派,如何考慮業(yè)務約束。比如,等級高的司機比較等級低的司機有更多的派單機會;某類司機只接某個區(qū)域范圍內的單;特定場景下,乘客單可以在不同司機類別之間跨層轉(快車單給專車);

(從系統角度)

- 在匹配計算時,分單引擎所使用的機器資源該如何分配?全國的訂單一起匹配?還是按城市/地理區(qū)域錯開進行匹配?

- 匹配時,所需要的數據和計算任務量,該以哪種計算模型計算才能更好的利用資源?

- ... ...

上述要點都是關鍵的問題,其背后也隱藏著諸多其他相關復雜的制約和影響因素(如性能指標、資源利用率、系統穩(wěn)定性、數據的一致性和正確性)。待后續(xù)不斷的拆解,補充。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容