其中黑色的方格有左右兩個(gè)鄰居(用灰色進(jìn)行表示)。那么每個(gè)方格就可以根據(jù)它的兩個(gè)鄰居以及它自己的顏色按照一定的規(guī)則而改變顏色,例如,一個(gè)可能的規(guī)則如下:
這是一個(gè)規(guī)則列表,第一排為所有可能的三個(gè)輸入方格的顏色,下面的一排表示根據(jù)這些不同情況,中心的方格應(yīng)該變成什么顏色。例如第三個(gè)規(guī)則上面是黑白黑,下面是黑,則當(dāng)一排方格中有三個(gè)方格剛好是黑白黑的時(shí)候,中心的方格就變成黑色。
這樣,一排方格之中的每一個(gè)都可這樣按照此規(guī)則更新自己的顏色而得到一排新的方格排列,進(jìn)一步,我們可以再次應(yīng)用這組規(guī)則到新得到的方格上,這樣又會(huì)得到一排新的方格??梢圆煌5闹貜?fù)下去……
如果我們把每次應(yīng)用規(guī)則得到的方格排成一排一排的,就可以得到下面的圖:
我們可以很容易將這個(gè)游戲的玩法編成程序,在計(jì)算機(jī)上實(shí)現(xiàn)它。這個(gè)游戲的學(xué)名叫作細(xì)胞自動(dòng)機(jī)(又稱(chēng)元胞自動(dòng)機(jī),英文是:Cellular Automata, 簡(jiǎn)稱(chēng)CA)。然而這跟我們要探討的網(wǎng)絡(luò)游戲、大型計(jì)算機(jī)虛擬世界有什么關(guān)系呢?實(shí)際上,這個(gè)程序就是一個(gè)虛擬世界的簡(jiǎn)單原型。(有關(guān)細(xì)胞自動(dòng)機(jī)的詳細(xì)介紹,請(qǐng)看這里:http://www./complex/models/ca.htm)
我們知道,所謂宇宙就是指空間和時(shí)間的總合??臻g中的物質(zhì)按照物理規(guī)則運(yùn)動(dòng)。那么,在這個(gè)簡(jiǎn)單的細(xì)胞自動(dòng)機(jī)中,這一排方格就是宇宙的空間,不同顏色的方格相當(dāng)于宇宙中的物質(zhì),那個(gè)更新規(guī)則就是這個(gè)虛擬宇宙空間中的物理規(guī)則。而每一步更新就可以看作是宇宙時(shí)鐘的一次嘀嗒。因此,空間、時(shí)間、物理全都有了,它就是一個(gè)最簡(jiǎn)單的人造的虛擬世界。
我們所生活的真實(shí)宇宙只有一個(gè),它的物理規(guī)則也是固定死的。然而,對(duì)于人造的虛擬宇宙來(lái)說(shuō),我們就相當(dāng)于是上帝,擁有了更改物理規(guī)則的權(quán)利,這樣,我們可以通過(guò)改變規(guī)則而創(chuàng)造出各種不同的宇宙,例如,我們把規(guī)則改為:
顯然,不同的規(guī)則能夠創(chuàng)造不同的虛擬世界。有了虛擬世界的最小的模型,我們就能夠進(jìn)行科學(xué)分析來(lái)。我們可以像物理學(xué)家一樣做實(shí)驗(yàn),看看在不同的物理規(guī)則下,宇宙會(huì)是什么樣子的。我們可以像生物學(xué)家一樣對(duì)虛擬世界中的各種花紋“生物”進(jìn)行分類(lèi),等等。就好比當(dāng)年伽利略發(fā)明望遠(yuǎn)鏡一樣,有了細(xì)胞自動(dòng)機(jī)這個(gè)最小的虛擬宇宙,科學(xué)家們就可以打開(kāi)一扇窗,去觀察另一種完全不同的虛擬世界了。研究這門(mén)科學(xué)的學(xué)問(wèn)就叫做A New Kind of Science (一種新科學(xué),簡(jiǎn)稱(chēng)NKS),他的創(chuàng)始人就是大名鼎鼎的史蒂芬,沃爾弗萊姆(Stephen Wolfram)。
任何一門(mén)學(xué)科的發(fā)展都有其歷史,而有關(guān)細(xì)胞自動(dòng)機(jī)這樣的虛擬宇宙的研究則可以追溯到上世紀(jì)的一名偉大的科學(xué)家:馮·諾依曼(von Neumann)。我們都知道馮·諾依曼是第一臺(tái)計(jì)算機(jī)的設(shè)計(jì)師,還是博弈論的創(chuàng)始人,但很少有人知道,在他的晚年(大概1940年左右),他在研究一個(gè)有趣的課題:人造機(jī)器的自我繁殖。
馮·諾依曼考慮一臺(tái)機(jī)器在一個(gè)充滿了各種機(jī)器部件的池塘里面游來(lái)游去,它可以拾起一些部件,并將不同的部件組裝到一起……,那么,有沒(méi)有可能一臺(tái)機(jī)器將不同的組件組裝到一起形成一個(gè)新機(jī)器,而這臺(tái)新機(jī)器和它自己是一模一樣的呢?這樣的機(jī)器就是一臺(tái)能夠進(jìn)行自我繁殖的機(jī)器!
有了這個(gè)目標(biāo),馮·諾依曼卻在自己的科研進(jìn)展中遇到了障礙。一個(gè)關(guān)鍵問(wèn)題是,當(dāng)時(shí)的人工機(jī)器部件非常昂貴,要開(kāi)發(fā)出一臺(tái)真正的能夠自我繁殖的機(jī)器需要耗費(fèi)大筆的資金。這個(gè)時(shí)候,他的好朋友——一個(gè)名叫烏拉姆(Ulam)的數(shù)學(xué)家給他提供了一條寶貴的建議:為什么不在一個(gè)虛擬的世界中創(chuàng)造你的自繁殖機(jī)器呢?就比如一個(gè)二維的棋盤(pán)世界?
對(duì)呀,虛擬世界有很多好處,其中最大的好處就是可以省去大筆的經(jīng)費(fèi)。于是,馮·諾依曼采納了烏拉姆的建議,真的在一個(gè)二維的虛擬世界中設(shè)計(jì)出了這樣一臺(tái)能夠自我繁殖的機(jī)器。后來(lái),人們就將這個(gè)二維的虛擬世界模型叫做二維的細(xì)胞自動(dòng)機(jī)。
馮·諾依曼的這一工作影響了后來(lái)的很多人,包括著名的遺傳算法之父John Holland,人工生命之父C.G. Langton,還包括當(dāng)時(shí)還很年輕的Wolfram。
Wolfram是一個(gè)具有傳奇經(jīng)歷的人,他于1959年出生在倫敦,曾就讀于牛津大學(xué)。15歲的時(shí)候,他就發(fā)表了第一篇學(xué)術(shù)論文;22歲的時(shí)候,由于他的杰出成績(jī)而獲美國(guó)著名的Mac Arthur大獎(jiǎng),并成為此獎(jiǎng)項(xiàng)最年輕的獲獎(jiǎng)?wù)摺:髞?lái),他曾先后到普林斯頓高級(jí)研究院、伊利諾伊斯大學(xué)當(dāng)教授,專(zhuān)職從事科研。
在1980年代中期,Wolfram從早期的高能物理研究領(lǐng)域轉(zhuǎn)向了用計(jì)算機(jī)探索復(fù)雜性科學(xué)的研究,正是在那個(gè)時(shí)期,他發(fā)表了多篇有關(guān)一維細(xì)胞自動(dòng)機(jī)理論的論文,而奠定了他在該領(lǐng)域的權(quán)威位置。然而,正當(dāng)他的學(xué)術(shù)生涯蒸蒸日上的時(shí)候,Wolfram毅然辭去了他在伊利諾伊斯大學(xué)的教職,原因是當(dāng)時(shí)的大學(xué)體制很難專(zhuān)門(mén)撥經(jīng)費(fèi)支持他在細(xì)胞自動(dòng)機(jī)這個(gè)“怪異”的領(lǐng)域中的研究。
雖然Wolfram放棄了他輝煌的學(xué)術(shù)生涯,卻開(kāi)辟了另一片嶄新的天空。他于1986年親手創(chuàng)辦了以他自己命名的Wolfram Research公司,開(kāi)始開(kāi)發(fā)著名的數(shù)學(xué)軟件Mathematica,并憑借著該軟件的商業(yè)成功而成為億萬(wàn)富翁。然而,就在他商業(yè)剛剛成功的時(shí)候,他卻毅然再次走進(jìn)了書(shū)房,在計(jì)算機(jī)前擺弄起了計(jì)算機(jī)程序,因?yàn)榧?xì)胞自動(dòng)機(jī)、復(fù)雜性科學(xué)對(duì)于他來(lái)說(shuō)太誘人了!
就這樣,在1991年第二版Mathematica面世的時(shí)候,他躲進(jìn)了書(shū)房開(kāi)始了長(zhǎng)達(dá)10多年的寫(xiě)作。終于,2002年5月,A New Kind of Science面世了。這本洋洋灑灑的厚達(dá)1000多頁(yè)的大部頭創(chuàng)造了多項(xiàng)奇跡:整本書(shū)很少看見(jiàn)數(shù)學(xué)公式,而全部用圖形進(jìn)行科學(xué)推理甚至證明;全書(shū)分成正文和批注兩部分,而批注卻占據(jù)了1/3的空間;整本書(shū)沒(méi)有參考文獻(xiàn),所有的歷史相關(guān)工作介紹都放到了批注中;書(shū)中提出了很多大膽的猜想,如:我們生活的世界就是一個(gè)被計(jì)算機(jī)模擬出來(lái)的世界等等。Wolfram的過(guò)火挑釁行為惹毛了美國(guó)學(xué)術(shù)界。然而,這并不影響該書(shū)的流行,甚至一躍成為當(dāng)年亞馬遜網(wǎng)站的銷(xiāo)量排行首位。
就是這樣,在一片唏噓和爭(zhēng)議聲中,Wolfram的新科學(xué)走過(guò)了五個(gè)年頭。然而,Wolfram的新科學(xué)究竟在講什么?他能給復(fù)雜性科學(xué)多少本質(zhì)的貢獻(xiàn)呢?讓我們來(lái)正式開(kāi)始我們的NKS之旅。
三、什么是NKS
很多人都認(rèn)為,NKS就是一個(gè)研究細(xì)胞自動(dòng)機(jī)的科學(xué)。事實(shí)上,這種認(rèn)識(shí)是不完全的。如果用一句話概括,那么NKS就是一種研究各種“計(jì)算宇宙”的科學(xué)。而所謂的“計(jì)算宇宙”,就是指由各種簡(jiǎn)單的計(jì)算機(jī)程序創(chuàng)造的世界。我們來(lái)看幾個(gè)例子:
1、圖靈機(jī)

我們都知道阿蘭圖靈這個(gè)人,他最早提出了計(jì)算機(jī)的原型:圖靈機(jī)。所謂的圖靈機(jī)就是指一個(gè)抽象的機(jī)器,它有一條無(wú)限長(zhǎng)的紙帶,紙帶分成了一個(gè)一個(gè)的小方格,每個(gè)方格有不同的顏色。有一個(gè)機(jī)器頭在紙帶上移來(lái)移去。機(jī)器頭有一組內(nèi)部狀態(tài),還有一些固定的程序。在每個(gè)時(shí)刻,機(jī)器頭都要從當(dāng)前紙帶上讀入一個(gè)方格信息,然后結(jié)合自己的內(nèi)部狀態(tài)查找程序表,根據(jù)程序輸出信息到紙帶方格上,并轉(zhuǎn)換自己的內(nèi)部狀態(tài),然后進(jìn)行移動(dòng)。
在NKS中,我們可以把不同時(shí)刻的紙帶像一維細(xì)胞自動(dòng)機(jī)一樣排在一起形成一個(gè)二維的世界。而機(jī)器頭可以用一個(gè)黑點(diǎn)表示,如圖:

小黑箭頭就是圖靈機(jī)的讀寫(xiě)頭,它會(huì)在紙帶上移來(lái)移去畫(huà)出漂亮的折線。機(jī)器頭的不同狀態(tài)對(duì)應(yīng)這個(gè)小黑箭頭的不同朝向,而機(jī)器頭遵循的規(guī)則就對(duì)應(yīng)了這樣一組圖標(biāo):

這是一個(gè)具有兩個(gè)方格顏色、三個(gè)內(nèi)部狀態(tài)(分別對(duì)應(yīng)了三種不同的箭頭角度)的圖靈機(jī)。第一條規(guī)則表示如果機(jī)器頭當(dāng)前讀入的方格是黑色的,且內(nèi)部狀態(tài)為1,那么機(jī)器頭就把黑色擦去,并且右移一格,內(nèi)部狀態(tài)由1轉(zhuǎn)成2,……
傳統(tǒng)的計(jì)算機(jī)科學(xué)將圖靈機(jī)視為一種計(jì)算的工具,即給圖靈機(jī)編寫(xiě)適當(dāng)?shù)囊?guī)則表讓它完成某種計(jì)算任務(wù),例如計(jì)算1+3。但是在NKS中,我們關(guān)心的不再是計(jì)算任務(wù),而就是觀察當(dāng)給定一組規(guī)則后,程序如何行為。也就是說(shuō),NKS僅僅關(guān)心圖靈機(jī)在一維紙帶上寫(xiě)出的圖形。因此,不同的程序在相同的紙帶上經(jīng)過(guò)多步計(jì)算能夠形成非常不同的圖形。例如,下面就是一個(gè)3種顏色,2種狀態(tài)的圖靈機(jī)產(chǎn)生的圖形:

我們看到了一副漂亮的圖形,它就是用圖靈機(jī)畫(huà)出來(lái)的。因此,給定簡(jiǎn)單的規(guī)則,放手讓程序演化,這就是NKS研究計(jì)算宇宙的方法。(有關(guān)圖靈機(jī)的更詳細(xì)介紹,請(qǐng)參看:http://www./vm/articles/turing.pdf)
2、替代系統(tǒng)(Substitution systems)
另外一種計(jì)算機(jī)科學(xué)中常用的計(jì)算模型就是抽象的重寫(xiě)規(guī)則系統(tǒng),例如,重寫(xiě)規(guī)則:A-->AB,B-->BA。從一個(gè)字符串開(kāi)始經(jīng)過(guò)反復(fù)重寫(xiě),可以得到非常復(fù)雜的字符串。NKS的研究方法仍然是將不同步驟得到的字符串排成一行一行的,每個(gè)字符串都轉(zhuǎn)化成不同顏色的方格,于是,我們?nèi)匀荒艿玫揭恍┒S的Pattern(構(gòu)型),如上面提到的重寫(xiě)規(guī)則可以得到:

變化不同的重寫(xiě)規(guī)則能夠得到不同的Pattern,如:

3、自然數(shù)
上面討論的計(jì)算系統(tǒng)都是對(duì)一些抽象元素的操作,然而傳統(tǒng)數(shù)學(xué)中的計(jì)算則強(qiáng)調(diào)的是對(duì)數(shù)的操作。那么NKS能不能討論對(duì)數(shù)的運(yùn)算呢?下面就是一個(gè)例子,我們從數(shù)字1開(kāi)始,然后用最簡(jiǎn)單的運(yùn)算+1進(jìn)行反復(fù)的迭代。顯然,我們會(huì)得到序列1,2,3,……。這很平淡無(wú)奇,但是如果我們把這些數(shù)字表示成二進(jìn)制數(shù),那么我們?nèi)匀豢梢园阉鼈兣帕谐梢恍幸恍械姆礁?,其中黑色表示二進(jìn)制的1,而白色表示0,這樣,我們就可以得到下面的圖案:

(注;這張圖的二進(jìn)制數(shù)排列是靠右邊對(duì)齊的)
令人吃驚的是,即使這樣一個(gè)簡(jiǎn)單的n=n+1的數(shù)學(xué)操作仍然可以得到一種復(fù)雜的自包含的圖形結(jié)構(gòu)。所以,新的表達(dá)和觀察方法往往能夠給人們帶來(lái)意想不到的收獲。在NKS中,Wolfram研究了各種各樣的簡(jiǎn)單計(jì)算系統(tǒng),然而所有這些研究都是忘記計(jì)算系統(tǒng)的意義和任務(wù),因?yàn)橹挥挟?dāng)我們不再讓計(jì)算機(jī)程序硬性的進(jìn)行某種運(yùn)算,而就是給它們提供舞臺(tái),放手讓它們演化,那么,它們才會(huì)用各種各樣的花紋來(lái)表現(xiàn)它們自己的真實(shí)本性。
三、聆聽(tīng)計(jì)算的聲音
1、細(xì)胞自動(dòng)機(jī)的分類(lèi)
當(dāng)我們忘掉了比特的意義,給它們釋放了自由,我們能做什么才能聆聽(tīng)它們的語(yǔ)言呢?我們要學(xué)習(xí)生物學(xué)家,對(duì)計(jì)算機(jī)生成的各種Pattern分類(lèi)!早在1980年代,Wolfram就發(fā)現(xiàn),一維細(xì)胞自動(dòng)機(jī)在隨機(jī)的初始條件下所產(chǎn)生的花紋可以歸結(jié)為4類(lèi),它們是:
1、 固定值型:細(xì)胞自動(dòng)機(jī)演化到一定時(shí)刻就變成了一種顏色的方格;
2、 周期型:細(xì)胞自動(dòng)機(jī)固定在具有一定循環(huán)結(jié)構(gòu)中不再改變;
3、 混沌型(或叫隨機(jī)類(lèi)型):結(jié)構(gòu)在不停的變化,但是它們沒(méi)有確定的變化規(guī)律;
4、 復(fù)雜型:這類(lèi)結(jié)構(gòu)介于完全秩序與完全混沌之間,會(huì)產(chǎn)生一些局部的復(fù)雜結(jié)構(gòu),但整體似乎又不是完全混沌隨機(jī)。
如下圖,表示了4種不同類(lèi)型的細(xì)胞自動(dòng)機(jī)演化結(jié)果:

進(jìn)一步,在NKS書(shū)中對(duì)這四類(lèi)細(xì)胞自動(dòng)機(jī)又進(jìn)行了深入研究,例如比較了它們的信息傳遞情況:

這是四種類(lèi)型的細(xì)胞自動(dòng)機(jī)信息傳播的情況。在每一種類(lèi)型中,我們都運(yùn)行相同的細(xì)胞自動(dòng)機(jī)兩次,但是這兩次的初始條件略微不同,即唯獨(dú)中心的方格變化了顏色。那么,我們可以考察這一個(gè)變化顏色的方格會(huì)對(duì)整體細(xì)胞自動(dòng)機(jī)的結(jié)構(gòu)產(chǎn)生什么影響。如果在某一時(shí)刻某一方格在第二次運(yùn)行與第一次運(yùn)行的顏色不同了,則把這個(gè)方格涂成黑色。沒(méi)有變化的方格用白色和灰色表示。
我們看到微小的初始條件擾動(dòng)會(huì)對(duì)四類(lèi)細(xì)胞自動(dòng)機(jī)產(chǎn)生不同的影響。對(duì)于第一類(lèi),這種擾動(dòng)絲毫沒(méi)有影響;對(duì)于第二類(lèi),初始條件的改變對(duì)整體的影響會(huì)集中在中心的幾個(gè)方格中不會(huì)擴(kuò)散。而對(duì)于第三類(lèi),則一個(gè)小的改動(dòng)就會(huì)造成大范圍的方格顏色的改變,即混沌系統(tǒng)中普遍存在的對(duì)初始條件的敏感性。對(duì)于第四類(lèi),初始條件的改變對(duì)整體的影響既不是很大也不是很小??磥?lái)從信息傳播的機(jī)制上來(lái)看,這四類(lèi)細(xì)胞自動(dòng)機(jī)還是有著本質(zhì)不同的。
另外,Wolfram觀察到的一個(gè)非常普遍的現(xiàn)象是:自相似、自嵌套的分形結(jié)構(gòu)。一個(gè)有趣的細(xì)胞自動(dòng)機(jī)就是被編號(hào)為225的2顏色,2鄰居的一維細(xì)胞自動(dòng)機(jī),它在一個(gè)黑方格,其他都是白方格的初始條件下能夠產(chǎn)生下面的圖形:
如果把這個(gè)圖形作一定的變形:將其以對(duì)角線為軸進(jìn)行反轉(zhuǎn),并將其扭曲讓中間的白色結(jié)構(gòu)靠左邊,我們能夠得到右邊圖形:

(注,右上角空出來(lái)的部分沒(méi)有任何細(xì)胞)
我們會(huì)發(fā)現(xiàn)這也是一個(gè)大房子套小房子的結(jié)構(gòu),它和前面提到的二進(jìn)制表示n=n+1的結(jié)構(gòu)(左邊)驚人的相似!雖然兩套系統(tǒng)的產(chǎn)生規(guī)則非常不一樣,但是為什么它們卻能得到這么相似的結(jié)構(gòu)呢?似乎簡(jiǎn)單程序們正在向我們傳遞它們那個(gè)世界中的秘密。
2、復(fù)雜性的極限
進(jìn)一步,Wolfram還對(duì)各種計(jì)算宇宙進(jìn)行了窮舉試驗(yàn),包括什么圖靈機(jī)、替換系統(tǒng)、Tag自動(dòng)機(jī)等等,發(fā)現(xiàn):大致上說(shuō),這些系統(tǒng)產(chǎn)生的圖形也可以歸結(jié)為那四種類(lèi)型。而且,最重要的是,系統(tǒng)產(chǎn)生的Pattern的復(fù)雜性似乎并不會(huì)隨著系統(tǒng)規(guī)則復(fù)雜性的增長(zhǎng)而增長(zhǎng)。例如,我們一般認(rèn)為二維的細(xì)胞自動(dòng)機(jī)比一維的細(xì)胞自動(dòng)機(jī)規(guī)則更復(fù)雜。然而,當(dāng)我們把二維的細(xì)胞自動(dòng)機(jī)壓縮成一維的時(shí)候,會(huì)看到和一維細(xì)胞自動(dòng)機(jī)非常相似的結(jié)構(gòu)。例如,下面就是對(duì)著名的二維細(xì)胞自動(dòng)機(jī):生命游戲演化圖形的一個(gè)一維的截面(這里有一個(gè)非常好的探索生命游戲的軟件):

(該圖是這樣得到的:將每個(gè)時(shí)刻生命游戲的運(yùn)行形成的平面空間排在一起構(gòu)成一個(gè)有高度的三維柱狀體,然后對(duì)這個(gè)柱狀體的縱斷面切一個(gè)截面出來(lái),這樣上圖縱向就表示不同時(shí)刻這個(gè)側(cè)面黑白方格的情況,并且將離此截面更遠(yuǎn)的黑色方格畫(huà)成灰色,就得到該圖)
我們看到,它和1維的第四類(lèi)型(復(fù)雜型)細(xì)胞自動(dòng)機(jī)很相似。經(jīng)過(guò)大量的實(shí)驗(yàn),我們似乎可以得到這樣一個(gè)結(jié)論:規(guī)則復(fù)雜性的增長(zhǎng)并不一定會(huì)導(dǎo)致行為復(fù)雜性的增長(zhǎng)。定性來(lái)說(shuō),如果將兩者畫(huà)成關(guān)系曲線,會(huì)得到下圖:

當(dāng)規(guī)則非常簡(jiǎn)單(例如所有的方格都變成黑色),它的行為肯定是簡(jiǎn)單的。這時(shí)候我們稍稍增加規(guī)則的復(fù)雜性,系統(tǒng)的行為也會(huì)復(fù)雜。然而,當(dāng)規(guī)則的復(fù)雜性超過(guò)某個(gè)特定的程度之后,行為的復(fù)雜性就不會(huì)增長(zhǎng)了。似乎行為復(fù)雜性的增長(zhǎng)存在一個(gè)閾值,系統(tǒng)的復(fù)雜性不能超越這個(gè)閾值,而無(wú)論底層規(guī)則多么復(fù)雜。這個(gè)結(jié)論實(shí)際上有著非常深刻的內(nèi)涵,我們?cè)诤竺娴恼鹿?jié)中將會(huì)指出這個(gè)閾值到底是什么。
這個(gè)原理的發(fā)現(xiàn),似乎告訴我們。為了建模復(fù)雜系統(tǒng),并不是越復(fù)雜的計(jì)算機(jī)模型越好,因?yàn)樵瓌t上講,更復(fù)雜的計(jì)算機(jī)規(guī)則并不一定能夠?qū)е赂鼜?fù)雜的表現(xiàn)行為。
四、CA模擬股市
可能更多的人關(guān)心的是Wolfram的新科學(xué)有什么用呢?這的確是一個(gè)很有爭(zhēng)議的問(wèn)題,因?yàn)槟慵瓤梢哉f(shuō)NKS非常有用,也可以說(shuō)它什么都不能做。
我們都知道,簡(jiǎn)單程序可以模擬自然界的生長(zhǎng)現(xiàn)象,例如雪花的形成、樹(shù)的生長(zhǎng)、動(dòng)物表面上的花紋等等。運(yùn)用細(xì)胞自動(dòng)機(jī)還可以模擬自然界的一些復(fù)雜的非線性過(guò)程,例如復(fù)雜的流體、交通流等。然而,這些應(yīng)用其實(shí)又回到了一般計(jì)算機(jī)模擬的老路上,即針對(duì)具體問(wèn)題,賦予每一個(gè)比特一定的意義,然后讓系統(tǒng)去演化。
然而,NKS強(qiáng)調(diào)的是忘掉模擬和比特的意義。這樣一種哲學(xué)會(huì)給我們帶來(lái)什么好處呢?下面這個(gè)簡(jiǎn)單的應(yīng)用會(huì)給我們耳目一新的感覺(jué)。
該應(yīng)用研究是想用CA生成一個(gè)時(shí)間序列曲線,然后用這個(gè)曲線去擬合股票的價(jià)格波動(dòng),它是由Wolfram公司的研究員Jason做出的。
考慮一個(gè)特定的細(xì)胞自動(dòng)機(jī),例如CA90(對(duì)1維的、鄰居為兩個(gè)的細(xì)胞自動(dòng)機(jī)的編號(hào),確定了一個(gè)編號(hào)就確定了它的一組規(guī)則),它形成的圖形和一個(gè)時(shí)間序列曲線,如下圖:


上面的是CA90的運(yùn)行情況,下面的是它生成的時(shí)間序列曲線
這個(gè)時(shí)間序列曲線的具體做法是,將每一步CA90生成的黑細(xì)胞方格作為1,白細(xì)胞方格作為-1,然后對(duì)所有方格求和,得到該時(shí)刻的總的數(shù)值s(t),然后在下一時(shí)刻,同樣求得這樣一個(gè)總和數(shù),把這個(gè)數(shù)加上s(t),得到s(t+1),這樣反復(fù)不停的運(yùn)用這一方法就能得到一個(gè)上圖所示的時(shí)間序列曲線。
進(jìn)一步,Jason考慮由兩個(gè)細(xì)胞自動(dòng)機(jī)混合得到的時(shí)間序列。例如給定兩個(gè)細(xì)胞自動(dòng)機(jī)CA90和CA110,然后我們把它們進(jìn)行一定比例的混合。例如混合比例是3:7。具體做法是,從任意一個(gè)隨機(jī)初始條件開(kāi)始演化3步CA90,然后再演化7步CA110,這樣我們得到一個(gè)混合的細(xì)胞自動(dòng)機(jī),Jason叫它ICA,用同樣的方法,可以畫(huà)出這個(gè)ICA生成的時(shí)間序列曲線:

下面,Jason就用這個(gè)生成的時(shí)間序列曲線去擬合真實(shí)的股票價(jià)格數(shù)據(jù)。具體方法可以是通過(guò)調(diào)節(jié)兩種細(xì)胞自動(dòng)機(jī)的混合比例,例如從3:7調(diào)到8:2,使得生成的序列能夠和真實(shí)數(shù)據(jù)在均方誤差的條件下擬合的很好,如下圖:

Jason試了很多種兩兩細(xì)胞自動(dòng)機(jī)組合的情況,都能夠得到較好的擬合曲線。然而,很奇怪的是,這個(gè)方法并沒(méi)有對(duì)股市建立任何顯示的模型。
這個(gè)研究的意義在于,即使我們完全忘掉股市運(yùn)行的內(nèi)在規(guī)則,我們?nèi)匀豢梢哉业綌M合股票數(shù)據(jù)的方法。這反過(guò)來(lái)說(shuō)明了復(fù)雜的行為并不一定需要復(fù)雜的微觀機(jī)制。仍然是那個(gè)觀點(diǎn):從某種意義上說(shuō),行為的復(fù)雜性增加到一定程度就停止增長(zhǎng)了。
注:此兩部分的內(nèi)容過(guò)于技術(shù)化,讀者可以有選擇的跳過(guò)。
五、關(guān)于“黑客帝國(guó)”的物理學(xué)

相信讀這篇文章的人大部分都應(yīng)該看過(guò)《黑客帝國(guó)》這部影片。與其他的好萊塢式的科幻電影不同,這個(gè)影片具有非常深刻的哲學(xué)、宗教內(nèi)涵,甚至與科學(xué)也密切相關(guān)。雖然大眾一般認(rèn)為這是一部有關(guān)“人工智能”的片子,但是與該影片更相像的科學(xué)倒不是傳統(tǒng)意義上的人工智能,而是Wolfram的“一種新科學(xué)”。黑客帝國(guó)中描述的那個(gè)大型的控制人類(lèi)的計(jì)算機(jī)模擬系統(tǒng)Matrix究竟有沒(méi)有可能呢?NKS的第9章“基礎(chǔ)物理學(xué)”對(duì)這一問(wèn)題進(jìn)行了一系列的探討。 這一章的基本出發(fā)點(diǎn)就是,如果我們就把我們生活的宇宙看作是一個(gè)大的模擬系統(tǒng),那么我們將能夠走多遠(yuǎn)?
1、離散的格子
量子力學(xué)告訴我們,很有可能在非常微小的尺度上,我們所生活的空間是離散的。也就是說(shuō),宇宙的空間從本質(zhì)上講就是一張離散的大網(wǎng)。然而,網(wǎng)絡(luò)是沒(méi)有維度的,它和我們感受到空間的三個(gè)維度不同,這個(gè)沖突如何解決呢?答案就在于涌現(xiàn)。首先,我們看一個(gè)反問(wèn)題,即由空間得到網(wǎng)絡(luò)。這個(gè)問(wèn)題對(duì)于搞計(jì)算機(jī)的人來(lái)說(shuō)并不陌生:即我們?nèi)绾螌?duì)一個(gè)空間進(jìn)行有限的劃分,從而得到一些基本的單元。例如,對(duì)二維平面進(jìn)行劃分有多種方法:方格、六角格等等。下面就列出了三種不同空間的劃分:

它們分別是對(duì)一維直線區(qū)域、二維平面、三維立體空間的劃分。給定了這樣的一個(gè)劃分,我們就能得到一個(gè)網(wǎng)絡(luò)。那么這三個(gè)不同維度的空間得到的網(wǎng)絡(luò)有什么不一樣的性質(zhì)呢? 我們可以做這樣一件事,任意挑選一個(gè)網(wǎng)絡(luò)上的節(jié)點(diǎn),然后挑選出與該節(jié)點(diǎn)相鄰的那些節(jié)點(diǎn)組成一個(gè)集合,計(jì)算該集合的元素個(gè)數(shù)計(jì)為N(1)。之后,再?gòu)拈_(kāi)始這個(gè)節(jié)點(diǎn)出發(fā),找出所有的與它相隔兩條邊的節(jié)點(diǎn)組成一個(gè)集合,記這個(gè)集合的元素個(gè)數(shù)為N(2),依此類(lèi)推……,我們能夠得到一個(gè)序列:N(1), N(2), ..,N(r)….。如果把相隔半徑r作為橫軸,把N(r)作為縱軸,不難做出一條r-N(r)的曲線。下面,我們來(lái)分別對(duì)這三個(gè)網(wǎng)絡(luò)求出r-N(r)曲線:

這三個(gè)曲線分別可以看成是常數(shù)曲線、直線和二次曲線,也就是說(shuō)函數(shù)關(guān)系分別是:N(r)~r0,N(r)~r1和N(r)~r2。而這些網(wǎng)絡(luò)所在的空間維度分別是1維、2維和3維的,因此,我們能夠得到這樣一個(gè)關(guān)系:

這里d是網(wǎng)絡(luò)鑲嵌空間的維度。所謂的鑲嵌空間,就是指能夠把該網(wǎng)絡(luò)不重疊的畫(huà)在一個(gè)最小維度的空間之中。因此,三維的網(wǎng)絡(luò)空間是不可能不重疊地畫(huà)在二維空間之中的。進(jìn)一步,我們可以把這個(gè)結(jié)論抽象為對(duì)網(wǎng)絡(luò)的維度定義。即如果網(wǎng)絡(luò)中任意一點(diǎn)鄰居的個(gè)數(shù)隨著距離的增大而呈現(xiàn)上式的關(guān)系的話,那么,我們就可以定義該網(wǎng)絡(luò)的維度。 下圖是各種網(wǎng)絡(luò)以及與它們對(duì)應(yīng)的N(r)曲線:

我們看到有些網(wǎng)絡(luò)對(duì)應(yīng)的曲線具有分?jǐn)?shù)的冪律關(guān)系如f,因此,也可以說(shuō)這些網(wǎng)絡(luò)對(duì)應(yīng)的空間是分?jǐn)?shù)維的。有些網(wǎng)絡(luò)甚至具有非常不規(guī)則的曲線關(guān)系,如e,j。 總的說(shuō)來(lái),如果我們宇宙的空間是由離散的網(wǎng)絡(luò)構(gòu)成的,那么它也能夠自然導(dǎo)出我們所體驗(yàn)到的各種三維空間的性質(zhì)。
2、因果網(wǎng)絡(luò)
除了空間之外,宇宙的另一個(gè)重要性質(zhì)就是時(shí)間。關(guān)于時(shí)間,NKS又能說(shuō)什么呢?首先,我們所體驗(yàn)到的時(shí)間是一個(gè)一維的長(zhǎng)河,宇宙時(shí)鐘每嘀嗒一次,該宇宙中的所有物體就都同時(shí)更新一次狀態(tài)。這些物體的狀態(tài)更新就構(gòu)成了不同的事件。宇宙好像一張大的因果網(wǎng),不同的事件由于相互之間的因果關(guān)系而連接到一起。因此,從時(shí)間角度看宇宙,那么一個(gè)一個(gè)事件就構(gòu)成了基本的研究單位,并且事件之間由于因果聯(lián)系構(gòu)成的網(wǎng)絡(luò)也成為了某種非常本質(zhì)的描述。 在計(jì)算機(jī)的各種計(jì)算宇宙中,也存在這樣的因果聯(lián)系事件。不同的是,我們可以很方便的用計(jì)算機(jī)算法得到這些因果網(wǎng)絡(luò)。例如,有這樣一個(gè)替換系統(tǒng):

它也可以寫(xiě)成字符串的形式:A-->AB, BABA-->BB, BBB-->AA,那么從BBB開(kāi)始,反復(fù)應(yīng)用這三條重寫(xiě)規(guī)則,就能得到一個(gè)計(jì)算宇宙的歷史:

其中灰色的帶形區(qū)域表示了更新規(guī)則的計(jì)算作用。白色的帶形區(qū)域連接了兩個(gè)時(shí)刻沒(méi)有更新變化的方格。通常情況下,我們關(guān)注的是方格,但是當(dāng)我們考慮因果聯(lián)系網(wǎng)絡(luò)的時(shí)候,我們不再關(guān)心方格,而關(guān)心的是方格發(fā)生變化的事件本身。在這個(gè)圖中,這些更新事件就表現(xiàn)為灰色的帶形區(qū)域。因此,對(duì)上圖進(jìn)行一系列連續(xù)變換,我們不難得到一系列圖:

我們看到,這一系列拓?fù)渥儞Q可以把原來(lái)的帶子變成一些分立的節(jié)點(diǎn),而把原來(lái)的方格變成了一些不同顏色的條紋,最終,我們可以把它變成一個(gè)網(wǎng)絡(luò),其中箭頭指向了作為結(jié)果的事件:

其中各個(gè)更新事件變成了被標(biāo)號(hào)的節(jié)點(diǎn),而方格則變成了聯(lián)系各個(gè)事件的不同顏色的連線邊。最后,我們把得到的網(wǎng)絡(luò)排列成樹(shù),即按照離根節(jié)點(diǎn)(1號(hào)節(jié)點(diǎn))的距離從小到大,從上到下排開(kāi),得到:

這就是前面那個(gè)替換系統(tǒng)最終形成的因果網(wǎng)絡(luò)。這個(gè)網(wǎng)絡(luò)有以下幾點(diǎn)特征:1、該網(wǎng)絡(luò)沒(méi)有圈狀結(jié)構(gòu)。這是因?yàn)闀r(shí)間的流逝只能朝一個(gè)方向,前面的事件只能影響后面的事件,但反過(guò)來(lái)則是不可能的。2、該網(wǎng)絡(luò)存在著一些邊是從底下的節(jié)點(diǎn)連向上面的節(jié)點(diǎn)的。假如我們是一個(gè)生活在該網(wǎng)絡(luò)之中的生物體,我們并不知道宇宙中的各個(gè)事件是如何更新的,我們僅僅能看到事件之間的先后因果順序。一種可能是,我們把縱向從上到下看作是我們所在的這個(gè)宇宙的時(shí)間順序。也就是說(shuō),樹(shù)的第一層節(jié)點(diǎn)對(duì)應(yīng)的是第一時(shí)刻宇宙發(fā)生的事件,第二層節(jié)點(diǎn)是第二時(shí)刻宇宙發(fā)生的事件……。那么從上至下的箭頭表示上一時(shí)刻的宇宙事件對(duì)下一時(shí)刻宇宙事件的影響。同層次之間的箭頭表示同一時(shí)刻宇宙中的兩個(gè)事件的相互影響。這可以理解成這兩個(gè)事件具有空間上的聯(lián)系,因此在同一時(shí)刻事件A發(fā)生會(huì)同時(shí)影響到B發(fā)生。那么,反向的箭頭意味著什么?它意味著未來(lái)的事件對(duì)當(dāng)前該時(shí)刻的事件的影響。等等,這不是意味著時(shí)間在倒流嗎?而時(shí)間倒流是會(huì)引起邏輯上的悖論的。比如說(shuō)未來(lái)的你自己通過(guò)時(shí)間倒流把現(xiàn)在的你殺死。然而因?yàn)楝F(xiàn)在的你是未來(lái)的你的原因,所以你死了未來(lái)的你也就不能存在了。 但是仔細(xì)思考我們的因果網(wǎng)絡(luò)會(huì)發(fā)現(xiàn),雖然時(shí)間倒流在該網(wǎng)絡(luò)中是可能的,但是邏輯悖論卻是不可能的。這是因?yàn)樵谝蚬W(wǎng)絡(luò)中不存在任何圈結(jié)構(gòu),所以,不可能出現(xiàn)兩個(gè)事件互為因果的可能性。 事實(shí)上,給定了這樣一個(gè)網(wǎng)絡(luò),我們還有另外的畫(huà)它的方法。例如我們可以把它畫(huà)成另外一棵樹(shù),處于兩條紅色曲線之間的節(jié)點(diǎn)作為一個(gè)層次。

那么,我們就得到了另一個(gè)完全不同的時(shí)間。以前同時(shí)的事件現(xiàn)在不再同時(shí)發(fā)生了。然而,有趣的是,這個(gè)新的樹(shù)仍然對(duì)應(yīng)了跟以前一模一樣的因果網(wǎng)絡(luò)。如果我們把不同的展開(kāi)成樹(shù)的方法看作是不同的觀察者對(duì)這個(gè)宇宙的觀察的話。那么我們會(huì)很自然的得出類(lèi)似相對(duì)論的結(jié)論:時(shí)間是對(duì)于觀察者而變的,但是事件之間的因果關(guān)系則是不變的。 NKS的書(shū)中還有很多有關(guān)相對(duì)論、量子力學(xué)的討論,在這里就不一一列舉了??傊?,如果將宇宙本身就視為一個(gè)離散的計(jì)算系統(tǒng),很多艱深的物理學(xué)問(wèn)題就都獲得了新的解釋。
六、計(jì)算宇宙之間的紐帶
通過(guò)對(duì)大量計(jì)算宇宙的觀察,我們發(fā)現(xiàn),各個(gè)計(jì)算宇宙之間有著驚人的相似性,究竟為什么呢?實(shí)際上,各個(gè)計(jì)算宇宙之間存在著非常深刻的聯(lián)系,這就是它們之間存在著相互模擬的關(guān)系。 一臺(tái)圖靈機(jī)可以模擬一個(gè)細(xì)胞自動(dòng)機(jī),細(xì)胞自動(dòng)機(jī)又可以模擬替換系統(tǒng)。只要我們找到了一種將A系統(tǒng)的狀態(tài)和運(yùn)算動(dòng)作一一對(duì)應(yīng)到B系統(tǒng)的方法,我們就說(shuō)B系統(tǒng)可以模擬A系統(tǒng)。整本NKS書(shū)充斥著大量的事實(shí)列舉和猜測(cè),而唯有講述模擬的第11章(計(jì)算的概念,The Notion of computation)有著相對(duì)嚴(yán)格的證明。因?yàn)楦鶕?jù)模擬關(guān)系的定義,只要我們找到了一個(gè)計(jì)算機(jī)程序可以把A系統(tǒng)映射到B系統(tǒng),那么我們就說(shuō)B能夠模擬A。因此,計(jì)算機(jī)程序就成為了證明方法。 為了理解什么是不同計(jì)算宇宙之間的模擬,讓我們來(lái)看一個(gè)具體的例子。下面是一個(gè)特殊的具有3種內(nèi)部狀態(tài),兩種方格顏色的圖靈機(jī)的規(guī)則:

當(dāng)它作用到一個(gè)空白紙帶上會(huì)產(chǎn)生如下的行為:

下面的問(wèn)題是,我們能否找到一個(gè)特定的半徑為1,顏色數(shù)不限的細(xì)胞自動(dòng)機(jī)來(lái)精確模擬這個(gè)圖靈機(jī)的行為呢?答案是肯定的,根據(jù)模擬的定義,我們首先要找到一個(gè)將圖靈機(jī)的所有狀態(tài)映射到細(xì)胞自動(dòng)機(jī)的狀態(tài)的方法。 一個(gè)很自然的想法就是將圖靈機(jī)的紙帶映射為細(xì)胞自動(dòng)機(jī)的細(xì)胞。因此有多少個(gè)紙帶就有多少個(gè)細(xì)胞,而紙帶的黑白兩種顏色就對(duì)應(yīng)細(xì)胞的兩種顏色。然而,因?yàn)閳D靈機(jī)還有一個(gè)讀寫(xiě)頭,這個(gè)讀寫(xiě)頭有著不同的內(nèi)部狀態(tài),這些信息如何找到細(xì)胞自動(dòng)機(jī)的對(duì)應(yīng)呢? 一個(gè)自然的想法是,增加細(xì)胞自動(dòng)機(jī)每個(gè)細(xì)胞的可能顏色數(shù)。因?yàn)閳D靈機(jī)的內(nèi)部狀態(tài)有1,2,3三種,當(dāng)它對(duì)一個(gè)紙帶格進(jìn)行讀寫(xiě)操作的時(shí)候,就會(huì)疊加上這個(gè)紙帶格上的狀態(tài)(0或者1)。這樣,總的組合情況就是3*2=6種。而對(duì)于沒(méi)有讀寫(xiě)頭的格子,紙帶有0或1兩種情況,因此,對(duì)于一個(gè)細(xì)胞自動(dòng)機(jī)的方格來(lái)說(shuō),只要它能對(duì)應(yīng)這6+2=8種情況就可以了。因此,我們可以設(shè)計(jì)一個(gè)具有8種顏色的細(xì)胞自動(dòng)機(jī)來(lái)模擬這臺(tái)圖靈機(jī)。 下面這個(gè)表就是圖靈機(jī)和8種顏色細(xì)胞自動(dòng)機(jī)在一個(gè)方格上的對(duì)應(yīng)關(guān)系:

在該列表中,不同的列對(duì)應(yīng)了不同的圖靈機(jī)紙帶的輸入情況,以及相應(yīng)的細(xì)胞自動(dòng)機(jī)的方格顏色。不同的行表示了不同的讀寫(xiě)頭狀態(tài),以及對(duì)應(yīng)的細(xì)胞自動(dòng)機(jī)的顏色。黑和白對(duì)應(yīng)了沒(méi)有讀寫(xiě)頭在上面的圖靈機(jī)紙帶格,淺紅和深紅對(duì)應(yīng)了讀寫(xiě)頭分別在白色方格或者黑色方格,且內(nèi)部狀態(tài)為1的細(xì)胞自動(dòng)機(jī)的方格顏色,等等。 進(jìn)一步,要想讓細(xì)胞自動(dòng)機(jī)模擬圖靈機(jī),我們還需要把圖靈機(jī)的每一步運(yùn)算都映射到細(xì)胞自動(dòng)機(jī)的每一步運(yùn)算上。一個(gè)簡(jiǎn)單的方法是,針對(duì)每一個(gè)圖靈機(jī)的規(guī)則,我們都能找到一個(gè)或多個(gè)細(xì)胞自動(dòng)機(jī)的規(guī)則與之對(duì)應(yīng)。比如,對(duì)于一個(gè)圖靈機(jī)的規(guī)則:

它表示在1狀態(tài),讀入紙帶是1的時(shí)候,讀寫(xiě)頭右移一個(gè)方格,并把當(dāng)前格子改為白色。有了前面的狀態(tài)對(duì)應(yīng)表,我們不難把這一規(guī)則轉(zhuǎn)化成如下多條細(xì)胞自動(dòng)機(jī)的規(guī)則:

其中灰色的方格可以是任意一個(gè)顏色的方格。因?yàn)榧t色方格模擬了圖靈機(jī)讀寫(xiě)頭讀到黑色方格的情況,因此對(duì)于細(xì)胞自動(dòng)機(jī)來(lái)說(shuō),無(wú)論該紅色方格的鄰居是何種顏色,它都必須在下一時(shí)刻變成白色(第一個(gè)圖標(biāo)),同時(shí)讀寫(xiě)頭要移動(dòng)到右邊一個(gè)方格。這又有兩種可能,第一種是右邊的方格原來(lái)是白色,這就對(duì)應(yīng)了中間的這個(gè)圖標(biāo);第二種是右邊的方格是黑色,這對(duì)應(yīng)了第三個(gè)圖標(biāo)。因此,有了這三組規(guī)則,我們能夠保證細(xì)胞自動(dòng)機(jī)可以模擬圖靈機(jī)的這一規(guī)則。 同樣的道理,對(duì)于其他的圖靈機(jī)規(guī)則,我們都可以找到一組細(xì)胞自動(dòng)機(jī)規(guī)則與之對(duì)應(yīng)。所以,我們完全可以通過(guò)設(shè)定細(xì)胞自動(dòng)機(jī)的規(guī)則而模擬這臺(tái)圖靈機(jī)的動(dòng)作,下面就是這樣一次模擬:

這兩個(gè)系統(tǒng)的動(dòng)作精確相同。這就是說(shuō)我們找到了一個(gè)細(xì)胞自動(dòng)機(jī)能夠模擬這臺(tái)圖靈機(jī)。不難看出,上面的這種從圖靈機(jī)到細(xì)胞自動(dòng)機(jī)的對(duì)應(yīng)關(guān)系是通用的。也就是說(shuō),對(duì)于任何一臺(tái)圖靈機(jī)都能通過(guò)此種方法構(gòu)造出一個(gè)特定的細(xì)胞自動(dòng)機(jī)來(lái)模擬它。因此我們說(shuō),一維鄰居半徑是1的細(xì)胞自動(dòng)機(jī)這一類(lèi)計(jì)算宇宙可以模擬圖靈機(jī)這一類(lèi)計(jì)算宇宙。
不僅僅細(xì)胞自動(dòng)機(jī)可以模擬圖靈機(jī),圖靈機(jī)反過(guò)來(lái)又可以模擬細(xì)胞自動(dòng)機(jī)。例如,針對(duì)一個(gè)特定的鄰居半徑是1,有兩種顏色的編號(hào)為90的細(xì)胞自動(dòng)機(jī):

我們可以找到一臺(tái)6個(gè)內(nèi)部狀態(tài)、作用到3個(gè)顏色的紙帶上的圖靈機(jī)來(lái)模擬它。圖靈機(jī)的工作原理與細(xì)胞自動(dòng)機(jī)最大的不同就在于,圖靈機(jī)是一臺(tái)串行操作的機(jī)器,因?yàn)槊恳粫r(shí)刻讀寫(xiě)頭只能盯住一個(gè)方格,并對(duì)它進(jìn)行改寫(xiě)。但是細(xì)胞自動(dòng)機(jī)卻可以在一個(gè)時(shí)刻一下更改所有的方格。如何解決這個(gè)矛盾呢?實(shí)際上在我們的數(shù)字計(jì)算機(jī)編程實(shí)現(xiàn)細(xì)胞自動(dòng)機(jī)的過(guò)程中,已經(jīng)可以找到這種利用串行的算法來(lái)模擬并行的方法了。基本思想就是讓圖靈機(jī)從左到右掃描所有方格,然后分別對(duì)這些方格的顏色進(jìn)行更新。這樣一次來(lái)回掃描就剛好完成了一步細(xì)胞自動(dòng)機(jī)的運(yùn)算。也就是說(shuō),多步圖靈機(jī)的運(yùn)算才對(duì)應(yīng)1步細(xì)胞自動(dòng)機(jī)的動(dòng)作。由于我們?cè)试S程序運(yùn)行任意長(zhǎng)時(shí)間,所以圖靈機(jī)可以模擬細(xì)胞自動(dòng)機(jī)的全部動(dòng)作。 下面的示意圖就僅僅有6個(gè)方格,圖靈機(jī)模擬CA90的操作:

為了簡(jiǎn)便起見(jiàn),示意圖僅僅畫(huà)出了圖靈機(jī)的讀寫(xiě)頭在第二個(gè)方格起步的情況。實(shí)際上,該圖靈機(jī)有6種內(nèi)部狀態(tài),這6種內(nèi)部狀態(tài)分成了2組,一組對(duì)應(yīng)的是從左往右移動(dòng)的,一組對(duì)應(yīng)的是從右往左移動(dòng)的。為了表示方便,我們把第一組狀態(tài)表示成了一個(gè)紅色的圓圈加上一個(gè)向上或向右或向下或向左的指針。同樣把第二組表示成了綠色的圈加上不同的指針?lè)较颉T诿糠N情況下,這些內(nèi)部狀態(tài)都起到了對(duì)所讀方格的記憶的作用。如左圖所示,圖靈機(jī)頭從第二個(gè)格出發(fā)讀入一個(gè)方格1,內(nèi)部狀態(tài)由1轉(zhuǎn)變?yōu)?,這個(gè)時(shí)候讀入第二個(gè)方格0,因此這兩步串起來(lái)就對(duì)應(yīng)了10,它的內(nèi)部狀態(tài)轉(zhuǎn)變?yōu)?,這個(gè)狀態(tài)3相當(dāng)于一個(gè)內(nèi)部存儲(chǔ)器記住了符號(hào)序列10,于是就可以根據(jù)CA的規(guī)則讀入第三個(gè)格0,那么輸出應(yīng)該是1,它就把這個(gè)1輸出出來(lái),打印到第5個(gè)方格上。實(shí)際上,當(dāng)前時(shí)刻,新的方格狀態(tài)反映的是左邊一個(gè)方格在下一個(gè)CA時(shí)刻對(duì)應(yīng)的顏色(即第5個(gè)格子反映的應(yīng)該是第4個(gè)格子的顏色),也就是說(shuō)圖靈機(jī)要把左邊一個(gè)方格的信息暫放在這里。然后圖靈機(jī)繼續(xù)往右走。 當(dāng)從左往右掃描完整個(gè)一行之后,讀寫(xiě)頭開(kāi)始反著走。這時(shí)候,讀寫(xiě)頭需要做的就是把當(dāng)前方格的信息(無(wú)論是1還是0)都原封不動(dòng)的拷貝到左邊的一個(gè)方格去,因此,只要用2個(gè)內(nèi)部狀態(tài)就可以完成倒著掃描的任務(wù)(因?yàn)樗枰洃浀木褪巧弦粫r(shí)刻0或者1的顏色)。就這樣,圖靈機(jī)一遍一遍的掃描紙帶就可以模擬CA的動(dòng)作了。下圖就是該圖靈機(jī)模擬CA90的情況:

其中灰色的區(qū)域表示圖靈機(jī)頭需要掃描的區(qū)域(即圖靈機(jī)走到灰色區(qū)域的邊緣就可以返回來(lái)),因此白色以外的方格是不需要圖靈機(jī)掃描的。通過(guò)這個(gè)增加的顏色,就能讓圖靈機(jī)嚴(yán)格、有效地模擬細(xì)胞自動(dòng)機(jī)的動(dòng)作了。箭頭所指的一行一行方格表示對(duì)應(yīng)的該圖靈機(jī)模擬的細(xì)胞自動(dòng)機(jī)不同時(shí)刻的狀態(tài)。我們可以把箭頭所指的這些行專(zhuān)門(mén)挑出來(lái),排在一起,得到:

它和CA90的圖形是一模一樣的。 實(shí)際上,這個(gè)特定的6狀態(tài)、3顏色圖靈機(jī)可以模擬任何一個(gè)2顏色,鄰居半徑為1的細(xì)胞自動(dòng)機(jī)。而只要我們能擴(kuò)充圖靈機(jī)的內(nèi)部狀態(tài)數(shù),不難想象圖靈機(jī)可以模擬任何一種一維的細(xì)胞自動(dòng)機(jī)。也就是說(shuō)圖靈機(jī)這個(gè)類(lèi)是可以模擬一維細(xì)胞自動(dòng)機(jī)這個(gè)類(lèi)的。 這樣,又因?yàn)榧?xì)胞自動(dòng)機(jī)這個(gè)類(lèi)可以模擬圖靈機(jī)這個(gè)類(lèi),所以,我們看到了圖靈機(jī)和細(xì)胞自動(dòng)機(jī)的某種相互等價(jià)的關(guān)系。也就是說(shuō),原則上講如果A和B是完全等價(jià)的,那么A能干的事情B也能干,B能干的A也能干。因此,我們就在不同的計(jì)算宇宙之間劃上了等號(hào)。 在NKS一書(shū)中,Wolfram證明了各種各樣的計(jì)算宇宙都是計(jì)算等價(jià)的,也就是說(shuō)它們都可以相互模擬,那么它們之間的那種神秘的相似性也就不那么奇怪了。 |
七、從復(fù)雜性走向通用性
1、通用計(jì)算
早在上個(gè)世紀(jì)30年代的時(shí)候,人們就發(fā)現(xiàn)了各種計(jì)算系統(tǒng)之間由于可以相互模擬所帶來(lái)的等價(jià)性。于是,人們猜想,也許自然中的一切計(jì)算都不會(huì)超過(guò)人們發(fā)明的各種計(jì)算模型所能及的范圍。這個(gè)猜想被稱(chēng)為丘奇、圖靈論題(Church – Turing Thesis),即;
任何一種可有效計(jì)算過(guò)程就是圖靈機(jī)可計(jì)算的過(guò)程。反過(guò)來(lái)說(shuō),圖靈機(jī)可計(jì)算性就是有效計(jì)算的定義。因?yàn)?,任何一個(gè)計(jì)算過(guò)程都可以用圖靈機(jī)來(lái)計(jì)算,因此,人們又稱(chēng)圖靈機(jī)是一類(lèi)具有通用計(jì)算性,簡(jiǎn)稱(chēng)通用性的系統(tǒng)。
那么,任何一類(lèi)可模擬所有圖靈機(jī)的計(jì)算系統(tǒng)也是一類(lèi)具有通用計(jì)算性的系統(tǒng),或稱(chēng)為支持通用計(jì)算的。(Universal computation)。
通用性是一個(gè)非常重要的概念,它意味著各個(gè)不同系統(tǒng)之間的某種本質(zhì)上的等價(jià)關(guān)系。例如,我們說(shuō)英語(yǔ)是一種國(guó)際通用語(yǔ)言,這意味著不同的國(guó)家都可以通過(guò)英語(yǔ)來(lái)進(jìn)行交流。因此不同的國(guó)家被通用的英語(yǔ)聯(lián)系了起來(lái)。再例如,我們說(shuō)人民幣是目前中國(guó)通用的貨幣,它意味著不同的商品買(mǎi)賣(mài)可以通過(guò)人民幣聯(lián)系到一起。因此,系統(tǒng)中有了通用性,該系統(tǒng)內(nèi)部就有可能形成某種統(tǒng)一的聯(lián)系。
計(jì)算中的通用性無(wú)非也為各個(gè)計(jì)算宇宙聯(lián)結(jié)了紐帶。然而,當(dāng)我們說(shuō)計(jì)算的通用性的時(shí)候,它卻有兩層含義,第一層含義是指某一類(lèi)系統(tǒng)是通用的。就比如圖靈機(jī)這個(gè)類(lèi),它能夠完成任何一種計(jì)算。
另外一層含義是指,某一個(gè)具體的計(jì)算系統(tǒng)是通用的。那么這個(gè)通用的計(jì)算系統(tǒng)就被稱(chēng)為通用計(jì)算機(jī)。換句話說(shuō),通用計(jì)算機(jī)是一臺(tái)特定的機(jī)器,它能夠模擬任何一種其它機(jī)器的計(jì)算。
歷史上第一臺(tái)特定的通用計(jì)算機(jī)器是圖靈在1936年首先發(fā)現(xiàn)的,它被稱(chēng)為通用圖靈機(jī)。這臺(tái)通用圖靈機(jī)的威力在于不用改變它的規(guī)則和內(nèi)部狀態(tài)數(shù),只要給它不同的輸入紙帶,它就可以完成任何一臺(tái)其它的圖靈機(jī)所能完成的工作。
換句話說(shuō),通用圖靈機(jī)就像一條變色龍,它能夠在不同的輸入條件下變身成為任何一臺(tái)其它的機(jī)器,如下圖式:

在細(xì)胞自動(dòng)機(jī)這個(gè)大類(lèi)里面,也存在著通用的細(xì)胞自動(dòng)機(jī),它可以模擬任何一個(gè)其它細(xì)胞自動(dòng)機(jī)的行為,這是一個(gè)具有19種顏色、鄰居半徑為2的細(xì)胞自動(dòng)機(jī),通過(guò)改變它的初始條件,它就可以模擬任何一個(gè)細(xì)胞自動(dòng)機(jī)。下圖簡(jiǎn)示了這個(gè)通用細(xì)胞自動(dòng)機(jī)的工作原理:

在這個(gè)細(xì)胞自動(dòng)機(jī)中,每18個(gè)方格代表要模擬的細(xì)胞自動(dòng)機(jī)的一個(gè)方格。其中在一組18個(gè)方格中第三個(gè)方格對(duì)應(yīng)的是被模擬的細(xì)胞自動(dòng)機(jī)第一個(gè)方格的輸入(先考慮最簡(jiǎn)單的僅有兩種顏色,鄰居半徑為1的細(xì)胞自動(dòng)機(jī)),如該圖示意的輸入是010。剩下的2、4~16為待模擬的細(xì)胞自動(dòng)機(jī)的規(guī)則編碼。我們知道,對(duì)于細(xì)胞自動(dòng)機(jī)來(lái)說(shuō),我們可以給它進(jìn)行編碼。也就是將一組同類(lèi)型的細(xì)胞自動(dòng)機(jī)(例如顏色數(shù)相同,半徑相同)按照一定的順序從小到大排列出來(lái),那么每個(gè)細(xì)胞自動(dòng)機(jī)對(duì)應(yīng)的序號(hào)就是它的編碼。反過(guò)來(lái),給定一個(gè)編碼,我們就能得到一個(gè)特定規(guī)則的細(xì)胞自動(dòng)機(jī)。 因此,如果把一個(gè)細(xì)胞自動(dòng)機(jī)的編碼輸入給通用細(xì)胞自動(dòng)機(jī),通用細(xì)胞自動(dòng)機(jī)就能計(jì)算每一步的狀態(tài)。通用細(xì)胞自動(dòng)機(jī)所要做的就是要根據(jù)二進(jìn)制的編碼一個(gè)一個(gè)計(jì)算出在不同的方格輸入情況下對(duì)應(yīng)的輸出。然后將每個(gè)待模擬方格的值與鄰近的方格相互作用,得到輸出的方格值。這樣在經(jīng)過(guò)了多步運(yùn)算之后(到達(dá)虛橫線所示的位置)該通用細(xì)胞自動(dòng)機(jī)完成一步對(duì)被模擬細(xì)胞自動(dòng)機(jī)的模擬。下面是通用細(xì)胞自動(dòng)機(jī)模擬90號(hào)細(xì)胞自動(dòng)機(jī)的情況:

對(duì)于更復(fù)雜的1維細(xì)胞自動(dòng)機(jī),只要擴(kuò)大對(duì)應(yīng)被模擬細(xì)胞自動(dòng)機(jī)一組方格的個(gè)數(shù)并經(jīng)過(guò)適當(dāng)?shù)霓D(zhuǎn)換就可以了。這樣我們就能夠用通用細(xì)胞自動(dòng)機(jī)模擬任何一個(gè)1維的細(xì)胞自動(dòng)機(jī)了。由于1維細(xì)胞自動(dòng)機(jī)可以模擬任意一臺(tái)圖靈機(jī),所以,該細(xì)胞自動(dòng)機(jī)是通用的。 |
2、最小的通用計(jì)算系統(tǒng)
然而正如我們看到的,這個(gè)通用細(xì)胞自動(dòng)機(jī)非常復(fù)雜,能不能找到一個(gè)具體的規(guī)則簡(jiǎn)單的通用細(xì)胞自動(dòng)機(jī)呢?答案是肯定的,在NKS書(shū)中,這樣一個(gè)目前為止最簡(jiǎn)單的支持通用計(jì)算的系統(tǒng)被找到了,這個(gè)發(fā)現(xiàn)者是Wolfram的助手Mathew Cook。他找到了一個(gè)擁有兩個(gè)顏色,兩個(gè)鄰居的110號(hào)一維細(xì)胞自動(dòng)機(jī)。下面展示了110細(xì)胞自動(dòng)機(jī)在一個(gè)隨機(jī)的初始條件下的行為:

下面列出它的規(guī)則:

我們知道,根據(jù)Wolfram的分類(lèi),這是一個(gè)第四類(lèi)(復(fù)雜類(lèi)型)的細(xì)胞自動(dòng)機(jī)。仔細(xì)觀察我們會(huì)發(fā)現(xiàn),在這個(gè)細(xì)胞自動(dòng)機(jī)中有許多類(lèi)似“粒子”的花紋在走來(lái)走去。它們可以起到在世界的不同區(qū)域傳播信息的作用。正是因?yàn)檫@些粒子的作用,Mathew才找到了證明它是通用的的方法。具體的,Mathew開(kāi)發(fā)了一個(gè)軟件工具,專(zhuān)門(mén)檢測(cè)CA110中的粒子傳播和碰撞規(guī)律。然后,它將這些粒子傳播和碰撞的規(guī)律與另外一類(lèi)特定的計(jì)算系統(tǒng):Tag系統(tǒng)進(jìn)行比較,發(fā)現(xiàn)這些粒子可以模擬Tag系統(tǒng)。而因?yàn)槲覀円阎猅ag系統(tǒng)是可以模擬任意一臺(tái)圖靈機(jī)的,所以這也就證明了CA110的通用性。
這個(gè)證明的意義在于,CA110是一個(gè)規(guī)則非常簡(jiǎn)單的系統(tǒng)。而即使規(guī)則這樣簡(jiǎn)單,它仍然能夠支持通用計(jì)算。一旦這個(gè)系統(tǒng)支持通用計(jì)算,那么它就可以完成任意一種已知的計(jì)算。
證明CA110是通用的方法也非常奇特。它并不像其它證明通用性的方法那樣從底層規(guī)則做起,而是通過(guò)觀察110細(xì)胞自動(dòng)機(jī)涌現(xiàn)出的花紋上的規(guī)律出發(fā)的。因此,這是一種異常艱難的,從圖形出發(fā)的證明方法。
有了110這個(gè)目前已知的最簡(jiǎn)單的通用機(jī)器之后,Wolfram甚至猜測(cè)任何一種復(fù)雜類(lèi)型的細(xì)胞自動(dòng)機(jī)都有可能是支持通用計(jì)算的。同時(shí),他提出尋找最小通用機(jī)器的號(hào)召,甚至懸賞25000美元尋找能夠證明一個(gè)2狀態(tài)、3顏色的圖靈機(jī)是通用圖靈機(jī)的方法。如果能夠證明此結(jié)論,那么它將是目前已知的最簡(jiǎn)單的通用圖靈機(jī)。

3、計(jì)算等價(jià)性原理
這個(gè)證明另外一個(gè)意義還在于,它促使Wolfram提出了一個(gè)更大膽的被稱(chēng)為計(jì)算等價(jià)性的原理(Computational equivalence principle)。這個(gè)原理是說(shuō),任何一個(gè)行為不是很簡(jiǎn)單的系統(tǒng)都可能是支持通用計(jì)算的。
例如對(duì)于細(xì)胞自動(dòng)機(jī)來(lái)說(shuō),還有類(lèi)似110號(hào)細(xì)胞自動(dòng)機(jī)的大量的第4類(lèi)細(xì)胞自動(dòng)機(jī),它們可能最終都會(huì)被證明是支持通用計(jì)算的。甚至對(duì)于那些諸如30號(hào)那樣的第三類(lèi)(混沌類(lèi)型)細(xì)胞自動(dòng)機(jī),也有可能是支持通用計(jì)算的。以至于,Wolfram都猜測(cè),宇宙中可能根本就不存在所謂的隨機(jī)性。因?yàn)橐粋€(gè)隨機(jī)的系統(tǒng)也有可能是支持通用計(jì)算的。
然而,事實(shí)上,這個(gè)命題目前沒(méi)法證明,因?yàn)橐胱C明一個(gè)系統(tǒng)不支持通用計(jì)算要比證明它支持通用計(jì)算更困難。
這個(gè)計(jì)算等價(jià)性原理也給“萬(wàn)物皆有靈”的說(shuō)法提供了某種支持。因?yàn)樵谧匀唤绱嬖谥魇礁鳂拥膹?fù)雜過(guò)程,例如水流、化學(xué)反應(yīng)等等。雖然我們很難研究這類(lèi)系統(tǒng),但是如果把這類(lèi)過(guò)程看作一種計(jì)算過(guò)程的話,那么它們很有可能也會(huì)像110號(hào)細(xì)胞自動(dòng)機(jī)那樣支持通用計(jì)算。而從某種意義上說(shuō),通用計(jì)算就是宇宙中的任何一種計(jì)算,甚至我們?nèi)祟?lèi)大腦也不過(guò)是一種通用計(jì)算機(jī)器。那么,這些等價(jià)于通用計(jì)算的機(jī)器和自然過(guò)程從原則上講就可以具備我們大腦一樣的思考過(guò)程。因此,“萬(wàn)物皆有靈”的確有一定的根據(jù)。
計(jì)算等價(jià)原理也為復(fù)雜性閾值的說(shuō)法提供了一定的解釋?zhuān)缦聢D:

也就是說(shuō)隨著系統(tǒng)底層規(guī)則的復(fù)雜性增長(zhǎng),系統(tǒng)行為的復(fù)雜性增長(zhǎng)到一定程度就不再增長(zhǎng)了。這個(gè)閾值就是通用性。即當(dāng)系統(tǒng)復(fù)雜到能夠支持通用計(jì)算之后,它從原則上講就與任何一個(gè)其它的支持通用計(jì)算的系統(tǒng)等價(jià)了。因此,繼續(xù)增加規(guī)則的復(fù)雜性將是無(wú)濟(jì)于事的。
反過(guò)來(lái)再看看前面提到的那個(gè)用細(xì)胞自動(dòng)機(jī)生成的時(shí)間序列模擬股市數(shù)據(jù)的應(yīng)用,我們會(huì)發(fā)現(xiàn)它背后的原理其實(shí)就是計(jì)算等價(jià)性??梢哉J(rèn)為,股票市場(chǎng)是一個(gè)復(fù)雜的能夠支持通用計(jì)算的系統(tǒng),而我們知道細(xì)胞自動(dòng)機(jī)也是一個(gè)支持通用計(jì)算的系統(tǒng),由于它們是等價(jià)的,所以細(xì)胞自動(dòng)機(jī)就能夠模擬股市的時(shí)間序列,盡管真實(shí)股市的底層規(guī)則可能是各個(gè)股民的買(mǎi)賣(mài)操作,而細(xì)胞自動(dòng)機(jī)的底層規(guī)則和真實(shí)股市的底層規(guī)則相差那么巨大。系統(tǒng)復(fù)雜到一定程度之后,我們就可以忘掉它的底層規(guī)則,而從另一個(gè)通用性的角度上去考慮它。因此我們的分析模式從復(fù)雜性轉(zhuǎn)變到了通用性。
八、計(jì)算宇宙中的黑洞
1、虛擬層級(jí)
正如Wolfram所說(shuō),計(jì)算通用性是一個(gè)非常重要的概念。然而,我認(rèn)為除了計(jì)算等價(jià)性原理之外,通用計(jì)算還具有另外一個(gè)更加重要的意義,這就是“虛擬層級(jí)”的概念。

有一部類(lèi)似《黑客帝國(guó)》的電影叫十三層樓。影片敘述了一個(gè)神奇的故事:一個(gè)研究虛擬世界的科學(xué)家突然被謀殺了。主人公為了調(diào)查這起兇殺案,不得不親自走進(jìn)那個(gè)科學(xué)家建立得惟妙惟肖的虛擬世界中尋找該科學(xué)家給主人公留下的一封信。信上說(shuō),他發(fā)現(xiàn)了一個(gè)天大的秘密:即科學(xué)家和主人公居住的世界居然也是被人虛擬出來(lái)的。主人公不相信這個(gè)事實(shí),決定親自驗(yàn)證一下。他一路開(kāi)車(chē)來(lái)到了“世界的盡頭”,終于看到了真相:他所生活的世界是被另一個(gè)更高層次的世界在計(jì)算機(jī)中模擬出來(lái)的。
如果我們用一個(gè)圖形表示這個(gè)故事中提到的各種世界之間的邏輯關(guān)系的話,我們可以得到:

主人公所在的世界是中間一層次的世界,它是被更高一層次的造物主在一個(gè)被叫做“真實(shí)世界”的世界中創(chuàng)造出來(lái)的一個(gè)電腦程序。在這個(gè)虛擬世界中,那個(gè)被謀殺的科學(xué)家又創(chuàng)造了一個(gè)虛擬世界,我們暫且稱(chēng)它為虛擬世界之中的虛擬世界吧。那么這些不同的世界之間就形成了上圖所示的邏輯關(guān)系。更深一層次的虛擬世界被包含在上一層次虛擬世界的模擬器之中。
實(shí)際上,我們經(jīng)常會(huì)跟這種類(lèi)似的虛擬層次打交道,只不過(guò)我們一般不注意罷了。比如我們?cè)陔娪霸嚎措娪?,那么電影里面的故事就是一個(gè)虛擬的世界,而我們是在外層的真實(shí)世界。再如我們讀小說(shuō),小說(shuō)也構(gòu)建了一個(gè)虛擬的世界。有的電影會(huì)演出這樣的內(nèi)容:一群青年人正在看電影,這樣電影中的電影就是更深一層次的虛擬世界。所有這些就構(gòu)造了一個(gè)被我稱(chēng)之為“虛擬層次”的層級(jí)結(jié)構(gòu)。
讓我們?cè)倩氐綀D靈機(jī)中,我們說(shuō)通用圖靈機(jī)可以模擬任何一個(gè)其它的計(jì)算過(guò)程。實(shí)際上,這就意味著這個(gè)通用圖靈機(jī)在自己內(nèi)部構(gòu)造了一個(gè)虛擬的層次。如果我們記通用圖靈機(jī)為U,那個(gè)被模擬的圖靈機(jī)為A。那么當(dāng)U模擬A的時(shí)候,實(shí)際上,A就會(huì)在U的內(nèi)部形成一個(gè)像A’(例如U根據(jù)A的編碼構(gòu)造出來(lái)的一臺(tái)抽象的虛擬機(jī)器)。因?yàn)閁可以精確的模擬A的所有動(dòng)作,也就是說(shuō)A’會(huì)按照A的方式一模一樣的行動(dòng),以至于A’根本沒(méi)辦法感受到它是被一個(gè)通用機(jī)器U支持的運(yùn)算。同樣的道理,任意的一個(gè)程序如果運(yùn)行在U之中都無(wú)法感受到U的存在。因此我們說(shuō),U實(shí)際上在它的內(nèi)部構(gòu)造了一個(gè)全新層次的虛擬世界。(比如一個(gè)運(yùn)行在通用細(xì)胞自動(dòng)機(jī)上面的細(xì)胞自動(dòng)機(jī)110就是一個(gè)內(nèi)嵌在通用細(xì)胞自動(dòng)機(jī)之中的虛擬世界)。
如果你對(duì)這種機(jī)器模擬機(jī)器的現(xiàn)象很陌生。那么我們來(lái)看一個(gè)實(shí)際的例子:有一個(gè)特殊的軟件就叫做虛擬機(jī)。它是Windows中的一個(gè)程序,運(yùn)行它之后,你會(huì)在Windows之上得到一個(gè)完全獨(dú)立的虛擬計(jì)算機(jī),它有虛擬的硬件、虛擬的操作系統(tǒng)等等。這種虛擬機(jī)器對(duì)于程序員來(lái)說(shuō)有很多的好處,例如他可以在虛擬機(jī)上試驗(yàn)一些軟件而不破壞真實(shí)計(jì)算機(jī)。虛擬機(jī)也不會(huì)害怕感染病毒,因?yàn)榧词共《驹賲柡λ矁H僅是破壞了那臺(tái)虛擬的機(jī)器,而這個(gè)虛擬的機(jī)器對(duì)于真實(shí)的計(jì)算機(jī)來(lái)說(shuō)不過(guò)是一些數(shù)據(jù)罷了。下圖就是一個(gè)對(duì)該虛擬機(jī)軟件的截圖:

該虛擬機(jī)軟件運(yùn)行在一個(gè)真實(shí)的Windows XP上,而虛擬機(jī)上正在運(yùn)行一個(gè)Windows XP操作系統(tǒng)。
2、自指黑洞
因此,我們說(shuō),通用機(jī)器可以在內(nèi)部構(gòu)建一個(gè)完全不同的虛擬層次。下面,我們進(jìn)一步想象,既然通用機(jī)器可以模擬任何一個(gè)機(jī)器,那么它能不能模擬自己呢?答案應(yīng)該是肯定的,否則它就不叫做通用機(jī)器了。
然而,似乎有什么東西不對(duì)勁了。一個(gè)機(jī)器正在模擬它自己,這可能嗎?我們可以想象一下,通用程序A正在讀入A自己的編碼,然后在內(nèi)部模擬層次上創(chuàng)造了一個(gè)模擬的A自己。而這個(gè)模擬的A正在干什么呢?它正在讀入自己的編碼,而試圖模擬自己。這就會(huì)造成一個(gè)無(wú)窮的怪圈。如果用圖形表示的話,這就是一個(gè)無(wú)窮加深模擬層次的程序:

在理想情況下(提供給這臺(tái)機(jī)器無(wú)窮大的空間和運(yùn)行時(shí)間),那么我們的確會(huì)得到一個(gè)自我包含的無(wú)窮序列。它就像宇宙中的黑洞一樣,會(huì)無(wú)窮延伸下去……。因此,我形象的把這樣一種虛擬世界中的自指怪圈稱(chēng)為“計(jì)算宇宙中的黑洞”。
然而,現(xiàn)實(shí)的情況是,我們不能給通用機(jī)器A提供無(wú)窮的空間,因此它在內(nèi)部實(shí)現(xiàn)的虛擬的A已經(jīng)不是它自己的精確的像了。然而,有一種非常巧妙的方法,可以讓A完全模擬自己的動(dòng)作。這被稱(chēng)之為奎恩(Quine)程序,即一種能夠打印出自己源代碼的程序。這里的Quine是一個(gè)20世紀(jì)初的大哲學(xué)家,專(zhuān)門(mén)研究數(shù)理邏輯。
你一定會(huì)提出這樣的質(zhì)疑:這個(gè)計(jì)算宇宙中的黑洞是挺好玩的,不過(guò)也太玄乎了吧?研究它有什么用呢?呵呵,這種自指黑洞的用處可大了,早在1931年的時(shí)候,哥德?tīng)栒怯眠@種自指黑洞的方法證明了被美國(guó)《時(shí)代周刊》評(píng)為20世紀(jì)最偉大的數(shù)學(xué)定理:哥德?tīng)柌煌耆远ɡ怼6?,出乎意料的是,馮諾依曼研究的自復(fù)制自動(dòng)機(jī)理論本質(zhì)上講也具有這種自我模擬的邏輯,即自我模擬實(shí)際上是現(xiàn)實(shí)生命自我繁殖的邏輯基礎(chǔ)。因此我認(rèn)為,生命這類(lèi)特殊的系統(tǒng)就是一個(gè)自我模擬的系統(tǒng)??上В@里的空間太小了,我將在另一篇文章詳細(xì)論述這些奇怪的玩意兒。
九、走向現(xiàn)實(shí)
Wolfram當(dāng)年出版NKS這本書(shū)就遭到了各方的質(zhì)疑。人們都認(rèn)為他這本書(shū)中空無(wú)一物,對(duì)科學(xué)沒(méi)有做出任何實(shí)質(zhì)的貢獻(xiàn)。
然而,這個(gè)判斷是不完全的。這有兩個(gè)原因,首先,NKS目前的研究仍處于起步階段,Wolfram探索各種計(jì)算宇宙的目的就是要收集大量的有關(guān)虛擬宇宙的第一手觀察資料。這就好比當(dāng)年伽利略觀察行星運(yùn)動(dòng)現(xiàn)象,他要先收集大量的數(shù)據(jù)??梢韵胂?,當(dāng)初人們觀察行星運(yùn)動(dòng)并不能帶來(lái)直接的應(yīng)用。目前NKS的這些觀察資料的收集也不會(huì)得到立竿見(jiàn)影的應(yīng)用效果,這也是任何一門(mén)科學(xué)的發(fā)展規(guī)律。
其次,NKS的應(yīng)用價(jià)值本身并不像我們一般人想象的那樣簡(jiǎn)單。實(shí)際上,所謂的應(yīng)用是和人們的需求密切相關(guān)的,新的科學(xué)技術(shù)出來(lái)了并不見(jiàn)得會(huì)解決一些老的問(wèn)題,而是在全新的需求條件下得到了全新的應(yīng)用,甚至從舊有的觀點(diǎn)看,這些新的應(yīng)用根本就不算應(yīng)用。舉個(gè)現(xiàn)實(shí)的例子就是計(jì)算機(jī)的發(fā)明,現(xiàn)在幾乎沒(méi)有任何人能夠否定這是一個(gè)有用的工具。然而,在中國(guó)的一些邊遠(yuǎn)山區(qū),很多人的確還認(rèn)為計(jì)算機(jī)一文不值,計(jì)算機(jī)能幫我種地嗎?它能解決我的吃飯問(wèn)題嗎?實(shí)際上,要想看到計(jì)算機(jī)的應(yīng)用價(jià)值,你必須走進(jìn)信息世界這個(gè)大的環(huán)境中。
NKS也許正面臨這樣的處境,我懷疑,它的應(yīng)用前景甚至不能用一般的評(píng)價(jià)標(biāo)準(zhǔn)來(lái)想象。例如NKS并不能幫助你找到一套合適的優(yōu)化算法,它也不能幫你造出省油的機(jī)器來(lái)。然而,也許NKS可以教會(huì)你如何去設(shè)計(jì)一套虛擬世界的規(guī)則,從而使你的在線游戲更活靈活現(xiàn),讓人百玩不厭。因此,我們需要重新定義NKS的所謂的應(yīng)用價(jià)值。
說(shuō)白了,NKS是一支潛力股。那么,面對(duì)現(xiàn)實(shí),就是此時(shí)此刻,我們又如何判斷NKS是有潛力的呢?我的回答是,這就要看方向了,即這門(mén)新興學(xué)科是否抓住了這個(gè)時(shí)代發(fā)展的特征。
最近有一本暢銷(xiāo)書(shū),叫做《世界是平的》,它在講述悄然發(fā)生于這個(gè)世界的變化趨勢(shì),即世界正在扁平化。原有的社會(huì)體系正在被新興的各種文化,包括互聯(lián)網(wǎng)、博克、超級(jí)女生等現(xiàn)象解構(gòu)。在網(wǎng)絡(luò)上,人人都是平等的,真實(shí)世界中的那些層級(jí)關(guān)系變得完全扁平化了。超級(jí)女生的收視率遠(yuǎn)遠(yuǎn)超過(guò)了央視的春節(jié)晚會(huì),這是因?yàn)檫@套節(jié)目的運(yùn)作方式完全是平民對(duì)平民的。然而,世界為什么會(huì)扁平化?以前的社會(huì)層級(jí)結(jié)構(gòu)為什么會(huì)解體?傳統(tǒng)科學(xué)不能給我們帶來(lái)滿意解答。

也許NKS會(huì)給這個(gè)問(wèn)題的解答帶來(lái)一定的啟發(fā)性。從某種程度上說(shuō),NKS的釋放比特自由的精神非常符合這種新興的基于個(gè)體的、扁平化的思維范式。即我們不用一種家長(zhǎng)式的、中央控制式的辦法去對(duì)付那些比特,反過(guò)來(lái)讓它們自由的演化。照人們的線性思維習(xí)慣,一定會(huì)認(rèn)為這樣的后現(xiàn)代式解構(gòu)會(huì)造成世界大亂,學(xué)生當(dāng)起了老師,平民居然研究起了科學(xué),小Linus居然想跟大微軟抗衡。然而,NKS中大量的計(jì)算機(jī)實(shí)驗(yàn)告訴我們,事情的結(jié)果是,一種自發(fā)的秩序仍然會(huì)在整體層面構(gòu)造出來(lái)。而且,一旦這種涌現(xiàn)出的自發(fā)序復(fù)雜到一定程度以后,它又會(huì)形成一個(gè)完全嶄新的虛擬層級(jí),這個(gè)虛擬層次的出現(xiàn),會(huì)引發(fā)又一輪全新的虛擬層次中的進(jìn)化。