第三十章:演算法大賽(四更)

演算法大賽是由國內知名的細細打車公司,於四月份在燕京召開的up生態大會上提出的,在演講中李思燕表示,今年細細將舉辦首屆「細細世界排程演算法大賽」。

根據介紹,從生態大會舉行的那天起,世界上所有的團隊、個人都可以在細細移動端、pc端官網上了解詳細的賽程及流程,並且在大會結束一週以內可以開始報名活動,在「細細世界排程演算法大賽」開始的第三天,也就是7月26號截止報名。

這次演算法舉辦的目的是,希望與廣大開發者一起探索演算法的更多可能。

演算法大賽設定了獎項,第一名是50萬元的獎金,第二名是20萬元獎金,還有第三名10萬元獎金。

打車出行,是我們日常出行的一個重要的組成部分,已經有幾百年的歷史,不過在早期是黃包車,再往前是馬車。

到了21世紀,網際網路和打車的結合,給大家的出行帶來了更多的便捷之處。

現在人們只需要在手機上下一個軟體,乘客在上面說要在何時何地上車在什麼地方下車,細細打車公司就會通過後臺,給安裝了司機版本app的手機上推送相應的訊息。司機師傅看到後,可以在手機上操作選擇是否接單。

如果有師傅接單,打車者的手機就能收到已接單的提醒,然後就可以通過手機app看到車輛的位置、車牌號,還有司機的手機號碼。

一般情況下司機會打個電話確認一下,只需要到時候乘客出現在約定好的上車地點就行,然後司機就開車帶著乘客去目的地。

到了目的地,可以選擇現金支付或者線上支付,這個流程就算是完成了。

但是排程是由以下各個環節組成的:預測目的地、價格預估、時間預估、最佳路徑匹配、司機和乘客匹配、訂單分派、供需預測、預測乘客體驗。

其中,司機和乘客匹配、訂單分配是智慧排程的核心。

在某個時刻有成千上萬的乘客,同時也有成千上萬的空閒車輛,要完成司機和乘客的最優匹配,最大限度提升匹配率和成交率。

一個好的排程演算法,能讓乘客等待更少的時間,帶來更好的體驗,同時也能讓司機在相同的時間拉更多的人,帶來更多的收入。

林奇詳細的瞭解了這些存在的問題之後,就開始蒐集相關的資訊,然後進行排程演算法的開發。

首先下載了一個小城市的地圖,包含了大部分的商家、辦公樓、地鐵入口、公交站點、電影院、酒店、飯店、公園、小區等和生活息息相關的場所。然後寫程式模擬城市中的隨機乘客和固定數量的計程車。

沒有拉人的時候,計程車在路上來回的跑,範圍一般在自己家附近,也不跑太遠的地方。

模擬的機器人有了出行計劃之後,就會用手機打車,然後通知附近的車輛。演算法會根據司機的位置,和上車地點目的地,這些所有的相關因素,綜合考慮起來,最後給相關的人推薦,然後模擬司機搶單模式。

通過這樣的方式,用一些固定的人固定的時間打車到不同的地方,來訓練自己的演算法程式。

剛開始的時候,林奇發現自己的演算法,總是不盡人意。

分配的的訂單總是有問題,有的時候給某些人分配的比較多的,而其他人分配的較少,並且乘客的等待時間,還有司機的等待時間、收入都不是很滿意。

於是林奇不斷地調整演算法,每一次調整都是在曲折中前進,最佳化了很多次,每次能做到讓乘客和司機更加滿意。

不過還是無法和細細公司,公佈出來的演算法的結果相比。

一直到比賽的前幾天,林奇才想到了一個新的演算法,能更加最佳化這個演算法。經過在不同的資料集裡面測試,林奇發現這個演算法模型比官方公佈的資料效果還要好。

到了參賽的時間,林奇非常有信心的帶上了自己的程式坐上火車去參加比賽。