最近讀完了英文圖書《指導生活的算法》——Algorithms to Live By: The Computer Science of Human Decisions,結合萬維鋼的“數學家告訴你系列”解讀,著實令人茅塞頓開,生活中常見的一些難題:買房、結婚、找餐廳、時間管理……在算法的指引下都迎刃而解。
關于本書和作者
本書的作者有兩位,一位是布萊恩·克里斯汀,他是美國布朗大學計算機學及哲學雙學士,還是2009年人工智能洛伯納大獎的得主,是一位文科特別好的理工男。另一位是湯姆·格里菲斯,他是加州大學心理和認知科學教授。
這本書是去年四月才出版的新書,目前只有英文版。這本書告訴我們,生活中的很多看起來很復雜的決策,原來都可以用算法來解決。聽這本書給我們的最大啟發是,與其渾渾噩噩地接受命運的安排,不如有點理性決策的精神,把決策變成一個數學問題,在這個充滿不確定的時代,給自己增加一些底氣。
核心觀點
第一,生活中的很多復雜決策,看上去沒有規律可循,實際上是可以用算法來解決的。
第二,很多時候我們會沉迷在細節里,看不清大方向,其實是犯了數學上的過度擬合錯誤。
第三,時間問題本質上是個數學問題,用數學家的辦法管理時間,才能活得更有效率。
生活中的很多復雜決策,看上去沒有規律可循,實際上是可以用算法來解決的。
問題一:想買房子了,卻拿不定主意該買哪套,怎么辦?
數學家用算法計算出的策略是,你要把這一個月的時間分成兩個階段。在第一階段,你只看不買,就是根據自己的購買能力,了解一下市場上哪些房子你喜歡,哪些你不喜歡。
記住在這個階段內你看到過的最滿意的那個房子。 等到過了37%這個時間點之后?,你就進入第二階段,從這天開始,你一旦遇到一個比第一階段那個最好的房子好,或者類似的房子,就毫不猶豫地買下來。
問題二:找結婚對象也可以用37%規則。
比如一個女青年,從18歲開始找對象,設定的目標是在40歲之前結婚,那么根據37%規則,她的兩階段分割點就是26.1歲。所以,在數學家看來,這個女青年的最佳擇偶策略是這樣的:26.1歲之前是觀察期,她應該只交往不結婚,但是必須要記住在交往的男生中間,自己最喜歡的是哪個。26.1歲之后是決策期,再結交新的對象,一旦遇到一個比那個人還好,或者和那個人差不多一樣好的男人,就應該馬上把他拿下。
問題三:經常為去哪家餐廳吃飯犯愁,怎么辦?
假設你家附近有個餐館,你已經去過15次,其中9次的體驗非常好,有6次的體驗不怎么好。你打算明天晚上出去吃飯,那么你是否應該嘗試一個新的餐館呢?數學家提醒我們,計算的關鍵在于時間因素,假設你還打算在這個城市住很久,那你就應該去積極探索新事物,冒點險是值得的,一旦發現一個好餐館,將來可以繼續去。可是如果你后天就要離開這座城市,那么在離開前的這個晚上,你需要的是最穩妥的體驗,所以該去你常去的那個老餐館。
很多時候我們會沉迷在細節里,看不清大方向,其實是犯了數學上的“過度擬合”錯誤。
先來設想一個場景。一個會議室里坐滿了人,一個年輕人對著PPT滔滔不絕,可是臺下聽報告的一個大佬,有點不耐煩了,隨便問了幾個問題,年輕人馬上被難住,于是大佬否決了年輕人的整個提案。在一線做事兒的人,用了很多很多精力專注于各種細節,可是大佬們想問題卻往往是寫意的,他們三言兩語就能發現問題的關鍵,作出正確的決策。
有個大學老師,從事教學工作的第一年,備課非常細心,1個小時的課程他會用10個小時準備,教案和PPT無比詳盡。到了第二年,他新開了一門課,可是因為工作太忙了,他并沒有那么多的時間來備課,不得不簡化倉促應對。他自己很焦慮,結果學生反而更喜歡新開的這門課。他準備的時間短,效果反而更好。數學家管這個現象叫做“過度擬合”。
關于怎么避免過度擬合,書中給了三個建議:
第一,限定思考時間。比如一天小時之內必須完成報告。
第二,限定內容長度。比如 “電梯談話” 。
第三,在白板上討論商業計劃,要使用粗的馬克筆,筆畫越粗,對你的思維越有利,越能逼著你去考慮大局。
時間問題本質上是個數學問題,用數學家的辦法管理時間,才能活得更有效率。
關于時間管理的暢銷書很多,流派和主張也很多。比如有人說,應該小事優先,小事直接搞定,它就不會再壓在你心頭了。可是也有人說應該要事優先,每天一到辦公室,就要先做完今天最重要的三個任務,完成了重要任務你才能真正省心。還有人說應該急事優先,可是也有人說重要而不緊急的事兒才是能左右你成長的大事兒。 所有這些說法,其實都是心法,而不是算法,是藝術,而不是技術。
數學家思考的是,找到一套算法給時間管理找個最優解。如果你的任務都是有截止日期的,數學家的建議非常簡單,那就是按照截止日期的的早晚安排任務,先做最早截止的任務。比如我給大家錄制得到說書,就應該按照每本書上線的順序錄。我們就把這個算法稱為“最近截止日期”算法。
舉例:你的冰箱里有很多水果,它們都有保質期,所以你的目標是盡可能在過期之前,把它們都吃掉。但如果你真的吃不掉,你的目標就應該調整為盡可能減少扔掉水果的個數。數學家的建議是,首先你還是用最近截止日期算法,也就是按照過期時間吃,哪個最先過期就先吃那個。吃了幾天一旦你發現這么吃下去肯定吃不完,你就應該扔掉剩下的水果中最大的那個,因為吃它需要花費的時間最長。也就是說,不管西瓜還有幾天過期,你都應該先把西瓜扔了。
然后繼續按照最近進截止日期吃,一旦發現又快吃不完了,再扔掉剩下的水果里最大的那個。 對應到完成任務,這就意味著如果你想要的是盡可能按時完成更多的任務,那你就應該先放棄那個占用時間最長的任務。
如果這個任務牽涉到別人的等待時間,我們就應該用“小事優先” ,也就是完成時間短的任務優先的原則。小事優先,可以確保讓等待的時間之和最小化。在小事和要事之間,怎么權衡呢?數學家的答案也非常簡單。你先估算一下每個任務的“重要程度”,然后你算一算每個任務的“密度”。一個任務的密度 = 重要程度 /?完成時間,然后你就按照任務的密度從高到底的順序去做事。這就能讓你總的心理負擔最小。
總結
生活中的復雜決策,如果用辯證法思維來解決,一定會陷入“哪種說法都有道理”的困局,用數學算法來思考問題,能幫我們避開這種無謂的困局,把決策變成一個數學問題,在這個充滿不確定的時代,提高自己作出正確決策的概率。