據說,柏拉圖有日問老師蘇格拉底:甚麼是愛情?老師答:「前面有片麥田,你走一趟,選最大最漂亮的一根麥回來,但選一根後不能改變主意,也不准走回頭路。」結果柏拉圖空手而回:「我每次看見一根好麥,總覺得之後會遇上更好的,三心兩意下,走完麥田都沒拿到。」老師答:「這便是愛情。」
又一日,柏拉圖問:甚麼是婚姻?老師叫他去森林,重複以上規矩選一棵樹。今次柏拉圖果然有收穫:「經過上次教訓,我選了一棵不特別漂亮的樹便算了。」老師答:「這便是婚姻。」
你或認為,這種愛情觀很「灰」,究竟應怎樣找一生中最愛?運用《Algorithms to Live By: The Computer Science of Human Decisions》介紹的運算法,我會建議柏拉圖:最先遇上的一批樹,是用作估計整個森林質素的資料,無論幾好都要放棄;看過37%的樹之後,碰到一棵比之前見過都好的,便是最優選擇(不幸遇不上,就認命選森林最後一棵)。按此方法不一定會選中最好的一棵,卻保證有最大機會選中。這是「最適當停止點」(Optimal Stopping)運算法一種,有數學理論證明,蘇格拉底都不能駁倒。
現實世界裏,感情沒有不准吃「回頭草」這回事,但類似的法則,其實在找工作、買樓租樓等日常差事都適用,只需把「森林」界定為「我最多會考慮X份工作機會」或「我最多會用X個月找份新工作」,最初找到的37%選擇(或37%時限內遇上的選擇)作為之後比較基礎。就算看不懂有關數學理論,有方法參考總好過完全撞手神,而對無宗教信仰的人,也可作為「交託」吧。
另一個應用電腦運算法例子:一般人認為,日常工作收到的電郵,應該盡快分類收藏才最方便將來使用,其實這忽視了歸類也很費時間,可能得不償失,也沒好好利用電郵搜尋功能。但不能靠電腦搜尋的紙張文件又如何?
電腦先驅為應付資料儲存成本和提取速度的取捨,設計了快速存取區(cache)概念,作為常要提取應用資料的「臨時收容所」。用家居比喻,家中儲物櫃是快速存取區,迷你倉就是長期收納。問題是,除非你能未卜先知,如何準確決定甚麼資料放在快速存取區?電腦科學家研究後發現一個簡單規律:越是最近期用過的資料,最大機會很快會重用。
借鑒這概念,我們其實毋須急於把所有文件歸類,而是開闢一個快速存取區,存放所有剛收到或用過的文件。
我的辦公桌,正是長期有這樣一叠文件,夾雜不同項目和題材,外人看來混亂,原來暗合電腦設計智慧!
姚崢嶸