论文部分内容阅读
Tile自组装系统作为一种分布式并行计算模型,在计算能力上具有图灵通用性(Turing-universal),即Tile自组装系统具有计算通用性,可以计算一切可计算函数。然而到目前为止,并没有找到一个实用的方法,使得对于任何问题都能直接通过这种标准方法来解决。即对于一个具体的问题,我们并不能从自组装系统的这种计算通用性得到可以直接解决该问题的任何启示。基于以上考虑,本文将Tile自组装系统与四类重要的问题建立了对应关系,这四类问题分别是排序问题、布尔逻辑计算问题、NP完全问题中的最大团问题以及RSA公钥密码学分析中的整数分解问题。从算法层面上给出可以有效解决以上问题的具体方法,为Tile自组装分子计算机的研制提供有力的理论依据。
排序问题不仅存在于数据检索,而且它也是求解离散对数问题的小步-大步算法中很关键的一步。本文提出用于排序运算的Tile自组装系统,利用自组装过程的并行计算能力,设计相应的tile自组装算法,将问题的已知条件以及排序规则嵌入到tile集合中,构建求解排序问题的自组装系统。该方法引入了“模块化”思想,从理论上可以实现多个子系统同时处理至少两对或更多数对的排序操作,从而减少整个自组装过程的自组装步数。最后,讨论了该系统的复杂度,结果表明所需的tile种类数为常数,自组装步数为Θ(mn)。
针对数学计算中的重要基本运算——布尔逻辑计算,构造Tile自组装系统,用于实现对任意布尔逻辑表达式的计算。该方法引入了“分层”的思想,根据布尔逻辑表达式子句的个数,以及计算过程的先后性,将整个Tile自组装计算过程分为若干级子系统。本方法可以最大限度的利用Tile自组装系统的并行性,实现对布尔逻辑表达式的同步计算,该方法对于求解可满足性问题以及DES密码体制中的S-盒子分析具有可行性。
针对NP完全问题中的最大团问题,在二维自组装平台上,构建非确定性Tile自组装系统。本系统构造性的设计一组算子tile,将图的已知信息融入到种子框架,设计随机生成图的tile,用以生成随机子图。理论上,通过合理的自组装判断运算子系统,判断随机生成的图是否满足团的条件。最后结合凝胶电泳技术从以上得到的团中分离出代表着最大团的解。该方法采用了“逐步删除非解”的思路,大大降低了求解问题的复杂度,使得所需的tile种类数为Θ(mn),自组装时间与问题规模呈线性关系,从而降低了Tile自组装实验的难度,提高了算法的可靠性。
RSA公钥密码体制被广泛应用于电子商务以及密钥分配等领域,其安全性建立在分解大整数的困难性上。针对破译RSA密码中存在的大数分解问题,充分利用算法自组装的并行处理能力,提出两类分解整数的自组装系统。大数分解的Tile自组装系统I通过在种子框架上以“逐比特”的方式随机生成两个整数,边生成数对边计算其乘积,并将所得乘积与待分解整数的相应位置的比特信息作比较,用于判断生成数对的正确性。该系统只需常数种tile,便可在与问题规模呈线性关系的自组装步数中完成对任意整数的分解。该系统较之同领域其他的算法模型,能在自组装过程中逐步删除非解,降低了整个系统的tile分子数的消耗,提高了算法的有效性。对于大数分解的Tile自组装系统II则是基于欧几里得算法可以计算任意两个整数的公因子这一理论而设计的。通过先构建计算两个整数的最大公因子的算法自组装系统,然后在此基础之上,添加一个随机生成数子系统,用于构建分解整数的自组装系统。随机数生成子系统可以有效的生成小于2N,且除去个与其互素的整数之外的所有整数,很大程度上提高了Tile自组装算法的速度。该方法从二维自组装平台上实现了欧几里得算法,该算法在数论中具有很重要的应用价值。