第十五章 人工進化 15.1 湯姆·雷的電進化機

湯姆·雷 剛把編寫好的小玩意兒放進計算機,它就迅速繁殖起來,直到幾百個副本佔滿了可用的存儲空間。雷的小玩意兒勉強算是個試驗性的計算機病毒,因為一旦離開他的計算機便不能再複製,所以它沒什麼危險。他只是想看看,如果病毒必須在一個有限空間里互相競爭,會有什麼結果。

雷的世界設計得很巧妙,在病毒老祖宗數以千計的克隆品中,有大約10%在自我複製時發生了微小變異。最初那個傢伙是一個「80」——叫這個名字是因為它的編碼長度為80個位元組。有些80發生了一點隨機的變異,成了79或81。這些新病毒中的一些變種不久就接管了雷的虛擬世界。它們進而再變異出更多種類。病毒80幾乎被這迅速增長的新「物種」大軍逼到瀕臨滅絕的地步。不過,它挺了過來,在79、51和45這些新面孔出現並達到數量峰值一段時間以後,80又死灰復燃了。

不過區區幾個小時,湯姆·雷的電進化機已經進化出了「一鍋培養液」,近百種計算機病毒為了在這個與世隔絕的世界中生存而大打出手。在花了幾個月的時間編寫代碼後,雷在他的首次嘗試中就孕育出了人工進化。

當雷還是個說話細聲細氣、靦腆的哈佛本科生時,就曾為著名的蟻人威爾森 在哥斯大黎加收集蟻群。威爾森的劍橋實驗室需要活的切葉蟻群,而雷受僱到中美洲茂密的熱帶叢林尋找並捕獲狀態良好的野外蟻群,然後運到哈佛。他發現自己特別擅長做這個工作。他的竅門是以外科醫生般的靈巧對叢林土壤進行挖掘,搬走蟻群的核心部分。需要搬走的是蟻后的完整內室,包括蟻后自己、她的看護蟻以及一個儲存著足夠食物的微型蟻園,以在運輸中確保蟻群們不會忍飢挨餓。年輕的新生蟻群是最理想的了。這種蟻群的核心部分正好可以裝進一個茶杯里。而另一個技巧就是找出藏在森林植被下的很小的蟻巢。只需幾年時間,這個巴掌大小的小蟻群就可以填滿一個大房間。

在熱帶雨林採集螞蟻的同時,雷還發現了一種不明種類的蝴蝶,它會尾隨行軍蟻的行軍路線。行軍蟻吞噬其前進道路上所有動物的殘忍習性,會把一群飛蟲趕得慌不擇路。一種鳥逐漸形成了跟隨這個掠食大軍的習慣,愉快地享用那些在空中四散奔逃的蟲兒。而在緊隨行軍蟻大軍的飛鳥身後,蝴蝶又接踵而至。蝴蝶尾隨其後的目的是享用「螞蟻鳥」的糞便「大餐」——那是產卵所急需的氮的來源。螞蟻,「螞蟻鳥」,「螞蟻鳥蝴蝶」,也許還有誰知道什麼玩意兒的東西跟在後面,組成了一支雜牌軍,像一群串聯好了的吉普賽人一樣,浩浩蕩蕩地橫掃這片叢林。

雷被如此精妙的複雜組合折服了。這簡直就是一個游牧社會嘛!在無奇不有的天地萬物面前,大多數企圖了解生態關係的嘗試都顯得那麼可笑。在茫茫宇宙之中,這三個種群(一種螞蟻、三種蝴蝶、十幾種鳥)是如何結成這種奇異的相互依賴關係的呢?為什麼會這樣呢?

雷在讀完博士的時候,覺得生態科學暮氣沉沉停滯不前,因為它不能對上面這些重要的問題給出一個滿意的答案。生態學缺少好的理論來概括由每一片荒野的觀察數據所積累起來的財富。它受到大量局部知識的困擾:沒有一個總體理論,生態學只不過是個充斥著迷人童話的圖書館。藤壺群落的生命周期、毛茛田地的季節性形態變化或山貓家族的行為已是眾所周知的了,但是,是什麼原則(如果有的話)主導了這三者的變化呢?生物學需要一門關於複雜性的科學來解答這個關於形態、歷史和發展的難解之謎——這些都是非常有趣的問題——而且都有野外數據的支持。

和許多生物學家一樣,雷也認為生物學的希望在於將其研究重點從生物時間(森林的千年壽命)轉移到進化時間(樹種的百萬年壽命)。進化起碼還有一個理論。然而,對細節的過分執著也往往糾纏著進化研究。「我很沮喪,」雷對我說,「因為我不想研究進化的產品——爬藤啊、螞蟻啊、蝴蝶啊什麼的。我想研究進化本身。」

湯姆·雷夢寐以求的是製造一台電進化機。用一個「盛有」進化的黑匣子,他就能夠闡明生態學的歷史法則——雨林是如何由早期森林傳承而來,生態系統到底是如何從產生了各種物種的同一原初力量中湧現出來的。如果他能研製出一台進化機,他就會有一個試驗台可以用來做真正的生態實驗。他可以選擇一個群落,以不同的組合一遍又一遍地進行試驗,比如說生成沒有水藻的池塘,沒有白蟻的森林,沒有黃鼠的草地,或者為免以偏概全,生成有黃鼠的叢林和有水藻的草地。他可以從製造病毒開始,看看這一切將把他帶向何處。

雷以前觀察鳥類,收集昆蟲,種植花卉——與計算機狂人完全不沾邊兒——而他卻堅信這樣一台機器是能夠造出來的。他記得十年前當他向一位麻省理工學院的計算機高手學習日本圍棋時,那個高手曾運用生物隱喻來解釋遊戲規則。雷陳述道,「他對我說,『你知道嗎?編寫一個能夠自行複製的計算機程序是可行的。』在那一刻,我所憧憬的正是我現在所做的。我問他該怎麼做,他說,『噢,小菜一碟,不值一提。』但是我不記得他說了什麼,或者他是否真的懂。當我想起那次談話時,我就把小說扔到一邊,捧起計算機手冊來了。」

雷的電進化機方案是從簡單的複製體開始,給它們一個舒適的棲息地,以及大量能源和有待填補的空間。和這些傢伙最接近的實物是自複製的核糖核酸碎片。這個艱巨任務看上去是可行的。他打算調製一份計算機病毒的培養液。

當時正值1989年,新聞雜誌上鋪天蓋地都是計算機病毒比瘟疫還糟、是技術所能到達的邪惡之極的封面報道。但雷卻從計算機病毒的簡單代碼中窺見了一個新科學的誕生:實驗進化與生態學。

為保護外部世界(和保證自己的計算機不會崩潰),雷用一台虛擬計算機來運行他的實驗。虛擬計算機是一種在真實計算機的潛意識深處模擬特定計算機的智能軟體。通過將那些可自我複製的小傢伙們限制在這個影子計算機中,雷把它們與外界隔離,使自己在不危及主機的情況下,能夠對計算機內存這樣的重要功能胡亂折騰。「看了一年計算機手冊之後,我坐下來寫代碼。兩個月後,這小玩意兒跑起來了。在程序運行的頭兩分鐘里,我就已經獲得了可以進化的生物。」

雷在他稱為「地球」的世界裡種下了他編寫的一個小玩意兒——80位元組的程序代碼——把它放入他的虛擬計算機的內存中。這個小傢伙先是找到一塊80位元組大小的空白內存空間,然後用一份自己的複製品佔據這塊地盤,從而實現了自我複製。不消幾分鐘,內存里就滿是80的複製品了。

雷增加了兩個重要功能,將這台施樂複印機般的複製機改造成一台進化機:他的程序在複製中偶爾會搞亂幾位代碼,他還賦予這些「生物」中的劊子手以優先權。簡言之,他引入了變異和死亡。

計算機科學家告訴過他,如果隨意改變計算機代碼(他的所有生物實際上都是代碼),改變後的程序可能無法正常運行,甚而使計算機崩潰。他們認為通過向編碼中隨機引入漏洞來獲得可運行的程序的概率太低了,他的方案無異於浪費時間。雷其實也知道,維持計算機運行所需的完美實在是太弱不禁風了——漏洞會殺死進程。不過,由於他的造物程序在他的影子計算機中運行,一旦變異產生一個嚴重「畸形」的東西,他的劊子手程序——他將其命名為「收割機」——就會將它殺死,而他的「地球」的其餘部分則繼續運轉。「地球」實際上是找出不能複製的漏洞程序,將其從虛擬計算機中拖將出去。

然而「收割機」會放過極少數有效變種,也就是說,那些碰巧形成一個真正的替代程序的變種。這些合法的變種能夠複製併產生其它變種。如果你像雷那樣將「地球」運行十億個計算機周期,在這十億次的機會中,將出現數量驚人的隨機產生的東西。為了讓系統更有活力,雷還為造出來的小東西們打上了年齡戳記,這樣一來,老一些的傢伙就會死亡。「收割機既殺死最老的傢伙,也殺死最搗蛋的傢伙。」雷笑著說。

在「地球」的首輪運行中,隨機變異、死亡和自然選擇都起了作用。沒幾分鐘,雷就見證了一個生態系統的誕生——這個系統由那些新的生物組成,它們為搶奪計算機周期而競爭。競爭獎勵個頭小的傢伙,因為它們需要的周期更少,而殘酷的達爾文進化論淘汰的則是貪婪的消耗者、體弱多病的物種和老傢伙。物種79(比80少一個位元組)是幸運的。它的工作卓有成效,很快就超過了80。

雷還發現了非常奇怪的東西——一種只有45個位元組的變種。它的代碼效率極高,數量上也超過了所有其它變種。「這個系統自我優化的速度之快令我震驚,」雷回憶說。「系統中的存活者有著越來越短的基因,我可以用圖把這個速度描繪出來。」

在對45的代碼做進一步考察時,雷驚奇地發現它是一隻寄生蟲。它只包含了生存所需的代碼。為了繁殖,它

上一章目錄+書簽下一頁