認(rèn)識(shí)計(jì)算機(jī)的神奇性
假設(shè)你去購(gòu)買一輛新車,銷售員卻對(duì)你說,“你知道不?這輛車不僅僅能在路上開。”
你說:“啥?”
“真的。你可以用它來做其他很多事情。例如,折疊起來它就變?yōu)橐惠v自行車,展開后它就變?yōu)橐患茱w機(jī)了。對(duì)了,沉入水中時(shí)它還能變?yōu)橐凰覞撍?。另外,它還是一艘宇宙飛船!”
你可能會(huì)認(rèn)為銷售員是在開玩笑,但是,我們的計(jì)算機(jī)就具有這種類似的靈活性。我們可以使用同一個(gè)機(jī)器做很多的事情,例如進(jìn)行飛機(jī)飛行模擬,使用電子表格來進(jìn)行財(cái)務(wù)預(yù)算,用QQ軟件與朋友進(jìn)行聊天等等。計(jì)算機(jī)幾乎與一個(gè)可變?yōu)槠嚒⒆孕熊嚭陀钪骘w船的機(jī)器一樣神奇。
計(jì)算機(jī)之所以這么神奇,主要是它具有兩個(gè)特征。首先,計(jì)算機(jī)是可編程的,也就是說,通過輸入一系列適當(dāng)?shù)闹噶?,我們可以改變一個(gè)計(jì)算機(jī)的行為。其次,電腦是通用的,也就是說,使用正確的程序,我們可以讓計(jì)算機(jī)執(zhí)行任何一種計(jì)算的具體步驟,只要機(jī)器有足夠的內(nèi)存和時(shí)間。其中,計(jì)算的具體步驟,用計(jì)算機(jī)術(shù)語(yǔ)說,叫做算法。
圖靈的劃時(shí)代成果
計(jì)算機(jī)的這兩種特征早已被大眾知曉,連一些小孩子都聽說過,不過在歷史上卻是一個(gè)劃時(shí)代的研究成果,它們是計(jì)算機(jī)科學(xué)之父阿蘭·圖靈在1937年發(fā)表的一篇論文中的思想結(jié)晶。論文中,圖靈描述了一個(gè)通用的可編程的機(jī)器,可以執(zhí)行任何一個(gè)算法。這種機(jī)器通常被稱為圖靈機(jī),它可以看成現(xiàn)代計(jì)算機(jī)的最原始的理論模型。
圖靈需要在論文中證明他的機(jī)器可以執(zhí)行任何可行的算法,但這并不是一件容易的事情,因?yàn)樵诋?dāng)時(shí),算法這個(gè)概念的定義是非常含糊的,大家還不知道如何用嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)語(yǔ)言來描述。當(dāng)然,數(shù)學(xué)家早就發(fā)現(xiàn)了許多特定的算法,例如執(zhí)行加法、乘法和判斷一個(gè)數(shù)是否是素?cái)?shù)等的算法。圖靈用很簡(jiǎn)單的方法證明了這些已知的算法都可以在他的機(jī)器上執(zhí)行。但這還不夠。圖靈還需要以令人信服的方式證明,他的機(jī)器可以執(zhí)行任何算法,包括可能在未來發(fā)現(xiàn)的算法??蓡栴}是,算法這個(gè)概念沒有精確的定義。
為了克服這個(gè)問題,圖靈用了多個(gè)論證方案,每一個(gè)都包含不太嚴(yán)謹(jǐn)?shù)睦碛?,來表明他的機(jī)器可以計(jì)算任何算法。然而,他對(duì)論文中不嚴(yán)謹(jǐn)?shù)牡胤胶懿粷M意,認(rèn)為“在本質(zhì)上,所有的論點(diǎn)都來源于直覺,出于這個(gè)原因,它們?cè)跀?shù)學(xué)上是不完美的”。
超越圖靈,理解算法
1985年,英國(guó)物理學(xué)家大衛(wèi)·多伊奇做出了一個(gè)重要的論斷,可能會(huì)幫助我們進(jìn)一步理解算法的本質(zhì)。
他發(fā)現(xiàn),任何一個(gè)算法的執(zhí)行都必然是由一個(gè)物理系統(tǒng)完成的。執(zhí)行的方式可以是各種各樣的:一個(gè)人可以用算盤來計(jì)算兩個(gè)數(shù)的加法,計(jì)算機(jī)芯片可以進(jìn)行飛機(jī)飛行模擬的運(yùn)算。盡管它們看上去完全不同的,但是這兩個(gè)例子中都是由物理系統(tǒng)在執(zhí)行算法,而所有的物理系統(tǒng)都遵循相同的物理定理。有鑒于此,多伊奇提出了一個(gè)驚世駭俗的原理:任何一種物理過程,你都能夠使用一個(gè)通用計(jì)算機(jī)來模擬它。聽起來很了不起吧,有點(diǎn)“盜夢(mèng)空間”的味道。一臺(tái)機(jī)器可以包含一切,以及其中的所有可能的物理定律。想模擬一個(gè)超新星?還是一個(gè)黑洞的形成?甚至宇宙大爆炸?多伊奇的原理告訴我們,通用計(jì)算機(jī)可以模擬所有這些東西。所以,在某種意義上,如果你完全理解了通用計(jì)算機(jī),你就會(huì)明白所有的物理過程。
多伊奇的原理遠(yuǎn)遠(yuǎn)超越了圖靈的觀點(diǎn)。如果他的原理是正確的,那么很自然地,你就知道通用計(jì)算機(jī)是可以執(zhí)行任何算法的,因?yàn)樗惴ǖ膱?zhí)行,從本質(zhì)上來說就是一種物理過程。你可以使用通用計(jì)算機(jī)來模擬算盤在計(jì)算兩個(gè)數(shù)的加法,模擬一個(gè)芯片的運(yùn)行,或做其他的任何在執(zhí)行某種算法的物理系統(tǒng)。
此外,相較于圖靈的觀點(diǎn),多伊奇的原理更容易證明。也許,我們可以使用物理定律直接推導(dǎo)出這個(gè)原理。這樣,圖靈的觀點(diǎn)就可以歸結(jié)到物理定理之中,這最終可能會(huì)幫助我們找到給算法下準(zhǔn)確定義的辦法。
讓計(jì)算機(jī)展現(xiàn)宇宙的一切
不過,為了完成上面的目標(biāo),我們還需要把多伊奇的原理進(jìn)行改進(jìn)。
首先,我們讓這里計(jì)算機(jī)的概念也包含量子計(jì)算機(jī)。原則上來說,這對(duì)原來的表述并沒什么影響,不過,量子計(jì)算機(jī)可以讓我們快速高效地模擬量子物理過程,這一點(diǎn)很重要。量子物理過程是一種不可思議的過程,如果使用傳統(tǒng)計(jì)算機(jī)來模擬的話,那過程將會(huì)非常緩慢,以至于在實(shí)際中變?yōu)橐环N不可能完成的任務(wù)。其次,我們必須弱化一下多伊奇的原理,不追求做到完整模擬,而是以某一精度近似地模擬。這樣一來,多伊奇的原理更有可能成立。
還沒有人試著從物理定律推斷出改進(jìn)形式的多伊奇的原理。部分原因是,我們不知道物理定律的本質(zhì)究竟是什么。而且,我們還不知道如何將量子力學(xué)與廣義相對(duì)論相結(jié)合在一起。所以,我們也不清楚能否用計(jì)算機(jī)來模擬出涉及到量子引力的物理過程,比如黑洞的蒸發(fā)。
但即使沒有引力的量子理論,我們也可以探尋計(jì)算機(jī)能否模擬出現(xiàn)代物理學(xué)的最成功的理論——粒子物理學(xué)的標(biāo)準(zhǔn)模型和廣義相對(duì)論。
研究人員正積極回答這些問題。在過去的幾年里,美國(guó)物理學(xué)家約翰·裴士基的研究小組已經(jīng)搞清楚了如何使用量子計(jì)算機(jī)模擬幾個(gè)量子場(chǎng)論中的理論。雖然要真正在計(jì)算機(jī)里模擬出量子場(chǎng)論,還需要克服許多技術(shù)障礙,但從目前的研究進(jìn)展來看,勢(shì)頭良好。
然而,廣義相對(duì)論的情況就變得棘手起來。廣義相對(duì)論允許奇怪的奇點(diǎn)存在,例如黑洞內(nèi)部的奇點(diǎn),而奇點(diǎn)撕裂時(shí)空的方式還沒有被我們完全理解。雖然一些相對(duì)論研究者已經(jīng)開發(fā)出許多技術(shù)來模擬特定的物理情況,但目前還沒有人能做到用計(jì)算機(jī)模擬出完整的廣義相對(duì)論。這仍是一個(gè)吸引人的待解問題。
兩種科學(xué)的統(tǒng)一
美國(guó)著名學(xué)者司馬賀在他的著作《人工科學(xué)》中,指出了科學(xué)可以分為兩種。一種是自然科學(xué),如物理學(xué)、生物學(xué)之類的科學(xué);另一種則是人工科學(xué),像計(jì)算機(jī)科學(xué)、經(jīng)濟(jì)學(xué)之類的科學(xué),是由我們?nèi)祟悇?chuàng)造的研究系統(tǒng)。
乍一看,似乎人工科學(xué)應(yīng)該是自然科學(xué)的特殊情況。但多伊奇的原理表明,人類創(chuàng)造的研究系統(tǒng),尤其是計(jì)算機(jī)科學(xué),可以與自然科學(xué)一樣豐富多彩。我們使用計(jì)算機(jī)不僅能模擬出物理定律,也許還能模擬出一個(gè)虛擬世界。美國(guó)計(jì)算機(jī)大師阿倫·凱曾說:“在自然科學(xué)中,大自然給了我們一個(gè)世界,讓我們能在其中發(fā)現(xiàn)定律。在計(jì)算機(jī)中,我們可以把這些定律放入其中,再創(chuàng)造出一個(gè)世界。”多伊奇的原理提供了一個(gè)統(tǒng)一自然科學(xué)和人工科學(xué)的橋梁,未來當(dāng)這個(gè)橋梁真正搭建起來的時(shí)候,將會(huì)改變整個(gè)科學(xué)的面貌。