一种基于置换中循环分解的可逆电路综合方法与流程

文档序号:16096393发布日期:2018-11-27 23:37阅读:447来源:国知局

本发明涉及量子电路可逆逻辑综合领域,尤其涉及一种基于置换中循环分解的可逆电路综合方法。



背景技术:

可逆计算的研究在好几个领域有重要应用,例如信号处理,密码学,计算机图形学,纳米学和光子电路。例如,可逆计算的理论是量子计算的基础。量子计算的电路模型的一个重要特点就是可逆性,可逆性也是量子力学假定发展的结果。根据这个假定,一个封闭的量子系统的时间演化状态可以描述为一个酉算子。可逆计算也有重要的物理推论。例如,我们可能会注意到在任何可逆电路—经典的或量子的——包含足够信息的输出来重构输入,就意味着没有输入信息丢失。传统的逻辑门每一个不可逆的位运算中将导致至少kTln2能量损耗,这一结论已被证实。在这式子中k表示波兹曼常数,T是电路的绝对温度。所以,几乎零能量损耗的逻辑电路只有当这个电路仅由可逆门构造时才成为可能。因此,可逆计算机因其低功耗设计而比传统电路计算机更经济。

可逆计算的一个重要问题是可逆逻辑综合。可逆逻辑综合,就是用给定的可逆逻辑门,按照可逆网络无扇出、无反馈等约束条件和限制,实现相应的可逆逻辑网络,并使得代价尽可能小。这个问题可以被定义为,给出一个双射函数f,找出一个简洁的可逆电路来实现f。

最近30多年来,科研工作者基于多种可逆量子逻辑门,如控制非门(CNOT)、Toffoli门、Fredkin门等,围绕量子可逆逻辑综合算法设计,提出了许多设计方案,取得了若干标志性成果.归纳这些算法设计的思路大体可以分为两大类:穷举搜索法和启发式搜索法。

穷举搜索法虽然能够产生最优解,但是由于其搜索范围过大,往往需要很长的计算时间,而且随着电路规模增大一个量子比特,其搜索空间成指数级的阶乘增长,使得现有计算机系统的硬软设备都将无法忍受.启发式搜索法是穷举法的改进,在搜索的过程中增加了启发式规则,减少了搜索的范围,缩短了运行时间,但是这类方法综合出的电路往往代价不是最小的,长度不是最短的,有时还不能保证合成算法的收敛性。

总的来说,无论是穷举搜索法还是启发式搜索法都有其缺点,例如电路规模小、代价过高、优化过程中时空复杂度高。



技术实现要素:

本发明提出了一种基于置换中循环分解的可逆电路综合方法。

实现本发明的技术解决方案为:一种基于置换中循环分解的可逆电路综合方法,具体步骤为:

步骤1、遍历置换中2n个输出,若存在两个输出数满足汉明距离为1且交换这两个数使得置换的汉明距离减少,则交换这两个数,并输出与交换这两个数操作相应的Toffoli门;

步骤2、将遍历后的置换转换为其相应的循环表示;

步骤3、交换循环中汉明距离为1且交换后使置换的汉明距离减少的两数,并输出与交换两个数对应的Toffoli门;;

步骤4、根据循环链中的相邻数的汉明距离调整循环链;

步骤5、计算首链节汉明距离,并依据首链节的汉明距离进行以下处理:

处理方式一:如果首链节汉明距离为1,则交换第一和第二个数,并输出与交换两个数对应的Toffoli门;;

处理方式二、如果首链节汉明距离为2,则插入一个数,使得第一和第二个数汉明距离变为1;

处理方式三、如果首链节汉明距离为3,则插入一个数,使得第一和第二个数汉明距离变为2;

步骤6、重复步骤3-5,直到置换变为恒等置换,将上述步骤中所输出的门依次级联,生成可逆逻辑电路。

本发明与现有技术相比,其显著优点为:(1)本发明完全基于置换的循环表示的分解和合并性质,简单易懂。(2)本发明应用了异位数选择算法进行优化,意味着引入了NOT门,大大减少了可逆逻辑门的使用数量。本发明同样可应用于其他基于循环的综合方法,来优化平均可逆逻辑门数。(3)本发明易于扩展到4量子比特乃至更多比特位的电路综合。(4)本发明仅使用NOT门和Toffoli门,构造的电路容易实现。

下面结合附图对本发明做进一步详细的描述。

附图说明

图1为本发明实施例1中置换π的实现电路。

图中标号所代表的含义为:x1表示线路1的输入,x2表示线路2的输入,x3表示线路3的输入,y1表示线路1的输出,y2表示线路2的输出,y3表示线路3的输出,(a,b)表示与交换a和b两个数的操作相应的Toffoli门。

具体实施方式

可逆逻辑综合就是构造所有可能的不同功能的可逆逻辑电路,可逆逻辑电路则是由若干个可逆门级联而成。每个可逆逻辑电路都能用相应的可逆逻辑函数来描述,于是某个可逆逻辑函数的实现过程即是相应可逆逻辑电路的实现过程。

n比特可逆逻辑综合的思路有两种,正向变换的可逆逻辑综合,就是可逆逻辑电路的输入固定不变,输出为0到2n-1全排列(共2n!种);逆向变换可逆逻辑综合,就是可逆逻辑电路的输入为0到2n-1全排列(共2n!种),输出固定不变。固定不变的输入/输出一般选择恒等置换。本发明基于置换中循环分解的可逆电路综合方法的思路是逆向变换的可逆逻辑综合,即由2n!种输入构造恒等置换。由于我们的方法中,所使用的可逆门都是对称的,将逆向变换可逆逻辑综合生成的电路逆序排列就等价于正向变换的可逆逻辑综合。

每个可逆逻辑函数可以用相应的置换来描述,而任意置换都有其相应的循环表示。在置换π中,将c1映射到c2,c2映射到c3,……,ck映射回到c1,称为置换π上的一个循环,记为C=(c1,c2,c3,…,ck)。例如,可逆逻辑函数f(0,1,2,3,4,5,6,7)=(7,3,6,2,5,1,4,0)可以用置换来表示,置换π中有循环(0,7),(1,3,2,6,4,5)。

在可逆逻辑函数中,保持输入不变,若交换两个汉明距离为1的输出,就可以改变函数功能。而只要被交换的两个输出满足汉明距离为1,就可以用一个正反控制的Toffoli门来实现。即交换置换中输出行中汉明距离为1的两数的数学操作,有其相应的可逆电路上的物理实现。将输出的所有交换操作所对应的门依次级联,即实现某一置换变为恒等置换的可逆电路。

本发明的基于置换中循环分解的可逆电路综合方法分为两部分,第一部分使用了“异位数选择算法”来进行先行优化,即对所求可逆函数的所有线路的异位数进行计算,决定是否能用一个NOT门来降低电路的复杂度。如果n变量的可逆函数某条线路的异位数大于则在这条线路上加一个NOT门;相反则不做任何操作。第一部分属于先行优化,不是必须的,但是可以大大优化平均门数。

第二部分是方法的主体部分,我们了置换的循环表示的分解和合并的性质,将置换中循环分解,渐渐接近直至最终变为恒等置换,这部分电路由正反控制的Toffoli门实现。

一种基于置换中循环分解的可逆电路综合方法,具体步骤为:

步骤1、遍历置换中2n个输出,若两个输出数满足汉明距离为1且交换这两个数使得置换的汉明距离减少,则交换这两个数,并输出与交换这两个数操作相应的Toffoli门;

步骤2、将遍历后的置换转换为其相应的循环表示;

进一步的实施例中,将遍历后的置换转换为其相应的循环表示具体为:一个置换用一个一元数字数组实现,置换的循环表示则用一个双向链表数组表示。,也就是将一个一元数字数组转换为相应的双向链表数组。例如,置换π=中,有三个循环(0,7),(1,6,5)和(2,4,3),置换π用一元数组Array[]={7,6,4,2,3,1,5,0}表示,置换π的循环表示用一个指针数组实现,这个数组中的元素分别为指向(0,7)、(1,6,5)和(2,4,3)三个循环的指针,每个循环就是一个双向链表。

步骤3、交换循环中汉明距离为1且交换后使置换的汉明距离减少的两数,并输出与交换这两个数操作相应的Toffoli门;

步骤4、根据循环链中的相邻数的汉明距离调整循环链(调节头指针);

进一步的实施例中,根据循环链中的相邻数的汉明距离调整循环链具体为:将循环链中与前一个数汉明距离最大的数,并放到头指针。例如,循环链C=(c1,c2,…,ci,ci+1,…,ck)任意的相邻两数中,dH(ci,ci+1)最大,则移动头指针指向ci+1,使得循环变为C=(ci+1,…,ck,c1,c2,…,ci)。

步骤5、计算首链节(循环中第一个数和第二个数)汉明距离,并依据首链节的汉明距离进行以下处理:

处理方式一:如果首链节汉明距离为1,则交换第一和第二个数,并输出与交换这两个数操作对应的Toffoli门;

处理方式二、如果首链节汉明距离为2,则插入一个数,使得第一和第二个数汉明距离变为1;

处理方式三、如果首链节汉明距离为3,则插入一个数,使得第一和第二个数汉明距离变为2;

步骤6、重复步骤3-5,直到置换变为恒等置换,将上述步骤中所输出的门依次级联,生成可逆逻辑电路。

进一步的实施例中,在遍历置换前对置换使用异位数选择算法,减小输入和输出向量的汉明距离。

优选地,对置换使用异位数选择算法,减小输入和输出向量的汉明距离具体为:对于n比特电路的n条线路,判断每条线路的异位数是否大于2n-1,若某条线路的异位数大于2n-1,则在这条线路上增加一个逻辑非门。

下面结合实施例进行更详细的描述。

实施例1

本实施例置换置换π中有循环(0,7),(1,3,2,6,4,5)。

置换π的三条线路的异位数均为4,不满足大于23-1,所以不需要加逻辑非门。

交换数字(3,2),π中循环变为(0,7),(3),(2,6,4,5,1)。

交换数字(3,7),π中循环变为(3,7,0),(2,6,4,5,1)。

交换数字(2,6),π中循环变为(3,7,0),(2),(6,4,5,1)。

交换数字(6,4),π中循环变为(3,7,0),(2),(6),(4,5,1)。

交换数字(4,5),π中循环变为(3,7,0),(2),(6),(4),(5,1)。

交换数字(1,5),π中循环变为(3,7,0),(2),(6),(4),(5),(1)。

交换数字(1,3),π中循环变为(1,3,7,0),(2),(6),(4),(5)。

交换数字(0,1),π中循环变为(0),(1,3,7),(2),(6),(4),(5)。

交换数字(1,3),π中循环变为(0),(1),(3,7),(2),(6),(4),(5)。

交换数字(7,3),π中循环变为(0),(1),(3),(7),(2),(6),(4),(5)。

至此置换π中数全部变为单循环,即最终变为恒等置换。依次级联算法中输出的实现交换(3,2)、(3,7)、(2,6)、(6,4)、(4,5)、(1,5)、(1,3)、(0,1)、(1,3)、(7,3)的正反控制的Toffoli门,即实现置换π变为恒等置换的电路,如图1所示。反序级联算法中输出的门,即级联实现交换(7,3)、(1,3)、(0,1)、(1,3)、(1,5)、(4,5)、(6,4)、(2,6)、(3,7)、(3,2)的正反控制的Toffoli门,即实现恒等置换变为置换π的电路。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1