一只菜鳥如何“打敗”了意大利科學(xué)家多里戈?
裴成是華中科技大學(xué)計(jì)算機(jī)系的一名碩士生,最近一直在忙著畢業(yè)論文,忙著簽offer。他也沒有想到,自己的一道算法,竟然在實(shí)踐中證實(shí)比1991年的意大利科學(xué)家丹齊格提出的“蟻群算法”效果還要好。
“剛開始我只是一只菜鳥,只知道大數(shù)據(jù)處理系統(tǒng)內(nèi)存怎么調(diào)優(yōu),資源怎么調(diào)度,但是不知道大數(shù)據(jù)還能這么玩。” 這是裴成在最近舉行的天池同城配送規(guī)劃算法大賽中作為冠軍隊(duì)的獲獎(jiǎng)感言。
“蟻群算法”是算法是意大利科學(xué)家M.Dorigo(多里戈)在1991年發(fā)明的,2010年奧地利科學(xué)家G.Fuellerer將它應(yīng)用于車輛路徑問題。這一原理被用在物流配送規(guī)劃中,可以幫助同城配送更好地安排人力和線路,節(jié)省運(yùn)送成本。
打個(gè)比方,螞蟻在覓食過程中,都會(huì)不斷產(chǎn)生分泌物,假設(shè)每只螞蟻的分泌物總量一定,那么路線越短的話分泌物濃度越大,會(huì)吸引更多的螞蟻也來走這條路線。通過模擬螞蟻覓食,反復(fù)迭代則可以找到最短的路線。
據(jù)說這是目前解決同城配送***的方法,但這個(gè)方法被裴成拋棄了。拋棄經(jīng)典,一方面來自于初生牛犢不怕虎的勇氣,另一方面主要來自于自己不斷嘗試的精神。
“參 加過幾次阿里云天池?cái)?shù)據(jù)大賽,剛開始是推薦算法比賽,我網(wǎng)上一搜到處都是協(xié)同過濾,嘗試過,后來聽別人說用規(guī)則建立評(píng)分模型,我也嘗試過,看著大家都在建 立特征用邏輯回歸LR訓(xùn)練預(yù)測(cè)、群里天天談?wù)撝S機(jī)森林RF、大家都在鼓吹GBDT神奇,我都一一嘗試過。”裴成說他像神農(nóng)嘗百草一樣,把每一個(gè)大家認(rèn)為 好的方法都試過,***找到最適合問題的解決方案。
將“同城配送規(guī)劃”***轉(zhuǎn)化為“據(jù)點(diǎn)共享”問題,這樣可以減少路徑經(jīng)過據(jù)點(diǎn)的次數(shù),讓路徑每次經(jīng)過據(jù)點(diǎn)時(shí)能夠承擔(dān)更多的裝卸貨任務(wù),也才能可以讓成本更低。這便是裴成的邏輯。
打個(gè)比方,如果你是一名外賣送餐人員,客戶要求在15分鐘內(nèi)送達(dá),而發(fā)起此類需求的可能同時(shí)涉及5個(gè)外賣點(diǎn)、10個(gè)訂餐客戶,他們分別坐落在不同的街區(qū),如果你必須每經(jīng)過一個(gè)地方就停留一次,很有可能到達(dá)***幾名客戶的時(shí)候,時(shí)間已經(jīng)拖延很久了。
裴成據(jù)點(diǎn)共享的方法,相對(duì)于蟻群算法能更加容易避免陷入局部***的方法,也就是說,在某些據(jù)點(diǎn)上,你可以不用去,系統(tǒng)會(huì)從全局考慮并安排此時(shí)此刻更適合去送餐的人。
事實(shí)證明,裴成的結(jié)果確實(shí)要比原有的蟻群算法好。這個(gè)算法產(chǎn)品化之后,預(yù)計(jì)能夠6秒鐘處理500個(gè)訂單,能降低25%左右的配送成本,相比于目前阿里云交通和物流工作室現(xiàn)用蟻群算法模型提高了至少5個(gè)百分點(diǎn)。