看到一篇不錯的文章,與大家分享下。
----------------------------------------------------
元旦到來,炮竹聲聲,辭舊迎新,喜氣洋洋。
然而我卻高興不起來,又老了一歲,離死又近了一年!
雖然說得不吉利,但卻是事實。靈丹妙藥只能讓人早死,體格強壯并不增壽延年,求佛信神更是自欺欺人。我幾十年來默默研究,但結果卻一次次讓人失望。
原來人以及每一個高等生物都有“設計壽命”,大多數器官都沒有再生能力,甚至沒有自我修復能力。隨著年齡的增長,功能逐步衰退。最核心的器官,大腦,更是連細胞的再生能力都沒有,每天死掉
10
萬個細胞,成年后,大腦就進行性的不斷萎縮。死亡,不可抗拒!
我絕望了,女媧造人,水平不高。
我開始研究進化論。進化論告訴我們,一個物種要生存,必須與時俱進。這一點很容易接受,因為自然環境在變化,其他物種在變化。但為什么不是這個物種的每個個體“與時俱進”,而是不斷的用新一輩替換老一輩?君不見要讓一個新的個體成長到成年是多么困難,讓老一輩死掉對一個物種來說是多大的浪費。大自然幾億年的生物進化,為什么選擇了這樣的方案?為什么物種的生存要以其個體的死亡為代價?為什么不是“適者生存”,而是“適者的后代生存”?
直到我做了多年的軟件,才終于明白了這里的道理。
我早期的程序大多是用原有程序改寫而成。漸漸的,我發現,改程序越來越不容易,當程序大到一定程度后,改寫不如重寫。后來,我進入了專業軟件公司,一位前輩告訴我,早在
60
年代,
IBM
就有專家得出結論,如果對一個軟件的改動超過
15%
,則改寫不如重寫。
原來,跟人一樣,軟件也會死亡!或許,我們可以從這里入手,搞清人為什么會死亡。
如果我們要制作一個有
N
個對象構成的軟件,第二個對象需要關心與第一個對象的關系,第三個對象需要關注與第一、第二個對象的關系,第
n
個對象需要關注(
n-1
)個關系。或者說,在構筑新軟件的過程中,進行一步的難度正比于
N
,或者說正比于系統的復雜度。
如果我在老程序上改動一個對象,則要改動(
n-1
)個關系,改動(
n-1
)對象,而這(
n-1
)個對象又要牽扯
(n-2)
關系和對象,推延下去,在“完全耦合”的前提下,改動一個對象需要對系統中所有對象和所有關系都改動一遍。也就是說,進行一步的難度正比于
N
平方!這就是為什么對于強耦合復雜系統,修改往往不如重做,這一點結論適用于軟件,也適用于生物界。
看來女媧造人時作出了最佳選擇,因為人是一個強耦合復雜系統,改進一個成年人要比重新培養一個孩子困難得多。要讓人類發展,只好讓人死亡。
這讓我想起了作人工智能軟件時的經歷。我們當年做的智能軟件要用大量數據“訓練”。從一個嘗試解開始,通過一次又一次的迭代,每一次迭代生成新一代的嘗試解,扔掉上一代的嘗試解。這樣看來,我們每個人只是人類在適應環境的過程中的一個嘗試解。我的壽命,只是構筑、測試我這個嘗試解所需要的時間。復雜的生物、生存方式應該有更長的壽命。長期穩定環境下的生物也應該有更長的壽命。
總結之,我之所以不能長生不老,是因為(
1
)我是強耦合構造(
2
)我只是一個嘗試解。
但是,我還是想長壽!只要能長壽,我愿意答應任何要求!
冬日細雨中突然炸出一聲雷響,嚇得我手足無措,魂不附體。那是女媧的聲音,“嘗試弱耦合”。
(From
http://gocom.primeton.com/
)