算法之美-讀書筆記

出自楠悦读

作者布萊恩·克里斯汀,《華爾街日報》暢銷書《最有人性的人》作者,該書入選《紐約時報》編輯推薦書目,被《紐約客》雜誌評為年度好書。湯姆·格里菲思,加州大學伯克利分校心理學和認知科學教授,計算認知科學實驗室主任。

我們所有人的生活都受到有限空間和有限時間的限制,因此常常面臨一系列難以抉擇的問題。在一天或者一生的時光里,哪些事是我們應該做的,哪些是應該放棄的?我們對雜亂無序的容忍底線是什麼?新的活動與熟悉並喜愛的活動之間如何平衡,才能取得令人愉快的結果?這些看似是人類特有的難題,其實不然,因為計算機也面臨同樣的問題,計算機科學家幾十年來也一直在努力解決這些問題,而他們找到的解決方案可以給我們很多啟發。


如何掌握最佳決策時機

首先,怎麼抓住最佳決策時機?在所有最優停止問題中,最大的難點不在於選擇哪一種可選方案,而是確定自己需要考慮多少種可選方案。這些問題往往會引發不同的後果,不僅陷入愛河的人和需要租房的人必須慎重考慮,司機、房主等也常常面臨同樣的抉擇。

這類問題之所以難以抉擇,一是未來很難預測,你只知道現在和以前遇到過的人和事物,未來什麼樣,你並不知道;二是已經做出的決定不能反悔,一旦拒絕,就等於永遠錯過。在做出具體的選擇之前,我們首先要找到決策的最佳時機。

零信息博弈

比如,買房,在同時面對幾套房子時,應該買哪套?應該在什麼時間做。那麼,是現在就買呢?還是考慮5年以後再買呢?

這就叫做零信息博弈,也就是在信息極度稀缺的情況下,分析潛在可能,尋找做出最佳判斷的時機。根據計算機的運算,只要是零信息博弈,最佳的決策時機,都是同一個時間點,那就是你決策總時限的37%。

比如,跳槽,你給自己限定,一共要面試10家名氣差不多的公司。根據37%原則,你在前3家公司的面試中,不管待遇多高,都要果斷拒絕。從第4家公司開始,一旦發現一家比前3家都合適的公司,一定要努力爭取。

在37%這個時間點上,你有最大的概率選到最好的結果。那麼37%是怎麼算出來的呢?首先我們假設,你面前有一堆寶箱,每個寶箱裡都裝着數額保密、高低不等的獎金,你可以從中挑一個帶走。

好消息是,你擁有無限次機會,而且可以先開啟寶箱,看到裡面的錢數之後再決定要不要拿走。但限制是,你一次只能開啟一個寶箱,一旦決定不要,就不能反悔。未來的寶箱是未知的,過去的寶箱不能反悔。

那麼,應該在打開第幾個寶箱的時候做決策,才最有可能獲得最高的獎金?假如寶箱的總數量是兩個,不管你選哪個,中大獎的幾率都是50%。那假如是三個,那麼當你開啟第一個寶箱,裡面是2萬塊。你可以拒絕,然後再開啟後兩個,但後兩個的獎金可能還不如第一個多。

開啟第一個寶箱時,不管裡面有多少錢,它都是你截止到目前能得到的最高金額,是100%的目前最佳。而隨着陸續開啟寶箱,這個目前最佳的概率會被後面的寶箱平攤。開啟第二個時,每個是目前最佳的概率都是一半,開啟三個,每個是目前最佳的概率都是三分之一。開啟的寶箱越多,目前最佳的概率就越低。按照這個邏輯,我們應該毫不猶豫地選擇第一個寶箱。但是,這種做法對嗎?

最佳決策時刻

還有一個方法,因為在開啟第一個寶箱時,我們沒有任何方法能斷定,這就是最大的寶箱。同樣,在開啟第三個寶箱時,我們也沒有任何選擇,因為已經拒絕了前兩個寶箱。但是,在開啟第二個寶箱時,我們既掌握了一些信息,又有一定的選擇權。也知道它跟第一個寶箱比誰多誰少。而第二個寶箱,就是我們做出最優選擇的時候。在一共有三個寶箱的情況下,開啟第二個寶箱是遊戲總進程的33%。

現在假設有10個寶箱,按照同樣的邏輯計算,最佳的決策時機是第四個,也就是總進程的40%。當這個數字繼續放大的時候,這個數字開始趨於穩定,當有100個寶箱時,最佳決策的時機,是第37個寶箱。即便這個數字在繼續增加,這個最佳決策時機基本不會再變,哪怕總共有1000萬個箱子,計算機算出的最佳決策時機,仍然是37%,也就是第370萬個。在這個節點上,我們有最大的概率,選到最高的獎金。

作者說,最佳的決策時刻,其實就是決策時的前半部分稍微靠中間的位置就行了。這個最佳決策時刻,在計算機領域裡被稱為最優停止。也就是我們俗話說的見好就收。

如何合理規劃時間

37%原則並不是在所有情況下都適用,它有兩個局限。

第一,37%原則所解決的問題,都是事先已經限定了明確的時間結點的,比如買房,必須在2個月內做決定;跳槽,已經給自己規定好了要面試10家公司。但在實際決策中,結點往往很難在一開始就決定好。我們總會期待未來會有更好的機會,未來的不確定性,往往讓人在決策的時候更加舉棋不定。

第二,人生畢竟不是數學題。在婚姻大事裡,很多一見鍾情的故事都被傳為佳話,在事業選擇中,夢想和熱愛往往超過了利弊權衡。37%原則是一個選項,有效,但絕不唯一。所以,我們應該知道如何管理時間?同時面對很多任務,應該怎麼安排優先級?

作者說,當一個時間段內,同時有幾項任務時,我們應該從耗時最短的任務做起。比如你同時有兩件事要做,一件很簡單,一天就能幹完,另一件很難,需要五天,你就應該先做那件一天就能交差的工作。

最優緩存策略

那麼一天幹完和五天幹完有什麼不同呢?我們看看作者的解釋。根據作者的觀察,人腦和計算機的存儲方式,都依賴於緩存。緩存,指的就是一個高速的存儲讀取空間。而最優緩存清理策略從本質上講,就是在緩存已滿時,將未來最長時間內不會再次使用的數據從緩存中清理出去。

比如,電腦硬盤是一座巨大的圖書館,存儲能力很強,但是每回你想去圖書館找書,都要從海量的書籍里查找,很不方便。所以你把那些常用的書借回家,放到你的書桌上。你的書桌,就相當於電腦緩存,它雖然存儲能力有限,但讀取速度很快。

在電腦里,緩存是分級的,根據使用頻率不同,分為很多級。同樣,人腦也有類似的緩存機制。大腦會根據信息最近的調用頻率不同,在大腦里形成排列。最近調用越頻繁的信息,就儲存在越接近記憶表層的位置,越容易提取。我們能夠迅速提取的記憶,其實只是記憶總量的一部分。 換句話說,硬盤的空間很充沛,但緩存資源很珍貴。我們當前能夠運行多麼複雜的想法,取決於大腦的緩存區還有多少剩餘空間,原理就跟電腦調用程序一樣,及時清理緩存非常重要。所以,我們從耗時最短的任務做起,目的就是為了及時清理大腦的緩存。

假設,我們同時面臨 A 和 B 兩個任務。A 任務要耗時5天,B 任務耗時1天。假如先做 A 再做 B,那麼你在執行 A 的這5天裡,心裡多少也會惦記着 B,它也在不知不覺占用你大腦的後台緩存。也就是說,B 實際占用大腦的時間不是1天,而是6天。這樣A和B加在一起,就相當於5天加6天,一共占用了你的大腦11天。假如反過來,第一天就完成 B,後5天再完成 A,那麼就相當於 B 占用了大腦1天,A占用了大腦6天,加起來一共7天。

所以,總量固定的任務,前後順序不同,對資源的占用時長也不同。這就是計算機的思考邏輯,它會始終確保自己處在潛能最優狀態,隨時有能力運行更複雜的程序。我把這套策略稱之為最優緩存策略,它可以永遠讓自己處在最佳待機狀態。

任務密度

這種優先級排序有一個前提,就是每件任務的重要程度是一樣的。考慮到真實情況下,任務有輕重之分,我們在應用最優緩存策略時,還需要加入一個參考因素,叫做任務密度。任務密度,就是一項任務的單位時間價值。

比如一件任務需要10個小時完成,可以創造10萬元的經濟價值,那麼這項任務的密度就是10萬元除以10個小時,也就每小時1萬元。

也就是說,任務密度,就相當於工作的性價比。當同時面對很多耗時不同,重要程度不等的任務時,我們應該從性價比最高的任務做起。這樣一來,我們不僅可以及時清理大腦緩存,釋放更多的可用空間,還能確保當前正在做的事情,一定是最有價值的。

總的來說,當某件事有具體的總時限時,我們可以試試37%原則;而在同時面對多任務時,可以列出一張清單,從耗時最短或者任務密度最高的事情做起,這樣可以更好的幫助我們完成任務,讓我們永遠處於最佳狀態。

算法之美 導圖
算法之美 導圖