CN112162724B - 一种带精度的量子除法运算方法及装置 - Google Patents
一种带精度的量子除法运算方法及装置 Download PDFInfo
- Publication number
- CN112162724B CN112162724B CN202011059513.1A CN202011059513A CN112162724B CN 112162724 B CN112162724 B CN 112162724B CN 202011059513 A CN202011059513 A CN 202011059513A CN 112162724 B CN112162724 B CN 112162724B
- Authority
- CN
- China
- Prior art keywords
- quantum state
- quantum
- bit
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 239000002096 quantum dot Substances 0.000 claims abstract description 95
- 230000000295 complement effect Effects 0.000 claims description 159
- 230000009467 reduction Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000005259 measurement Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 101100328518 Caenorhabditis elegans cnt-1 gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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/575—Basic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明属于量子计算领域,特别是一种带精度的量子除法运算方法及装置,方法包括获取待运算的被除数数据和除数数据,并将被除数数据转换为第一目标量子态,将除数数据转换为第二目标量子态,对第一目标量子态和第二目标量子态,迭代执行减法运算对应的量子态演化,并对减法运算的执行次数进行计数,直至将被除数数据减为负数,将最终获得的计数结果,作为被除数数据与除数数据相除的商的整数位进行输出,对当前第一目标量子态和当前第二目标量子态,迭代执行商的小数位运算对应的量子态演化,将最终获得的预设精度位量子比特上的量子态进行输出。本发明实现可以用于量子线路中的基本算术运算操作,填补了相关技术的空白。
Description
技术领域
本发明属于量子计算领域,特别是一种带精度的量子除法运算方法及装置。
背景技术
量子计算机利用量子的叠加性,理论上在某些情形下有指数级加速的能力。譬如破解RSA密钥在经典计算机上需要数百年,而在量子计算机上执行量子算法只需数小时。但是目前量子计算机的受限于量子芯片硬件的发展导致的可操控的比特数有限,因此计算能力有限,并不能普遍地去运行量子算法。普遍地运行量子算法通常需要借助量子计算模拟方法。
在量子算法的模拟实现过程中,通常需要借助各种量子逻辑门构建量子算法,但是,仅依靠各种量子逻辑门构建量子算法时,并没有对应经典运算例如加、减、乘、除的基本算术运算操作的量子逻辑门。因此,急需提供一种能够实现量子线路中的基本算术运算操作的技术,以填补相关技术空白。
发明内容
本发明的目的是提供一种带精度的量子除法运算方法及装置,以解决现有技术中的不足,它能够填补相关技术空白,用于量子线路中实现基本算术运算操作。
本发明采用的技术方案如下:
本发明实施例提供了一种带精度的量子除法运算方法,所述方法包括:
获取待运算的被除数数据和除数数据,并将所述被除数数据转换为第一目标量子态,将所述除数数据转换为第二目标量子态;其中,目标量子态包括:表示所述数据符号的符号位子量子态和表示所述数据数值的数值位子量子态;
对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出;其中,每次执行减法运算的被减数为上次执行减法运算的减法结果、减数为所述除数数据;
对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化;其中,该迭代的预设迭代次数与待计算的小数位精度的位数一致,每次迭代后在对应的预设精度位量子比特上得到包含对应精度位的值的量子态;
将最终获得的预设精度位量子比特上的量子态进行输出,其中,该量子态包含所述商的小数位的二进制值。
可选的,所述对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,包括:
对当前第一目标量子态和所述第二目标量子态,执行减法运算对应的量子态演化,以获得包含减法运算结果的第一目标量子态;
对当前第一预设辅助比特的第三目标量子态和当前第二预设辅助比特的第四目标量子态,执行减法运算对应的量子态演化,以将当前第三目标量子态包含的值加1;其中,所述第三目标量子态包含的初值、所述第四目标量子态包含的值均为-1;
测量当前包含减法运算结果的第一目标量子态的符号位子量子态,判断当前包含减法运算结果的第一目标量子态的符号位的值是否为0;
在当前包含减法运算结果的第一目标量子态的符号位的值为0的情况下,返回执行所述对当前第一目标量子态和当前第二目标量子态,执行减法运算对应的量子态演化的步骤,直至判断出当前包含减法运算结果的第一目标量子态的符号位的值为1。
可选的,所述将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出,包括:
将最终获得的第三目标量子态进行输出,其中,所述第三目标量子态包含的值为所述被除数数据与所述除数数据相除的商的整数位二进制值。
可选的,所述对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化,包括:
将当前第二目标量子态的符号位子量子态取反,对当前第一目标量子态和符号位取反后的第二目标量子态,执行减法运算对应的量子态演化,以将当前第一目标量子态演化为包含所述被除数数据与所述除数数据相除的余数二进制值的量子态;
将当前第一目标量子态的各位子量子态均左移一位,将当前第二目标量子态的符号位子量子态再取反,对左移一位后的第一目标量子态和再取反后的第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述左移一位后的第一目标量子态减为负数,在预设中间位量子比特上得到包含计数结果的二进制值的小数位量子态;
将所述小数位量子态的最后一位子量子态与对应的预设精度位量子比特的初始量子态态进行交换,并输出交换后的预设精度位量子比特上的量子态;
返回执行所述将当前第二目标量子态的符号位子量子态取反,对当前第一目标量子态和符号位取反后的第二目标量子态,执行减法运算对应的量子态演化的步骤,直至达到所述迭代执行所述商的小数位运算对应的量子态演化所需的预设迭代次数,其中,所述预设迭代次数与待计算的小数位精度的位数一致。
可选的,所述方法还包括:
获取预设符号位量子比特,对所述第一目标量子态的符号位子量子态对应的量子比特、所述第二目标量子态的符号位子量子态对应的量子比特、所述第一预设辅助比特和所述预设符号位量子比特,执行预设量子逻辑门操作,以最终获得所述第三目标量子态中符号位子量子态表示的符号值。
可选的,所述执行减法运算对应的量子态演化,包括:
对于待运算的两个量子态,分别作为包含被减数据的被减数量子态和包含减数数据的减数量子态,获取第三预设辅助比特的量子态,根据所述被减数量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述被减数量子态执行求补码运算对应的量子态演化,得到第一补码量子态;其中,所述第一补码量子态为包含所述被减数数据的补码的量子态;
将所述减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,并根据取反后的符号位子量子态和所述第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,得到第二补码量子态;其中,所述第二补码量子态为包含所述减数数据的补码的量子态;
对所述第一补码量子态和所述第二补码量子态,执行加法运算对应的量子态演化,以将所述第一补码量子态演化为包含所述被减数数据的补码与所述减数数据的补码之和的第五目标量子态;
根据所述第五目标量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述第五目标量子态执行求补码运算对应的量子态演化,得到演化后的第六目标量子态,作为所述被减数数据和所述减数数据的减法运算结果进行输出;其中,所述第六目标量子态为包含所述补码之和的补码的量子态;
根据当前减数量子态中的符号位子量子态和当前第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,并对当前减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,以将当前减数量子态进行还原。
可选的,所述根据所述被减数量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述被减数量子态执行求补码运算对应的量子态演化,包括:
对所述被减数量子态中的符号位子量子态对应的第一符号位量子比特和所述第三预设辅助比特执行CNOT门操作,其中,所述第一符号位量子比特为控制比特,所述第三预设辅助比特为受控比特;
根据执行CNOT门操作后的所述第三预设辅助比特的量子态,控制当前被减数量子态是否执行求补码运算对应的量子态演化;
若是,则对当前被减数量子态的非符号位子量子态取反,并将取反后的被减数量子态与第四预设辅助比特的量子态态,执行加法运算对应的量子态演化,得到演化后的第一补码量子态,否则,将所述被减数量子态作为第一补码量子态;
对当前第一符号位量子比特和第三预设辅助比特执行CNOT门操作,以将当前第三预设辅助比特的量子态进行还原;其中,所述第一符号位量子比特为控制比特,所述第三预设辅助比特为受控比特。
可选的,所述将所述减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,并根据取反后的符号位子量子态和所述第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,包括:
对所述减数量子态中的符号位子量子态对应的第二符号位量子比特,执行X门操作,得到取反后的符号位子量子态;
对当前第二符号位量子比特和第三预设辅助比特执行CNOT门操作,其中,所述第二符号位量子比特为控制比特,所述第三预设辅助比特为受控比特;
根据执行CNOT门操作后的第三预设辅助比特的当前量子态,控制当前减数量子态是否执行求补码运算对应的量子态演化;
若是,则对当前减数量子态的非符号位子量子态取反,并将取反后的减数量子态与第四预设辅助比特的量子态态,执行加法运算对应的量子态演化,得到演化后的第二补码量子态,否则,将当前减数量子态作为第二补码量子态;
对当前第二符号位量子比特和第三预设辅助比特执行CNOT门操作,以将第三预设辅助比特的当前量子态进行还原;其中,所述第二符号位量子比特为控制比特,所述第三预设辅助比特为受控比特。
可选的,所述执行加法运算对应的量子态演化,包括:
根据待运算的两个量子态对应的量子比特位的位数,确定待级联的前级联模块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模块的进位输出项对应的量子比特作为控制比特,将预设进位辅助比特位作为受控比特位,以生成所述加法器的目标量子线路。
本发明又一实施例提供了一种带精度的量子除法运算装置,所述装置包括:
转换模块,用于获取待运算的被除数数据和除数数据,并将所述被除数数据转换为第一目标量子态,将所述除数数据转换为第二目标量子态;其中,目标量子态包括:表示所述数据符号的符号位子量子态和表示所述数据数值的数值位子量子态;
第一量子态演化模块,用于对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出;其中,每次执行减法运算的被减数为上次执行减法运算的减法结果、减数为所述除数数据;
第二量子态演化模块,用于对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化;其中,该迭代的预设迭代次数与待计算的小数位精度的位数一致,每次迭代后在对应的预设精度位量子比特上得到包含对应精度位的值的量子态;
输出模块,用于将最终获得的预设精度位量子比特上的量子态进行输出,其中,该量子态包含所述商的小数位的二进制值。
本发明还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述步骤方法。
本发明还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述步骤方法。
与现有技术相比,本发明提供的带精度的量子除法运算方法,获取待运算的被除数数据和除数数据,并将被除数数据转换为第一目标量子态,将除数数据转换为第二目标量子态,对第一目标量子态和第二目标量子态,迭代执行减法运算对应的量子态演化,并对减法运算的执行次数进行计数,直至将被除数数据减为负数,将最终获得的计数结果,作为被除数数据与除数数据相除的商的整数位进行输出,对当前第一目标量子态和当前第二目标量子态,迭代执行商的小数位运算对应的量子态演化,将最终获得的预设精度位量子比特上的量子态进行输出,从而实现可以用于量子线路中的基本算术运算操作,填补了相关技术的空白。
附图说明
图1是本发明一实施例提供的带精度的量子除法运算方法的计算机终端硬件结构框图;
图2是本发明一实施例提供的带精度的量子除法运算方法的流程示意图;
图3是本发明一实施例提供的带精度的量子除法运算方法的量子线路示意图;
图4是本发明另一实施例提供的带精度的量子除法运算方法的量子线路示意图;
图5是本发明一实施例提供的求补码运算的量子线路示意图;
图6是本发明一实施例提供的减法器对应的前半部分量子线路示意图;
图7是本发明一实施例提供的减法器对应的后半部分量子线路示意图;
图8是本发明一实施例提供的减法器对应的量子线路示意图;
图9是本发明一实施例提供的加法器示意图;
图10是本发明一实施例提供的加法器量子线路示意图;
图11是本发明一实施例提供的MAJ模块示意图;
图12是本发明一实施例提供的MAJ模块量子线路组合过程示意图;
图13是本发明一实施例提供的UMA模块示意图;
图14是本发明一实施例提供的UMA模块量子线路组合过程示意图。
图15是本发明一实施例提供的带精度的量子除法运算装置的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明的实施例提供了一种带精度的量子除法运算方法及装置,用于在量子线路中实现量子比特的基本算术运算操作,该方法可以应用于电子设备,如移动终端,具体如手机、平板电脑;如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图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门。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。
目前,并没有可以实现一些经典运算例如四则运算功能,示例性的:加、减、乘、除运算量子逻辑门,亟待构造量子线路以实现任一四则运算的功能操作,进而推动量子计算的发展,以及量子应用领域的扩展和落地。
参见图2,图2为本发明实施例提供的一种带精度的量子除法运算方法的流程示意图,可以包括如下步骤:
S201,获取待运算的被除数数据和除数数据,并将所述被除数数据转换为第一目标量子态,将所述除数数据转换为第二目标量子态;其中,所述目标量子态包括:表示所述数据符号的符号位子量子态和表示所述数据数值的数值位子量子态;
具体的,可以利用现有的振幅编码方式,将待运算的十进制数据转换为二进制的量子态表示。例如,被除数数据为7,带符号的二进制表示0111,最高位为0表示正数,1表示负数;除数数据为4,带符号的二进制表示011。需要说明的是,本实施例中,第一目标量子态和第二目标量子态的最高位均为0,即参与运算的被除数和除数均为正数。
可以获取5位量子比特a.sign、a3、a2、a1、a0,将7编码到a.sign、a3、a2、a1、a0的第一目标量子态上,量子态的振幅设为1。其中,/>,称为/>的子量子态,一子量子态对应一量子比特位,且从右至左表示由高位至低位,最高位对应a.sign、第四位对应a3、第三位对应a2、第二位对应a1、最低位对应a0,最高位的/>表示符号位子量子态,其余表示数值位子量子态。为了统一运算维度,另外获取5位量子比特b.sign、b3、b2、b1、b0,将4编码到b.sign、b3、b2、b1、b0的第二目标量子态/>,其振幅同为1。
S202,对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出;其中,每次执行减法运算的被减数为上次执行减法运算的减法结果、减数为所述除数数据;
具体的,该处减法运算的执行次数是指对第一目标量子态和第二目标量子态执行减法运算对应的量子态演化的次数,也就是迭代次数。
在具体实现中,可以对当前第一目标量子态和第二目标量子态,执行减法运算对应的量子态演化,以获得包含减法运算结果的第一目标量子态;
对当前第一预设辅助比特的第三目标量子态和当前第二预设辅助比特的第四目标量子态,执行减法运算对应的量子态演化,以将当前第三目标量子态包含的值加1;其中,第三目标量子态包含的初值、第四目标量子态包含的值均为-1;
测量当前包含减法运算结果的第一目标量子态的符号位子量子态,判断当前包含减法运算结果的第一目标量子态的符号位的值是否为0;
在当前包含减法运算结果的第一目标量子态的符号位的值为0的情况下,返回执行对当前第一目标量子态和当前第二目标量子态,执行减法运算对应的量子态演化的步骤,直至判断出当前包含减法运算结果的第一目标量子态的符号位的值为1。
示例性的,当前第一目标量子态和第二目标量子态为和/>。对和/>执行减法运算对应的量子态演化,以将/>包含的值00111减去包含的值00100,得到包含减法运算结果00011的第一目标量子态/>,第二目标量子态/>不变;
获取4位第一预设辅助比特r.sign、r2、r1、r0,r.sign、r2、r1、r0的当前第三目标量子态为初始态,可设为,即包含的初值为-1,并获取4位第二预设辅助比特d.sign、d2、d1、d0,d.sign、d2、d1、d0的当前第四目标量子态也为/>;
其中,通常初始化量子比特的量子态为,可以通过对相应的量子比特施加量子逻辑门操作比如X门,将/>态取反,得到/>态;
然后,对当前第三目标量子态和当前第四目标量子态/>执行减法运算对应的量子态演化,以将/>包含的值1001减去/>包含的值1001,得到包含减法运算结果0的第三目标量子态/>,第四目标量子态/>不变,实现将原第三目标量子态/>的值-1加1;
通过对第一目标量子态的符号位子量子态对应的量子比特a3施加测量操作,测量当前包含减法运算结果的第一目标量子态的符号位子量子态为/>,即符号位的值为0,返回执行对当前第一目标量子态和当前第二目标量子态,执行减法运算对应的量子态演化的步骤:
此时,当前第一目标量子态为,当前第二目标量子态为/>,继续执行减法运算对应的量子态演化,得到:第一目标量子态/>、第二目标量子态;
当前第三目标量子态,当前第四目标量子态/>,继续执行减法运算对应的量子态演化,得到:第三目标量子态/>、第四目标量子态/>,从而将原第三目标量子态/>的值0继续加1;
测量出当前第一目标量子态的符号位子量子态为/>,即符号位的值为1,表示被除数7经过两次减法被减为负数,则结束迭代。可得,最终的迭代次数为1,第三目标量子态即起到计数的作用。
具体的,可以将最终获得的第三目标量子态进行输出,其中,所述第三目标量子态包含的值为所述被除数数据与所述除数数据相除的商。
继续以上述为例,迭代结束后最终获得的第三目标量子态为,包含的值为0001,作为被除数7与除数4的商的整数位,可以直接输出第三目标量子态/>,也可以进一步将第三目标量子态包含的值转换成十进制值1并输出。
S203,对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化;其中,该迭代的预设迭代次数与待计算的小数位精度的位数一致,每次迭代后在对应的预设精度位量子比特上得到包含对应精度位的值的量子态;
具体的,对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化,可以包括:
S2031,将当前第二目标量子态的符号位子量子态取反,对当前第一目标量子态和符号位取反后的第二目标量子态,执行减法运算对应的量子态演化,以将当前第一目标量子态演化为包含所述被除数数据与所述除数数据相除的余数二进制值的量子态;
S2032,将当前第一目标量子态的各位子量子态均左移一位,将当前第二目标量子态的符号位子量子态再取反,对左移一位后的第一目标量子态和再取反后的第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述左移一位后的第一目标量子态减为负数,在预设中间位量子比特上得到包含计数结果的二进制值的小数位量子态;
S2033,将所述小数位量子态的最后一位子量子态与对应的预设精度位量子比特的初始量子态态进行交换,并输出交换后的预设精度位量子比特上的量子态;
S2034,返回执行所述将当前第二目标量子态的符号位子量子态取反,对当前第一目标量子态和符号位取反后的第二目标量子态,执行减法运算对应的量子态演化的步骤,直至达到所述迭代执行所述商的小数位运算对应的量子态演化所需的预设迭代次数,其中,所述预设迭代次数与待计算的小数位精度的位数一致。
示例性的,当前第一目标量子态、第二目标量子态/>、第三目标量子态/>、第四目标量子态/>,商的小数位保留3位精度。
第一次迭代:步骤1:对第二目标量子态的符号位子量子态取反,取反后的第二目标量子态为/>,对当前第一目标量子态/>和取反后的第二目标量子态,执行减法运算对应的量子态演化,演化后的第一目标量子态成为/>、第二目标量子态为/>;实际上,/>包含的二进制值00011(十进制值3),即为被除数7与除数4相除的余数。
步骤2:将第一目标量子态整体左移一位为/>,对第二目标量子态/>的符号位再取反以还原为/>,然后对/>和/>迭代执行减法运算对应的量子态演化,并对此处的迭代次数进行计数,直至将/>减为负数,将计数结果保存到预设中间位量子比特cc.sign、cc2、cc1、cc0的小数位量子态上,最后得到:第一目标量子态/>、第二目标量子态/>、小数位量子态/>;
需要说明的是,其原理与上述对第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数的实现原理相同,实际上即是对和/>做除法运算。
步骤3:将小数位量子态的最后一位子量子态/>,与对应的预设精度位量子比特f2的初始量子态/>,利用SWAP门进行交换,输出交换后的f2的量子态/>,小数位量子态变为/>;其中,预设精度位量子比特可设3位为f2、f1、f0,第一次迭代中,小数位量子态的最后一位子量子态输出到f2上,第二次迭代输出到f1上,第三次迭代输出到f0上。
第二次迭代:当前第一目标量子态、当前第二目标量子态/>、当前小数位量子态/>,返回执行步骤1-步骤3,将小数位量子态的最后一位子量子态与f1的初始量子态/>交换,输出交换后的f1的量子态,最终得到:当前第一目标量子态、当前第二目标量子态/>、f2的量子态/>、小数位量子态/>。
第三次迭代:当前第一目标量子态、当前第二目标量子态/>、当前小数位量子态/>,返回执行步骤1-步骤3,将小数位量子态的最后一位子量子态与f0的初始量子态/>交换,输出交换后的f0的量子态,最终得到:当前第一目标量子态、当前第二目标量子态/>、f0的量子态/>、小数位量子态/>。
示例性的,图3为一种执行带精度的量子除法运算的量子线路示意图。如图3所示,t为存储测量结果的经典比特位,a.sign、a为编码被除数数据的符号、数值的量子比特位,对应第一目标量子态;
b.sign、b为编码除数数据的符号、数值的量子比特位,对应第二目标量子态;
r.sign、r、r[0]组成第一预设辅助比特,r.sign为编码商的符号的量子比特位,r、r[0]为编码商的数值的量子比特位,r[0]为最低位;
d.sign、d、d[0]组成第二预设辅助比特,d.sign编码符号位,d编码数值位,其中,d[0]为最低位;第二预设辅助比特对应初态为0态的第四目标量子态,通过X门将d.sign对应的符号位子量子态和d[0]对应的数值位子量子态取反,以得到包含值为-1的第四目标量子态,用于在减法器中的加1操作,起到计数的作用;
kk为线路上半部分的减法器模块所需的辅助量子比特,共n+3位,k为线路下半部分的减法器模块所需的辅助量子比特,共n+2位,该n+2位共用了kk中的前(n+2)位辅助量子比特,图中区别显示,实际上kk包含k;f[cnt-1]、f[i]、f[0]表示预设精度位量子比特;
减法器模块为执行减法运算对应的量子态演化的功能模块,X表示量子逻辑门X门,Qwhile表示量子迭代操作,量子线路的执行时序为从第一层依次到第五层:
第一层:Qwhile内的测量操作用于测量a.sign的值并存储到经典比特位t上,当t<1时,执行Qwhile内的迭代操作,并执行sum++,将sum值存储到对应经典比特上(sum初值为0),直至t到达1时结束迭代;
第二层:第二层的迭代次数为cnt次,cnt为所需的商的小数精度位,在第二层每次迭代中,该层Qwhile也要进行相应的迭代,t=0模块表示将t置为0;cc.sign、cc、cc[0]表示预设中间位量子比特,其中,cc.sign表示符号位;该层Qwhile内的测量操作用于测量a.sign的值并存储到经典比特位t上,当t<1时,执行Qwhile内的迭代操作,并执行s[i]++,将s[i]值存储到对应经典比特上(s[i]初值为0,i=0,1,2……表示第二层的第i次迭代),直至t到达1时结束Qwhile内的迭代;第二层右下方一实竖线与两虚竖线图标表示量子逻辑门SWAP门;
第三层:第三层的迭代次数为cnt次,当s[cnt-i-1]>0时,执行该层Qwhile内的减法器迭代操作,并执行,直至s[cnt-i-1]小于等于0时结束Qwhile内的迭代;逆左移一位操作为左移一位的逆操作;
第四层:当sum>0时,执行该层Qwhile内的减法器迭代操作,并执行,直至sum小于等于0时结束Qwhile内的迭代;第四层左下方的两个X门用于对d.sign、d[0]的量子态进行再次取反,实现还原为初始态。
进一步的,经过第三层和第四层操作,可以对s[i]、sum还原为初值0,对a.sign、a、b.sign、b、d.sign、d[0]还原为初始态,r上得到商的整数位,f上得到商的预设精度小数位,辅助量子比特的量子态会被还原,从而可被重复利用。
S204,将最终获得的预设精度位量子比特上的量子态进行输出,其中,该量子态包含所述商的小数位的二进制值。
继续以上述为例,经过三次迭代,最终得到的3位预设精度位量子比特f2、f1、f0的量子态为,即商的小数位二进制值为110(十进制0.75)。前述计算得到商的整数位二进制值为0001(十进制1),可得最终被除数7与除数4的商为1.75。
在实际应用中,对于被除数和/或除数存在负数的情况,还可以获取预设符号位量子比特,对第一目标量子态的符号位子量子态对应的量子比特、第二目标量子态的符号位子量子态对应的量子比特、第一预设辅助比特和所述预设符号位量子比特,执行预设量子逻辑门操作,以最终获得第三目标量子态中符号位子量子态表示的符号值。
示例性的,图4为一种支持符号位运算的带精度的量子除法运算的量子线路示意图。其中,带精度的正数除法器即为图3所示的量子线路,增设符号位量子比特u[0]、u[1];相连有竖线的圆圈图标表示量子逻辑门CNOT门,大圆所处的时间线对应的量子比特为受控比特,实心点所处的时间线对应的量子比特为控制比特;经典比特共cnt+2位,包括图3中:1位sum、cnt位s[i]、1位t;v为辅助量子比特共3n+3位,包括图3中:n+3位kk、n位d.sign和d、n位cc.sign和cc。
通过对 u[0]、u[1]、a.sign、b.sign、r.sign施加一系列如图4所示的CNOT门,最终可在r.sign上获得包含商的符号值的符号位子量子态。
下面详细说明执行减法运算对应的量子态演化的具体实现方式。
具体的,可通过减法器执行减法运算对应的量子态演化,可以包括:
S301,对于待运算的两个量子态,分别作为包含被减数据的被减数量子态和包含减数数据的减数量子态,获取第三预设辅助比特的量子态,根据所述被减数量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述被减数量子态执行求补码运算对应的量子态演化,得到第一补码量子态;其中,所述第一补码量子态为包含所述被减数数据的补码的量子态;
由前述实施例可知,待运算的两个量子态有以下组:第一目标量子态和第二目标量子态;第三目标量子态和第四目标量子态;第一目标量子态和符号位取反后的第二目标量子态。其中,前者可称被减数量子态,包含的数据在减法运算中为被减数,后者可称减数量子态,包含的数据为减数。
本实施例中,主要用于实现减法器功能,减法器和下述加法器最大的区别就是会产生负数的情况,因此,采用二进制的处理方式,对减数和被减数都加一个符号位,来表示数值的正负,并且使用补码来进行运算。正数补码不变,负数除符号位外按位取反后,再加1。对应到量子线路中,即用符号位控制是否做补码操作,取反用X门,加1可通过加法器实现。在补码情况下运算完成后,再将结果做一次补码运算就得到了目标数值。获取待运算的被减数数据和减数数据,并将所述被减数数据以及所述减数数据分别转换为第一目标量子态和第二目标量子态。其中,目标量子态包括:表示所述数据符号的符号位子量子态和表示所述数据数值的数值位子量子态。
具体的,根据被减数量子态中的符号位子量子态和第三预设辅助比特的量子态,控制被减数量子态执行求补码运算对应的量子态演化,可以对被减数量子态中的符号位子量子态对应的第一符号位量子比特和第三预设辅助比特执行CNOT门操作,其中,第一符号位量子比特为控制比特,第三预设辅助比特为受控比特;并且,CNOT门可以用等效的其他现有的量子逻辑门或量子逻辑门组合进行替代,也是合理可行的;
根据执行CNOT门操作后的第三预设辅助比特的量子态,控制当前被减数量子态是否执行求补码运算对应的量子态演化;
若是,则对当前被减数量子态的非符号位子量子态取反,并将取反后的被减数量子态与第四预设辅助比特的量子态态,执行加法运算对应的量子态演化,得到演化后的第一补码量子态,否则,将所述被减数量子态作为第一补码量子态;其中,执行CNOT门操作后的第三预设辅助比特的量子态可以为/>态时,才控制执行求补码运算对应的量子态演化,否则不执行;
对当前第一符号位量子比特和第三预设辅助比特执行CNOT门操作,以将当前第三预设辅助比特的量子态进行还原;其中,所述第一符号位量子比特为控制比特,所述第三预设辅助比特为受控比特。
示例性的,被减数量子态假设为。/>的符号位子量子态为最高位的子量子态即/>态,该位的值为0,对应的第一符号位量子比特设为g.sign,第三预设辅助比特为预设的量子比特q1,初始为/>态。
对g.sign和q1执行CNOT门操作,g.sign作为控制比特,q1作为受控比特,g.sign位的量子态为态,经过CNOT门操作后,受控比特位q1的量子态/>不变。
由于执行CNOT门操作后的q1的量子态为态,故不对被减数量子态执行求补码运算对应的量子态演化。原理上在于,被减数为正数时,在减法运算中无需求补码,或者说,其补码即为本身,可直接将/>作为第一补码量子态。
最后,可以对当前g.sign和q1再次执行CNOT门,g.sign位的量子态为态,经过CNOT门操作后,受控比特位q1的量子态/>不变,以还原q1为/>态,从而释放第三辅助比特存储的信息。可得,第一补码量子态包含的值0011为被减数0011的补码。
如图5所示,q1为第三预设辅助比特,用于控制是否做补码操作,所述第一目标量子态为g,g.sign为所述第一目标量子态中的符号位子量子态,剩余的g为表示所述数据数值的数值位子量子态,j为第四预设辅助比特,即被设置成值为1的辅助比特,p为加法器所使用的辅助比特(下述第五预设辅助比特)。与图3对应的是,上述k为n+2位,即包括:n位j、1位p、1位q1。
图5所示的量子线路实现了对g做求补码的操作的量子线路,先对g.sign与q1进行CNOT门操作,使得q1暂时表示g.sign,并用q1控制是否进行求补码,求完补码后,再将q1还原。由此,控制被减数量子态执行求补码运算对应的量子态演化,得到第一补码量子态。
具体地,根据g的符号位子量子态,用第一预设辅助比特q1来控制是否做取补码的操作。若g为负数,则进行负数的取补码操作。负数的补码为除符号位外按位取反后加1,除符号位外按位取反的操作用逻辑门来实现的话,只需要对数值位全都做X门即可,取反后还需要加1,因此,通过使用j和g相加,j的值被设置为了1,p为加法器的辅助比特,在将数值位取反后的g和j相加后,g上存放的就是取完补码后的数值,再将q1还原,以便下次使用。
例子:当g为负数时,g.sign为1,因此q1也为1,就需要做取反等操作,而当g为正数时,g.sign为0,因此q1也为0,就不需要再求补码了。
S302,将所述减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,并根据取反后的符号位子量子态和所述第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,得到第二补码量子态;其中,所述第二补码量子态为包含所述减数数据的补码的量子态;
具体的,可以对减数量子态中的符号位子量子态对应的第二符号位量子比特,执行X门操作,得到取反后的符号位子量子态;其中,X门可以用等效的其他现有的量子逻辑门或量子逻辑门组合进行替代,也是合理可行的;
同样的,继续对当前第二符号位量子比特和第三预设辅助比特执行CNOT门操作,其中,所述第二符号位量子比特为控制比特,所述第三预设辅助比特为受控比特;
根据执行CNOT门操作后的第三预设辅助比特的当前量子态,控制当前减数量子态是否执行求补码运算对应的量子态演化;
若是,则对当前减数量子态的非符号位子量子态取反,并将取反后的减数量子态与第四预设辅助比特的量子态态,执行加法运算对应的量子态演化,得到演化后的第二补码量子态,否则,将当前减数量子态作为第二补码量子态;
对当前第二符号位量子比特和第三预设辅助比特执行CNOT门操作,以将第三预设辅助比特的当前量子态进行还原;其中,所述第二符号位量子比特为控制比特,所述第三预设辅助比特为受控比特。
示例性的,减数量子态假设为。/>的符号位子量子态为最高位的子量子态即/>态,该位的值为0,对应的第二符号位量子比特设为h.sign,当前第三辅助比特被还原为/>态。
首先,可以对h.sign执行X门,将对应的符号位子量子态取反为/>,减数量子态变为/>。
继续对h.sign和q1执行CNOT门操作,h.sign作为控制比特,q1作为受控比特,当前h.sign位的量子态为态,经过CNOT门操作后,受控比特位q1的量子态/>被取反为/>态。
执行CNOT门操作后的q1的量子态为态,故对当前减数量子态/>执行求补码运算对应的量子态演化。一种执行求补码运算对应的量子态演化的实现如下:
对当前减数量子态的非符号位子量子态取反,并将取反后的减数量子态与第四预设辅助比特的量子态/>态,执行加法运算对应的量子态演化,得到演化后的第二补码量子态为/>。
其中,可通过执行X门对的非符号位子量子态/>取反;为了保持维度一致,第四预设辅助比特为预设的4位量子比特j3、j2、j1、j0,第四预设辅助比特的量子态实际上写为/>,两者是等同的。
最后,可对当前h.sign和q1再次执行CNOT门,h.sign位的量子态为态,经过CNOT门操作后,受控比特位q1的量子态/>被取反为/>,从而再次还原q1为初始/>态,释放q1的存储空间。可得,第二补码量子态包含的值1100为对h.sign执行X门后的减数1100的补码。
本实施例中,所述第二目标量子态h也是同理,初始对j[0]做X门是为了设置值为1,对第二目标量子态中的符号位子量子态h.sign做X门是为了把减法变成加法。如图6所示,图6为对g、h执行求补码运算对应的量子态演化的量子线路示意图,参考上述同理方法将第二目标量子态h执行求补码运算对应的量子态演化,得到第二补码量子态。
S303,对所述第一补码量子态和所述第二补码量子态,执行加法运算对应的量子态演化,以将所述第一补码量子态演化为包含所述被减数数据的补码与所述减数数据的补码之和的第五目标量子态;
示例性的,对第一补码量子态为和第二补码量子态为/>,执行加法运算对应的量子态演化,将第一补码量子态/>演化为第五目标量子态/>。
本实施例中,在求完补码后,将g和h进行加法操作,加完后,再将之前的操作进行还原,g内储存的即为所求。将所述第一补码量子态和所述第二补码量子态代入加法器的量子线路,执行加法运算对应的量子态演化,由此,将所述第一补码量子态演化为包含所述被减数数据的补码与所述减数数据的补码之和的第三目标量子态。
S304,根据所述第五目标量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述第五目标量子态执行求补码运算对应的量子态演化,得到演化后的第六目标量子态,作为所述被减数数据和所述减数数据的减法运算结果进行输出;其中,所述第六目标量子态为包含所述补码之和的补码的量子态;
示例性的,根据当前第五目标量子态中的符号位子量子态/>和当前第三预设辅助比特的量子态/>,控制第五目标量子态/>执行求补码运算对应的量子态演化,得到演化后的第六目标量子态/>,其包含的值为1001(十进制-1),即为被减数量子态/>包含的被减数0011(十进制3)与减数量子态/>包含的减数0100(十进制4)的减法结果。
需要说明的是,执行求补码运算对应的量子态演化可与前述同理,演化后,第三预设辅助比特的量子态仍被还原为,以便于后续计算使用。
S305,根据当前减数量子态中的符号位子量子态和当前第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,并对当前减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,以将当前减数量子态进行还原。
示例性的,当前减数量子态为第二补码量子态,当前第三预设辅助比特的量子态为/>。继续按前述同理的方式,控制/>执行求补码运算对应的量子态演化,得到演化后的/>,然后通过X门操作对其符号位子量子态取反,将其还原成初始的减数量子态/>。
本实施例中,进行加法运算后,进一步对所述被减数数据的补码与所述减数数据的补码之和的第三目标量子态执行求补码运算对应的量子态演化。如图7所示,首先,对j[0]做一个X门的目的是将j[0]的值设置为1,方便求补码中的+1运算。而对h的符号位做X门的操作的原因,则是为了将g-h转换为g+(-h)。然后,我们将g和h都做好补码的处理,处理完成后,再将g和h的补码进行相加,得到结果后,再将g和h做一次求补码的操作,将其还原为正常的数值,最后再对初始操作进行还原,也就是对辅助比特进行还原,做2个X门即可。由此组成了如图8所示的整个减法器的量子线路图,是一种功能上的简易示例。
下面详细说明执行加法运算对应的量子态演化的具体实现方式。
具体的,可以通过加法器执行加法运算对应的量子态演化,可以包括:
S401,根据待运算的两个量子态对应的量子比特位的位数,确定待级联的前级联模块MAJ模块以及待级联的后级联模块UMA模块的目标模块个数,其中,所述MAJ模块的模块个数与所述UMA模块的模块个数相同;
由前述可知,待运算的两个量子态,可以是:第一补码量子态和第二补码量子态;取反后的被减数量子态和第四预设辅助比特的量子态态。
示例性的,如图9所示,线路中第一个量子比特位为第五预设辅助比特位,初始为态,最终会恢复为/>态,e和f是待相加的数据对应的量子态,各对应一组量子比特位。c表示最终的进位项,对应预设进位辅助比特位,s为是不包含进位的输出位。一般要求e和f对应的量子比特位数相同,s和e、f的位数相同。
示例性的,如图10所示,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。
S402, 根据加法指令,将所述目标模块个数的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门以及进位辅助比特位。
本实施例中,如图10所示,根据图示方式,将所述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模块构成了加法器的前、后级联单元。如图11所示,MAJ模块用于提取出每一级加法运算后的进位项并且传递到下一级,从而将最终进位项计算出来。其中,如图12所示,MAJ模块主要可以由三个逻辑门组成,分别是两个CNOT门和一个Toffoli门。CNOT门(图12中的由左向右的第一个、第二个逻辑门)的作用为:将控制位加到目标位上去,形成一个模2加法,即为异或操作,得到(ei+ci)%2、(ei+fi)%2,两个CNOT门的顺序可以交换。Toffoli门(图12中的由左向右的第三个逻辑门)的作用为:将两个控制位都加到目标位上去,得到进位项c[i+1]= (e[i]AND f[i]) XOR (e[i]AND f[i]) XOR (e[i]AND f[i])。即通过图12中的由左向右的第一个CNOT门实现,通过图12中的由左向右的第二个CNOT门实现/>,通过图12中的由左向右的第三个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。
如图13所示,UMA模块用于级联加法器的后级,UMA模块的实现方式和MAJ模块类似,如图14所示,首先使用Toffoli门(图14中的由左向右的第一个逻辑门)将ci+1还原为ei,再用ei对(e+c)%2用CNOT门(图14中的由左向右的第二个逻辑门)做一次还原,将(ei+ci)%2还原为ci,最后,再使用ci对(ei+fi)%2做一次CNOT门(图14中的由左向右的第三个逻辑门),得到当前位的最终结果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。
如图10中由上向下的最后一个CNOT门,即整个加法器MAJ模块和UMA模块中间的CNOT门,用于保存ci+1的结果。
S403,通过所述目标量子线路对所述待运算的两个量子态的各子量子态进行加法运算,生成目标量子态结果并输出。
本实施例中,通过将待运算的两个量子态,如|111>和|111>,输入加法器(即所述目标量子线路)中,得到对应的二进制表示目标量子态计算结果(包括进位项以及各子量子态直接相加得到的结果项)。然后将二进制表示的目标量子态结果|1110>直接输出,或进一步转化为十进制结果14并输出,完成两目标数据的加法运算。
可见,通过获取待运算的被除数数据和除数数据,并将被除数数据转换为第一目标量子态,将除数数据转换为第二目标量子态,对第一目标量子态和第二目标量子态,迭代执行减法运算对应的量子态演化,并对减法运算的执行次数进行计数,直至将被除数数据减为负数,将最终获得的计数结果,作为被除数数据与除数数据相除的商的整数位进行输出,对当前第一目标量子态和当前第二目标量子态,迭代执行商的小数位运算对应的量子态演化,将最终获得的预设精度位量子比特上的量子态进行输出,从而实现可以用于量子线路中的基本算术运算操作,填补了相关技术的空白。
参见图15,图15是本发明一实施例提供的带精度的量子除法运算装置的结构示意图,可以包括:
转换模块1501,用于获取待运算的被除数数据和除数数据,并将所述被除数数据转换为第一目标量子态,将所述除数数据转换为第二目标量子态;其中,目标量子态包括:表示所述数据符号的符号位子量子态和表示所述数据数值的数值位子量子态;
第一量子态演化模块1502,用于对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出;其中,每次执行减法运算的被减数为上次执行减法运算的减法结果、减数为所述除数数据;
第二量子态演化模块1503,用于对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化;其中,该迭代的预设迭代次数与待计算的小数位精度的位数一致,每次迭代后在对应的预设精度位量子比特上得到包含对应精度位的值的量子态;
输出模块1504,用于将最终获得的预设精度位量子比特上的量子态进行输出,其中,该量子态包含所述商的小数位的二进制值。
具体的,所述第一量子态演化模块,具体用于:
对当前第一目标量子态和所述第二目标量子态,执行减法运算对应的量子态演化,以获得包含减法运算结果的第一目标量子态;
对当前第一预设辅助比特的第三目标量子态和当前第二预设辅助比特的第四目标量子态,执行减法运算对应的量子态演化,以将当前第三目标量子态包含的值加1;其中,所述第三目标量子态包含的初值、所述第四目标量子态包含的值均为-1;
测量当前包含减法运算结果的第一目标量子态的符号位子量子态,判断当前包含减法运算结果的第一目标量子态的符号位的值是否为0;
在当前包含减法运算结果的第一目标量子态的符号位的值为0的情况下,返回执行所述对当前第一目标量子态和当前第二目标量子态,执行减法运算对应的量子态演化的步骤,直至判断出当前包含减法运算结果的第一目标量子态的符号位的值为1。
具体的,所述输出模块,具体用于:
将最终获得的第三目标量子态进行输出,其中,所述第三目标量子态包含的值为所述被除数数据与所述除数数据相除的商的整数位二进制值。
具体的,所述第二量子态演化模块,具体用于:
将当前第二目标量子态的符号位子量子态取反,对当前第一目标量子态和符号位取反后的第二目标量子态,执行减法运算对应的量子态演化,以将当前第一目标量子态演化为包含所述被除数数据与所述除数数据相除的余数二进制值的量子态;
将当前第一目标量子态的各位子量子态均左移一位,将当前第二目标量子态的符号位子量子态再取反,对左移一位后的第一目标量子态和再取反后的第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述左移一位后的第一目标量子态减为负数,在预设中间位量子比特上得到包含计数结果的二进制值的小数位量子态;
将所述小数位量子态的最后一位子量子态与对应的预设精度位量子比特的初始量子态态进行交换,并输出交换后的预设精度位量子比特上的量子态;
返回执行所述将当前第二目标量子态的符号位子量子态取反,对当前第一目标量子态和符号位取反后的第二目标量子态,执行减法运算对应的量子态演化的步骤,直至达到所述迭代执行所述商的小数位运算对应的量子态演化所需的预设迭代次数,其中,所述预设迭代次数与待计算的小数位精度的位数一致。
具体的,所述装置还包括:
执行模块,用于获取预设符号位量子比特,对所述第一目标量子态的符号位子量子态对应的量子比特、所述第二目标量子态的符号位子量子态对应的量子比特、所述第一预设辅助比特和所述预设符号位量子比特,执行预设量子逻辑门操作,以最终获得所述第三目标量子态中符号位子量子态表示的符号值。
具体的,所述运算模块,包括:
第一补码运算单元,用于对于待运算的两个量子态,分别作为包含被减数据的被减数量子态和包含减数数据的减数量子态,获取第三预设辅助比特的量子态,根据所述被减数量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述被减数量子态执行求补码运算对应的量子态演化,得到第一补码量子态;其中,所述第一补码量子态为包含所述被减数数据的补码的量子态;
第二补码运算单元,用于将所述减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,并根据取反后的符号位子量子态和所述第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,得到第二补码量子态;其中,所述第二补码量子态为包含所述减数数据的补码的量子态;
加法运算单元,用于对所述第一补码量子态和所述第二补码量子态,执行加法运算对应的量子态演化,以将所述第一补码量子态演化为包含所述被减数数据的补码与所述减数数据的补码之和的第五目标量子态;
第三补码运算单元,用于根据所述第五目标量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述第五目标量子态执行求补码运算对应的量子态演化,得到演化后的第六目标量子态,作为所述被减数数据和所述减数数据的减法运算结果进行输出;其中,所述第六目标量子态为包含所述补码之和的补码的量子态;
第四补码运算单元,用于根据当前减数量子态中的符号位子量子态和当前第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,并对当前减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,以将当前减数量子态进行还原。
具体的,所述第一补码运算单元,具体用于:
对所述被减数量子态中的符号位子量子态对应的第一符号位量子比特和所述第三预设辅助比特执行CNOT门操作,其中,所述第一符号位量子比特为控制比特,所述第三预设辅助比特为受控比特;
根据执行CNOT门操作后的所述第三预设辅助比特的量子态,控制当前被减数量子态是否执行求补码运算对应的量子态演化;
若是,则对当前被减数量子态的非符号位子量子态取反,并将取反后的被减数量子态与第四预设辅助比特的量子态态,执行加法运算对应的量子态演化,得到演化后的第一补码量子态,否则,将所述被减数量子态作为第一补码量子态;
对当前第一符号位量子比特和第三预设辅助比特执行CNOT门操作,以将当前第三预设辅助比特的量子态进行还原;其中,所述第一符号位量子比特为控制比特,所述第三预设辅助比特为受控比特。
具体的,所述第二补码运算单元,具体用于:
对所述减数量子态中的符号位子量子态对应的第二符号位量子比特,执行X门操作,得到取反后的符号位子量子态;
对当前第二符号位量子比特和第三预设辅助比特执行CNOT门操作,其中,所述第二符号位量子比特为控制比特,所述第三预设辅助比特为受控比特;
根据执行CNOT门操作后的第三预设辅助比特的当前量子态,控制当前减数量子态是否执行求补码运算对应的量子态演化;
若是,则对当前减数量子态的非符号位子量子态取反,并将取反后的减数量子态与第四预设辅助比特的量子态态,执行加法运算对应的量子态演化,得到演化后的第二补码量子态,否则,将当前减数量子态作为第二补码量子态;
对当前第二符号位量子比特和第三预设辅助比特执行CNOT门操作,以将第三预设辅助比特的当前量子态进行还原;其中,所述第二符号位量子比特为控制比特,所述第三预设辅助比特为受控比特。
具体的,所述加法运算单元,包括:
确定子单元,用于根据待运算的两个量子态对应的量子比特位的位数,确定待级联的前级联模块MAJ模块以及待级联的后级联模块UMA模块的目标模块个数,其中,所述MAJ模块的模块个数与所述UMA模块的模块个数相同;
级联子单元,用于根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成加法器对应的目标量子线路;
运算子单元,用于通过所述目标量子线路对所述待运算的两个量子态的各子量子态进行加法运算,生成目标量子态结果并输出。
具体的,所述MAJ模块为MAJ量子线路,所述UMA模块为UMA量子线路,所述MAJ量子线路和所述UMA量子线路均包括两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门,
所述加法运算单元,还包括:
获取子单元,用于获取所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门对应的操作量子比特、操作量子比特之间的控制关系以及所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门之间的时序关系;
构建子单元,用于根据所述操作量子比特、所述控制关系以及所述时序关系,将所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门构建生成所述MAJ量子线路或所述UMA量子线路,作为对应的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模块的进位输出项对应的量子比特作为控制比特,将预设进位辅助比特位作为受控比特位,以生成所述加法器的目标量子线路。
可见,本发明通过获取待运算的被除数数据和除数数据,并将被除数数据转换为第一目标量子态,将除数数据转换为第二目标量子态,对第一目标量子态和第二目标量子态,迭代执行减法运算对应的量子态演化,并对减法运算的执行次数进行计数,直至将被除数数据减为负数,将最终获得的计数结果,作为被除数数据与除数数据相除的商的整数位进行输出,对当前第一目标量子态和当前第二目标量子态,迭代执行商的小数位运算对应的量子态演化,将最终获得的预设精度位量子比特上的量子态进行输出,从而实现可以用于量子线路中的基本算术运算操作,填补了相关技术的空白。
本发明的再一实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如下所述的方法:
S1,获取待运算的被除数数据和除数数据,并将所述被除数数据转换为第一目标量子态,将所述除数数据转换为第二目标量子态;其中,所述目标量子态包括:表示所述数据符号的符号位子量子态和表示所述数据数值的数值位子量子态;
S2,对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出;其中,每次执行减法运算的被减数为上次执行减法运算的减法结果、减数为所述除数数据;
S3,对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化;其中,该迭代的预设迭代次数与待计算的小数位精度的位数一致,每次迭代后在对应的预设精度位量子比特上得到包含对应精度位的值的量子态;
S4,将最终获得的预设精度位量子比特上的量子态进行输出,其中,该量子态包含所述商的小数位的二进制值。
本发明的再一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行如下所述的方法:
S1,获取待运算的被除数数据和除数数据,并将所述被除数数据转换为第一目标量子态,将所述除数数据转换为第二目标量子态;其中,所述目标量子态包括:表示所述数据符号的符号位子量子态和表示所述数据数值的数值位子量子态;
S2,对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出;其中,每次执行减法运算的被减数为上次执行减法运算的减法结果、减数为所述除数数据;
S3,对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化;其中,该迭代的预设迭代次数与待计算的小数位精度的位数一致,每次迭代后在对应的预设精度位量子比特上得到包含对应精度位的值的量子态;
S4,将最终获得的预设精度位量子比特上的量子态进行输出,其中,该量子态包含所述商的小数位的二进制值。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (15)
1.一种带精度的量子除法运算方法,其特征在于,所述方法包括:
获取待运算的被除数数据和除数数据,并将所述被除数数据转换为第一目标量子态,将所述除数数据转换为第二目标量子态;其中,目标量子态包括:表示所述数据符号的符号位子量子态和表示所述数据数值的数值位子量子态;
对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出;其中,每次执行减法运算的被减数为上次执行减法运算的减法结果、减数为所述除数数据;
对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化直至达到预设迭代次数;其中,该迭代的预设迭代次数与待计算的小数位精度的位数一致,每次迭代后在对应的预设精度位量子比特上得到包含对应精度位的值的量子态;
将最终获得的预设精度位量子比特上的量子态进行输出,其中,该量子态包含所述商的小数位的二进制值。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,包括:
对当前第一目标量子态和所述第二目标量子态,执行减法运算对应的量子态演化,以获得包含减法运算结果的第一目标量子态;
对当前第一预设辅助比特的第三目标量子态和当前第二预设辅助比特的第四目标量子态,执行减法运算对应的量子态演化,以将当前第三目标量子态包含的值加1;其中,第一预设辅助比特是编码商的量子比特;第二预设辅助比特是编码计数结果的量子比特,所述第三目标量子态包含的初值、所述第四目标量子态包含的值均为-1;
测量当前包含减法运算结果的第一目标量子态的符号位子量子态,判断当前包含减法运算结果的第一目标量子态的符号位的值是否为0;
在当前包含减法运算结果的第一目标量子态的符号位的值为0的情况下,返回执行所述对当前第一目标量子态和当前第二目标量子态,执行减法运算对应的量子态演化的步骤,直至判断出当前包含减法运算结果的第一目标量子态的符号位的值为1。
3.根据权利要求2所述的方法,其特征在于,所述将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出,包括:
将最终获得的第三目标量子态进行输出,其中,所述第三目标量子态包含的值为所述被除数数据与所述除数数据相除的商的整数位二进制值。
4.根据权利要求3所述的方法,其特征在于,所述对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化,包括:
将当前第二目标量子态的符号位子量子态取反,对当前第一目标量子态和符号位取反后的第二目标量子态,执行减法运算对应的量子态演化,以将当前第一目标量子态演化为包含所述被除数数据与所述除数数据相除的余数二进制值的量子态;
将当前第一目标量子态的各位子量子态均左移一位,将当前第二目标量子态的符号位子量子态再取反,对左移一位后的第一目标量子态和再取反后的第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述左移一位后的第一目标量子态减为负数,在预设中间位量子比特上得到包含计数结果的二进制值的小数位量子态;
将所述小数位量子态的最后一位子量子态与对应的预设精度位量子比特的初始量子态态进行交换,并输出交换后的预设精度位量子比特上的量子态;
返回执行所述将当前第二目标量子态的符号位子量子态取反,对当前第一目标量子态和符号位取反后的第二目标量子态,执行减法运算对应的量子态演化的步骤,直至达到所述迭代执行所述商的小数位运算对应的量子态演化所需的预设迭代次数,其中,所述预设迭代次数与待计算的小数位精度的位数一致。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取预设符号位量子比特,对所述第一目标量子态的符号位子量子态对应的量子比特、所述第二目标量子态的符号位子量子态对应的量子比特、所述第一预设辅助比特和所述预设符号位量子比特,执行预设量子逻辑门操作,以最终获得所述第三目标量子态中符号位子量子态表示的符号值。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述执行减法运算对应的量子态演化,包括:
对于待运算的两个量子态,分别作为包含被减数据的被减数量子态和包含减数数据的减数量子态,获取第三预设辅助比特的量子态,根据所述被减数量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述被减数量子态执行求补码运算对应的量子态演化,得到第一补码量子态;其中,所述第一补码量子态为包含所述被减数数据的补码的量子态,第三预设辅助比特用于控制是否做补码操作;
将所述减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,并根据取反后的符号位子量子态和所述第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,得到第二补码量子态;其中,所述第二补码量子态为包含所述减数数据的补码的量子态;
对所述第一补码量子态和所述第二补码量子态,执行加法运算对应的量子态演化,以将所述第一补码量子态演化为包含所述被减数数据的补码与所述减数数据的补码之和的第五目标量子态;
根据所述第五目标量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述第五目标量子态执行求补码运算对应的量子态演化,得到演化后的第六目标量子态,作为所述被减数数据和所述减数数据的减法运算结果进行输出;其中,所述第六目标量子态为包含所述补码之和的补码的量子态;
根据当前减数量子态中的符号位子量子态和当前第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,并对当前减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,以将当前减数量子态进行还原。
7.根据权利要求6所述的方法,其特征在于,所述根据所述被减数量子态中的符号位子量子态和所述第三预设辅助比特的量子态,控制所述被减数量子态执行求补码运算对应的量子态演化,包括:
对所述被减数量子态中的符号位子量子态对应的第一符号位量子比特和所述第三预设辅助比特执行CNOT门操作,其中,所述第一符号位量子比特为控制比特,所述第三预设辅助比特为受控比特;
根据执行CNOT门操作后的所述第三预设辅助比特的量子态,控制当前被减数量子态是否执行求补码运算对应的量子态演化;
若是,则对当前被减数量子态的非符号位子量子态取反,并将取反后的被减数量子态与第四预设辅助比特的量子态态,执行加法运算对应的量子态演化,得到演化后的第一补码量子态,否则,将所述被减数量子态作为第一补码量子态;
对当前第一符号位量子比特和第三预设辅助比特执行CNOT门操作,以将当前第三预设辅助比特的量子态进行还原;其中,所述第一符号位量子比特为控制比特,所述第三预设辅助比特为受控比特。
8.根据权利要求6所述的方法,其特征在于,所述将所述减数量子态中的符号位子量子态执行符号位取反对应的量子态演化,并根据取反后的符号位子量子态和所述第三预设辅助比特的量子态,控制当前减数量子态执行求补码运算对应的量子态演化,包括:
对所述减数量子态中的符号位子量子态对应的第二符号位量子比特,执行X门操作,得到取反后的符号位子量子态;
对当前第二符号位量子比特和第三预设辅助比特执行CNOT门操作,其中,所述第二符号位量子比特为控制比特,所述第三预设辅助比特为受控比特;
根据执行CNOT门操作后的第三预设辅助比特的当前量子态,控制当前减数量子态是否执行求补码运算对应的量子态演化;
若是,则对当前减数量子态的非符号位子量子态取反,并将取反后的减数量子态与第四预设辅助比特的量子态态,执行加法运算对应的量子态演化,得到演化后的第二补码量子态,否则,将当前减数量子态作为第二补码量子态;
对当前第二符号位量子比特和第三预设辅助比特执行CNOT门操作,以将第三预设辅助比特的当前量子态进行还原;其中,所述第二符号位量子比特为控制比特,所述第三预设辅助比特为受控比特。
9.根据权利要求6所述的方法,其特征在于,所述执行加法运算对应的量子态演化,包括:
根据待运算的两个量子态对应的量子比特位的位数,确定待级联的前级联模块MAJ模块以及待级联的后级联模块UMA模块的目标模块个数,其中,所述MAJ模块的模块个数与所述UMA模块的模块个数相同;
根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成加法器对应的目标量子线路;
通过所述目标量子线路对所述待运算的两个量子态的各子量子态进行加法运算,生成目标量子态结果并输出。
10.根据权利要求9所述的方法,其特征在于,所述MAJ模块为MAJ量子线路,所述UMA模块为UMA量子线路,所述MAJ量子线路和所述UMA量子线路均包括两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门,
所述根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成加法器对应的目标量子线路的步骤之前,还包括:
获取所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门对应的操作量子比特、操作量子比特之间的控制关系以及所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门之间的时序关系;
根据所述操作量子比特、所述控制关系以及所述时序关系,将所述两个CNOT量子逻辑门和一个TOFFOLI量子逻辑门构建生成所述MAJ量子线路或所述UMA量子线路,作为对应的MAJ模块或UMA模块。
11.根据权利要求10所述的方法,其特征在于,所述MAJ模块以及所述UMA模块均包括三个输入项以及三个输出项,
所述根据加法指令,将所述目标模块个数的MAJ模块以及UMA模块进行级联,生成所述加法器对应的目标量子线路的步骤具体包括:
根据加法指令,将一MAJ级联模块的三个输出项作为一对应UMA级联模块的三个输入项,以将所述MAJ级联模块与对应的UMA级联模块进行级联,生成所述加法器对应的目标量子线路,其中,所述MAJ级联模块由所述目标模块个数的MAJ模块之间级联确定,所述UMA级联模块由所述目标模块个数的UMA模块之间级联确定。
12.根据权利要求11所述的方法,其特征在于,所述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模块的进位输出项对应的量子比特作为控制比特,将预设进位辅助比特位作为受控比特位,以生成所述加法器的目标量子线路。
13.一种带精度的量子除法运算装置,其特征在于,所述装置包括:
转换模块,用于获取待运算的被除数数据和除数数据,并将所述被除数数据转换为第一目标量子态,将所述除数数据转换为第二目标量子态;其中,目标量子态包括:表示所述数据符号的符号位子量子态和表示所述数据数值的数值位子量子态;
第一量子态演化模块,用于对所述第一目标量子态和所述第二目标量子态,迭代执行减法运算对应的量子态演化,并对所述减法运算的执行次数进行计数,直至将所述被除数数据减为负数,将最终获得的计数结果,作为所述被除数数据与所述除数数据相除的商的整数位进行输出;其中,每次执行减法运算的被减数为上次执行减法运算的减法结果、减数为所述除数数据;
第二量子态演化模块,用于对当前第一目标量子态和当前第二目标量子态,迭代执行所述商的小数位运算对应的量子态演化;其中,该迭代的预设迭代次数与待计算的小数位精度的位数一致,每次迭代后在对应的预设精度位量子比特上得到包含对应精度位的值的量子态;
输出模块,用于将最终获得的预设精度位量子比特上的量子态进行输出,其中,该量子态包含所述商的小数位的二进制值。
14.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至12任一项中所述的方法。
15.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至12任一项中所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011059513.1A CN112162724B (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 |
---|---|---|---|
CN202011059513.1A CN112162724B (zh) | 2020-09-30 | 2020-09-30 | 一种带精度的量子除法运算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112162724A CN112162724A (zh) | 2021-01-01 |
CN112162724B true CN112162724B (zh) | 2024-02-09 |
Family
ID=73862338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011059513.1A Active CN112162724B (zh) | 2020-09-30 | 2020-09-30 | 一种带精度的量子除法运算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112162724B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230376276A1 (en) * | 2020-09-30 | 2023-11-23 | Origin Quantum Computing Technology Co., Ltd. | Quantum division operation method and apparatus with precision |
CN115879554B (zh) * | 2021-09-28 | 2024-06-14 | 本源量子计算科技(合肥)股份有限公司 | 量子模数平方运算方法、装置、电子装置及模数算术组件 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2062549C1 (ru) * | 1992-09-30 | 1996-06-20 | Научно-производственное предприятие "Всероссийский научно-исследовательский институт электромеханики с заводом" | Аналого-цифровой преобразователь |
JPH10116267A (ja) * | 1996-10-09 | 1998-05-06 | Sony Corp | 演算装置及び情報処理装置 |
CN1952875A (zh) * | 2006-09-18 | 2007-04-25 | 华为技术有限公司 | 一种定点除法器及其实现运算的方法 |
CN103699356A (zh) * | 2012-09-27 | 2014-04-02 | 任光前 | 并行除法算法及并行除法计算器 |
CN104636113A (zh) * | 2015-02-06 | 2015-05-20 | 周炜 | 一种计算机处理大整数的算法 |
CN104699450A (zh) * | 2015-03-18 | 2015-06-10 | 浪潮集团有限公司 | 一种基于进位保留加法器的基数-16定点除法器 |
CN110188885A (zh) * | 2019-06-28 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子计算模拟方法、装置、存储介质和电子装置 |
CN111610959A (zh) * | 2020-05-21 | 2020-09-01 | 陆丽娜 | 二维数、多维数及数据处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093451A1 (en) * | 2001-09-21 | 2003-05-15 | International Business Machines Corporation | Reversible arithmetic coding for quantum data compression |
-
2020
- 2020-09-30 CN CN202011059513.1A patent/CN112162724B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2062549C1 (ru) * | 1992-09-30 | 1996-06-20 | Научно-производственное предприятие "Всероссийский научно-исследовательский институт электромеханики с заводом" | Аналого-цифровой преобразователь |
JPH10116267A (ja) * | 1996-10-09 | 1998-05-06 | Sony Corp | 演算装置及び情報処理装置 |
CN1952875A (zh) * | 2006-09-18 | 2007-04-25 | 华为技术有限公司 | 一种定点除法器及其实现运算的方法 |
CN103699356A (zh) * | 2012-09-27 | 2014-04-02 | 任光前 | 并行除法算法及并行除法计算器 |
CN104636113A (zh) * | 2015-02-06 | 2015-05-20 | 周炜 | 一种计算机处理大整数的算法 |
CN104699450A (zh) * | 2015-03-18 | 2015-06-10 | 浪潮集团有限公司 | 一种基于进位保留加法器的基数-16定点除法器 |
CN110188885A (zh) * | 2019-06-28 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子计算模拟方法、装置、存储介质和电子装置 |
CN111610959A (zh) * | 2020-05-21 | 2020-09-01 | 陆丽娜 | 二维数、多维数及数据处理方法 |
Non-Patent Citations (2)
Title |
---|
(全)同态加密及其在云计算中的应用研究;蒋林智;《CNKI学位》;第2018年卷(第10期);全文 * |
Four Arithmetic Operations on the Quantum Computer;Yong Zhang;《Journal of Physics: Conference Series》;第1575卷;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112162724A (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112162723B (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
CN112114776B (zh) | 一种量子乘法运算方法、装置、电子装置及存储介质 | |
CN111563599B (zh) | 一种量子线路的分解方法、装置、存储介质及电子装置 | |
CN113222155B (zh) | 一种量子线路的构建方法、装置、电子装置和存储介质 | |
CN112162724B (zh) | 一种带精度的量子除法运算方法及装置 | |
CN114492814A (zh) | 基于量子计算模拟目标体系能量的方法、装置及介质 | |
CN112214200B (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
CN113222156B (zh) | 一种待执行操作的量子模拟方法、装置 | |
CN113222157B (zh) | 一种量子模拟方法、装置、电子装置及存储介质 | |
CN115809707B (zh) | 量子比较运算方法、装置、电子装置及基础算术组件 | |
CN112162725B (zh) | 一种量子除法运算方法、装置、电子装置及存储介质 | |
CN115809706B (zh) | 量子模数倍增运算方法、装置、电子装置及模数算术组件 | |
CN115809042B (zh) | 量子模数加法运算方法、装置、电子装置及模数算术组件 | |
CN115879554B (zh) | 量子模数平方运算方法、装置、电子装置及模数算术组件 | |
CN116048458B (zh) | 基于量子计算的数值划分方法、装置、设备及存储介质 | |
CN115936127B (zh) | 一种基于量子技术的数值比较方法、装置及量子计算机 | |
CN115879552B (zh) | 量子模数乘逆运算方法、装置、电子装置及模数算术组件 | |
CN115879555B (zh) | 量子模数快速乘法运算方法、装置及模数算术组件 | |
CN115879553B (zh) | 量子模数完整乘法运算方法、装置及模数算术组件 | |
WO2024109730A1 (zh) | 变量模乘运算器、运算方法及相关装置 | |
WO2022068618A1 (zh) | 一种带精度的量子除法运算方法及装置 | |
CN115879557B (zh) | 基于量子线路的数据大小比较方法、装置及量子计算机 | |
CN115713122B (zh) | 一种量子数据与经典数据的大小关系的确定方法及装置 | |
CN115879556A (zh) | 量子模数运算方法、装置、介质及模数算术组件 | |
CN116049506A (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 | ||
CB02 | Change of applicant information |
Address after: 230088 6th floor, E2 building, phase II, innovation industrial park, 2800 innovation Avenue, 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, high tech Zone, Hefei City, Anhui Province Applicant before: ORIGIN QUANTUM COMPUTING COMPANY, LIMITED, HEFEI |
|
GR01 | Patent grant | ||
GR01 | Patent grant |