买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种量子乘法器的设计方法_重庆邮电大学_201710266843.X 

申请/专利权人:重庆邮电大学

申请日:2017-04-21

公开(公告)日:2020-05-26

公开(公告)号:CN107066234B

主分类号:G06F7/523(20060101)

分类号:G06F7/523(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.05.26#授权;2017.09.12#实质审查的生效;2017.08.18#公开

摘要:本发明公开了一种量子乘法器的设计方法,包括以下步骤:步骤1:利用量子门设计一位量子全加器,并将n个一位的量子全加器叠加在一起设计n位量子全加器,实现两个n位二进制数的加和;步骤2:利用两个控制非门设计置零电路,并使用置零电路设计量子右移算子;步骤3:对二进制数乘法步骤进行改进,按照改进后的二进制乘法步骤使用前述的量子全加器和量子右移算子设计量子乘法器。本发明成功填补了量子乘法器在算法设计上的空白,设计了高效的量子乘法器。

主权项:1.一种量子乘法器的设计方法,其特征在于:包括以下步骤步骤1:利用量子门设计一位量子全加器,并将n个一位的量子全加器叠加在一起设计n位量子全加器,实现两个n位二进制数的加和;步骤2:利用两个控制非门设计置零电路,并使用置零电路设计量子右移算子;步骤3:对二进制数乘法步骤进行改进,按照改进后的二进制乘法步骤使用前述的量子全加器和量子右移算子设计量子乘法器;改进后的二进制乘法步骤为:首先把部分积置零;如果乘数的低位是1,则加上被乘数,然后把和右移一位;如果乘数高一位的数是0,加上0000,然后把和右移一位,如此循环,直到得出结果;按照改进后的二进制乘法步骤使用前述的量子全加器和量子右移算子设计量子乘法器为:设需要计算一个m位和一个n位二进制数的乘积;用拥有n个量子比特的量子态表示n位的被乘数,拥有m个量子比特的量子态表示m位的乘数;n位的部分积初始状态为零,即处于基态,然后依次用乘数从低位到高位的每一位来控制部分积是加上被乘数还是加零,并在每次加和之后让部分积右移一位;这样就得到两个数的乘积;结果存储在m+n位的量子比特中;其中,量子全加器的控制量子位分别是乘数中的每一位,目标位实现部分积和被乘数的加和,结果仍存储在n位部分积和一位进位量子比特中,量子右移算符作用在m+n位的量子比特上;以下为量子乘法器实现两数相乘的过程:设n位二进制数a存储在量子态|a=|anan-1…a2a1中,m位二进制数b存储在量子态|b=|bmbm-1…b2b1中,输入量子态为两个待处理二进制数和初始状态为0的n+m位辅助量子比特,其中一位辅助量子比特作为进位,与另外n+m-1位量子比特一起用来存储相乘的结果,即输入量子态为经过量子乘法器的运算,输出量子态则为设量子乘法器运算用符号QMUL来表示,则两个数相乘的过程表示为: 量子态|a=|anan-1…a2a1为的简写。

全文数据:一种量子乘法器的设计方法技术领域[0001]本发明属于量子计算领域,具体涉及一种量子乘法器的设计方法。背景技术[0002]量子计算的概念最早由IBM的科学家R.Landauer及C.Bennett于20世纪70年代提出。80年代初期,阿岗国家实验室的P.Benioff首先提出二能阶的量子系统可以用来仿真数字计算;稍后费因曼也对这个问题产生兴趣而着手研究,并在1981年于麻省理工学院举行的一场演讲中勾勒出以量子现象实现计算的愿景。1982年,费曼提出量子计算机的计算速度远超过经典计算机。20世纪90年代,“Shor量子因子分解算法”和“Grover量子搜索算法”证明了量子计算机的计算能力。因此越来越多的研究人员开始探索量子计算机上的各种应用,相关的交叉学科也不断涌现,例如量子人工智能、量子机器学习和量子图像处理等。由于量子算法具有指数级加速相应经典算法的能力,被认为是解决当前物理系统计算能力瓶颈的有效手段之一。[0003]量子乘法器是以更基本的量子加法器为基础,它广泛应用于量子图像处理中的滤波、边缘检测和频率控制等领域,是一种应用广泛的量子算法。现目前,研究者主要研究基于量子细胞自动机的乘法器的硬件实现。现有的关于量子乘法器的算法设计与研究几乎没有。因此,寻找量子乘法器的设计及实现方法具有重要的意义。发明内容[0004]有鉴于此,本发明的目的是提供一种量子乘法器的设计方法。[0005]本发明的目的是通过以下技术方案来实现的,一种量子乘法器的设计方法,包括以下步骤:[0006]步骤1:利用量子门设计一位量子全加器,并将η个一位的量子全加器叠加在一起设计η位量子全加器,实现两个η位二进制数的加和;[0007]步骤2:利用两个控制非门设计置零电路,并使用置零电路设计量子右移算子;[0008]步骤3:对二进制数乘法步骤进行改进,按照改进后的二进制乘法步骤使用前述的量子全加器和量子右移算子设计量子乘法器。[0009]进一步,改进后的二进制乘法步骤为:首先把部分积置零;如果乘数的低位是1,加上被乘数,然后把和右移一位;如果乘数高一位的数是〇,加上〇〇〇〇,然后把和右移一位,如此循环,直到得出结果。[0010]进一步,所述置零电路包括两个受控非门,输入量子比特|a和输入量子比特I0经过第一个受控非门输入状态转换为I«,β=Iα,4,经过第二个受控非门后的输出状态为|的量子比特一起用来存储两数相加之后的和。经过量子全加器的运算,输出量子态则为+0。设量子全加器运算用符号QADD来表不,则两个数相加的过程可以表示为:[0028]1[0029]2改进二进制乘法步骤[0030]—般来说对于整数相乘,乘法可以用加法代替,但是太浪费计算和存储资源。在量子计算机中,二进制数存储在一个量子态中,对其进行整体操作更节省资源,根据此需求可对乘法步骤进行改进。[0031]例如要计算两个二进制数的乘积:1011X1101,图5a为二进制乘法的实现步骤。此乘法运算具有明显的特点,每次部分积要加的数是被乘数要么乘于1,要么乘于0,结果是被乘数本身或零,即每一小步中,部分积或者需要加上被乘数,或者不加,受乘数中的每一位的控制。图5b展示了改进后的算法步骤,首先把部分积置零置零线路如图6所示),然后乘数的低位是1,所以要加上被乘数1011,然后把和右移一位;乘数高一位的数是〇,就加上〇〇〇〇,然后把和右移一位,如此循环,直到得出结果。虽然是一个简单的转换,却节省了很多计算步骤。例如,对于一个η位二进制数乘于一个m位二进制数,本来需要计算2m次的加法,改进后只需要m次加法和m-1次的右移操作。关于加法的计算可以用步骤一中介绍的量子加法器。这里需要设计一个量子右移线路以解决乘法的运算。[0032]3设计量子右移算子[0033]在经典的数字电路中,需要沿着每条线从头到尾来分析整个电路实现的功能,对于每条线,都可以简单地对其实现扇出以及扇入操作。因为电路中的每条线确确实实代表着实际物品中的电线,和实际的电线一样起着传递信息的作用,一条导线就可以把一个位置上的电位传递到任何地方,反而比特的概念在电路图里倒是没有体现的那么清楚。而在量子计算的过程中,也是按照每条线来分析其功能,不同的是,每一条线都确确实实地代表一个或几个量子比特的状态转化过程,而且没有扇出和扇入操作。这是因为量子比特用更微小的物理现象表不,每条线代表的是一个相应的微观状态,例如电子的自旋方向,原子核的自旋方向等。这些状态不能简单地通过介质传递。因为量子不可克隆原理,不可能完全地对任意量子态进行复制,也就无法对任意量子态实现完全的扇出,而扇入在这里是荒谬的,因为两个量子态并不能合并。[0034]例如图7,两个输入量子比特为Ia和I0,其中Ia为任意的单量子比特态。可以把输入状态写作|a,0,表示两个量子比特耦合在一起的系统,图中利用了之前介绍的受控非门,其实现异或操作,经过第一个受控非门输入状态转换为,经过第二个受控非门后的输出状态为。可以看出,这个简单的电路实现了量子比特|a和〇的交换,可以把它叫做置零线路。或者说实现了把|a复制到量子比特I0上,若把此操作应用到多位的二进制数,即可实现多位二进制数的复制操作,只不过需要η位的辅助量子比特。[0035]假设需要右移操作的二进制数是CV1Cn-^C1Co,—个量子右移操作线路需要η位的量子比特来表示这个数,需要一个辅助的量子比特,辅助量子比特的初始状态一般都为|〇,如7a所不。首先交换ICo和辅助量子比特I0,然后依次交换相邻的两个量子比特,从最终输出可以看到实现了右移操作。每次右移一共需要η次交换,共需2n个受控非门。同样为了使用方面图7b为右移算符的简化图。[0036]如果需要实现很多位的右移,那么可以把整个右移算法重复使用多次,或者可以设计更简单的右移电路,例如图7c为右移两位时的线路图。其他情况可以以此类推。同理可以设计左移操作算符,这里不再详细描述。[0037]⑷设计量子乘法器[0038]按照改进后的二进制乘法步骤,使用上述量子全加器和量子右移位算符,即可以实现量子乘法器的设计。[0039]设需要计算一个m位和一个η位二进制数的乘积。用拥有η个量子比特的量子态表示η位的被乘数,拥有m个量子比特的量子态表示m位的乘数。η位的部分积初始状态为零,即处于基态,然后依次用乘数从低位到高位的每一位来控制部分积是加上被乘数还是加零,并在每次加和之后让部分积右移一位。这样就得到了两个数的乘积。结果存储在m+n位的量子比特中。图8a为量子乘法器的线路图,图中未标注的初始为零的量子比特均为辅助量子比特。该线路图中主要有两种类型的量子门,量子全加器和量子右移位算符,其中,量子全加器的控制量子位分别是乘数中的每一位,目标位实现部分积和被乘数的加和,结果仍存储在η位部分积和一位进位量子比特中,量子右移位算符作用在m+n位的量子比特上。图8b为量子乘法器简化图。以下为量子乘法器实现两数相乘的过程。[0040]设η位二进制数a存储在量子态Ia=Ianan—r"a2ai中,m位二进制数b存储在量子态Ib=Ibmbm-r"b2bi中,图8的输入量子态为两个待处理二进制数和初始状态为0的n+m位辅助量子比特,其中一位辅助量子比特作为进位,与两外n+m-1位量子比特一起用来存储相乘的结果,即输入量子态为经过量子乘法器的运算,输出量子态则为|«〉哗〉糾0〉。设量于乘法器运算用符号》^来表示,则两个数相乘的过程可以表示为:[0041]2[0042]注:说明书中出现的量子态Ia=Ianan-r"a2ai为的简写,其他类似表示以此类推。[0043]以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

权利要求:1.一种量子乘法器的设计方法,其特征在于:包括以下步骤步骤1:利用量子门设计一位量子全加器,并将η个一位的量子全加器叠加在一起设计η位量子全加器,实现两个η位二进制数的加和;步骤2:利用两个控制非门设计置零电路,并使用置零电路设计量子右移算子;步骤3:对二进制数乘法步骤进行改进,按照改进后的二进制乘法步骤使用前述的量子全加器和量子右移算子设计量子乘法器。2.根据权利要求1所述的一种量子乘法器的设计方法,其特征在于:改进后的二进制乘法步骤为:首先把部分积置零;如果乘数的低位是1,加上被乘数,然后把和右移一位;如果乘数高一位的数是O,加上〇〇〇〇,然后把和右移一位,如此循环,直到得出结果。3.根据权利要求2所述的一种量子乘法器的设计方法,其特征在于:所述置零电路包括两个受控非门,输入量子比特Ia〉和输入量子比特I0经过第一个受控非门输入状态转换为,经过第二个受控非门后的输出状态为

百度查询: 重庆邮电大学 一种量子乘法器的设计方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。