文章
UPS 排送貨順序,手排出人命
上哲 @nuva.ceo發布於
車上 120 個包裹,你會怎麼決定先送誰家?
先送最近的?但王阿姨說她下午才會在家。先送急件?偏偏一個在城東、一個在城西。你在腦中排了三分鐘,排到第 15 站就開始頭痛(後面還有 105 站)。
UPS 的司機每天都在為這件事苦惱。依《財星》2014 年的報導,一位司機一天通常要停 120 到 175 個點;UPS 估算,這麼多點能排出的走法寫成數字有 199 位數,比地球存在至今的奈秒數還多。一條一條比?太陽要撞地球了。
為什麼會多成這樣?自己算算看就知道。3 個點,順序有 3×2×1,也就是 6 種;10 個點,就有 362 萬 8,800 種。每多一個點,就要再乘一次,數字像滾雪球一樣失控。
電腦先生,交給你惹
UPS 的答案叫 ORION(On-Road Integrated Optimization and Navigation)。UPS 在 2020 年的新聞稿說,ORION 從 2012 年開始上路,當時已用在美國、加拿大和歐洲超過 66,000 條路線;自導入以來,每年替公司少開約 1 億英里、省下約 1,000 萬加侖燃油。1 億英里有多遠?大約可以繞地球 4,000 圈。
先定義什麼叫「最好」
這裡用到的是最佳化演算法(Optimization):在一大堆可能裡,找出讓某個分數最好的那一個。
一個最佳化問題通常有三個零件。第一是「選項」,也就是可以怎麼做,這裡是每一種送貨順序。第二是「目標」,拿什麼打分數,例如總里程越短越好,或總時間越短越好。第三是「限制」,哪些規則不能破,例如這家說 10 點前送到,那家只收下午件。三個零件都講清楚,電腦才知道要比什麼、哪些答案一開始就不能選。
送貨排序是經典「旅行推銷員問題」的親戚。這是數學家研究了幾十年的老題目:一位推銷員要跑完清單上的每個城市,最後回到出發點,怎麼走總路程最短?題目一句話就講完,點一多,卻難到連最快的電腦都很難保證找到真正的第一名。UPS 的版本更麻煩,因為還多了時間窗、只收下午件這些限制。
系統收到的是今天的站點、地圖和路況,還有一堆限制。它先把「最好」寫成分數,再在符合限制的走法裡,找分數最好的那條。
比不完,那就邊換邊比
199 位數的可能不可能全部比過。這類系統通常先排出一條還不錯的路線,再一小段一小段調換順序,換了變好就留下,換到改不太動為止。
舉個例子:原本的順序是甲、乙、丙、丁,系統試著把乙和丙對調,變成甲、丙、乙、丁。總路程變短,就留下這個新順序;變長,就換回來,再去試下一組。一輪一輪試下去,路線就越來越順。
這種「不保證找到第一名,但很快找到夠好的答案」的做法,叫做啟發式(Heuristic)。《財星》的報導說,ORION 每條路線會分析約 20 萬種可能,大約 3 秒就給出路線。20 萬聽起來很多,跟 199 位數比起來,連零頭都算不上;但對每天早上要出車的司機來說,3 秒拿到一條夠好的路線,比等一整天拿到完美的路線實用得多。
早上的最佳,中午就過期
最佳化找到的「最好」,只對它拿到的資料最好。早上排好的順序,碰上中午臨時多一個取件、某條路突然塞住,就不再是最好的。UPS 在 2020 年替 ORION 加上動態最佳化(Dynamic Optimization),白天路況、取件承諾和訂單一變,就重新計算路線。
動態最佳化的意思是:不是早上排一次就算了,而是資料一變,就重新打分數、重新排。有點像導航 App 發現前面塞車,幫你改走別條路;只是 ORION 一次要顧的,是一整車的包裹和每一家約好的時間。
如果「最好」只看里程,一條比較短、卻要在大路口等很久左轉的路,就可能被排進來,司機只能卡在路口,看著綠燈一次又一次錯過。系統不是故意找司機麻煩,而是分數裡沒有「等左轉」這一項,它就看不見。最佳化很聽話:你叫它比什麼,它就只比什麼。
那 120 個包裹,最後誰先送?
電腦能做的,是在你頭痛之前,把幾十萬種排法比過一輪,交出一條夠好的路線,路上有變化再幫你重排。它做不到的,是自己知道阿姨下午才在家,或哪個路口左轉要等三輪紅燈;這些事要有人先告訴它,寫進目標或限制裡。
所以最佳化演算法不是一位比較聰明的司機,比較像一個很會比、又很聽話的計分員。但現實世界最難的不是算,而是知道你要的「最好」,到底是哪一種。
延伸討論
你出門要辦好幾件事時,通常怎麼決定先去哪裡?
來源(查證日 2026/11/08):
- The shortest distance between two points? At UPS, it's complicated(Fortune)(在新分頁開啟)・2014/07/25
- UPS To Enhance Orion With Continuous Delivery Route Optimization(UPS 新聞稿,Nasdaq 轉載)(在新分頁開啟)・2020/01/29
- 旅行推銷員問題(維基百科)(在新分頁開啟)
文/上哲(ChatGPT 協力)
0 個愛心0 則留言
登入並驗證手機後就能留言。登入