Scalers:談成長中的NP完全問題
Scalers點評:本文藉助了一些理論計算機的知識,但是希望對你的思考有所幫助。
成長是一件耗費腦力的問題,相當於要消耗我們的智力資源,我們要思考,要想事情,要分析,要邏輯推理,然後我們會得出一些結論。這些結論你拿出手以後,也許在前人看來早就得出過,或者其他人看來是很明顯的。但是儘管如此,如果你要明白並且可以自如地用這些結論,你需要做的事情,一個都少不了。
當然除了智力資源,體力資源也是發揮了重要的作用。但是為了討論方便,我把這些統稱為資源。所以如果你要實現自己的成長,那你就要投入資源,而且你要確保資源的持續供給,不然你的成長就會沒電……
我的觀點是,我們消耗一些資源,突破自己,達成進步,這裡面會有一個很有意思的現象。我先引一條我以前發的微博:
@Scalers:這個世界是公平的。如果你長得好看那你通常還會很有錢。。。有重度拖延的人往往閱讀障礙,而且往往又很窮,然後心氣也很高。。。沒有行動力的人通常很猶豫,然後還特別膚淺,喜歡投機取巧。。。不喜歡動腦的人往往心浮氣躁,喜歡抬杠反駁破口罵人然後工作上也不會有太大成績。。貧窮和美德有點遠。。
我的大概的意思就是,如果你是一個靠譜的人,那往往你可能很多方面,都會比較靠譜。如果你有了一個好的品質,那你可能橫向發展出其他的品質。如果你有了一個優勢,那你可以基於這個優勢,變通出其他的優勢……
於是我有這麼一種理解。成長就像解我們內心的難題,一旦我解出了一個,好像就可以順理成章地,把剩下的許多問題觸類旁通地都解了。但是我要解出一個,其實要消耗我很多的資源,比如我的心力、比如我的投入、比如我的時間……
但是一旦我全力解出了一個,或者解的比較好,那麼我可以基於這個優勢,順便轉化成其他的優勢。
有點抽象。我舉一個自己的例子。
從2014年開始,我持續寫作。每天都做這一件事情,不斷地持續中,我發現我開始收穫寫作之外的一些東西。比如我比以前更加有行動力,比以前思考問題更加清晰,比以前做事速度更快了,不會有那些亂七八糟的糾結和迷茫了,更加堅定了……
就像我鉚足一口勁,做好了一件事情,然後我意外地發現,其他的許多事情,也可以迎刃而解。
這其實給我很深刻的啟示,我們內心可能有很多慾望,很多想法,但是我們如果沉下心、踏實幹好一個事情,往往就足以打開許多局面了。但是問題就是,我們往往這也想要,那也想要,於是我們相當於想同時解出多個難題。但是我們的資源又不夠,於是精力分散開來,火力不夠猛,自然也就出不來好的結果了。
於是我們就迷茫、糾結、痛苦、憂愁……於是各種慰藉人心的雞湯故事,告訴你這樣也是生活的正常狀態,這樣也可以閉著眼睛感覺自己很幸福。但是事實上就是,我們搞不定,我們沒得選,我們沒辦法。
所以回到成長的概念上,我們要做好心理準備,其實我們在解一類很難的問題,而這是要消耗資源的。
理論計算機裡面有一個概念叫「NP完全問題」,這是指一類很難的問題。為了便於大家理解,我不打算用特別專業的術語介紹,用一些簡單的概念來介紹。當然會犧牲一些準確性,所以專業人士就先容忍一下,因為我也是計算機專業人士。從專業角度,下面的話可能漏洞百出,但是我還是盡量寫完。
生活中我們會有一些很明確簡單的問題,比如我要去買瓶水,那出門找個商店,就可以搞定。這些是可以用明確步驟明確時間內完成的問題。計算機里叫P問題。
我們還有一些問題,就是一旦你解開以後,回頭看感覺很容易,一目了然的問題。這類問題的求解困難,但是驗證卻很容易。求解困難的意思是,我們在往前走的時候,往往不知道哪條路徑可行,於是在不停地嘗試。而驗證容易的意思,可以理解為,一旦有人拿出一個解,你很容易驗證這個解是不是靠譜的。就像我們現在如果做的好做的成功,於是我們會說,當時的選擇很對一樣。或者科學家有了重大發現,我們一看也感覺順理成章一樣。這一類問題在計算機里叫NP問題。打一個不恰當的比方,比如中學的時候你可能會覺得解方程比驗證一個方程的解更難,可以看成是這種風格。
然後還有一類難度很高的問題,叫NP完全問題。這一類問題有一個特點,就是問題之間是可以相互轉換的。相互轉換的意思就是,如果你能解出其中一個問題,那你就能解出其中的所有問題。注意這裡的解出是指「有效率」地解出,不是一個一個地去嘗試枚舉。
比如,旅行商問題(TSP問題,Travelling Salesman Problem)就是一個NP完全問題。假設有一個旅行商人要拜訪N個城市,他必須選擇所要走的路徑,路徑的限制是每個城市只能拜訪一次,而且最後要回到原來出發的城市。路徑的選擇目標是要求得的路徑路程為所有路徑之中的最小值。
當然你說如果我只要去三個城市,那你口算都能得到結果。但是當假設有上億個城市,那計算機就沒有一個「有效的」解法。當然一條一條試,可能可以試出來,但是這個代價太大,計算量爆炸。
科學家已經證明了,如果你能解這個TSP問題,那你還能同時解背包問題,3SAT問題等等……(名詞不解釋了)。
針對NP完全問題,目前尚無有效的最優解法。也就是你無法有效地找到那個最佳的答案,但是有一些手段,在嘗試逼近最佳答案。比如有一種啟發式演算法,就是在尋找答案的時候,每一步都盡量選擇一個相對較優的答案。
這個對應到我們個人的成長中,其實就是我們的成長問題,往往未必就能知道那個最優解,因為我們的時間是不可逆的,選擇是不可回溯的,但是我們卻可以根據一定的原則,盡量選擇一個靠優的解法。
而假使我們能解一個這樣的難題,其實我相信,成長中的其他難題,也可以迎刃而解。
那成長中會有什麼樣的NP完全問題呢?我這裡列舉幾個,我相信如果你能解其中的一個,其他的也會相應地破解。
三階以上(1000天以上)持續行動的問題
提前行動重要事情不拖延的問題
理性對待金錢和時間的態度問題
遇到事情主動承擔責任的問題
不管是否喜歡把自己手頭的事情做好的問題
……
以我個人持續行動的經驗的總結,如果你能在解決以上任意一個問題的過程中,下了足夠的工夫,做的足夠好,那你很容易在其他問題上,獲得重大的進展。
當然如果你對理論計算機感興趣的話,你可以讀一下以下鏈接。用姚期智先生的話來說,這才是真正的計算機科學。
https://en.wikipedia.org/wiki/NP-completeness
https://en.wikipedia.org/wiki/Theoretical_computer_science
相關閱讀:
ScalersCast第09期:正循環與負循環:兩種生活狀態
ScalersCast第37期:好狀態,壞狀態
ScalersCast第34期:如何走出循環:從對時間與金錢的態度說起
Scalers:一句話教你如何搞定拖延症
推薦閱讀:
TAG:成长 |