计算机工业在近几十年内飞速发展,其速度令人瞠目。然而目前晶体管的密度已近当前所用技术的理论极限,晶体管计算机能否继续发展下去?所以,人们在不断寻找新的计算机结构。另一方面,人们在研究人工智能的同时,借鉴生物界的各种处理问题的方式,即所谓生物算法,提出了一些生物计算机的模型,部分模型已经解决了一些经典计算机难以解决的问题。
生物计算机原理
20世纪80年代以来,美国、日本、前苏联等国家开始着手研制第六代计算机即生物计算机。早在20世纪70年代,人们就发现脱氧核糖核酸(DNA)处于不同状态时可以代表“有信息”或“无信息”。于是,科学家设想:假若有机物的分子也具有这种“开”和“关”的功能,那岂不可以把它们作为计算机的基本构件,从而造出“有机物计算机”吗?
后来有科学家发现,一些半醌类有机化合物的分子具备“开”和“关”两种电态功能,可以把它当成一个开关。科学家们还进一步发现,蛋白质分子中的氢也具备“开”和“关”两种电态功能,因而也可以把一个蛋白质分子当成一个开关。这一系列发现激起了科学家们研制生物电子元件的灵感,相继有一些简单的生物元件问世,如生物开关元件、生物记忆元件等。
从理论上说,只要是用半醌类有机化合物的分子或蛋白质的分子作元件,就能制造出“半醌型”或“蛋白质型”的计算机。由于有机物分子总是存在于生物体内,所以人们把这种有机物计算机称作“生物计算机”,或“分子计算机”,或“生物计算机”。
这种由有机物分子作为开关元件而构成的生物计算机,具有几个方面的突出优点。首先是密集度高。由于DNA生物电子元件比硅芯片上的电子元件要小很多,而且生物芯片本身具有天然独特的立体化结构,其密度要比平面型硅集成电路高5个数量级,因此具有巨大的存储能力。如体积为一立方米的液体生物计算机,存储的信息比世界上所有计算机存储的信息总和还要多,而分子集成电路的密集度可以达到现有半导体超大规模集成电路的10万倍。
其次是速度快。分子逻辑元件的开关速度比目前的硅半导体逻辑元件开关速度高出1000倍以上。如果让几万亿个DNA分子在某种酶的作用下进行化学反应,就能使生物计算机同时运行几十亿次,这就意味着运算速度要比当今最新一代超级计算机快十万倍,能量消耗仅相当于普通计算机的十亿分之一。
此外,它的可靠性高。由生物分子构成的分子集成电路(生物芯片)也同一般的生物体一样,具有“自我修复”的机能,也就是说,即便这种芯片出了点故障也无关大局,它能够慢慢地自动恢复过来,达到“自我修复”。所以,这种生物计算机的可靠性非常高,经久耐用,具有“半永久性”。这对于目前的电子计算机来说,简直是一件不可思议的事情。
最后,由于蛋白质分子能够自我组合,再生新的微型电路,使得生物计算机具有生物体的一些特点,比如能发挥生物本身的调节机能,自动修复芯片发生的故障,还能模仿人脑的思考机制。
在传统的计算机中,对于处理的问题,它是以电流的速度一个一个地检验所有可能的解决方案。而生物计算机真正的优势在于它可以同时对整个分子库里的所有分子(或答案)进行处理,而不必按照次序一个一个地分析所有可能的答案。
每一个有机生命体中都存在着DNA,这种分子作为一种超级计算机装置的吸引力在于其已经被证实能存储大量信息的能力,事实上复制生命所需的全部指令都存储在DNA中。尽管这种化学物质不会在短期内取代个人计算机,但是科学家们已经向人们演示了这些满载信息的分子也可以通过特定的方式在未来的计算机中执行计算任务。
生命科学与数学的关系
1994年11月,美国计算机科学家L.阿德勒曼(L.Adleman)在《科学》杂志上公布了生物计算机的理论,并成功地运用生物计算机解决了一个有向哈密尔顿路径问题。这一成果迅速在国际上产生了巨大反响,同时也引起了国内学者的关注。一些人相信,DNA计算蕴含的理念可使计算的方式产生“进化”。另一些人则看到,DNA计算的理念将有助于揭示生命的本质与演化。总之,这一全新的计算理论,将在数学与生命科学中产生极其深远而广阔的影响。
生物计算机目前尚处在理论和实验研究阶段,一旦它在实际应用中获得成功,DNA计算将彻底改变计算机硬件的性质。从1946年第一台电子计算机诞生到现在的半个世纪里,计算机完全就是物理芯片的同义词。但阿德勒曼生物计算机却是一种化学反应计算机。它的基本构想是:以DNA碱基序列作为信息编码的载体,利用现代分子生物学技术,在试管内控制酶的作用下控制DNA序列反应,实现运算过程;它以反应前DNA序列作为输入的数据,反应后的DNA序列作为运算的结果。
生物计算机的提出,让人们有这样一个发现,即生物与数学的相似性:一是生物体异常复杂的结构是对由DNA链表示的初始信息执行简单操作(复制、剪接)的结果;二是可计算函数f(x)的结果可以通过在x上执行一系列的基本简单函数而获得。阿德勒曼不仅意识到这两个过程的相似性,而且意识到可以利用生物过程来模拟数学过程。更确切地说是,DNA链可用于表示信息,酶可用于模拟简单的计算。
数据结构超乎寻常
DNA是由称作核苷酸的一些单元组成,这些核苷酸随着附在其上的化学组或碱基的不同而不同。DNA共有四种碱基:腺瞟呤、鸟瞟呤、胞嘧啶和胸腺嘧啶,分别用A、G、C、T表示。一些单个的核苷酸顺序地连在一起形成DNA链。
像一串带有0和1编码的二进制数据链,DNA的数据密度是非常惊人的。现代科学研究表明,这些碱基沿着DNA分子链方向的空间距离是0.35纳米。因此,DNA的惊人数据密度约是每厘米7Mb。如果我们假设1平方纳米1个碱基,DNA的二维数据密度约是每平方厘米155000Gb。目前所使用的普通硬盘数据密度是每平方厘米1Gb,因此DNA的二维数据密度大约是普通硬盘数据密度15万倍。
DNA链的另一个重要的性质是双螺旋结构,A碱基与T碱基、C碱基与G碱基结合在一起形成碱基对。然而每个DNA序列都有一个互补序列,例如,如果序列S是ATTACGTCG,它的互补序列S’是AATGCAGC,S与S’结合在一起形成双螺旋DNA结构。这种互补性使得DNA在计算方面具有独特的结构,而且在很多方面可以利用。例如改正错误就是一个例子,在DNA中产生错误的原因是多方面的。偶尔DNA酶也产生简单的错误,例如切掉那些不希望切掉的部分。另外DNA还可能被热能和太阳光中的紫外线能量破坏。如果错误发生在DNA双螺旋结构中的某一个螺旋序列中,修改酶可以参考互补序列恰当地恢复之。DNA的双螺旋结构类似于计算机硬盘的RAID1阵列,即第二块硬盘是第一块硬盘的镜像,如果第一块硬盘的数据被破坏,可以根据第二块硬盘的数据恢复第一块硬盘的数据。在生物系统中,由于有修改错误的特性,使得错误率非常低。例如,在DNA复制方面,每10亿个复制的碱基中只有1个错误,即错误率是10-9。
并行运算超凡脱俗
在细胞中,DNA被各种酶修改,这些酶是一些细微的蛋白质,他们可以按照DNA的本性读取和处理它们。自然界中存在大量的各种各样的具有操作性的酶,在分子量级上对DNA进行操作。不同的酶发挥不同的作用。起作用的有四种酶:限制性内切酶,主要功能是切开包含限制性位点的双链DNA;DNA连接酶,它主要是把一个DNA链的端点同另一个链连接在一起; DNA聚合酶,它的功能包括DNA的复制与促进DNA的合成;外切酶,它可以有选择地破坏双链或单链DNA分子。正是基于这四种酶的协作实现了DNA计算。
目前分子生物学、生物化学、生物技术已经发展到了让人们在试管中演示这些分子的功能。正是这些分子所具有的机械性能使得它们具有了计算的功能,就像是CPU的一些基本功能,如加、移位、逻辑运算(与、或、非、异或)等一样,DNA所具有的剪切、复制、粘连和修复功能会使它们进行最复杂的计算。同时我们还注意到,在试管中酶不会连续地起作用,一次只作用于一个DNA。然而很多酶的复制却可以同时对许多DNA分子起作用,这正是DNA的并行计算能力,可以进行大规模的并行工作。

与硅计算机的较量
由于DNA具有独特的数据机构和并行操作的能力,让人们可以用不同的观点去看计算问题。基于硅晶体管的计算机用串行方式进行操作,当然也有多CPU并行工作的计算机,例如像我们国家的“银河”系列巨型机,在人们的印象中这些计算机的计算速度很快。但是,凡是基于冯·诺伊曼结构的计算机都是以串行方式处理指令,即使使用了最新CPU的冯·诺伊曼结构的计算机,都要一遍又一遍地重复“取指令和执行指令”的循环操作。即它从主内存中取出一条指令和数据,处理这条指令,然后再做下一次的取指令和处理指令操作;指令与指令之间排成一个长串,像这样的操作要进行许多许多次,尽管这些操作进行得非常快。
但是,生物计算机是非诺伊曼计算机,是一种并行计算机,这种计算机完全不同于传统的计算机,可用于解决大量非同寻常的问题。
硅计算机要增加性能,就要不断增加其时钟频率以及更宽的数据位,这种性能增加主要体现在CPU上,而不是在增加内存的数量。实际上这种通过增加时钟频率的方法会给计算机提升多高的性能?例如,把你计算机的时钟频率增加一倍或内存增加一倍会使你的计算机性能增加一倍吗?这正是硅计算机的弱点。然而,DNA的计算性能却取决于记忆的容量和并行处理过程。
下面让我们看一看DNA的读写速度:在细菌当中DNA的复制率是每秒500个碱基对,从生物学角度上说这个速度是很快的(10倍于人体细胞)。但这仅仅相当于1000bps,与具有大量数据吞吐量的硬盘相比好比蜗牛爬行。如果将已复制酶再复制成新的酶并同时并行作用在DNA上,你就会看到奇异的事情发生了。首先,复制酶在完成第一次复制之前就开始作用于第二个已复制的DNA链上,这样数据读取速率就跃变成2000bps。然而DNA链数量的增加是以2的n次方指数增加的(n是复制次数),对于每个增加的DNA链,数据读取速率是以1000bps增加的。经过10次复制,DNA的数据读取速率增加到1Mbps,经过30次复制,增加到1000Gbps,这一数值超过了目前最快的硬盘速度,再增加复制次数,数据读取速率将远远超过硅计算机。