CN112114776B - 一种量子乘法运算方法、装置、电子装置及存储介质 - Google Patents

一种量子乘法运算方法、装置、电子装置及存储介质 Download PDF

Info

Publication number
CN112114776B
CN112114776B CN202011058718.8A CN202011058718A CN112114776B CN 112114776 B CN112114776 B CN 112114776B CN 202011058718 A CN202011058718 A CN 202011058718A CN 112114776 B CN112114776 B CN 112114776B
Authority
CN
China
Prior art keywords
quantum
bit
target
module
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011058718.8A
Other languages
English (en)
Other versions
CN112114776A (zh
Inventor
李叶
窦猛汉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Benyuan Quantum Computing Technology Hefei Co ltd
Original Assignee
Benyuan Quantum Computing Technology Hefei Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Benyuan Quantum Computing Technology Hefei Co ltd filed Critical Benyuan Quantum Computing Technology Hefei Co ltd
Priority to CN202011058718.8A priority Critical patent/CN112114776B/zh
Publication of CN112114776A publication Critical patent/CN112114776A/zh
Priority to US18/029,558 priority patent/US20230376276A1/en
Priority to PCT/CN2021/119125 priority patent/WO2022068618A1/zh
Priority to EP21874279.9A priority patent/EP4224308A1/en
Application granted granted Critical
Publication of CN112114776B publication Critical patent/CN112114776B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明属于量子计算领域,特别是一种量子乘法运算方法、装置、电子装置及存储介质,方法包括获取待运算的被乘数数据和乘数数据,并将被乘数数据转换为第一目标量子态,将乘数数据转换为第二目标量子态,针对第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,将最终获得的所述第三目标量子态,作为所述被乘数数据和乘数数据的乘法运算结果进行输出。本发明通过一种能够实现量子线路中的基本算术运算操作的技术,填补相关技术空白。

Description

一种量子乘法运算方法、装置、电子装置及存储介质
技术领域
本发明属于量子计算领域,特别是一种量子乘法运算方法、装置、电子装置及存储介质。
背景技术
量子计算机利用量子的叠加性,理论上在某些情形下有指数级加速的能力。譬如破解RSA密钥在经典计算机上需要数百年,而在量子计算机上执行量子算法只需数小时。但是目前量子计算机的受限于量子芯片硬件的发展导致的可操控的比特数有限,因此计算能力有限,并不能普遍地去运行量子算法。普遍地运行量子算法通常需要借助量子计算模拟方法。
在量子算法的模拟实现过程中,通常需要借助各种量子逻辑门构建量子算法,但是,仅依靠各种量子逻辑门构建量子算法时,并没有对应经典运算例如加、减、乘、除的基本算术运算操作的量子逻辑门。因此,急需提供一种能够实现量子线路中的基本算术运算操作的技术,以填补相关技术空白。
发明内容
本发明的目的是提供一种量子乘法运算方法、装置、电子装置及存储介质,以解决现有技术中的不足,它能够填补相关技术空白,用于量子线路中实现基本算术运算操作。
本申请的一个实施例提供了一种量子乘法运算方法,所述方法包括:
获取待运算的被乘数数据和乘数数据,并将所述被乘数数据转换为第一目标量子态,将所述乘数数据转换为第二目标量子态;其中,所述目标量子态存储所述数据的二进制值,所述第一目标量子态对应的量子比特位数至少为所述第二目标量子态对应的量子比特位数的两倍;
针对所述第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,其中,所述第三目标量子态的初始态为|0>态,所述二进制值左移的左移位数由所述当前位的位数确定;
将最终获得的所述第三目标量子态,作为所述被乘数数据和乘数数据的乘法运算结果进行输出。
可选的,所述方法还包括:
获取存储有所述被乘数数据的符号位的第一子量子态和存储有所述乘数数据的符号位的第二子量子态;
根据所述第一子量子态和所述第二子量子态,将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态。
可选的,所述根据所述第一子量子态和所述第二子量子态,将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态,包括:
对所述第一子量子态对应的第一符号位量子比特和所述第二子量子态对应的第二符号位量子比特执行CNOT门;其中,所述第一符号位量子比特作为所述CNOT门的控制比特,所述第二符号位量子比特作为所述CNOT门的受控比特;
对当前第二符号位量子比特和待存储乘法运算结果的符号位的第三子量子态对应的第三符号位量子比特执行CNOT门,以将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态;其中,所述第二符号位量子比特作为所述CNOT门的控制比特,所述第三符号位量子比特作为所述CNOT门的受控比特,所述初态为|0>态;
对当前第一符号位量子比特和当前第二符号位量子比特执行CNOT门,以将当前第二子量子态进行还原;其中,所述第一符号位量子比特作为所述CNOT门的控制比特,所述第二符号位量子比特作为所述CNOT门的受控比特。
可选的,所述在将最终获得的所述第三目标量子态所存储的运算结果后,所述方法还包括:
利用量子逻辑门,将当前第一目标量子态还原。
可选的,所述针对所述第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,包括:
获得与所述第一目标量子态对应的量子比特位数相同的第一预设辅助比特,并初始化所述第一预设辅助比特的第三目标量子态为|0>态;
从所述第二目标量子态存储的二进制值中的第一位起,判断当前位的二进制值;
在判断当前位的二进制值为1的情况下,将第一预设辅助比特的当前第三目标量子态与当前第一目标量子态,执行加法运算对应的量子态演化;否则,不做操作;
利用量子逻辑门,将所述第一目标量子态包含的各子量子态间进行交换,以使所述第一目标量子态存储的二进制值左移一位;
将所述当前位的位数加一,返回执行所述判断当前位的二进制值的步骤,直至所述第二目标量子态存储的二进制值中的最后一位判断完成。
可选的,所述执行加法运算对应的量子态演化,包括:
根据待运算的两个量子态对应的量子比特位的位数,确定待级联的前级联模块MAJ模块以及待级联的后级联模块UMA模块的目标模块个数,其中,所述MAJ模块的模块个数与所述UMA模块的模块个数相同;
根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成加法器对应的目标量子线路;
通过所述目标量子线路对所述待运算的两个量子态的各子量子态进行加法运算,生成目标量子态结果并输出。
可选的,所述MAJ模块为MAJ量子线路,所述UMA模块为UMA量子线路,所述MAJ量子线路和所述UMA量子线路均包括两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门,
所述根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成加法器对应的目标量子线路的步骤之前,还包括:
获取所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门对应的操作量子比特、操作量子比特之间的控制关系以及所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门之间的时序关系;
根据所述操作量子比特、所述控制关系以及所述时序关系,将所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门构建生成所述MAJ量子线路或所述UMA量子线路,作为对应的MAJ模块或UMA模块。
可选的,所述MAJ模块以及所述UMA模块均包括三个输入项以及三个输出项,
所述根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成所述加法器对应的目标量子线路的步骤具体包括:
根据加法指令,将一MAJ级联模块的三个输出项作为一对应UMA级联模块的三个输入项,以将所述MAJ级联模块与对应的UMA级联模块进行级联,生成所述加法器对应的目标量子线路,其中,所述MAJ级联模块由所述目标模块个数的MAJ模块之间级联确定,所述UMA级联模块由所述目标模块个数的UMA模块之间级联确定。
可选的,所述MAJ模块的三个输入项包括一个进位输入项以及两个待计算子量子态输入项,所述MAJ模块的三个输出项包括一个进位输出项和两个中间结果输出项,所述UMA模块的三个输入项包括对应MAJ模块的一个进位输出项以及两个中间结果输出项,所述UMA模块的三个输出项包括一个结果进位输出项、累加和输出项和一待计算子量子态输入项,
所述根据加法指令,将一MAJ级联模块的三个输出项作为一对应UMA级联模块的三个输入项,以将所述MAJ级联模块与对应的UMA级联模块进行级联,生成所述加法器对应的目标量子线路的步骤具体包括:
根据加法指令,将上一MAJ模块输出的进位输出项以及所述两个待计算子量子态输入项作为下一MAJ模块的三个输入项,以将所述目标模块个数的MAJ模块进行级联;
将一MAJ模块的两个中间结果输出项作为一对应UMA模块的两个输入项,获取所述对应UMA模块的上一UMA模块,并将所述上一UMA模块的结果进位输出项作为所述对应UMA模块的一个输入项,以将所述目标模块个数的MAJ模块以及所述目标模块个数的UAM模块进行级联,生成所述初始量子线路;其中,最后一个MAJ模块的进位输出项作为对应的第一个UMA模块的一个输入项;
将所述初始量子线路中最后一个MAJ模块与对应的第一个UMA模块之间添加CNOT量子逻辑门,其中,将所述MAJ模块的进位输出项对应的量子比特作为控制比特,将预设进位辅助比特位作为受控比特位,以生成所述加法器的目标量子线路。
本申请的又一实施例提供了一种量子乘法运算装置,所述装置包括:
获取模块,用于获取待运算的被乘数数据和乘数数据,并将所述被乘数数据转换为第一目标量子态,将所述乘数数据转换为第二目标量子态;其中,所述目标量子态存储所述数据的二进制值,所述第一目标量子态对应的量子比特位数至少为所述第二目标量子态对应的量子比特位数的两倍;
控制模块,用于针对所述第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,其中,所述第三目标量子态的初始态为|0>态,所述二进制值左移的左移位数由所述当前位的位数确定;
输出模块,用于将最终获得的所述第三目标量子态,作为所述被乘数数据和乘数数据的乘法运算结果进行输出。
与现有技术相比,本发明提供的一种量子乘法运算方法,用于实现量子线路中的基本乘法运算操作,包括获取待运算的被乘数数据和乘数数据,并将被乘数数据转换为第一目标量子态,将乘数数据转换为第二目标量子态,针对第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,将最终获得的第三目标量子态,作为被乘数数据和乘数数据的乘法运算结果进行输出。本发明通过一种能够实现量子线路中的基本算术运算操作的技术,填补相关技术空白。
附图说明
图1是本发明实施例的一种量子乘法运算方法的计算机终端的硬件结构框图;
图2是本发明一实施例提供的一种量子乘法运算方法的流程示意图;
图3是本发明一实施例提供的一种保存符号位运算结果的示意图;
图4是本发明一实施例提供的加法器示意图;
图5是本发明一实施例提供的加法器量子线路示意图;
图6是本发明一实施例提供的MAJ模块示意图;
图7是本发明一实施例提供的MAJ模块量子线路组合过程示意图;
图8是本发明一实施例提供的UMA模块示意图;
图9是本发明一实施例提供的UMA模块量子线路组合过程示意图;
图10是本发明一实施例提供的一种量子乘法运算装置的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明的实施例提供了一种量子乘法运算方法,用于在量子线路中实现对量子比特的基本算术运算操作,该方法可以应用于电子设备,如移动终端,具体如手机、平板电脑;如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图1是本申请实施例的一种量子乘法运算方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输装置106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的量子乘法运算方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责运行量子程序进而实现量子计算。而量子程序是由量子语言如QRunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现量子计算。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,因受限于量子设备硬件的发展,通常需要进行量子计算模拟以验证量子算法、量子应用等等。量子计算模拟即借助通普通计算机的资源搭建的虚拟架构(即量子虚拟机)实现特定问题对应的量子程序的模拟运行的过程。通常,需要构建特定问题对应的量子程序。本发明实施例所指量子程序,即是经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路作为量子程序的一种体现方式,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线),以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个量子程序整体上对应有一条总的量子线路,本发明所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序可以由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,量子逻辑门包括单比特量子逻辑门,如Hadamard门(H门)、Pauli-X门、Pauli-Y门、Pauli-Z门、RX门、RY门、RZ门;多比特量子逻辑门,如CNOT门、CR门、iSWAP门、Toffoli门。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态右矢对应的矩阵进行计算的。假设,一量子态右矢为则对应量子态左矢为/>其中,c1,c2,...,cn均为复数,/>表示cn的共轭。可见,右矢表示一个1×n的列矢量,左矢表示一个n×1的行矢量,且这两个矢量互为转置共轭。
本领域技术人员可以理解的是,在经典计算机中,信息的基本单元是比特,一个比特有0和1两种状态,最常见的物理实现方式是通过电平的高低来表示这两种状态。在量子计算中,信息的基本单元是量子比特,一个量子比特也有0和1两种状态,记为|0>和|1>,但它可以处于0和1两种状态的叠加态,可表示为其中,a、b为表示态、态振幅(概率幅)的复数,这是经典比特不具备的。测量后,量子比特的状态会塌缩至一个确定的状态(本征态,此处为|0>态、|1>态),其中,塌缩至|0>的概率是a2,塌缩至|1>的概率是b2,a2+b2=1,|>为狄拉克符号。
目前,并没有可以实现一些经典运算例如四则运算功能,示例性的:加、减、乘、除运算量子逻辑门,亟待构造量子线路以实现任一四则运算的功能操作,进而推动量子计算的发展,以及量子应用领域的扩展和落地。
本发明的实施例提供了一种量子乘法运算方法,用于实现基本算术运算操作,基本算术运算操作可以为乘法运算,如图2提供的一种量子乘法运算方法的流程示意图,包括:
S201:获取待运算的被乘数数据和乘数数据,并将所述被乘数数据转换为第一目标量子态,将所述乘数数据转换为第二目标量子态;其中,所述目标量子态存储所述数据的二进制值,所述第一目标量子态对应的量子比特位数至少为所述第二目标量子态对应的量子比特位数的两倍。
具体的,待运算的被乘数数据指乘法运算中被乘的数字,又叫因数,一般来说放在算式的前面;乘数数据指乘法运算中乘以其他数字的数字,又叫因数,一般来说放在算式的后面。
量子比特位表示的量子态空间,是指量子比特位对应的所有本征态表征的量子态信息,所有本征态的数量为2的量子比特位的个数次方。
量子态,即指量子比特的状态,其本征态在量子算法(或称量子程序)中用二进制表示。例如,一组量子比特为q0、q1、q2,表示第0位、第1位、第2位量子比特,从高位到低位排序为q2q1q0,该组量子比特的量子态为23个本征态的叠加态,8个本征态(确定的状态)是指:|000>、|001>、|010>、|011>、|100>、|101>、|110>、|111>,每个本征态与量子比特位对应一致,如|000>态,000从高位到低位对应q2q1q0。简言之,量子态是各本征态组成的叠加态,当其他态的概率幅为0时,即处于其中一个确定的本征态。
例如,待运算数据值为2,用于存储所述待运算数据的一组量子比特位有2位或者更多,例如有5位量子比特,则其量子态可为|00010>,其中,最低位的两位为二进制10,用于表示所述待运算数据的二进制取值。有用信息为最低位的两位信息,故该待运算数据值对应的量子态也可简写为|2>=|10>。
示例性的,获取待运算的被乘数数据为7,乘数数据为5,则将所述被乘数数据转换为第一目标量子态为|111>,用于存储第一目标量子态的一组量子比特位有3个或者更多;将所述乘数数据转换为第二目标量子态为|101>,由于第一目标量子态对应的量子比特位数至少为第二目标量子态对应的量子比特位数的两倍,因此存储第一目标量子态的量子比特位需要进行量子比特位数的增加,即存储第一目标量子态的一组量子比特位增加到6个量子比特,此时第一目标量子态为|000111>。
S202:针对所述第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,其中,所述第三目标量子态的初始态为|0>态,所述二进制值左移的左移位数由所述当前位的位数确定。
具体的,针对所述第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,包括如下步骤:
S2021:获得与所述第一目标量子态对应的量子比特位数相同的第一预设辅助比特,并初始化所述第一预设辅助比特的第三目标量子态为|0>态。
具体的,第一预设辅助比特可用于存储被乘数数据与乘数数据进行乘法运算后的结果,其初始化的第三目标量子态为|0>态,且第一预设辅助比特的位数与存储第一目标量子态对应的量子比特位数相同。
示例性的,接上述示例,存储第一目标量子态的一组量子比特位为6个量子比特,第一目标量子态为|000111>,此时第一预设辅助比特的位数与存储第一目标量子态对应的量子比特位数相同,均为6个量子比特位,且初始化后的第三目标量子态为|000000>态。
S2022:从所述第二目标量子态存储的二进制值中的第一位起,判断当前位的二进制值。
具体的,第二目标量子态存储的二进制值中的第一位即为第二目标量子态的低位,从该低位开始依次判断当前二进制值是否为1。
示例性的,第二目标量子态为|101>,从高位到低位排序为101,预设第二目标量子态存储的二进制值的位置顺序从低位开始,则第一位为二进制值1、第二位为二进制值0、第三位为二进制值1。
S2023:在判断当前位的二进制值为1的情况下,将第一预设辅助比特的当前第三目标量子态与当前第一目标量子态,执行加法运算对应的量子态演化;否则,不做操作。
具体的,接上述示例,初始第一目标量子态为|000111>,第二目标量子态为|101>,第三目标量子态为|000000>,依次判断第二目标量子态当前位的二进制值,若为1,则将第一预设辅助比特的当前第三目标量子态与当前第一目标量子态,执行加法运算对应的量子态演化,即当前第一目标量子态|000111>与第三目标量子态|000000>执行加法运算对应的量子态演化;若为0,则不进行任何操作。
S2024:利用量子逻辑门,将所述第一目标量子态包含的各子量子态间进行交换,以使所述第一目标量子态存储的二进制值左移一位。
具体的,接上述示例,初始第一目标量子态为|000111>,利用量子逻辑门,将所述第一目标量子态|000111>包含的各子量子态间进行交换,以使所述第一目标量子态存储的二进制值左移一位转换成量子态|001110>。
示例性的,例如利用量子逻辑门SWAP门实现将第一目标量子态|000111>左移一位转换成量子态|001110>。具体的,在存储第一目标量子态的量子线路中,由低位向高位首先在第三个和第四个量子比特位之间插入一个SWAP门,即将第一目标量子态|000111>转换为第一中间量子态|001011>;在第四个和第五个量子比特位之间插入一个SWAP门,即将第一中间量子态|001011>转换为第二中间量子态|001101>;最后在第五个和第六个量子比特位之间插入一个SWAP门,即将二中间量子态|001101>转换为第一目标量子态左移一位后的量子态|001110>。
需要说明的是,上述实现量子态的左移利用了量子逻辑门SWAP门,但在实际实现过程中,并不仅仅局限于一种量子逻辑门,也可以使用多种单量子逻辑门或双量子逻辑门的组合去实现量子态的左移操作,因此凡是能实现上述量子态的左移等转换操作的量子逻辑门的组合,均应包含在本申请的保护范围之内,在此不做具体限定。
S2025:将所述当前位的位数加一,返回执行所述判断当前位的二进制值的步骤,直至所述第二目标量子态存储的二进制值中的最后一位判断完成。
具体的,将所述当前位的位数加一,即将第二目标量子态存储的二进制值的位数加一,由第一位变为第二位,返回执行判断当前位的二进制值的步骤,即返回执行步骤S2022至步骤S2024,直至所述第二目标量子态存储的二进制值中的最后一位判断完成。
示例性的,第二目标量子态为|101>且当前位二进制值1,执行当前第三目标量子态|000000>与第一目标量子态|000111>加法运算对应的量子态演化;执行完成后,第二目标量子态的当前位的位数加一,第二位为二进制值0,返回执行步骤S2022至步骤S2024,其中,第一目标量子态|000111>左移一位转变为量子态|001110>,因第二目标量子态当前位的二进制值为0,不执行第三目标量子态|000000>与第一目标量子态|000111>加法运算对应的量子态演化完成后的量子态与量子态|001110>的加法运算;继续执行步骤S2025,第二目标量子态|101>第三位为二进制值1,返回执行步骤S2022至步骤S2024,其中,当前第一目标量子态|001110>左移一位转变为量子态|011100>,因第二目标量子态当前位的二进制值为1,执行第三目标量子态|000000>与第一目标量子态|000111>加法运算对应的量子态演化完成后的量子态与量子态|011100>的加法运算,获得演化后的存储加法运算结果的第三目标量子态。
S203:将最终获得的所述第三目标量子态,作为所述被乘数数据和乘数数据的乘法运算结果进行输出。
示例性的,被乘数数据为第一目标量子态|000111>,乘数数据为第二目标量子态|101>,则将最终获得的所述第三目标量子态存储的加法运算结果|100011>,作为所述被乘数数据和乘数数据的乘法运算结果,再将该加法运算结果|100011>可以转换为十进制数35表示并输出结果,也可以直接将二进制运算结果进行输出。
在将最终获得的所述第三目标量子态所存储的运算结果后,还包括:利用量子逻辑门,将当前第一目标量子态还原。
具体的,可以利用量子逻辑门SWAP门将当前第一目标量子态还原为初始状态,方便后续量子线路的使用操作。
由以上介绍可知,在乘法运算操作中,运算的被乘数数据和乘数数据为存储在个数不同的量子比特位,但没有考虑被乘数数据和乘数数据的符号问题(正负值),因此在进行被乘数数据和乘数数据的运算中,还需要考虑得到的运算结果的符号,因此需要进行如下步骤,去获取运算结果的正负情况。
获取存储有所述被乘数数据的符号位的第一子量子态和存储有所述乘数数据的符号位的第二子量子态。
具体的,根据周知的乘法规则可知,当被乘数数据和乘数数据符号相同,经过乘法运算后的结果均为正数;被乘数数据和乘数数据符号不同,经过乘法运算后的结果均为负数;其中,被乘数数据和乘数数据的正负号需要用存储符号位的第一子量子态、第二子量子态及其对应的量子比特位来表示。
根据所述第一子量子态和所述第二子量子态,将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态。
示例性的,如图3所示的本实施例的一种保存符号位运算结果的示意图,其中a和b两个量子寄存器的值(被乘数和乘数)相乘,计算结果保存到寄存器d中。a.sign为a的符号位,用第一子量子态表示;b.sign为b的符号位,用第二子量子态表示,d.sign为计算结果d的符号位,用第三子量子态表示,并且d.sign初值即第三子量子态的初态,可以设置为|0>。对所述第一子量子态对应的第一符号位量子比特和所述第二子量子态对应的第二符号位量子比特执行CNOT门;其中,第一符号位量子比特作为CNOT门的控制比特(图示黑色圆点,下同),第二符号位量子比特作为CNOT门的受控比特(图示圈内“+”号,下同);对当前第二符号位量子比特和待存储乘法运算结果的符号位的第三子量子态对应的第三符号位量子比特执行CNOT门,以将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态;其中,第二符号位量子比特作为CNOT门的控制比特,第三符号位量子比特作为CNOT门的受控比特,所述初态为|0>态;对当前第一符号位量子比特和当前第二符号位量子比特执行CNOT门,以将当前第二子量子态进行还原;其中,所述第一符号位量子比特作为所述CNOT门的控制比特,所述第二符号位量子比特作为所述CNOT门的受控比特。
具体的,被乘数数据和乘数数据的正负共有以下情况:即被乘数数据和乘数数据同为正数、同为负数以及一个为正数和一个为负数四种情况。被乘数数据和乘数数据的正负情况用量子态表示可以为:当第一子量子态预设为|0>态,代表被乘数数据为一个正数;第一子量子态预设为|1>态,代表被乘数数据为一个负数;同样的,当第二子量子态预设为|0>态,代表乘数数据为一个正数;第二子量子态预设为|1>态,代表乘数数据为一个负数;因此,经过如图3所示的量子线路后,即经过3个CNOT门操作后的结果如下表所示:
a.sign b.sign d.sign
|0> |0> |0>
|0> |1> |1>
|1> |0> |1>
|1> |1> |0>
从上表可以看出,例如根据第一子量子态|0>和所述第二子量子态|0>,将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态,即为|0>态,表示当被乘数数据和乘数数据同为正数时,其运算后的结果也是正数;例如根据第一子量子态|1>和所述第二子量子态|0>,将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态,即为|1>态,表示当被乘数数据为负数、乘数数据为正数时,其运算后的结果为负数。
需要说明的是,图3所示仅为本实施例的一种利用CNOT门保存符号位运算结果的示意图,在具体的实现方式中,还可以通过其他量子逻辑门去保存符号位的运算结果,在此不做具体限定。
以下说明执行加法运算对应的量子态演化的具体步骤,用于介绍如何在量子计算机中实现加法运算对应的量子态演化的逻辑电路,并结合预先开发软件QPanda对每个模块进行说明。任何经典逻辑电路,也可以通过量子线路来表示,经典电路和量子线路一一对应,量子逻辑门/量子线路的输入与输出均是量子态,且输入与输出的量子比特数量相等。量子线路允许量子态以叠加的方式输入,输出的状态即可以相同的方式叠加输出。可逆计算是量子计算的基本,即任何可逆量子线路存在逆线路,也就是说,将每个原有的输出作为输入,正好可以映射到原来的输入上。可逆线路意味着对于每一种输出,都正好有一种输入与之对应,这种映射是一一对应的。
下面详细说明执行加法运算对应的量子态演化的具体实现方式。
具体的,可以通过加法器执行加法运算对应的量子态演化,可以包括:
根据待运算的两个量子态对应的量子比特位的位数,确定待级联的前级联模块MAJ模块以及待级联的后级联模块UMA模块的目标模块个数,其中,所述MAJ模块的模块个数与所述UMA模块的模块个数相同。
示例性的,如图4所示为本发明实施例提供的加法器示意图,线路中第一个量子比特位为第二预设辅助比特位,初始为|0>态,最终会恢复为|0>态,e和f是待相加的数据对应的量子态,各对应一组量子比特位。c表示最终的进位项,对应预设进位辅助比特位,s为是不包含进位的输出位。一般要求e和f对应的量子比特位数相同,s和e、f的位数相同。
示例性的,如图5所示为本发明实施例提供的加法器量子线路示意图,e[i]和f[i]分别是两个加数对应量子态的第i位,c[i]是上一级进位。
s[i]=e[i]XOR f[i]XOR c[i]
c[i+1]=(e[i]AND f[i])XOR(e[i]AND f[i])XOR(e[i]AND f[i]),
其中,第一个量子比特即为第二预设辅助比特位,对应量子线路中的c0。第一个MAJ模块包括三个输入量子态以及对应的三个输出量子态,其中,三个输入量子态分别为c0、e0、f0,e0为第一个待运算量子态的第0位量子态,f0为第二个待运算量子态的第0位量子态,c0为第二预设辅助比特的量子态,初始值为0,即无进位。三个输出量子态分别为c1,c1为e0和f0相加后的进位,同理,下一个MAJ模块的三个输入量子态为c1、e1、f1,三个输出量子态分别为/>c2,以此类推至最后一个MAJ模块。
对于第一个UMA模块,包括三个输入量子态以及对应的三个输出量子态,其中,MAJ模块的三个输出量子态为对应UMA模块的三个输入量子态,三个输出量子态分别为c0、s0、e0,s0为e0和f0相加的不含进位的结果。同理,s1为e1和f1相加的不含进位的结果,以此类推,c4是最终的进位项。需要说明的是,在实际应用中,在无计算最终进位的需求下,量子线路中可以不设置c4对应的量子比特位。
并且,可以根据其中待运算的任一量子态包含的子量子态数量确定MAJ模块的模块个数以及UMA模块的个数,一子量子态对应一位量子比特,其中,MAJ模块的模块个数以及UMA模块的个数相等。图中所示仅仅作为示例,编码e和f各所需4位量子比特,MAJ模块和UMA模块的个数均为4。MAJ模块和UMA模块构成了加法器的前、后级联单元。MAJ模块可以用于提取出任何一步的进位项并且传递到下一级,从而将最终进位项计算出来。UMA模块一方面提取了c的信息会传递到上一级UMA,还计算出每一级的s(结果项),并且恢复了e的信息。
示例性的:当4(对应编码在3个量子比特的量子态表示为100)+2(对应编码在3个量子比特的量子态表示为010)=6(对应编码在3个量子比特的量子态表示为110)。此时编码运算结果的量子比特与编码e的量子比特位的个数或用来编码f的量子比特位的个数一致,MAJ模块的模块个数以及UMA模块的个数均为3。
示例性的:当4(对应编码在3个量子比特的量子态表示为100)+7(对应编码在3个量子比特的量子态表示为111)=11(对应编码在3个量子比特的量子态表示为011),但是,可以理解的是11对应的二进制数为1011,最左侧的1所在的位为进位项,该进位项可以通过辅助比特位表示。此时编码运算结果的量子比特与编码e的量子比特位的个数或用来编码f的量子比特位的个数要多,MAJ模块的模块个数以及UMA模块的个数均为3。
示例性的,当2(对应编码在2个量子比特的量子态表示为10)+4(对应编码在3个量子比特的量子态表示为100)=6(对应编码在3个量子比特的量子态表示为110)。此时,编码“6”数值的数值项“3”与编码b的量子比特位的量子态个数一致,MAJ模块的模块个数以及UMA模块的个数均为3。
根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成加法器对应的目标量子线路。
其中,所述MAJ模块以及所述UMA模块均包括三个输入项以及三个输出项,可以根据加法指令,将一MAJ级联模块的三个输出项作为一对应UMA级联模块的三个输入项,以将所述MAJ级联模块与对应的UMA级联模块进行级联,生成所述加法器对应的目标量子线路,其中,所述MAJ级联模块由所述目标模块个数的MAJ模块之间级联确定,所述UMA级联模块由所述目标模块个数的UMA模块之间级联确定。
具体地,所述MAJ模块的三个输入项包括一个进位输入项以及两个待计算子量子态输入项,所述MAJ模块的三个输出项包括一个进位输出项和两个中间结果输出项,所述UMA模块的三个输入项包括对应MAJ模块的一个进位输出项以及两个中间结果输出项,所述UMA模块的三个输出项包括一个结果进位输出项、累加和输出项和一待计算子量子态输入项,
然后,可以根据加法指令,将上一MAJ模块输出的进位输出项以及所述两个待计算子量子态输入项作为下一MAJ模块的三个输入项,以将所述目标模块个数的MAJ模块进行级联;
将一MAJ模块的两个中间结果输出项作为一对应UMA模块的两个输入项,获取所述对应UMA模块的上一UMA模块,并将所述上一UMA模块的结果进位输出项作为所述对应UMA模块的一个输入项,以将所述目标模块个数的MAJ模块以及所述目标模块个数的UAM模块进行级联,生成所述初始量子线路;其中,最后一个MAJ模块的进位输出项作为对应的第一个UMA模块的一个输入项;
将所述初始量子线路中最后一个MAJ模块与对应的第一个UMA模块之间添加CNOT量子逻辑门,其中,将所述MAJ模块的进位输出项对应的量子比特作为控制比特,将预设进位辅助比特位作为受控比特位,以生成所述加法器的目标量子线路。在不需要进位项的情况下,可以不设置该CNOT门以及进位辅助比特位。
本实施例中,如图5所示,根据图示方式,将所述MAJ模块的三个输出比特作为所述UMA模块的三个输入比特,由此,将相同个数的MAJ模块以及UMA模块进行级联,生成所述加法器对应的目标量子线路。其中,线路图中相连的空心圆与实心圆,表示CNOT门操作,空心圆对应量子比特为控制比特位,实心圆对应为受控比特位。
其中,所述MAJ模块为MAJ量子线路,所述UMA模块为UMA量子线路,所述MAJ量子线路和所述UMA量子线路均包括两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门,所述根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成所述加法器对应的目标量子线路的步骤之前,还包括:获取所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门对应的操作量子比特、操作量子比特之间的控制关系以及所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门之间的时序关系;根据所述操作量子比特、所述控制关系以及所述时序关系,将所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门构建生成所述MAJ量子线路或所述UMA量子线路,作为对应的MAJ模块或UMA模块。
本实施例中,MAJ模块和UMA模块构成了加法器的前、后级联单元。如图6所示为本发明实施例提供的MAJ模块示意图,MAJ模块用于提取出每一级加法运算后的进位项并且传递到下一级,从而将最终进位项计算出来。其中,如图7所示为本发明实施例提供的MAJ模块量子线路组合过程示意图,其中,MAJ模块主要可以由三个逻辑门组成,分别是两个CNOT门和一个Toffoli门。CNOT门(图7中的由左向右的第一个、第二个逻辑门)的作用为:将控制位加到目标位上去,形成一个模2加法,即为异或操作,得到(ei+ci)%2、(ei+fi)%2,两个CNOT门的顺序可以交换。Toffoli门(图7中的由左向右的第三个逻辑门)的作用为:将两个控制位都加到目标位上去,得到进位项c[i+1]=(e[i]AND f[i])XOR(e[i]AND f[i])XOR(e[i]ANDf[i])。即通过图7中的由左向右的第一个CNOT门实现通过图7中的由左向右的第二个CNOT门实现/>通过图7中的由左向右的第三个TOFFOLI门实现ci+1,由此通过2个CNOT门和1个TOFFOLI门,构成量子加法器的前级级联单元。
例子1:ei为1,fi为1,ci为1。
MAJ模块开始把ei加到ci上,ci上的值变为0,再把ei加到fi上,fi上的值也变为0,最后用fi和ci加到ei上,ei的值变为1,也就是ci+1的进位为1。
例子2:ei为0,fi为1,ci为1。
MAJ模块开始把ei加到ci上,ci上的值变为1,再把ei加到fi上,fi上的值也变为1,最后用fi和ci加到ei上,ei的值变为1,也就是ci+1的进位为1。
如图8所示为本发明实施例提供的UMA模块示意图,UMA模块用于级联加法器的后级,UMA模块的实现方式和MAJ模块类似,如图9所示为本发明实施例提供的UMA模块量子线路组合过程示意图,首先使用Toffoli门(图9中的由左向右的第一个逻辑门)将ci+1还原为ei,再用ei对(e+c)%2用CNOT门(图9中的由左向右的第二个逻辑门)做一次还原,将(ei+ci)%2还原为ci,最后,再使用ci对(ei+fi)%2做一次CNOT门(图9中的由左向右的第三个逻辑门),得到当前位的最终结果s[i]=e[i]XOR f[i]XOR c[i]
例子1:(ei+ci)%2为0,(ei+fi)%2为0,ci+1为1。
开始把(ei+ci)%2和(ei+fi)%2加到ci+1上,ci+1的值变为1,表示的意义变为ei,再用ei加到(ei+ci)%2上,(ei+ci)%2的值变为1,表示的意义变为ci,再用ci加到(ei+fi)%2上,(ei+fi)%2的值变为1,意义变为si
例子2:(ei+ci)%2为1,(ei+fi)%2为1,ci+1为1。
开始把(ei+ci)%2和(ei+fi)%2加到ci+1上,ci+1的值变为0,意义变为ei,再用ei加到(ei+ci)%2上,(ei+ci)%2的值变为1,意义变为ci,再用ci加到(ei+fi)%2上,(ei+fi)%2的值变为0,意义变为si
如图5中由上向下的最后一个CNOT门,即整个加法器MAJ模块和UMA模块中间的CNOT门,用于保存ci+1的结果。
通过所述目标量子线路对所述待运算的两个量子态的各子量子态进行加法运算,生成目标量子态结果并输出。
本实施例中,通过将两个目标量子态的各子量子态,如|111>和|111>、,输入加法器(即所述目标量子线路)中,得到对应的二进制表示目标量子态计算结果(包括进位项以及各子量子态直接相加得到的结果项)。然后将二进制表示的目标量子态结果|1110>直接输出,或进一步转化为十进制结果输出,完成两目标数据的加法运算。
与现有技术相比,本发明提供的一种量子乘法运算方法,用于实现量子线路中的基本乘法运算操作,包括获取待运算的被乘数数据和乘数数据,并将被乘数数据转换为第一目标量子态,将乘数数据转换为第二目标量子态,针对第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,将最终获得的第三目标量子态,作为被乘数数据和乘数数据的乘法运算结果进行输出。本发明通过一种能够实现量子线路中的基本算术运算操作的技术,填补相关技术空白。
参见图10,图10为本发明实施例提供的一种量子乘法运算装置的结构示意图,与图2所示的流程相对应,该装置可以包括:
获取模块1001,用于获取待运算的被乘数数据和乘数数据,并将所述被乘数数据转换为第一目标量子态,将所述乘数数据转换为第二目标量子态;其中,所述目标量子态存储所述数据的二进制值,所述第一目标量子态对应的量子比特位数至少为所述第二目标量子态对应的量子比特位数的两倍;
控制模块1002,用于针对所述第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,其中,所述第三目标量子态的初始态为|0>态,所述二进制值左移的左移位数由所述当前位的位数确定;
输出模块1003,用于将最终获得的所述第三目标量子态,作为所述被乘数数据和乘数数据的乘法运算结果进行输出。
可选的,所述装置还包括:
存储模块,用于获取存储有所述被乘数数据的符号位的第一子量子态和存储有所述乘数数据的符号位的第二子量子态;
演化模块,用于根据所述第一子量子态和所述第二子量子态,将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态。
可选的,所述演化模块,包括:
第一执行单元,用于对所述第一子量子态对应的第一符号位量子比特和所述第二子量子态对应的第二符号位量子比特执行CNOT门;其中,所述第一符号位量子比特作为所述CNOT门的控制比特,所述第二符号位量子比特作为所述CNOT门的受控比特;
第二执行单元,用于对当前第二符号位量子比特和待存储乘法运算结果的符号位的第三子量子态对应的第三符号位量子比特执行CNOT门,以将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态;其中,所述第二符号位量子比特作为所述CNOT门的控制比特,所述第三符号位量子比特作为所述CNOT门的受控比特,所述初态为|0>态;
第三执行单元,用于对当前第一符号位量子比特和当前第二符号位量子比特执行CNOT门,以将当前第二子量子态进行还原;其中,所述第一符号位量子比特作为所述CNOT门的控制比特,所述第二符号位量子比特作为所述CNOT门的受控比特。
可选的,所述输出模块之后,所述装置还包括:还原模块,用于利用量子逻辑门,将当前第一目标量子态还原。
可选的,所述控制模块,包括:
获得单元,用于获得与所述第一目标量子态对应的量子比特位数相同的第一预设辅助比特,并初始化所述第一预设辅助比特的第三目标量子态为|0>态;
判断单元,用于从所述第二目标量子态存储的二进制值中的第一位起,判断当前位的二进制值;
第四执行单元,用于在判断当前位的二进制值为1的情况下,将第一预设辅助比特的当前第三目标量子态与当前第一目标量子态,执行加法运算对应的量子态演化;否则,不做操作;
交换单元,用于利用量子逻辑门,将所述第一目标量子态包含的各子量子态间进行交换,以使所述第一目标量子态存储的二进制值左移一位;
添加单元,用于将所述当前位的位数加一,返回执行所述判断当前位的二进制值的步骤,直至所述第二目标量子态存储的二进制值中的最后一位判断完成。
可选的,所述控制模块,包括:
确定单元,用于根据待运算的两个量子态对应的量子比特位的位数,确定待级联的前级联模块MAJ模块以及待级联的后级联模块UMA模块的目标模块个数,其中,所述MAJ模块的模块个数与所述UMA模块的模块个数相同;
第一级联单元,用于根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成加法器对应的目标量子线路;
第一生成单元,用于通过所述目标量子线路对所述两个目标量子态的各子量子态进行加法运算,生成并输出目标量子态结果并输出。
可选的,在所述第一级联单元之前,所述装置还包括:
获取单元,用于获取所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门对应的操作量子比特、操作量子比特之间的控制关系以及所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门之间的时序关系;
构建单元,用于根据所述操作量子比特、所述控制关系以及所述时序关系,将所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门构建生成所述MAJ量子线路或所述UMA量子线路,作为对应的MAJ模块或UMA模块。
可选的,所述第一级联单元,具体包括:
第二生成单元,用于根据加法指令,将一MAJ级联模块的三个输出项作为一对应UMA级联模块的三个输入项,以将所述MAJ级联模块与对应的UMA级联模块进行级联,生成所述加法器对应的目标量子线路,其中,所述MAJ级联模块由所述目标模块个数的MAJ模块之间级联确定,所述UMA级联模块由所述目标模块个数的UMA模块之间级联确定。
可选的,所述第二生成单元,具体包括:
第二级联单元,用于根据加法指令,将上一MAJ模块输出的进位输出项以及所述两个待计算子量子态输入项作为下一MAJ模块的三个输入项,以将所述目标模块个数的MAJ模块进行级联;
第三级联单元,用于将一MAJ模块的两个中间结果输出项作为一对应UMA模块的两个输入项,获取所述对应UMA模块的上一UMA模块,并将所述上一UMA模块的结果进位输出项作为所述对应UMA模块的一个输入项,以将所述目标模块个数的MAJ模块以及所述目标模块个数的UAM模块进行级联,生成所述初始量子线路;其中,最后一个MAJ模块的进位输出项作为对应的第一个UMA模块的一个输入项;
第三生成单元,用于将所述初始量子线路中最后一个MAJ模块与对应的第一个UMA模块之间添加CNOT量子逻辑门,其中,将所述MAJ模块的进位输出项对应的量子比特作为控制比特,将预设进位辅助比特位作为受控比特位,以生成所述加法器的目标量子线路。
与现有技术相比,本发明提供的一种量子乘法运算方法,用于实现量子线路中的基本乘法运算操作,包括获取待运算的被乘数数据和乘数数据,并将被乘数数据转换为第一目标量子态,将乘数数据转换为第二目标量子态,针对第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,将最终获得的第三目标量子态,作为被乘数数据和乘数数据的乘法运算结果进行输出。本发明通过一种能够实现量子线路中的基本算术运算操作的技术,填补相关技术空白。
本发明实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S201:获取待运算的被乘数数据和乘数数据,并将所述被乘数数据转换为第一目标量子态,将所述乘数数据转换为第二目标量子态;其中,所述目标量子态存储所述数据的二进制值,所述第一目标量子态对应的量子比特位数至少为所述第二目标量子态对应的量子比特位数的两倍;
S202:针对所述第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,其中,所述第三目标量子态的初始态为|0>态,所述二进制值左移的左移位数由所述当前位的位数确定;
S203:将最终获得的所述第三目标量子态,作为所述被乘数数据和乘数数据的乘法运算结果进行输出。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明实施例还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S201:获取待运算的被乘数数据和乘数数据,并将所述被乘数数据转换为第一目标量子态,将所述乘数数据转换为第二目标量子态;其中,所述目标量子态存储所述数据的二进制值,所述第一目标量子态对应的量子比特位数至少为所述第二目标量子态对应的量子比特位数的两倍;
S202:针对所述第二目标量子态存储的二进制值中的每一位,根据当前位的二进制值,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,其中,所述第三目标量子态的初始态为|0>态,所述二进制值左移的左移位数由所述当前位的位数确定;
S203:将最终获得的所述第三目标量子态,作为所述被乘数数据和乘数数据的乘法运算结果进行输出。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。

Claims (12)

1.一种量子乘法运算方法,其特征在于,所述方法包括:
获取待运算的被乘数数据和乘数数据,并将所述被乘数数据转换为第一目标量子态,将所述乘数数据转换为第二目标量子态;其中,所述目标量子态存储所述数据的二进制值,所述第一目标量子态对应的量子比特位数至少为所述第二目标量子态对应的量子比特位数的两倍;
针对所述第二目标量子态存储的二进制值中的每一位,在判断当前位的二进制值为1的情况下,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,其中,所述第三目标量子态的初始态为|0>态,所述二进制值左移的左移位数由所述当前位的位数确定;
将最终获得的所述第三目标量子态,作为所述被乘数数据和乘数数据的乘法运算结果进行输出。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取存储有所述被乘数数据的符号位的第一子量子态和存储有所述乘数数据的符号位的第二子量子态;
根据所述第一子量子态和所述第二子量子态,将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一子量子态和所述第二子量子态,将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态,包括:
对所述第一子量子态对应的第一符号位量子比特和所述第二子量子态对应的第二符号位量子比特执行CNOT门;其中,所述第一符号位量子比特作为所述CNOT门的控制比特,所述第二符号位量子比特作为所述CNOT门的受控比特;
对当前第二符号位量子比特和待存储乘法运算结果的符号位的第三子量子态对应的第三符号位量子比特执行CNOT门,以将待存储乘法运算结果的符号位的第三子量子态的初态,演化为存储有乘法运算结果的符号位的第三子量子态的末态;其中,所述第二符号位量子比特作为所述CNOT门的控制比特,所述第三符号位量子比特作为所述CNOT门的受控比特,所述初态为|0>态;
对当前第一符号位量子比特和当前第二符号位量子比特执行CNOT门,以将当前第二子量子态进行还原;其中,所述第一符号位量子比特作为所述CNOT门的控制比特,所述第二符号位量子比特作为所述CNOT门的受控比特。
4.根据权利要求1所述的方法,其特征在于,所述在将最终获得的所述第三目标量子态所存储的运算结果后,所述方法还包括:
利用量子逻辑门,将当前第一目标量子态还原。
5.根据权利要求1所述的方法,其特征在于,所述针对所述第二目标量子态存储的二进制值中的每一位,在判断当前位的二进制值为1的情况下,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,包括:
获得与所述第一目标量子态对应的量子比特位数相同的第一预设辅助比特,并初始化所述第一预设辅助比特的第三目标量子态为|0>态;
从所述第二目标量子态存储的二进制值中的第一位起,判断当前位的二进制值;
在判断当前位的二进制值为1的情况下,将第一预设辅助比特的当前第三目标量子态与当前第一目标量子态,执行加法运算对应的量子态演化;否则,不做操作;
利用量子逻辑门,将所述第一目标量子态包含的各子量子态间进行交换,以使所述第一目标量子态存储的二进制值左移一位;
将所述当前位的位数加一,返回执行所述判断当前位的二进制值的步骤,直至所述第二目标量子态存储的二进制值中的最后一位判断完成。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述执行加法运算对应的量子态演化,包括:
根据待运算的两个量子态对应的量子比特位的位数,确定待级联的前级联模块MAJ模块以及待级联的后级联模块UMA模块的目标模块个数,其中,所述MAJ模块的模块个数与所述UMA模块的模块个数相同;
根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成加法器对应的目标量子线路;
通过所述目标量子线路对所述待运算的两个量子态的各子量子态进行加法运算,生成目标量子态结果并输出。
7.根据权利要求6所述的方法,其特征在于,所述MAJ模块为MAJ量子线路,所述UMA模块为UMA量子线路,所述MAJ量子线路和所述UMA量子线路均包括两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门,
所述根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成加法器对应的目标量子线路的步骤之前,还包括:
获取所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门对应的操作量子比特、操作量子比特之间的控制关系以及所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门之间的时序关系;
根据所述操作量子比特、所述控制关系以及所述时序关系,将所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门构建生成所述MAJ量子线路或所述UMA量子线路,作为对应的MAJ模块或UMA模块。
8.根据权利要求7所述的方法,其特征在于,所述MAJ模块以及所述UMA模块均包括三个输入项以及三个输出项,
所述根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成所述加法器对应的目标量子线路的步骤具体包括:
根据加法指令,将一MAJ级联模块的三个输出项作为一对应UMA级联模块的三个输入项,以将所述MAJ级联模块与对应的UMA级联模块进行级联,生成所述加法器对应的目标量子线路,其中,所述MAJ级联模块由所述目标模块个数的MAJ模块之间级联确定,所述UMA级联模块由所述目标模块个数的UMA模块之间级联确定。
9.根据权利要求8所述的方法,其特征在于,所述MAJ模块的三个输入项包括一个进位输入项以及两个待计算子量子态输入项,所述MAJ模块的三个输出项包括一个进位输出项和两个中间结果输出项,所述UMA模块的三个输入项包括对应MAJ模块的一个进位输出项以及两个中间结果输出项,所述UMA模块的三个输出项包括一个结果进位输出项、累加和输出项和一待计算子量子态输入项,
所述根据加法指令,将一MAJ级联模块的三个输出项作为一对应UMA级联模块的三个输入项,以将所述MAJ级联模块与对应的UMA级联模块进行级联,生成所述加法器对应的目标量子线路的步骤具体包括:
根据加法指令,将上一MAJ模块输出的进位输出项以及所述两个待计算子量子态输入项作为下一MAJ模块的三个输入项,以将所述目标模块个数的MAJ模块进行级联;
将一MAJ模块的两个中间结果输出项作为一对应UMA模块的两个输入项,获取所述对应UMA模块的上一UMA模块,并将所述上一UMA模块的结果进位输出项作为所述对应UMA模块的一个输入项,以将所述目标模块个数的MAJ模块以及所述目标模块个数的UAM模块进行级联,生成初始量子线路;其中,最后一个MAJ模块的进位输出项作为对应的第一个UMA模块的一个输入项;
将所述初始量子线路中最后一个MAJ模块与对应的第一个UMA模块之间添加CNOT量子逻辑门,其中,将所述MAJ模块的进位输出项对应的量子比特作为控制比特,将预设进位辅助比特位作为受控比特位,以生成所述加法器的目标量子线路。
10.一种量子乘法运算装置,其特征在于,所述装置包括:
获取模块,用于获取待运算的被乘数数据和乘数数据,并将所述被乘数数据转换为第一目标量子态,将所述乘数数据转换为第二目标量子态;其中,所述目标量子态存储所述数据的二进制值,所述第一目标量子态对应的量子比特位数至少为所述第二目标量子态对应的量子比特位数的两倍;
控制模块,用于针对所述第二目标量子态存储的二进制值中的每一位,在判断当前位的二进制值为1的情况下,控制第一预设辅助比特的第三目标量子态与存储的二进制值左移后的第一目标量子态,执行加法运算对应的量子态演化,获得演化后的存储加法运算结果的第三目标量子态,其中,所述第三目标量子态的初始态为|0>态,所述二进制值左移的左移位数由所述当前位的位数确定;
输出模块,用于将最终获得的所述第三目标量子态,作为所述被乘数数据和乘数数据的乘法运算结果进行输出。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至9任一项中所述的方法。
12.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至9任一项中所述的方法。
CN202011058718.8A 2020-09-30 2020-09-30 一种量子乘法运算方法、装置、电子装置及存储介质 Active CN112114776B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011058718.8A CN112114776B (zh) 2020-09-30 2020-09-30 一种量子乘法运算方法、装置、电子装置及存储介质
US18/029,558 US20230376276A1 (en) 2020-09-30 2021-09-17 Quantum division operation method and apparatus with precision
PCT/CN2021/119125 WO2022068618A1 (zh) 2020-09-30 2021-09-17 一种带精度的量子除法运算方法及装置
EP21874279.9A EP4224308A1 (en) 2020-09-30 2021-09-17 Quantum division operation method and apparatus with precision

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011058718.8A CN112114776B (zh) 2020-09-30 2020-09-30 一种量子乘法运算方法、装置、电子装置及存储介质

Publications (2)

Publication Number Publication Date
CN112114776A CN112114776A (zh) 2020-12-22
CN112114776B true CN112114776B (zh) 2023-12-15

Family

ID=73796832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011058718.8A Active CN112114776B (zh) 2020-09-30 2020-09-30 一种量子乘法运算方法、装置、电子装置及存储介质

Country Status (1)

Country Link
CN (1) CN112114776B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115409183A (zh) * 2021-05-28 2022-11-29 合肥本源量子计算科技有限责任公司 一种量子计算机架构系统
CN113971015B (zh) * 2021-11-10 2023-09-08 哲库科技(北京)有限公司 Uia2计算电路及其数据处理方法、芯片、电子设备及存储介质
CN114528021B (zh) * 2022-01-28 2022-11-08 中国人民解放军战略支援部队信息工程大学 分时复用量子测控系统及低功耗高效率量子测控编译方法
CN116502726B (zh) * 2023-06-28 2023-09-19 深圳市爱云信息科技有限公司 基于量子芯片的数据存储系统及方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446651A (en) * 1993-11-30 1995-08-29 Texas Instruments Incorporated Split multiply operation
US5596763A (en) * 1993-11-30 1997-01-21 Texas Instruments Incorporated Three input arithmetic logic unit forming mixed arithmetic and boolean combinations
CN101923457A (zh) * 2010-08-19 2010-12-22 华东交通大学 基于可逆“zs”系列门的阵列乘法器的设计与实现方法
CN105846814A (zh) * 2016-03-24 2016-08-10 南通大学 针对加密技术领域乘法运算的量子逻辑电路的构造方法
CN107066234A (zh) * 2017-04-21 2017-08-18 重庆邮电大学 一种量子乘法器的设计方法
CN110188885A (zh) * 2019-06-28 2019-08-30 合肥本源量子计算科技有限责任公司 一种量子计算模拟方法、装置、存储介质和电子装置
CN110417545A (zh) * 2019-06-28 2019-11-05 中国人民解放军战略支援部队信息工程大学 有限域离散对数量子求解线路优化构造方法
CN110515589A (zh) * 2019-08-30 2019-11-29 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN111522528A (zh) * 2020-04-22 2020-08-11 厦门星宸科技有限公司 乘法器、乘法运算方法、运算芯片、电子设备及存储介质
CN111582491A (zh) * 2020-04-30 2020-08-25 合肥本源量子计算科技有限责任公司 一种量子线路的构建方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10068183B1 (en) * 2017-02-23 2018-09-04 Edico Genome, Corp. Bioinformatics systems, apparatuses, and methods executed on a quantum processing platform
US10699209B2 (en) * 2017-11-21 2020-06-30 Microsoft Technology Licensing, Llc Quantum circuit libraries for floating-point arithmetic
US11755682B2 (en) * 2018-05-25 2023-09-12 Microsoft Technology Licensing, Llc Evaluating quantum computing circuits in view of the resource costs of a quantum algorithm

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446651A (en) * 1993-11-30 1995-08-29 Texas Instruments Incorporated Split multiply operation
US5596763A (en) * 1993-11-30 1997-01-21 Texas Instruments Incorporated Three input arithmetic logic unit forming mixed arithmetic and boolean combinations
CN101923457A (zh) * 2010-08-19 2010-12-22 华东交通大学 基于可逆“zs”系列门的阵列乘法器的设计与实现方法
CN105846814A (zh) * 2016-03-24 2016-08-10 南通大学 针对加密技术领域乘法运算的量子逻辑电路的构造方法
CN107066234A (zh) * 2017-04-21 2017-08-18 重庆邮电大学 一种量子乘法器的设计方法
CN110188885A (zh) * 2019-06-28 2019-08-30 合肥本源量子计算科技有限责任公司 一种量子计算模拟方法、装置、存储介质和电子装置
CN110417545A (zh) * 2019-06-28 2019-11-05 中国人民解放军战略支援部队信息工程大学 有限域离散对数量子求解线路优化构造方法
CN110515589A (zh) * 2019-08-30 2019-11-29 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN111522528A (zh) * 2020-04-22 2020-08-11 厦门星宸科技有限公司 乘法器、乘法运算方法、运算芯片、电子设备及存储介质
CN111582491A (zh) * 2020-04-30 2020-08-25 合肥本源量子计算科技有限责任公司 一种量子线路的构建方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Igor L. Markov 等.Constant-Optimized Quantum Circuits for Modular Multiplication and Exponentiation.《arXiv:1202.6614v3》.2015,第1-29页. *
Steven A. Cuccaro 等.A new quantum ripple-carry addition circuit.《arXiv:quant-ph/0410184v1》.2004,第1-9页. *
张俊.量子线路研究快速费马数变换的量子线路逻辑实现.《CNKI学位》.2016,第2016年卷(第08期),全文. *

Also Published As

Publication number Publication date
CN112114776A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN112114776B (zh) 一种量子乘法运算方法、装置、电子装置及存储介质
CN111582491B (zh) 一种量子线路的构建方法及装置
CN111563599B (zh) 一种量子线路的分解方法、装置、存储介质及电子装置
CN113850389B (zh) 一种量子线路的构建方法及装置
CN112633508A (zh) 一种量子线路的生成方法、装置、存储介质及电子装置
CN113222155B (zh) 一种量子线路的构建方法、装置、电子装置和存储介质
CN112214200B (zh) 一种量子减法运算方法、装置、电子装置及存储介质
CN112162723B (zh) 一种量子减法运算方法、装置、电子装置及存储介质
CN113222150A (zh) 一种量子态的变换方法及装置
CN113222151B (zh) 一种量子态的变换方法及装置
CN114819163B (zh) 量子生成对抗网络的训练方法、装置、介质及电子装置
CN112162724B (zh) 一种带精度的量子除法运算方法及装置
CN112162725B (zh) 一种量子除法运算方法、装置、电子装置及存储介质
CN113222153B (zh) 一种量子态的模拟方法、装置、存储介质和电子装置
CN115809707A (zh) 量子比较运算方法、装置、电子装置及基础算术组件
CN113222157B (zh) 一种量子模拟方法、装置、电子装置及存储介质
CN113222156B (zh) 一种待执行操作的量子模拟方法、装置
CN116402149A (zh) 一种量子线路优化方法、装置、存储介质及电子装置
CN116048458A (zh) 基于量子计算的数值划分方法、装置、设备及存储介质
CN115809042A (zh) 量子模数加法运算方法、装置、电子装置及模数算术组件
CN115809706A (zh) 量子模数倍增运算方法、装置、电子装置及模数算术组件
CN117114118A (zh) 量子权重加和器的构建方法、装置、介质及电子装置
CN115879554A (zh) 量子模数平方运算方法、装置、电子装置及模数算术组件
CN115879555A (zh) 量子模数快速乘法运算方法、装置及模数算术组件
CN115879558A (zh) 一种多个量子态之间的大小比较方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 230088 6th floor, E2 building, phase II, innovation industrial park, 2800 innovation Avenue, Hefei high tech Zone, Hefei City, Anhui Province

Applicant after: Benyuan Quantum Computing Technology (Hefei) Co.,Ltd.

Address before: 230088 6th floor, E2 building, phase II, innovation industrial park, 2800 innovation Avenue, Hefei high tech Zone, Hefei City, Anhui Province

Applicant before: ORIGIN QUANTUM COMPUTING COMPANY, LIMITED, HEFEI

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant