曹天元
上世紀(jì)80年代出生于上海,曾赴美國(guó)求學(xué)?,F(xiàn)居香港,從事金融工作。涉獵廣泛,除量子學(xué)外,戰(zhàn)爭(zhēng)史也是他的研究興趣之一。
沒人知道(在電腦上)同時(shí)打開7個(gè)窗口能干什么。
——《PC周刊雜志》1983年的評(píng)論
我們已經(jīng)簡(jiǎn)略地講述了量子世界那奇妙的疊加性,以及把它又拉回到現(xiàn)實(shí)中來(lái)的“退相干”,現(xiàn)在我們可以去實(shí)際地看看什么是“量子計(jì)算”了。
如今大家所熟悉的Windows操作系統(tǒng)當(dāng)年以一種革命性的姿態(tài)問世,因?yàn)樗龅搅艘患螪OS無(wú)法做到的事情:同時(shí)操作多個(gè)任務(wù)。在Windows中,我們可以在多個(gè)窗口中同時(shí)運(yùn)行好幾個(gè)不同的程序,這在當(dāng)年的DOS系統(tǒng)中是無(wú)法完成的。今天,我們把利用電腦一邊聽音樂,一邊視頻聊天,同時(shí)一邊打字當(dāng)作理所當(dāng)然的事情,很少去想象對(duì)于十多年前的人來(lái)說(shuō),這是一個(gè)多么偉大的進(jìn)步。
但從計(jì)算機(jī)的本質(zhì)上來(lái)說(shuō),這種“同時(shí)作業(yè)”只不過是一種假相。當(dāng)你覺得你的電腦在同時(shí)干很多事情的時(shí)候,它實(shí)際上并非如此。在某一個(gè)特定的時(shí)刻,計(jì)算機(jī)“實(shí)際上”還是只能干一件事,只不過它能把許多任務(wù)的資料快速地存儲(chǔ)起來(lái),必要時(shí)又快速地讀出,“繼續(xù)干活”而已。二進(jìn)制的數(shù)據(jù)流從處理器中飛快地流過,而它在每一個(gè)特定的時(shí)刻所能處理的無(wú)非還是一個(gè)單一的運(yùn)算。我們可以把這種運(yùn)算的頻率提高到極限,研制出最強(qiáng)大的處理器,但本質(zhì)上,它還是將一系列運(yùn)算一個(gè)一個(gè)地按順序進(jìn)行處理。你的電腦就像一個(gè)動(dòng)作飛快的人,他瘋狂地一會(huì)兒看書,一會(huì)兒洗衣服,一會(huì)兒又跑去吃飯,他轉(zhuǎn)換的頻率如此迅速,以至于在旁觀者的眼里,他竟然像是在同時(shí)干著三件事情一樣。
當(dāng)然,只要我們足夠仔細(xì)和精確地觀察,計(jì)算機(jī)畢竟還是一次只干一件事情的。從這個(gè)意義上講,今天的電腦和剛發(fā)明它的時(shí)候并沒有本質(zhì)的改變,只不過今天的電腦運(yùn)算速度快得多、效率高得多罷了。也正是因?yàn)槿绱?,?dāng)我們要求電腦處理異常大量的運(yùn)算時(shí),最終它將無(wú)可避免地一頭栽入死胡同中,尤其當(dāng)這種運(yùn)算量異常、異常、異常的大時(shí)。
打個(gè)比方,目前有一個(gè)10萬(wàn)美金的懸賞,獎(jiǎng)勵(lì)給第一個(gè)發(fā)現(xiàn)超過1000萬(wàn)位質(zhì)數(shù)的人(這可是真的,并非我的編造)。目前已知的最大質(zhì)數(shù)有980萬(wàn)位(于2006年被發(fā)現(xiàn)),距目標(biāo)只有咫尺之遙。于是你在重賞之下拼命干了好幾個(gè)星期,終于發(fā)現(xiàn)了一個(gè)1000萬(wàn)位的質(zhì)數(shù)!顯然要在這里把它全部寫出來(lái)是不現(xiàn)實(shí)的,因?yàn)樗憧梢詫懗梢槐竞窈竦臅?,讓我們暫時(shí)稱它為N好了。
發(fā)現(xiàn)了偉大的N之后,你決定在去領(lǐng)取10萬(wàn)美金之前最后驗(yàn)算一次,看看它是否真的是質(zhì)數(shù)?;蛟S你覺得這是一個(gè)簡(jiǎn)單的任務(wù),不過,究竟如何來(lái)“驗(yàn)證”N是質(zhì)數(shù)呢?首先,它一定不是個(gè)偶數(shù)(不然就能被2整除了),然后我們用3去除它,不能整除的話改用5,然后是7,11,13……用所有已知的質(zhì)數(shù)去除它。只要有任何一個(gè)質(zhì)數(shù)P能整除它的話,那N顯然就可以寫為P×Q的形式,從而被證明不是質(zhì)數(shù)。我們要一直堅(jiān)持到一個(gè)大于■的質(zhì)數(shù),如果那時(shí)N仍然不能被整除,那我們就勝利了:在這種情況下,N顯然是一個(gè)如假包換的質(zhì)數(shù)。
“生命、宇宙和一切的終極答案是……42。”超級(jí)電腦“深思”帶著無(wú)比的冷靜和威嚴(yán)宣布。
——道格拉斯·亞當(dāng)《銀河系漫游指南》
這聽上去似乎并不難,然而如果N是一個(gè)1000萬(wàn)位的質(zhì)數(shù)的話,我們的計(jì)算負(fù)擔(dān)就很大了:我們可能要先后用大約105000000個(gè)數(shù)去除它!實(shí)際的數(shù)字要小一些,大約是104999993,不過說(shuō)實(shí)話,區(qū)別也不大?,F(xiàn)在假設(shè)我們的計(jì)算機(jī)如原子頻率那樣快地計(jì)算,每秒處理1010個(gè)除法,我們?nèi)匀恍枰?04999983秒鐘才能最終得出結(jié)論。而這是多久呢?我承認(rèn)我無(wú)法形容它的長(zhǎng)度,我只能提供另一個(gè)數(shù)字作為比較:我們的宇宙誕生至今,其年齡不超過1018秒。
顯而易見,你的偉大發(fā)現(xiàn)給我們帶來(lái)了無(wú)盡的煩惱。問題在于,即使我們真的花了漫長(zhǎng)的時(shí)間T來(lái)確認(rèn)N是個(gè)質(zhì)數(shù),但當(dāng)我們遇到一個(gè)僅比N大一位(換句話說(shuō)大10倍)的數(shù)字N1時(shí),想要確認(rèn)N1是個(gè)質(zhì)數(shù),所花的時(shí)間就得延長(zhǎng)到約3.16T。道理很簡(jiǎn)單:這次我們得從2一直試到■,而■=■≈3.16■。也就是說(shuō)每多一位,我們嘗試的質(zhì)數(shù)數(shù)目就大約是前次的3.16倍。這可不是一條“可持續(xù)發(fā)展”的道路??!
當(dāng)然,我們用的是一種笨辦法,但再聰明的人,他們的效率其實(shí)也不能比我們高到哪里去。分解一個(gè)大數(shù)目字,其運(yùn)算量看起來(lái)是一個(gè)恐怖的任務(wù),一個(gè)似乎用任何現(xiàn)代科技都不能完成的任務(wù)。
你或許要問,為什么我們要干這種無(wú)聊的蠢事呢?分解一個(gè)大數(shù)字,除了贏取10萬(wàn)美元還能給我們帶來(lái)什么好處呢?不妨這樣想一想:現(xiàn)在的電子系統(tǒng),其安全性就建立在大數(shù)的“不可分解性”上,換句話說(shuō),設(shè)N=P×Q,當(dāng)你想進(jìn)行某些私密的電子活動(dòng)時(shí),安全系統(tǒng)就會(huì)給你N,讓你分解它。如果你本來(lái)就有密碼P,這當(dāng)然不成問題,但如果你是個(gè)黑客,想進(jìn)入他人的銀行賬戶,你就得面臨如何找出P的問題,你就得設(shè)法分解N?,F(xiàn)在,是不是有些興奮?
話說(shuō)回來(lái),迅速有效地處理指數(shù)型遞增的運(yùn)算量,除了盜取他人賬號(hào)之外,顯然還有更加有意義的用途。至少,當(dāng)我們的傳統(tǒng)計(jì)算機(jī)科技逼近物理極限時(shí),我們需要面對(duì)日益膨脹的信息量;我們的模擬軟件需要更為真實(shí)和復(fù)雜的運(yùn)算;我們需要改革安全加密系統(tǒng)。而這一切,歸根到底就是要在可以容忍的時(shí)間內(nèi)進(jìn)行超量的運(yùn)算。
一旦物理定律決定了我們的處理器速度無(wú)法再大幅提高之后,我們只有一條路好走:新的計(jì)算機(jī)不能再按部就班地一個(gè)接一個(gè)去處理它的運(yùn)算,它必須同時(shí)處理多個(gè)運(yùn)算!這一次我們是認(rèn)真的,它不能只是“看上去”像在同時(shí)看書、洗衣和吃飯,而必須真正地化出三個(gè)分身,將這三個(gè)任務(wù)在同一時(shí)刻、用同一個(gè)過程來(lái)完成。而這,就必須求助于神奇的量子疊加。
我最有把握做的預(yù)測(cè)就是,最令人驚奇的發(fā)現(xiàn)將是我們今天因?yàn)椴粔蚵斆鞫A(yù)見不到的。
——卡爾·薩根
關(guān)于量子疊加,我們已經(jīng)聽到過許多神奇的論斷,比如一個(gè)電子“同時(shí)”穿過兩條縫,小球“同時(shí)”是紅的和綠的,貓“同時(shí)”又死又活等等。當(dāng)一段二進(jìn)制信息被傳統(tǒng)的計(jì)算機(jī)所處理時(shí),無(wú)論處理速度多快,它總是一條普通的信息,比方說(shuō)10001111。這是一個(gè)8位數(shù)據(jù),每一位叫做一個(gè)“比特(bit)”,而它本身由8個(gè)比特組成,稱為一個(gè)“字節(jié)(byte)”。在任何一位上,它要么是0,要么是1,沒有第三種可能。
但如果我們可以用某些量子態(tài)來(lái)表達(dá)信息,比如用電子的自旋方向來(lái)表示0(上旋)或者1(下旋),那我們得到的就不再是普通的數(shù)據(jù)了。我們用8個(gè)電子來(lái)表示上面那個(gè)字節(jié),在每一位上,如果不讓“退相干”發(fā)生的話,按照量子力學(xué),我們便不能斷定電子究竟是朝哪一個(gè)方向自旋,它處在一個(gè)量子疊加態(tài)中!拿第一個(gè)電子來(lái)說(shuō),我們可能判斷它50%是上旋,50%是下旋,用波函數(shù)來(lái)說(shuō):
換句話說(shuō),我們的第一個(gè)比特正處在0和1的疊加之中!它既不是0也不是1,但也可以說(shuō),它既是0又是1。這時(shí)候,我們把它稱為一個(gè)“量子比特(qubit)”。
當(dāng)我們的8位數(shù)據(jù)每一位都處在量子態(tài)時(shí),它的每一個(gè)比特都表示為0和1的疊加。這樣一來(lái),僅僅一個(gè)量子字節(jié),它理論上就是所有可能的傳統(tǒng)字節(jié)的疊加。也就是說(shuō),它同時(shí)表示了28=256個(gè)8位的信息!
這其中并非每一位都必須50%是0,50%是1,我們完全可以用有效的方式使得第2個(gè)量子比特位略微偏向于1(下旋),比方說(shuō)是30%上旋,70%下旋;使得第3個(gè)量子比特位略偏向于0(上旋),比方說(shuō)是60%上旋,40%下旋。這樣一來(lái),前三個(gè)量子位依次是“1、0、0”的可能性則為:
好吧,各位可以自行計(jì)算前三個(gè)量子位是“0、0、1”或者“1、1、1”等等的概率。重要的是,它確實(shí)代表了所有可能的疊加。還是用波函數(shù)來(lái)表示的話,則:
這表明每一種可能的傳統(tǒng)信息都只不過是我們的三位量子信息的一個(gè)本征態(tài)。當(dāng)處于量子疊加的時(shí)候,它是8個(gè)本征態(tài)的線性疊加,其前的系數(shù)a、b等表示特定的振幅。我們還記得,波函數(shù)強(qiáng)度的平方就是當(dāng)量子態(tài)“坍縮”后,變?yōu)樘囟ū菊鲬B(tài)的概率,所以打個(gè)比方,e的平方就表示我們?cè)诖_實(shí)觀察了這個(gè)量子信息后,發(fā)現(xiàn)它是“100”的概率。而我們上面計(jì)算過這是0.09,所以e2=0.09。
這并不直接說(shuō)明e=0.3,因?yàn)閑實(shí)際上是一個(gè)復(fù)數(shù)。我們不必太過深入所有的細(xì)節(jié),關(guān)鍵在于這樣的量子信息將如何進(jìn)行計(jì)算,又如何把多個(gè)計(jì)算一次性完成并得到結(jié)果,量子計(jì)算機(jī)到底能有多強(qiáng)大,它的建造在現(xiàn)實(shí)中是可能的嗎,它究竟會(huì)對(duì)我們的生活有怎樣的影響。
別急,答案下次就會(huì)揭曉。
“本文中所涉及到的圖表、公式、注解等請(qǐng)以PDF格式閱讀”