专利名称:一种基于dna计算的智能优化仿真方法
技术领域:
本发明是一种基于DNA计算(DNA computing)的智能优化仿真方法,属于计算机 信息处理领域。
背景技术:
计算机的发展已经有很长的历史,设计用来便利计算的工具的历史更长。在当今 社会,电子计算机在我们的日常生活中占有主导地位,没有它的帮助,我们的生活显得举步 维艰。然而,随着社会和技术的发展,许多工程中的复杂系统不断涌现,在这些复杂系统的 研究领域内,充斥着各种各样的非线性问题,NP(Non-deterministic Polynomial多项式复 杂程度的非确定性问题)完全问题。面对这些问题,现有的电子计算机却显得无能为力,其 主要是由于电子计算机的运算速度太慢,存储容量太小,量子物理学已经预测出基于这种 形式的芯片的微处理能力不可能长期的保持下去,基于这两点原因及制造技术的局限,探 索新的计算方式势在必行。很早以前就有人提出现代计算机的基本部件应该逐步过渡到分 子水平,这样也有利于实现计算机技术的微型化,DNA计算在这种思想和需求下应用而生, 在接下来的十余年备受科学界关注。DNA计算是一种全新的计算模式,也是信息科学与生物科学相结合的一种全新的 思维模式,利用有机分子的信息处理能力来代替数字开关部件是DNA计算的基本思想。DNA计算具有大规模的搜索能力及并行计算的能力。这主要基于如下两个方面(I)DNA链的巨大并行性。由于DNA链由A、C、G、T四种碱基组成,相对于电子计算 机的0-1编码,DNA链可看作0-1-2-3编码,对于相同长度的序列,电子计算机存储的信息 仅为2n,而DNA链存储的信息则为4n,由此可知,DNA链能够高密度地存储信息,又由于DNA的 复制、粘贴等性能,它可以在有限的空间和时间内进行大量的拷贝,这也给群举提供了可能。O) DNA链具有双螺旋碱基互补结构。DNA分子由两条DNA单链聚合而成,相对的 碱基彼此互补,这就告诉我们,如果知道了其中一条单链的信息,那么就可以知道另一条单 链的信息,如此我们便不需要对所有的单链进行遍历式检测,减少了工作量。DNA计算是以DNA链及相关的酶作为基本材料利用分子生化技术得出可行解的一 种分子生物计算方法。它主要是利用DNA双螺旋结构和碱基互补规律对问题进行信息编 码,将问题映射成DNA分子链,在有关酶的作用下生成各种数据池,而后原始数据的运算规 律映射成DNA链可控的生化反应使DNA链进行反应。反应结束后,利用分子生物技术如聚 合链反应PCR、超声波降解、亲和层析、克隆、诱变、分子纯化、电泳、磁珠分离等,检测筛选出 所需要的结果。DNA计算的本质就是利用大量的不同核酸分子杂交,产生类似数学计算过程中某 种组合的结果,并且根据限制条件得出约束解。由于不同的DNA分子具有不同的编码形式, 当大量随机的DNA分子进行杂交后,每个DNA分子的原始信息就会与其它分子所携带的原 始信息进行组合,这就是类似于数学中的组合问题。对DNA分子进行一系列连续的生化操 作,可用于模拟特定的运算过程。
DNA计算的核心问题是将经过编码后的DNA分子链作为输入,对DNA分子进行生化 操作(既有物理操作也有化学操作.物理操作实质上是调控生化反应的外部条件,例如温 度,酸碱度等。此外是在试管内或其它载体上经过一定时间完成控制的生物化学反应,尤其 是通过各种酶的操作.这些操作包括合并、分离、加热与退火、扩增、切割、连接、聚合、检 测等生物工程技术)。最后对结果DNA分子(即待求问题的解)进行萃取。DNA计算是1994年被Adleman提出并用实验显示了用于计算的可行性。他用DNA 计算解决了图论中NP完全问题有向图七顶点六条边Hamilton(哈密顿)路径问题。其主 要思想是首先随机生成所有的有向路,然后找出所有开始于起点终止于终点的有向路,最 后寻找经过图的每个顶点且每个顶点只经过一次的有向Hamilton路。这一研究成果引起了数学、物理、化学以及生物界科学家们的广泛关注,也开辟了 DNA计算这一崭新的研究领域。目前DNA计算的研究主要集中在以下几个方面(1)研究DNA计算的生物工具和算法实现技术;(2)建立不同问题的DNA计算模型;(3)研究DNA计算的形式语言及DNA计算的复杂度;(4)研究DNA计算和软计算的结合;(5) DNA自组装相关计算;(6)体内应用为目标的DNA计算。本发明即是基于DNA计算的思想将其应用于具体问题的智能优化仿真方法。
发明内容
本发明提出了一种基于DNA计算的智能优化仿真方法,其目的是提供一种解决群 举问题的有效途径,其思想也可应用于其它NP完全问题。该方法借鉴了 DNA计算并行计算与互补结构的特点,与实际问题相结合,从而实 现了计算机模拟的快速求解。该算法充分利用了 DNA计算高密度存储信息的特点。DNA计算最初解决了 Hamilton有向图问题,有向图的简单形象描述是给定η个 地点,从某一地点出发,访问各点一次且仅有一次后到达终点,要求找出一条最短的路径。DNA计算的数学模型如下一个DNA单链可看作由符号集Σ = {A、C、T、G}组成的字符串,相当于电子计算机 中的0-1编码,可按DNA双螺旋结构和碱基互补配对规则用{A、C、T、G}对实际问题进行编 码,例如A=l,C = 0,r = i G = O,将一个实际问题编码为ACCTGAGTT则在计算模拟时则 可写成ιοο διδ ,当计算得到结果时亦可使用相同方法解码。生物酶可以看作是模拟在DNA分子上的不同的计算,不同的生物酶相当于作用在 DNA串上的不同的算子。常用的生物酶有限制性内切酶,它能够识别特定的碱基序列,并 在相应的位置切断DNA分子作分离操作;核酸外切酶,从DNA序列的端开始,切除碱基,作删 除操作;聚合酶,在DNA分子的一端添加核苷酸使序列加长,作复制操作;连接酶,是两条具 有粘性末端的DNA链连接为一条,做连接操作。各种化学、物理操作可以看作是对DNA分子的筛选和约束计算,不同的操作相当 于作用在DNA串上不同的算子。常用的操作有合成,将核苷酸按照一定的次序生成所需长 度的DNA链;熔解,使双链DNA分解成两条互补的单链DNA ;退火,使单链DNA重新组装成双链DNA ;凝胶电泳,测量DNA分子的长度;杂交,利用碱基互补配对原则,利用一堆寡核苷酸 序列将两条单链分子首尾相接形成说螺旋DNA分子;磁珠分离,将含有特定寡核苷酸片段 的单链DNA从溶液中分离出来;变性梯度凝胶电泳及温度梯度凝胶电泳,将相同长度但序 列组成不同的DNA片段分离开来。对于一个特定的问题,首先用DNA的碱基对其编码,之后选择特定的生物酶作为 算子使被编码的DNA链在生物酶的作用下反应产生适用于问题的解,而后根据约束条件选 择分离方法筛选出拥有可行解及最优解的DNA链,解码DNA读取信息即可找出问题的解。其 基本步骤如图1所示。本发明是一种基于DNA计算的智能优化仿真方法,其具体实现步骤如下(可参见 图2)步骤一确定求解问题。首先,将所要求解的问题归纳成对应的数学模型,确定输入的变量和需要输出的
变量;然后,对输入的变量进行DNA编码,这里指出,根据输入变量数的不同和计算过程 中对变量特异性要求的不同,选取编码的位数不同,在没有特殊要求的情况下可选择编码 位数20为默认值,但可根据实际需要选择不同的编码位数,为了计算方便,所有变量的编 码位数最好相同。而后,将所编码的DNA链中的{A、C、T、G}对应为·} 、Ο、 、0,映射成数字编码存放于
数组1、2...η(η为输入变量数)中。步骤二 确定反应算子。首先,确定问题求解的过程,将变量运算的过程归纳称为数学模型,即相关的函数 或逻辑运算;其次,将相关的函数或逻辑运算抽取成为可应用于序列的函数和运算。这里给出 具体生物酶的建议函数和运算限制性内切酶,逐个搜索数组中的特定序列,直接取出所需数组元素;核酸外切 酶,从数组首元素开始逐渐删除并将余下数组存于另一数组,更新数组;聚合酶,在数组末 端添加元素;连接酶,检测两个数组、的末端和前端是否匹配,匹配即合并为一个数组(这 里的匹配可自行定义)。其中,上述的每一种具体生物酶的函数和运算所涉及的数组均为不特定的数组。步骤三确定删选和约束算子。首先,确定所求输出变量的约束条件,将约束条件归纳为数学模型,也即步骤二中 所述的相关的函数和逻辑运算;而后,将相关函数和逻辑运算抽取成为可用于序列的函数和运算,这里给出具体 的生化反应的建议函数和运算合成,将需要合并的数组逐次存放到另一空白数组中;熔解,对于两行数组,将每 行分别存于不同的空白数组中;退火,对于一个单行数组按自行定义的求补规则求出其中每个元素的补存放于另 一数组中,而后将两个数组存放在另一个两行数组中;凝胶电泳,计算数组元素的个数;
5
杂交,寻找一数组,检测该单行数组与另外两个单行数组元素的补运算是否匹配, 弱匹配则求出各数组求补后的数组匹配合并为一个两行数组;磁珠分离,利用已知的数组排序检测数组群,搜寻出所需排序数组(有相同排序 的数组)。其中,上述的每一种具体的生化反应的函数和运算中所涉及的数组均为不特定的数组。步骤四计算机代码实现。首先,输入变量的编码在数组1、2. ..n(n是输入变量数)中;其次,根据步骤二所抽取的相关酶算子模型函数和逻辑运算对相应的数组变量进 行运算;最后,根据步骤三抽取的约束模型函数和运算,在变量所产生的解数组中搜寻出 所要求的可行解和最优解。本发明一种基于DNA计算的智能优化仿真方法,其优点及功效在于该方法借鉴 了 DNA计算并行计算与互补结构的特点,与实际问题相结合,从而实现了计算机模拟的快 速求解。该算法充分利用了 DNA计算高密度存储信息的特点。根据本发明方法,可以对一 个NP完全问题求出最优解,且运算速度快速与精确性高。
图1本发明方法DNA计算的基本步骤图2本发明方法基于DNA计算的智能优化仿真方法流程图3待解决的Hamilton有向4本发明方法的运行结果
具体实施例方式下面通过一个具体实施事例来验证本发明所提出的基于DNA计算的智能优化仿 真方法的性能,所采用的求解问题即是七顶点Hamilton有向图问题。实验环境为1. 8(ihZ, 2G内存,MATLAB 7. 0版本,其具体实现步骤如下步骤一确定求解问题。要求解的问题是七顶点Hamilton有向图问题,即寻找经过图的七个顶点的每个 顶点且每个顶点只经过一次的有向Hamilton路,本发明采用图3。首先确定输入变量,即每个顶点的位置和两顶点之间的最短距离(由于路障等问 题,该距离并不一定是直线距离)。对每个顶点及边进行编码,由于顶点较少,采用6个字母 的编码方式,则对七个顶点的编码可取为顶点一CCCCCC
顶点二CCACCA
顶点三CACCAC
顶点四CAACAA
顶点五ACCACC
顶点六ACAACA
顶点七AACAAC对应于计算机编码,为顶点一000000顶点二001001顶点三010010顶点四=011011顶点五100100顶点六101101顶点七110110每个顶点的坐标及计算出各条边的长度如表1 (a第i列为第i个点的横坐标,b 第i列为第i个点的纵坐标,str的第i行第j列代表第i个点到第j个点的距离),对每 条边编码,每条边由6位编码组成,前三位编码为起点的前三位编码,后三位编码为终点的 后三位编码,例如一二顶点的编码为000001,二一顶点的编码为001000。表 1
a =
424.6566 660.6335 389.3249 767.9818 162.1465 270.9950 831.9359
b =
510.5496 185.777S 659.5021 419.2107 242.6012 692.0S78 713.5237
str =
23782504550549643774955243431227293445S9555669.62330118154624589818771005613511561.35110
O 406.2039 153.0855 355.2675 375.1106 406.20390 549.9347 253.6949 509.6646
153.0855 549.93470 448.4651 474.7S04
355.2675 253.6949 448.48510 831. 0526
375.1106 509.6646 474.7804 631.0526O
237.8250 643.7749 122. 7293 566.9628 462.4589 455.0549 552,4343 445.S955 301.1815 818.7710步骤二 确定反应算子。将所有边的编码存放于一个数组中,令所有的边进行组合,只有两条边第一条边
的后三个编码和第二条边的前三个编码相同时才能组合,组合过的边不容许再次参与组
合,由于七个顶点存在六条边,故组合为六条边后组合结束。步骤三筛选组合。将所有的七顶点六条边组合译码成顶点序列,求出每一条序列的边的组合长度,
比较找出最短距离的序列边。步骤四计算机代码实现运行结果如图4。所用时间不到Is。可见本方法的快速与精确性。该方法是解决信息计算的有效途径,可广泛应用于航空、航天、工业生产等领域。
权利要求
1. 一种基于DNA计算的智能优化仿真方法,其特征在于具体步骤如下 步骤一确定求解问题首先,将所要求解的问题归纳成对应的数学模型,确定输入的变量和需要输出的变量;其次,对输入的变量进行DNA编码;最后,将所编码的DNA链中的{A、C、T、G}对应为{Κ0、 、^,映射成数字编码存放于数组 1、2...11(11为输入变量数)中;步骤二 确定反应算子首先,确定问题求解的过程,将变量运算的过程归纳称为数学模型,即相关的函数或逻 辑运算;其次,将所述的相关的函数或逻辑运算抽取成为可应用于序列的函数和运算;这里给 出具体生物酶的建议函数和运算限制性内切酶,逐个搜索数组中的特定序列,直接取出所需数组元素; 核酸外切酶,从数组首元素开始逐渐删除并将余下数组存于另一数组,更新数组; 聚合酶,在数组末端添加元素;连接酶,检测两个数组、的末端和前端是否匹配,匹配即合并为一个数组; 上述的每一种具体生物酶的函数和运算所涉及的数组均为不特定的数组; 步骤三确定删选和约束算子首先,确定所求输出变量的约束条件,将约束条件归纳为数学模型,也即步骤二中所述 的相关的函数和逻辑运算;其次,将相关函数和逻辑运算抽取成为可用于序列的函数和运算,这里给出具体的生 化反应的建议函数和运算合成,将需要合并的数组逐次存放到另一空白数组中; 熔解,对于两行数组,将每行分别存于不同的空白数组中;退火,对于一个单行数组按自行定义的求补规则求出其中每个元素的补存放于另一数 组中,而后将两个数组存放在另一个两行数组中; 凝胶电泳,计算数组元素的个数;杂交,寻找一数组,检测该单行数组与另外两个单行数组元素的补运算是否匹配,弱匹 配则求出各数组求补后的数组匹配合并为一个两行数组;磁珠分离,利用已知的数组排序检测数组群,搜寻出所需排序数组;上述的每一种具体的生化反应的函数和运算中所涉及的数组均为不特定的数组;步骤四计算机代码实现首先,输入变量的编码在数组1、2...η(η是输入变量数)中; 其次,根据步骤二所抽取的相关酶算子模型函数和逻辑运算对相应的数组变量进行运算;最后,根据步骤三抽取的约束模型函数和运算,在变量所产生的解数组中搜寻出所要 求的可行解和最优解。
全文摘要
本发明涉及一种基于DNA计算的智能优化仿真方法,其特征在于具体步骤如下步骤一确定求解问题;步骤二确定反应算子;步骤三确定删选和约束算子;步骤四计算机代码实现。该方法借鉴了DNA计算并行计算与互补结构的特点,与实际问题相结合,从而实现了计算机模拟的快速求解。该算法充分利用了DNA计算高密度存储信息的特点。根据本发明方法,可以对一个NP完全问题求出最优解,且运算速度快速与精确性高。根据本发明方法,可以对一个NP完全问题求出最优解,且运算速度快速与精确性高。
文档编号G06N3/12GK102063643SQ20101060218
公开日2011年5月18日 申请日期2010年12月13日 优先权日2010年12月13日
发明者段海滨, 董萌 申请人:北京航空航天大学