DNA计算机——每秒十亿次计算,能耗仅为传统计算机的十亿分之一

    一个试管中就可以装下1万亿台,运算速度每秒钟可以达到10亿次,而它所需要的能量仅仅是传统电脑的10亿分之一,DNA计算机到底是什么? 为什么DNA能够进行计算?你听说过用DNA计算机来进行人工智能计算吗?你听说过用DNA计算机来检测癌症么?           ——新石器公园

本篇博客内容来自一个试管中就可以装下1万亿台,运算速度每秒钟可以达到10亿次,而它所需要的能量仅仅是传统电脑的10亿分之一,DNA计算机到底是什么?,宝藏up主,说的非常好,强烈建议观看。有感,想多写写记录下来。

 

引子

1994年, 正当伦纳德·阿德曼沉浸在詹姆斯·沃森的DNA教科书《基因分子生物学》,赞叹DNA分子的精妙时,旁边的老伴顺嘴开了个脑洞——“没准能用它搞一个计算机呢?”

伦纳德·阿德曼,这个17年前发明了大名鼎鼎的RSA加密算法的有趣老头,顿时觉得这是一个很好的想法。他惊叹大自然的鬼斧神工,惊叹老伴的机灵聪慧,惊叹DNA计算机相比于传统电子计算机的某方面存在的巨大优势——

——可以水论文。

他把目光投向传统电子计算机很难解决的汉密尔顿路径问题,搞了几管DNA,鼓捣几天就用DNA把问题解决了。

阿德曼很开心,如愿以偿水了一篇论文,就是可能有点太水了,水着水着水到《科学》那去了。

从此,他的头衔除了美国双院院士、2002年图灵奖获得者、计算机界家喻户晓的非对称加密算法发明人之一,又新添了一个——

——DNA计算之父。

 

汉密尔顿路径问题

假设你是大名鼎鼎的V,看完边缘行者以后决定去薄纱亚当重锤。通过收集情报,你发现要揍亚当重锤你需要先把他的狗腿子们杀完拿到权限才能进入荒板塔。

开车太慢了,V决定坐 只存在于预告骗中的 地铁,从来生酒吧,干一口大卫以后出发,杀完小弟以后最终去往荒板塔干死亚当。由于不想浪费时间,每个小弟的据点V准备只去一次。

具体的,这个结构可以抽象成一张图,有一个起点(来生)和一个终点(荒板塔),中间是小弟的据点节点,节点之间存在地铁通路,汉密尔顿路径问题即:给定一个图,是否存在一条路线,从起点出发最终到达终点,使得每个节点只被经过一次?

V脑袋中插着一个满嘴脏话口嗨的Relic,而且刚闷了一口大卫·马丁内斯无法细致思考,这个问题就留给你啦!什么OI题风格啊喂!

数学上已经证明,解决这样的问题没有什么好的算法,只能暴力破解,也就是枚举。我们知道,传统计算机是串行计算的,对于汉密尔顿路径问题,计算机只能一条一条枚举路径去尝试,每到一个节点就要进行新的选择,这是一个阶乘复杂度的问题,随着点数增加处理时间将会阶乘级别地上升,这是我们所不能承受的。

 

《组合问题解的分子计算》

与传统的电子计算机不同,DNA分子计算机可以实现并行计算。听上去很牛,其实原理相当简单。试想,要是我们有一万台传统电子计算机同时计算汉密尔顿路径问题,这也能称得上是并行计算呀,本质其实就是你算你的我算我的。——其实这个例子不是很恰当,因为程序是一样的话,大家的工作会是一模一样的,并没有起到并行的作用。

不如加个随机化?这样不就能你算你的我算我的了?

不如每个电脑只负责随机生成并验证一种路径好了!路径的可能性总量是N!,我们只需要比N!多得多得多的计算机,打个比方比如(N!)5 台计算机,就能保证我们我们能随机出所有路径了。对于一台计算机来说,随机生成路径和验证都是很快的(O(N)),那么对于这个并行的大计算机群,计算的时间复杂度就是O(N),这就是一种并行计算的方案。

这个想法固然美好,不过显然我们没有(N!)5 台计算机呢。所以为什么Tony要提出这么不切实际的方案呢?这里先按下不表嗷。

让我们回到阿德曼教授的解题思路,主要分为三步:

    1. 把所有的路径先画出来
    2. 排除掉错误的路径
    3. 看看有没有剩下的

思路非常清晰,看看怎么用DNA来解决这个问题。

把所有的路径先画出来

DNA是一种由四种核苷酸组成的有机分子,我们可以利用这种四进制编码对每个节点进行编号。具体的,我们需要将一个中间节点分裂成出点和入点分别进行编码。

如上图所示,从下到上命名为1,2,3号亚当重锤的小弟,1号的出点编码为ACAC;2号的入点编码为GTGT,出点为TCTC;3好的入点编码为AGAG。显然,我们连接1的出点与2的入点,得到ACACGTGT,表示1号到2号存在一条地铁路径。

我们可以使用这种编码规则把所有的边都表示出来。

我们继续。显然1——>2与2——>3两条边可以连接起来的条件是通过了2,也就是2的出点和入点应该是连接在一起的。我们提供一个胶水(DNA互补链)来把它们连起来。比如2的入点编码是GTGT,出点编码是TCTC,那胶水编码就应为互补的CACA AGAG,所以1——>2——>3就可以表示为:

ACACGTGT TCTCAGAG
    CACA AGAG

上述路径只有三个点,实际上他可以连接更多。以此类推,所有的图中路径都可以用这种形式的DNA长链表示。

于是我们准备好:

    1. 超大量代表所有路径信息的DNA分子(如上面的1——>2:ACAC GTGT)
    2. 超大量的入点和出点的胶水DNA分子(如上面的 2[入]——>2[出]:CACA AGAG)

DNA是非常小的分子,1立方米的DNA溶液,可以存贮1万亿亿的二进制数据。准备这样超大量的数据是可行的。我们把这些DNA片段丢到反应容器里一大锅炖了,那些节点胶水开始随机地连接所有能连接路径,在这个原料完全够量的反应里,每一条路径都会被枚举出来

排除掉错误的路径

我们得到了好多好多好多DNA长链,DNA随机连接数以亿计的足量原料保证了所有路径都被包含在这些长链之内,现在我们要做的就是把正确答案筛选出来。

第一步,按照上面的步骤,一条路径的起始点(不一定是题目中对的起点,这里单指一条链的起点)和终止点的DNA是裸露的。我们拿起点(这里就是真正的题目要求的起点了)和终点的互补链作为引物来做PCR扩增,得到的链就都是满足起点和终点条件的链了。其他的不满足的链在大量扩增下被稀释得可以忽略不计,这就是第一步筛选——现在余下的路径都是从起点出发到达终点的。

第二步,把DNA放到电泳胶上,可以分离不同长度的DNA。按照题目要求,我们选出长度刚好为8N个碱基对的DNA(一个节点4*2个碱基对),也就是第二步筛选——选出刚好通过了N个节点的路径。

第三步,利用生物素-亲和素磁珠系统(我也不知道是个啥玩意,是一个大分子,可以粘在特定的碱基序列上),选择一个点1对应的DNA序列S,把前面那玩意粘上去,没有S序列的DNA会比较轻,离心就可以去掉没有通过点1的路径了。

看看有没有剩下的

将第三步重复N次,如果发现还有DNA剩下,那么此DNA所对应的路径满足上三步的筛选:

    1. 以起点开始,终点结束
    2. 恰好经过N个点
    3. 每个点只经过一遍

满足题意,最后只需要对这条DNA进行测序就可以得到解了。

还记得最开始Tony讲的那个不切实际的计算机群吗?这就是DNA分子计算机!DNA分子胜在数量足够多,人海战术,一是可以自由组合,也就是能随机枚举出所有路径;二是每一个计算机只需要处理相对简单的事情,在这个汉密尔顿路径问题中只需要瞎选一条路出来就行,很多DNA分子在做并行运算,效率非常高。

事实上,相较于大型计算机,DNA分子计算机并不是宏观机器的微小化,这在后文还将提到,非常重要。

阿德曼将上述过程水成了论文,也就是著名的《组合问题解的分子计算》。

 

DNA分子计算机的继续发展

诚然,阿德曼的分子计算机并没有通用性,但这篇论文的思想却给后世科学家打开了一个新的思路:我们能够利用DNA的特性,组成逻辑门,从而去完成通用的计算任务呢?

视频已经详细讲解了DNA分子计算机的发展和前沿的科学成果,这里就不记录了。经过二十多年科学家们的不断努力,人类已经可以实现基础逻辑原件的设计了,甚至可以利用DNA计算机并行计算的优势,进行人工智能运算。

——但它本质上还是一系列生化反应,科学家需要设计和制造DNA,处理第一轮的反应产物,作为反应原料再加入第二轮反应进行反应,以此类推。相比于传统电子计算机,DNA分子计算无疑是繁琐麻烦的,所以我们为什么还要去发展这个DNA计算呢?

因为在有一种计算当中,DNA计算无比的优势,那就是湿环境——人体的环境。

2020年,上海交通大学的韩达团队在《自然纳米技术》上发表了一篇论文,宣称他们使用DNA计算实现了对肺癌的快速检测,步骤如下。

    1. 利用癌症病人的miRNA数据在支持向量机中计算,得到训练模型。
    2. 设计合理的DNA序列实现模型的计算逻辑,得到DNA计算模型。
    3. 对于待检测miRNA血浆,先对miRNA进行扩增,放入设计的DNA。
    4. 数以亿计的DNA可以并行对血浆中的各种序列特征进行检测,给出检测结果。

在合成样本的检测中,准确率达到了96.7%,在实际样本中达到了86.7%。

那么相较于传统诊断方式,DNA分子计算的优势在哪里呢?

传统的检测需要测出病人不同的指标,交给电脑或者医生诊断,而DNA计算机则完全不用!利用人海战术,数以亿计的DNA分子计算机可以直接在人体湿环境中并行计算,同时检测很多成分,并直接使用人工智能算法给出诊断结果。

但这还不是最厉害的。最厉害的是,当技术逐渐完善,我们是否可以设计足够优秀的DNA计算模型,利用人工智能去检测更多疾病?上述实验是检测最终的反应产物得出病人是否患病的结论,那更进一步,是否可以直接将这些DNA注入人的内环境,在检测到疾病时输出对应的信息DNA分子,调控纳米机器人(这个是up之前的专题)去解决病患?

一个人造的免疫系统啊。

纳米计算机和纳米机器人可能并不是宏观机器的纳米化,而是借助最基本的生化反应和复杂的层级结构,在巨大的数量下涌现出智慧,是一种更类似于蚁群或者蜂群的智慧。

试想一下,在我们的身体这个湿环境中,计算将无处不在,数以亿万级的计算机在我们的体液中工作着,

他们不依靠电能,没有电路和芯片,仅仅依赖最基本的生化反应,输入、输出、运算、决策,于是智能得以涌现。

芜湖!机械飞升!

posted @ 2022-09-26 10:42  ecliptic  阅读(467)  评论(0编辑  收藏  举报