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