「最短的路,不一定是直的那一條,而是走起來最順、回家時負擔剛好能承受的那一條。」
如果不開雜貨店,我祖母應該會成為對物流管理研究的先驅吧!
嘉里村的地圖,畫在紙上(現代會是 google map) 是一回事,在祖母的腦子裡又是另一回事。她的地圖上沒有路名,只有一個個節點,一個個人名對應到房舍。
而連接著這些節點的,不是柏油路,而是一條條不同的路線,每一條都有不同目的考慮而採用,換言之,可以看作每一連線加上權重(簡單來看, 0代表不連結,1代表去程連結,-1 代表回程連接)的選擇,這在數學圖論是最不言而喻的符號化表達。
腦中的 GPS
祖父母的雜貨店工作,除了顧店,還得主動出擊去尋、巡、收空酒瓶。這可是重要的售後服務,除了用敦親睦鄰來解釋之外,前面有提到沒有收押金的瓶子那可是要收回來的。
我還記得五六歲時一瓶米酒16塊維持了很久(考據是在石油危機時從9塊漲到16塊,後來1999要加入WTO就漲到130甚至180),押瓶費是兩塊,相對於16塊一瓶的米酒來說可是比例相當大。
也因為收酒瓶這個理由,我得以去過附近每一家的廚房或者內廳,看過那些老兵的簡陋起居,見證甚麼是雜亂,還有身無長物的形容。
公賣局送酒時會同時收酒瓶,酒瓶不夠就會另外扣帳。
回想卡車司機很厲害,我家門前有個小坡,他們總是可以準確地倒車停好在門口,然後跟車的人速度很快地把一箱一箱的酒甩下車,當然有另外幾人會接好,整整齊齊地排放在門前一棵欖仁樹下,然後把算好的回收空瓶甩回去上車,排好,發車往下一處。
如今那棵大樹已經超過七十五歲了,依然在它原來的位置上,年年冬盡落葉,春天再發新芽。
我的表哥世浩,三姑媽的二兒子,讀工校的時候暑假打工,就是跟著公賣局的載運車北花蓮跑透透,在溽暑下光著膀子揮汗如雨地工作。
收瓶子的路線
現在的快遞員會依賴導航系統計算最短路徑。但祖母有一套獨特的「演算法」。
每次出發前,她會先看天色,然後決定今天的主攻方向。她絕不會像無頭蒼蠅一樣亂繞。
「今天去崁下那邊,剛發餉,老兵一定喝酒。」她會這樣判斷。
最讓我佩服的是她獨特的”回溯法”。
一般人直覺是從家門口開始,看到這家有瓶子就收,看到那家有就拿。這是貪婪演算法的特徵,眼前有什麼吃什麼,按照順序收起來。
但祖母搖頭:「戇牯 (ngòng-gú,意思是傻孩子),你一出門就收滿了,要怎麼走到最遠的那家?拖著重拐拐 (zhong guai guai) 的瓶子走冤枉路嗎?」
她的策略是:先提空的台灣LV 袋,走到預定路線的最遠端,然後一路往回收。
祖母的個頭不高大,身材瘦小,但她可以雙手提滿共約10多支酒瓶,最早我有看到過竹背籠的印象,大多數客人可能也體會到祖母年紀,大多數是直接拿空瓶回來買酒,祖母有沒有記下來我不知道,但是她的記憶力極佳,附近大約有幾處會囤積空瓶她記得清清楚楚。
這在物流學上是非常高明的策略。因為人的體力是有限資源。去程時體力好,負重輕(空手),所以用來克服最遠的距離;回程時體力下降,負重增加,這時候每走一步都是折磨,所以必須讓這段路程是朝著家的方向縮短。
數學家也頭痛
很多年後我學到,上面的路徑其實是數學界公認的難題——旅行推銷員問題 (The Traveling Salesman Problem, TSP)。
題目很簡單:「一個推銷員要拜訪 N 個城市,最後回到原點,怎樣走的路徑最短?」
別小看這個問題。如果只有 3 個點,很好算。但如果是 10 個點、20 個點,可能的路徑組合就是天文數字(階乘級數成長)。即使是現代電腦,要算出絕對最佳解都要運算很久。
這是一個 NP-Hard 問題。沒有簡單公式可以直接套用。
但祖母不需要絕對最佳解。她使用的是啟發式演算法 (Heuristic Algorithm,我覺得也可以翻譯成探索式的演算法)。
她不需要算出那條理論上最短的路線(例如總長 3.5 公里),她只需要找到一條滿意解(例如 3.8 公里),但這條路線符合她的體力限制,而且順路經過誰誰誰家打聲招呼或者檢查一下。
這更接近圖論中容量限制車輛路徑問題 (CVRP, Capacitated Vehicle Routing Problem)。
因為她的雙手容量有限。如果收了老張的 10 支瓶子,可能就裝不下老林的5支。
所以她的腦中隨時在動態規劃-----
老林家通常有 5 支,先去收;隔壁老陳只有 1 支,還要繞小路,今天先跳過(這個技巧是修剪節點)。
這種即時的決策,就像是現代導航裡的重新規劃路線。也帶了一點貝氏機率(Bayesian probability)的預測調整。
利用新得來的資訊(或者手上已經收了不少的瓶子),去修正原來經驗(先驗)所做成的判斷,從而得到更準確的新決定。
一筆畫的藝術
與祖父會用老式腳踏車出門不同,祖母出門幾乎都是走路,不過想來有點遺憾,當我認知到祖父祖母事實上已經是超過70歲的老人家時,已經是綁在以升學為主的青少年時期。小時候跟著祖父母作了不少實際上的「經營管理」卻不自知。
祖母收瓶子的路線幾乎不走回頭路。這正是歐拉 (Euler) 的柯尼斯堡七橋問題與歐拉路徑 ——一筆畫問題,咸信這是現代圖論領域的開山之作。
能夠在不重複折返的前提下一筆畫寫出或一次走完該路徑的條件是甚麼?
雖然現實中不可能完全不重複走過,但祖母總是盡量讓路線形成閉合迴路 (Loop)。
大路,小巷;去程,回程。不會是遍歷法,是拆分成不同小的組合。
祖母的一圈路程設計,中間是她對力氣和時間的計算。。
一點都不誇張,祖母在無形之中把網路的觀念種子也埋進去。
人生的路徑規劃
後來離開花蓮,到西部求學、工作。面對各種圖面上的路線,捷運,登山,元件布局,電路板。。。。或是人生中遇到兩難的選擇,常想起祖母背影與她直覺思考的方式。
有時候太依賴一種考量下最短路徑的選擇。總想著要最快到達目的,忽略了其他切入的角度。
祖母教我,最終是要往來時走回的。
規劃路線時,不要只看起點,要看終點。以終為始的思考。
要知道自己的負重極限(Capacity,能耐)。如果一開始就貪心背負了太多承諾(瓶子),可能根本走不到最遠的那個目標,或者在回程的路上就累垮了。
那個身影瘦小的祖母背影,是能在空間與時間取捨的精算師。
文章定位: