未來的計算機也許將徹底拋棄硅片和傳統(tǒng)算法,取而代之的是游蕩在我們身體微笑的DNA分子。
我們的大腦擁有令人驚嘆的功能,它讓人們判斷事物的聯(lián)系、形成聯(lián)想和創(chuàng)造,并且做出決定。這種特性一直是計算機模仿的目標,但是傳統(tǒng)的計算機看起來似乎并不容易實現(xiàn)類似的功能。這可能是因為計算機和人腦的工作方式存在著巨大的不同:在Kevin Kelly的那本《失控》中提到,人的意識更像是許多個想法相互競爭,最終其中的某一個因為因緣際會脫穎而出,并且決定了我們的思維。神經(jīng)科學似乎能夠提供一個旁證,我們的大腦中每時每刻都有無數(shù)的神經(jīng)元在活動,但是最終會產(chǎn)生什么行為和想法似乎難以預知。與之相對應的,則是計算機精確而難以容錯的計算方式,它們穩(wěn)定地沿著指定的算法運行,最后得出確定的結果。之間任何不確定,對于計算機都是不可忍受的。
也許正是這種根本的不同,決定了人和計算機的最大區(qū)別,也決定了人工智能目前看來依然是一個遙遠的夢想。但是,一些研究者正在嘗試進行類似人腦工作方式的運算,從大量紛繁蕪雜的計算結果中挑出那些符合我們需要的,并且把它們呈現(xiàn)出來。在這些計算方式中,使用的不再是基于硅片和算法的電子計算機,而是那些在試管中游蕩的、微小到顯微鏡都看不到的遺傳物質:DNA分子。這種計算方式,也就相應地被叫做DNA計算。
這是一個新領域。人們嘗試使用這些脫氧核糖核酸分子的特性,同時進行許多計算工作,讓計算速度更快而能耗更低。這些在試管中進行的大規(guī)模并行運算已經(jīng)成了計算技術的新希望之一,而最近的一些研究結果則帶來更多的好消息。而這一切,則需要從DNA和一個數(shù)學問題開始。
我們知道,DNA是地球上生物們的遺傳物質。普遍認為,它們由四種堿基構成:腺嘌呤、鳥嘌呤、胞嘧啶和胸腺嘧啶,分別用A、G、C、T來表示。這些堿基會相互結合,A對應T,C對應G,就像拉鏈那樣嚙合在一起,形成一條漂亮的雙螺旋。這種相互嚙合的特性,正是進行DNA計算所必須的能力。如果我們可以把要運算的對象編碼成DNA分子鏈,用生物酶對這些分子鏈進行操作,那么就可以根據(jù)DNA分子鏈的構成來得到計算結果。簡單來說,就是把要解決的問題變成一系列運算,并且設法讓DNA自己得出正確結果,再把這些結果篩選出來。在理論上,這種計算完全可行,但是實際應用上的突破則到1994年才出現(xiàn)了曙光。
那一年,曾經(jīng)發(fā)明了廣為應用的RSA加密技術的Leonard Adleman首次用DNA計算的方式解決了七頂點的旅行商問題。顧名思義,旅行商問題考慮的是如何經(jīng)過多個城市,并且每個城市都只經(jīng)過一次。當時Adleman所使用的方法和今天的DNA運算思路并無太大不同:把每個頂點和每條頂點之間的路徑都編碼成特定的DNA分子,并且其中路徑編碼和兩個頂點的編碼存在互補關系。把這些用于運算的原料和合適的酶放進試管,只需要幾秒鐘時間,分子們就會自動組合成DNA鏈。正確答案已經(jīng)在試管中形成,只需要把它們挑選出來即可。
這時的試管有點類似中國科幻作家劉慈欣在《詩云》中提到的場景。我們已經(jīng)獲得了所有可能的結果,但是把正確結果從錯誤結果中挑選出來,則是更艱巨的挑戰(zhàn)。Adleman用電泳技術把合適長度的DNA鏈分揀出來,用親和力萃取技術選出所有包含第一個頂點的DNA鏈,再從中分出同時包含第二個頂點的DNA。以此類推逐步縮小范圍,在經(jīng)過七次萃取之后就獲得了同時包含七個頂點的DNA鏈,連接這些頂點的線路們也自然隨之而出。它的效率還很低,但是這在歷史上是第一次,DNA解決了數(shù)學問題。 從那時開始,DNA計算領域開始迅速發(fā)展。1996年,F(xiàn)rank Guarnieri設計出了基于DNA運算的二進制加法,讓二進制數(shù)能夠存取與進位,解決了加法和乘法問題;三年后,YurkeBernard解決了正有理數(shù)DNA運算的問題,并實現(xiàn)了DNA的布爾邏輯運算。現(xiàn)在,一些研究者已經(jīng)可以用這些試管里的微小分子完成更復雜的計算了。2008年,新加坡南洋理工大學舒建軍教授在《物理評論快報》發(fā)表了他的最新研究成果,稱他的團隊提出了一種通過操縱DNA鏈能解決基于DNA計算的戰(zhàn)略分配問題,他同時+7Vguh07T6ys03xvnTLfoUsfqq9IQ2vYiOlyJEzupN4=還宣稱:“1克DNA可儲存1萬億張CD。” 舒教授表示,人體就像一臺計算機,每時每刻都在進行計算,比最快的硅芯片超級計算機都要快得多。在處理戰(zhàn)略分配問題方面,隨著硅計算的發(fā)展,即使運算最快的硅芯片計算機在處理戰(zhàn)略分配問題上仍需要花費數(shù)月,而基于DNA計算則被證明是高效的。利用基于DNA的計算方式能夠更高效地解決大量平行問題、組合問題以及人工智能問題。而且DNA計算機所用的DNA生物芯片比硅芯片更環(huán)保。
與傳統(tǒng)計算機不同,DNA計算機的計算是并行執(zhí)行的,而且計算并行度很大。在一毫升的DNA溶液中,可以容納十的十八次方條DNA。每條DNA都可以看成是一個微處理器。這樣的話,雖然生化反應是在一小時之內(nèi)完成的,每秒鐘的運算量仍可以達到十的十五次方,而現(xiàn)在最快的計算機每秒鐘的運算速度是十的十二次方。這樣的話,DNA計算要比最快的計算機還要快1000倍。傳統(tǒng)計算機進行線性操作,一次只能處理一項任務。并行計算使DNA能在數(shù)小時內(nèi)求解出復雜數(shù)學問題的答案,如果使用電子計算機,則需要花費數(shù)百年的時間才能完成這些問題。
2011年6月和7月,美國加州理工的研究者在國際頂級學術期刊《科學》和《自然》上發(fā)表了兩篇文章稱,用DNA分子構建出了幾種用于預算的邏輯門元件,并且實現(xiàn)了神經(jīng)網(wǎng)絡算法;他們設計的一種DNA運算工具能夠在10個小時內(nèi)算出15以內(nèi)自然數(shù)的平方根,另一種更復雜一些的DNA運算電路甚至能夠和研究者玩猜謎游戲。
在傳統(tǒng)計算機中,邏輯門——用于完成簡單的邏輯判斷工作的運算元件——由硅晶體管制成,但在DNA運算中則是由單鏈DNA和部分雙鏈特征DNA組成。晶體管以電子的流入和流出為信號,而DNA邏輯門以接收和發(fā)出分子作為信號。這些分子信號在溶液中從一個邏輯門運動到另一個,找到可以相互嚙合的位置就會停留下來,而這也就意味著得到了計算結果。
兩個月內(nèi)連續(xù)發(fā)表的兩篇頂級論文,意味著DNA計算已經(jīng)出現(xiàn)了令人驚艷的新突破。但是,這并不意味著DNA計算技術會很快取代現(xiàn)有的硅基計算工具。研究者認為,也許DNA計算更適合用在與生物有關的研究領域,例如檢測血液樣本中各種分子的濃度水平等。但是,作為多種學科交叉領域的DNA計算必然會受到所有相關技術發(fā)展的影響。也許有一天,計算機中將會采用基于DNA運算原理的計算芯片,也并非完全不可能。到那時,一臺個人電腦的運算能力,也許將會相當于現(xiàn)在一個城市的所有計算能力之和