CN115879556A - 量子模数运算方法、装置、介质及模数算术组件 - Google Patents
量子模数运算方法、装置、介质及模数算术组件 Download PDFInfo
- Publication number
- CN115879556A CN115879556A CN202111144299.4A CN202111144299A CN115879556A CN 115879556 A CN115879556 A CN 115879556A CN 202111144299 A CN202111144299 A CN 202111144299A CN 115879556 A CN115879556 A CN 115879556A
- Authority
- CN
- China
- Prior art keywords
- output
- module
- modulus
- input
- quantum 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 127
- 238000006243 chemical reaction Methods 0.000 claims description 151
- 239000002096 quantum dot Substances 0.000 claims description 120
- 238000012545 processing Methods 0.000 claims description 70
- 230000007704 transition Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 15
- 238000002360 preparation method Methods 0.000 claims description 9
- 239000000654 additive Substances 0.000 claims description 8
- 230000000996 additive effect Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 29
- 230000002441 reversible effect Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 239000007787 solid Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 239000010902 straw Substances 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Images
Classifications
-
- 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
- Complex Calculations (AREA)
Abstract
本发明公开了一种量子模数运算方法、装置、介质及模数算术组件,通过获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出,实现了量子模数运算操作,填补了相关技术空白。
Description
技术领域
本发明属于量子计算技术领域,特别是一种量子模数运算方法、装置、介质及模数算术组件。
背景技术
量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。量子计算机因其具有相对普通计算机更高效的处理数学问题的能力,例如,能将破解RSA密钥的时间从数百年加速到数小时,故成为一种正在研究中的关键技术。
在破密量子算法的实现过程中,通常需要借助各种量子逻辑门构建量子算法,但是,仅依靠各种量子逻辑门构建量子算法时,并没有对应经典模数运算例如模数加法、模数乘法、模数平方、模数乘逆的模数基本算术运算操作的量子逻辑门。因此,急需提供一种能够实现量子线路中的模数基本算术运算操作的技术,以填补相关技术空白。
发明内容
本发明的目的是提供一种量子模数运算方法、装置、介质及模数算术组件,旨在实现量子线路中的模数运算操作,以填补相关技术空白。
本发明的一个实施例提供了一种量子模数运算方法,所述方法包括:
获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;
对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;
将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出。
可选的,所述模数运算为模数加法运算,所述目标数据和第一目标量子态均为两个,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取普通加法器模块、常数模减法器模块、常数模加法器模块和比较器模块;
将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态。
可选的,所述普通加法器模块包括四个输入项和四个输出项,所述常数模减法器模块包括三个输入项和三个输出项,所述常数模加法器模块包括三个输入项和三个输出项,所述比较器模块包括四个输入项和四个输出项;
所述将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路,包括:
将所述普通加法器模块的其中三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,将所述常数模加法器模块的三个输出项和所述普通加法器模块的另外一个输出项作为所述比较器模块的四个输入项,以及将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路。
可选的,所述普通加法器模块的四个输入项包括两个待相加量子态输入项、一个加法进位输入项以及一个加法辅助输入项,所述普通加法器模块的四个输出项包括两个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项;
所述常数模减法器模块的三个输入项包括所述普通加法器模块的其中一个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项,所述常数模减法器模块的三个输出项包括一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项,所述常数模加法器模块的三个输出项包括一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项;
所述比较器模块的四个输入项包括所述普通加法器模块的另外一个第一加法中间结果输出项、所述常数模加法器模块的一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项,所述比较器模块的四个输出项包括一个待相加量子态输出项、一个模数加法结果输出项、一个加法进位结果输出项以及一个加法辅助结果输出项。
可选的,所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态,包括:
制备加法进位输入量子态和加法辅助输入量子态;
将两个所述第一目标量子态作为所述待相加量子态输入项的输入,将所述加法进位输入量子态作为所述加法进位输入项的输入,以及将所述加法辅助输入量子态作为加法辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述比较器模块的一个模数加法结果输出项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数倍增运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取常数倍增器模块、常数模减法器模块和常数模加法器模块;
将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态。
可选的,所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块均包括三个输入项和三个输出项,所述将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路,包括:
将所述常数倍增器模块的三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,以及将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路。
可选的,所述常数倍增器模块的三个输入项包括一个待倍增量子态输入项、一个倍增进位输入项以及一个倍增辅助输入项;所述常数倍增器模块的三个输出项包括一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;
所述常数模减法器模块的三个输入项包括所述常数倍增器模块的一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;所述常数模减法器模块的三个输出项包括一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;所述常数模加法器模块的三个输出项包括一个模数倍增结果输出项、一个倍增进位输出项和一个倍增辅助输出项。
可选的,所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态,包括:
制备倍增进位输入量子态和倍增辅助输入量子态;
将所述第一目标量子态作为所述待倍增量子态输入项的输入,将所述倍增进位输入量子态作为所述倍增进位输入项的输入,将所述倍增辅助输入量子态作为所述倍增辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述常数模加法器模块的一个模数倍增结果输出项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数快速乘法运算,所述目标数据和第一目标量子态均为两个,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取模数加法器模块和模数倍增器模块;
将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态。
可选的,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同;所述模数倍增器模块的数量比所述第一目标量子态的量子比特的数量n少一个;所述将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路,包括:
将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
可选的,所述模数加法器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;所述将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路,包括:
将当前的所述模数加法器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述模数加法器的另外两个输出项与当前的所述模数倍增器的两个输出项作为下一个所述模数加法器模块的四个输入项;
以及将n个所述模数加法器模块和n-1个所述模数乘法器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
可选的,所述模数加法器模块的四个输入项包括两个待快速乘法量子态输入项、一个模数快速乘法结果输入项和一个快速乘法辅助输入项;所述模数加法器模块的四个输出项包括两个待快速乘法量子态输出项、一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;
所述模数倍增器模块的两个输入项包括所述模数加法器模块的一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;所述模数倍增器模块的两个输出项包括一个第二模数快速乘法结果输出项和一个第二快速乘法辅助输出项。
可选的,所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态,包括:
制备模数快速乘法结果输入量子态和快速乘法辅助输入量子态;
将所述第一目标量子态作为两个所述待快速乘法量子态输入项的输入,将所述模数快速乘法结果输入量子态作为所述模数快速乘法结果输入项的输入,将所述辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述模数快速乘法结果输入量子态对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数平方运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取CNOT门、模数加法器模块和模数倍增器模块;
将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数平方运算,生成第二目标量子态。
可选的,所述CNOT门的数量是所述第一目标量子态的量子比特的数量n的两倍,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同,所述模数倍增器模块的数量比所述第一目标量子态的量子比特n的数量少一个。
可选的,所述将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路,包括:
将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块;
将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
可选的,所述CNOT门包括两个输入项和两个输出项,所述模数加法器模块包括四个输入项和四个输出项,所述将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块,包括:
将每两个所述CNOT门中的其中一个CNOT门的两个输出项作为一个所述模数加法器模块的其中两个输入项,将所述模数加法器模块的其中两个输入项对应的两个输出项作为每两个所述CNOT门中的另外一个CNOT门的两个输入项,以及将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块。
可选的,每两个所述CNOT门中的其中一个CNOT门的两个输入项包括一个第一控制输入项和一个第一待平方量子态输入项;每两个所述CNOT门中的其中一个CNOT门的两个输出项包括一个第一控制输出项和一个第一待平方量子态输出项;
一个所述模数加法器模块的四个输入项包括每两个所述CNOT门中的其中一个CNOT门的一个第一控制输出项和一个第一待平方量子态输出项,以及一个第一模数平方输入项和一个第一平方辅助输入项;一个所述模数加法器模块的四个输出项包括一个第二控制输出项和一个第二待平方量子态输出项,以及一个第一模数平方输出项和一个第一平方辅助输出项;
每两个所述CNOT门中的另外一个CNOT门的两个输入项包括一个所述模数加法器模块的一个第二控制输出项和一个第二待平方量子态输出项;每两个所述CNOT门中的另外一个CNOT门的两个输出项包括一个第三控制输出项和一个第三待平方量子态输出项。
可选的,所述第一运算器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;所述将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路,包括:
将当前的所述第一运算器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述第一运算器模块的另外两个输出项和当前的所述模数倍增器模块的两个输出项作为下一个所述第一运算器模块的四个输入项,将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
可选的,所述第一运算器模块的四个输入项包括一个第二控制输入项、一个第二待平方量子态输入项、一个第二模数平方输入项和一个第二平方辅助输入项,所述第一运算器模块的四个输出项包括一个第四控制输出项、一个第四待平方量子态输出项、一个第二模数平方输出项、一个第二平方辅助输出项;
所述模数倍增器模块的两个输入项包括一个所述第二模数平方输出项、一个所述第二平方辅助输出项,所述模数倍增器模块的两个输出项包括一个第三模数平方输出项、一个第三平方辅助输出项。
可选的,所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态,包括:
制备控制输入量子态、模数平方输入量子态和平方辅助输入量子态;
将所述控制输入量子态作为所述第二控制输入项的输入,将所述第一目标量子态作为所述第二待平方量子态输入项的输入,将所述模数平方输入量子态作为所述第二模数平方输入项的输入,将所述平方辅助输入量子态作为所述第二平方辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第二模数平方输入项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数乘逆运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取量子态转换模块、乘逆输出模块、第一CNOT门、乘逆处理模块、逆乘逆输出模块,其中,组成所述乘逆输出模块的逻辑门与组成所述逆乘逆输出模块的逻辑门转置共轭;
将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态。
可选的,所述量子态转换模块的数量为六,所述量子态转换模块包括一个输入项和一个输出项,所述乘逆输出模块包括七个输入项和七个输出项,所述第一CNOT门包括两个输入项和两个输出项;所述乘逆处理模块包括五个输入项和五个输出项;所述逆乘逆处理模块包括七个输入项和七个输出项;
所述将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路,包括:
将第一个所述量子态转换模块的输出项、第二个所述量子态转换项的输出项作为所述乘逆输出模块的其中两个输入项;
将所述乘逆输出模块的第二个输出项作为第三个所述量子态转换模块的输入项,第四个输出项作为所述第一CNOT门的其中一个输入项;将所述乘逆输出模块的第一个输出项、第三个输出项、第七个输出项,第三个所述量子态转换模块的输出项以及所述第一CNOT门的其中一个输出项作为所述乘逆处理模块的五个输入项;
将所述乘逆处理模块的第二个输出项作为第四个所述量子态转换模块的输入项;将所述乘逆处理模块的第一个输出项、第三个输出项和第四个输出项,第四个所述量子态转换模块的输出项,所述第一CNOT门的另外一个输出项,所述乘逆输出模块的第五个输出项和第六个输出项作为所述逆乘逆输出模块的七个输入项;
将所述逆乘逆输出模块的第二个输出项作为第五个所述量子态转换模块的输入项,将所述逆乘逆输出模块的第五个输出项作为第六个所述量子态转换模块的输入项;
将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路。
可选的,第一个所述量子态转换模块的输入项包括一个第一乘逆辅助输入项,第一个所述量子态转换模块的输出项包括一个第一乘逆辅助输出项;第二个所述量子态转换模块的输入项包括一个第二乘逆辅助输入项,第二个所述量子态转换模块的输出项包括一个第二乘逆辅助输出项;
所述乘逆输出模块的七个输入项包括一个待乘逆量子态输入项、一个所述第一乘逆辅助输出项、一个所述第二乘逆辅助输出项和四个第三乘逆辅助输入项;所述乘逆输出模块的七个输出项包括一个第一待乘逆量子态输出项和六个第三乘逆辅助输出项;
所述第一CNOT门的两个输入项包括一个所述第三乘逆辅助输出项和一个第四乘逆辅助输入项,所述第一CNOT门的两个输出项包括两个第四乘逆辅助输出项;第三个所述量子态转换模块的输入项包括一个所述第三乘逆辅助输出项,第三个所述量子态转换模块的输出项包括一个第五乘逆辅助输出项;
所述乘逆处理模块的五个输入项包括两个所述第三乘逆辅助输出项、一个所述第五乘逆辅助输出项、一个所述第一待乘逆量子态输出项和其中一个所述第四乘逆辅助输出项;所述乘逆处理模块的五个输出项包括一个第二待乘逆量子态输出项和四个第六乘逆辅助输出项;
第四个所述量子态转换项的输入项包括一个所述第六乘逆辅助输出项,第四个所述量子态转换项的输出项包括一个第七乘逆辅助输出项;
所述逆乘逆输出模块的七个输入项包括两个所述第六乘逆辅助输出项、一个所述辅助第七乘逆输出项、一个所述第二待乘逆量子态输出项、另外一个所述第四乘逆辅助输出项、两个所述第三乘逆辅助输出项,所述逆乘逆输出模块的七个输出项包括一个第三待乘逆量子态输出项和六个第八乘逆辅助输出项;
第五个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第五个所述量子态转换模块的输出项包括一个第九乘逆辅助输出项;第六个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第六个所述量子态转换模块的输出项包括一个第十乘逆辅助输出项。
可选的,第一个所述量子态转换模块用于将输入态转换为|p>,第二个所述量子态转换模块和第四个所述量子态转换模块用于将输入态转换为|1>,第三个所述量子态转换模块、第五个所述量子态转换模块和第六个所述量子态转换模块用于将输入态转换为|0>,其中,所述|p>为模数p转换的量子态。
可选的,所述方法还包括:
获取三个X门和2n个第二运算器模块,所述X门包括一个输入项和一个输出项,所述第二运算器模块包括八个输入项和八个输出项;
将2n所述个第二运算器模块进行级联,生成第三运算器模块;
将其中两个所述X门的输出项作为所述第三运算器模块的其中两个输入项,将所述第三运算器模块的其中一个输入项作为另外一个所述X门的输入项,将三个所述X门和所述第三运算器模块进行级联,生成所述乘逆处理模块。
可选的,所述方法还包括:
获取一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门,所述X门包括一个输入项和一个输出项,所述第二CNOT门包括两个输入项和两个输出项,所述普通加法器模块包括四个输入项和四个输出项,所述Kaliski门包括七个输入项和七个输出项;
将第一个所述第二CNOT门的其中一个输出项作为第二个所述第二CNOT门的其中一个输出项;
将第一个所述第二CNOT门的另外一个输出项和第二个所述第二CNOT门的其中一个输出项作为所述普通加法器的其中两个输入项;
将所述普通加法器的其中一个输出项作为第三个所述X门的输入项;
将所述普通加法器的其中两个输出项、第二个所述第二CNOT门的另外一个输出项以及第三个所述X门的输出项作为所述Kaliski门的其中四个输入项;
将所述一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门进行级联,生成所述第一运算器模块。
可选的,所述方法还包括:
获取l+1个模数倍增器模块,以及将l+1个所述模数倍增器模块进行级联,生成所述乘逆处理模块。
可选的,所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态,包括:
制备第一乘逆辅助输入量子态、第二乘逆辅助输入量子态、第三乘逆辅助输入量子态和第四乘逆辅助输入量子态;
将所述第一乘逆辅助输入量子态作为所述第一乘逆辅助输入项的输入,将所述第二乘逆辅助输入量子态作为所述第二乘逆辅助输入项的输入,将所述第三乘逆辅助输入量子态作为所述第三乘逆辅助输入项的输入,将所述第四乘逆辅助输入量子态作为所述第四乘逆辅助输入项的输入,将所述第一目标量子态作为所述待乘逆量子态输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第四乘逆辅助输入项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数完整乘法运算,所述目标数据和第一目标量子态均为两个,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取模数乘逆器模块、模数快速乘法器模块、逆模数快速乘法器模块、逆模数乘逆器模块和SWAP门,其中,组成所述模数乘逆器模块的逻辑门与组成所述逆模数乘逆器模块的逻辑门转置共轭,组成所述模数快速乘法器模块的逻辑门与组成所述逆模数快速乘法器模块的逻辑门转置共轭;
将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态。
可选的,所述模数乘逆器模块包括四个输入项和四个输出项,所述模数快速乘法器模块包括四个输入项和四个输出项,所述逆模数快速乘法器模块包括五个输入项和五个输出项,所述SWAP门包括两个输入项和两个输出项,所述逆模数乘逆器模块包括四个输入项和四个输出项;
所述将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路,包括:
将所述模数乘逆器模块的其中三个输出项作为所述模数快速乘法器模块的其中三个输入项,将所述模数乘逆器模块的另外一个输出项和所述模数快速乘法器模块的四个输出项作为所述逆模数快速乘法器模块的五个输入项,将所述逆模数快速乘法器模块的其中两个输出项作为所述SWAP门的两个输入项,将所述逆模数快速乘法器模块的另外三个输出项和所述SWAP门的其中一个输出项作为所述逆模数乘逆器的输入项;
以及将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路。
可选的,所述模数乘逆器模块的四个输入项包括一个待完整乘法量子态输入项和和三个完整乘法辅助输入项,所述模数乘逆器模块的四个输出项包括第一待完整乘法量子态输出项和三个第一完整乘法辅助输出项;
所述模数快速乘法器模块的四个输入项包括另外一个待完整乘法量子态输入项、所述第一待完整乘法量子态输出项和其中两个所述第一完整乘法辅助输出项;所述模数快速乘法器模块的四个输出项包括两个第二待完整乘法量子态输出项和两个第二完整乘法辅助输出项;
所述逆模数快速乘法器模块的五个输入项包括两个所述第二待完整乘法量子态输出项、两个所述第二完整乘法辅助输出项和另外一个所述第一完整乘法辅助输出项,所述逆模数快速乘法器模块的五个输出项包括两个第三待完整乘法量子态输出项和三个第三完整乘法辅助输出项;
所述SWAP门的两个输入项包括其中一个所述第三待完整乘法量子态输出项和其中一个所述第三完整乘法辅助输出项,所述SWAP门的两个输出项包括一个第四待完整乘法量子态输出项和一个第四完整乘法辅助输出项;
所述逆模数乘逆器模块的四个输入项包括一个所述第四完整乘法辅助输出项、另外两个所述第三完整乘法辅助输出项和另外一个所述第三待完整乘法量子态输出项,所述逆模数乘逆器模块的四个输出项包括一个第五待完整乘法量子态输出项和三个第五完整乘法辅助输出项。
可选的,所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态,包括:
制备完整乘法辅助输入量子态;
将两个所述第一目标量子态作为两个所述待完整乘法量子态输入项的输入,将所述完整乘法辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量其中一个所述第一目标量子态对应的量子比特,得到第二目标量子态。
本发明的又一个实施例提供了一种量子模数运算装置,所述装置包括:
获取单元,用于获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;
演化单元,用于对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;
输出单元,用于将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出。
可选的,在所述模数运算为模数加法运算,所述目标数据和第一目标量子态均为两个,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元具体用于:
获取普通加法器模块、常数模减法器模块、常数模加法器模块和比较器模块;
将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态。
可选的,所述普通加法器模块包括四个输入项和四个输出项,所述常数模减法器模块包括三个输入项和三个输出项,所述常数模加法器模块包括三个输入项和三个输出项,所述比较器模块包括四个输入项和四个输出项;
在所述将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路方面,所述演化单元具体用于:
将所述普通加法器模块的其中三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,将所述常数模加法器模块的三个输出项和所述普通加法器模块的另外一个输出项作为所述比较器模块的四个输入项,以及将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路。
可选的,所述普通加法器模块的四个输入项包括两个待相加量子态输入项、一个加法进位输入项以及一个加法辅助输入项,所述普通加法器模块的四个输出项包括两个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项;
所述常数模减法器模块的三个输入项包括所述普通加法器模块的其中一个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项,所述常数模减法器模块的三个输出项包括一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项,所述常数模加法器模块的三个输出项包括一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项;
所述比较器模块的四个输入项包括所述普通加法器模块的另外一个第一加法中间结果输出项、所述常数模加法器模块的一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项,所述比较器模块的四个输出项包括一个待相加量子态输出项、一个模数加法结果输出项、一个加法进位结果输出项以及一个加法辅助结果输出项。
可选的,在所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态方面,所述演化单元具体用于:
制备加法进位输入量子态和加法辅助输入量子态;
将两个所述第一目标量子态作为所述待相加量子态输入项的输入,将所述加法进位输入量子态作为所述加法进位输入项的输入,以及将所述加法辅助输入量子态作为加法辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述比较器模块的一个模数加法结果输出项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数倍增运算,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元具体用于:
获取常数倍增器模块、常数模减法器模块和常数模加法器模块;
将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态。
可选的,在所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块均包括三个输入项和三个输出项,所述将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路方面,所述演化单元具体用于:
将所述常数倍增器模块的三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,以及将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路。
可选的,所述常数倍增器模块的三个输入项包括一个待倍增量子态输入项、一个倍增进位输入项以及一个倍增辅助输入项;所述常数倍增器模块的三个输出项包括一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;
所述常数模减法器模块的三个输入项包括所述常数倍增器模块的一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;所述常数模减法器模块的三个输出项包括一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;所述常数模加法器模块的三个输出项包括一个模数倍增结果输出项、一个倍增进位输出项和一个倍增辅助输出项。
可选的,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态方面,所述演化单元具体用于:
制备倍增进位输入量子态和倍增辅助输入量子态;
将所述第一目标量子态作为所述待倍增量子态输入项的输入,将所述倍增进位输入量子态作为所述倍增进位输入项的输入,将所述倍增辅助输入量子态作为所述倍增辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述常数模加法器模块的一个模数倍增结果输出项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数快速乘法运算,所述目标数据和第一目标量子态均为两个,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元具体用于:
获取模数加法器模块和模数倍增器模块;
将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态。
可选的,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同;所述模数倍增器模块的数量比所述第一目标量子态的量子比特的数量n少一个;在所述将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路方面,所述演化单元具体用于:
将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
可选的,所述模数加法器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;在所述将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路方面,所述演化单元具体用于:
将当前的所述模数加法器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述模数加法器的另外两个输出项与当前的所述模数倍增器的两个输出项作为下一个所述模数加法器模块的四个输入项;
以及将n个所述模数加法器模块和n-1个所述模数乘法器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
可选的,所述模数加法器模块的四个输入项包括两个待快速乘法量子态输入项、一个模数快速乘法结果输入项和一个快速乘法辅助输入项;所述模数加法器模块的四个输出项包括两个待快速乘法量子态输出项、一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;
所述模数倍增器模块的两个输入项包括所述模数加法器模块的一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;所述模数倍增器模块的两个输出项包括一个第二模数快速乘法结果输出项和一个第二快速乘法辅助输出项。
可选的,在所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态方面,所述演化单元具体用于:
制备模数快速乘法结果输入量子态和快速乘法辅助输入量子态;
将所述第一目标量子态作为两个所述待快速乘法量子态输入项的输入,将所述模数快速乘法结果输入量子态作为所述模数快速乘法结果输入项的输入,将所述辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述模数快速乘法结果输入量子态对应的量子比特,得到第二目标量子态。
可选的,在所述模数运算为模数平方运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元具体用于:
获取CNOT门、模数加法器模块和模数倍增器模块;
将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数平方运算,生成第二目标量子态。
可选的,所述CNOT门的数量是所述第一目标量子态的量子比特的数量n的两倍,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同,所述模数倍增器模块的数量比所述第一目标量子态的量子比特n的数量少一个。
可选的,在所述将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路方面,所述演化单元具体用于:
将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块;
将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
可选的,所述CNOT门包括两个输入项和两个输出项,所述模数加法器模块包括四个输入项和四个输出项,在所述将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块方面,所述演化单元具体用于:
将每两个所述CNOT门中的其中一个CNOT门的两个输出项作为一个所述模数加法器模块的其中两个输入项,将所述模数加法器模块的其中两个输入项对应的两个输出项作为每两个所述CNOT门中的另外一个CNOT门的两个输入项,以及将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块。
可选的,每两个所述CNOT门中的其中一个CNOT门的两个输入项包括一个第一控制输入项和一个第一待平方量子态输入项;每两个所述CNOT门中的其中一个CNOT门的两个输出项包括一个第一控制输出项和一个第一待平方量子态输出项;
一个所述模数加法器模块的四个输入项包括每两个所述CNOT门中的其中一个CNOT门的一个第一控制输出项和一个第一待平方量子态输出项,以及一个第一模数平方输入项和一个第一平方辅助输入项;一个所述模数加法器模块的四个输出项包括一个第二控制输出项和一个第二待平方量子态输出项,以及一个第一模数平方输出项和一个第一平方辅助输出项;
每两个所述CNOT门中的另外一个CNOT门的两个输入项包括一个所述模数加法器模块的一个第二控制输出项和一个第二待平方量子态输出项;每两个所述CNOT门中的另外一个CNOT门的两个输出项包括一个第三控制输出项和一个第三待平方量子态输出项。
可选的,所述第一运算器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;在所述将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路方面,所述演化单元具体用于:
将当前的所述第一运算器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述第一运算器模块的另外两个输出项和当前的所述模数倍增器模块的两个输出项作为下一个所述第一运算器模块的四个输入项,将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
可选的,所述第一运算器模块的四个输入项包括一个第二控制输入项、一个第二待平方量子态输入项、一个第二模数平方输入项和一个第二平方辅助输入项,所述第一运算器模块的四个输出项包括一个第四控制输出项、一个第四待平方量子态输出项、一个第二模数平方输出项、一个第二平方辅助输出项;
所述模数倍增器模块的两个输入项包括一个所述第二模数平方输出项、一个所述第二平方辅助输出项,所述模数倍增器模块的两个输出项包括一个第三模数平方输出项、一个第三平方辅助输出项。
可选的,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态方面,所述演化单元具体用于:
制备控制输入量子态、模数平方输入量子态和平方辅助输入量子态;
将所述控制输入量子态作为所述第二控制输入项的输入,将所述第一目标量子态作为所述第二待平方量子态输入项的输入,将所述模数平方输入量子态作为所述第二模数平方输入项的输入,将所述平方辅助输入量子态作为所述第二平方辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第二模数平方输入项对应的量子比特,得到第二目标量子态。
可选的,在所述模数运算为模数乘逆运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元具体用于:
获取量子态转换模块、乘逆输出模块、第一CNOT门、乘逆处理模块、逆乘逆输出模块,其中,组成所述乘逆输出模块的逻辑门与组成所述逆乘逆输出模块的逻辑门转置共轭;
将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态。
可选的,所述量子态转换模块的数量为六,所述量子态转换模块包括一个输入项和一个输出项,所述乘逆输出模块包括七个输入项和七个输出项,所述第一CNOT门包括两个输入项和两个输出项;所述乘逆处理模块包括五个输入项和五个输出项;所述逆乘逆处理模块包括七个输入项和七个输出项;
在所述将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路方面,所述演化单元具体用于:
将第一个所述量子态转换模块的输出项、第二个所述量子态转换项的输出项作为所述乘逆输出模块的其中两个输入项;
将所述乘逆输出模块的第二个输出项作为第三个所述量子态转换模块的输入项,第四个输出项作为所述第一CNOT门的其中一个输入项;将所述乘逆输出模块的第一个输出项、第三个输出项、第七个输出项,第三个所述量子态转换模块的输出项以及所述第一CNOT门的其中一个输出项作为所述乘逆处理模块的五个输入项;
将所述乘逆处理模块的第二个输出项作为第四个所述量子态转换模块的输入项;将所述乘逆处理模块的第一个输出项、第三个输出项和第四个输出项,第四个所述量子态转换模块的输出项,所述第一CNOT门的另外一个输出项,所述乘逆输出模块的第五个输出项和第六个输出项作为所述逆乘逆输出模块的七个输入项;
将所述逆乘逆输出模块的第二个输出项作为第五个所述量子态转换模块的输入项,将所述逆乘逆输出模块的第五个输出项作为第六个所述量子态转换模块的输入项;
将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路。
可选的,第一个所述量子态转换模块的输入项包括一个第一乘逆辅助输入项,第一个所述量子态转换模块的输出项包括一个第一乘逆辅助输出项;第二个所述量子态转换模块的输入项包括一个第二乘逆辅助输入项,第二个所述量子态转换模块的输出项包括一个第二乘逆辅助输出项;
所述乘逆输出模块的七个输入项包括一个待乘逆量子态输入项、一个所述第一乘逆辅助输出项、一个所述第二乘逆辅助输出项和四个第三乘逆辅助输入项;所述乘逆输出模块的七个输出项包括一个第一待乘逆量子态输出项和六个第三乘逆辅助输出项;
所述第一CNOT门的两个输入项包括一个所述第三乘逆辅助输出项和一个第四乘逆辅助输入项,所述第一CNOT门的两个输出项包括两个第四乘逆辅助输出项;第三个所述量子态转换模块的输入项包括一个所述第三乘逆辅助输出项,第三个所述量子态转换模块的输出项包括一个第五乘逆辅助输出项;
所述乘逆处理模块的五个输入项包括两个所述第三乘逆辅助输出项、一个所述第五乘逆辅助输出项、一个所述第一待乘逆量子态输出项和其中一个所述第四乘逆辅助输出项;所述乘逆处理模块的五个输出项包括一个第二待乘逆量子态输出项和四个第六乘逆辅助输出项;
第四个所述量子态转换项的输入项包括一个所述第六乘逆辅助输出项,第四个所述量子态转换项的输出项包括一个第七乘逆辅助输出项;
所述逆乘逆输出模块的七个输入项包括两个所述第六乘逆辅助输出项、一个所述辅助第七乘逆输出项、一个所述第二待乘逆量子态输出项、另外一个所述第四乘逆辅助输出项、两个所述第三乘逆辅助输出项,所述逆乘逆输出模块的七个输出项包括一个第三待乘逆量子态输出项和六个第八乘逆辅助输出项;
第五个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第五个所述量子态转换模块的输出项包括一个第九乘逆辅助输出项;第六个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第六个所述量子态转换模块的输出项包括一个第十乘逆辅助输出项。
可选的,第一个所述量子态转换模块用于将输入态转换为|p>,第二个所述量子态转换模块和第四个所述量子态转换模块用于将输入态转换为|1>,第三个所述量子态转换模块、第五个所述量子态转换模块和第六个所述量子态转换模块用于将输入态转换为|0>,其中,所述|p>为模数p转换的量子态。
可选的,所述演化单元还用于:
获取三个X门和2n个第二运算器模块,所述X门包括一个输入项和一个输出项,所述第二运算器模块包括八个输入项和八个输出项;
将2n所述个第二运算器模块进行级联,生成第三运算器模块;
将其中两个所述X门的输出项作为所述第三运算器模块的其中两个输入项,将所述第三运算器模块的其中一个输入项作为另外一个所述X门的输入项,将三个所述X门和所述第三运算器模块进行级联,生成所述乘逆处理模块。
可选的,所述演化单元还用于:
获取一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门,所述X门包括一个输入项和一个输出项,所述第二CNOT门包括两个输入项和两个输出项,所述普通加法器模块包括四个输入项和四个输出项,所述Kaliski门包括七个输入项和七个输出项;
将第一个所述第二CNOT门的其中一个输出项作为第二个所述第二CNOT门的其中一个输出项;
将第一个所述第二CNOT门的另外一个输出项和第二个所述第二CNOT门的其中一个输出项作为所述普通加法器的其中两个输入项;
将所述普通加法器的其中一个输出项作为第三个所述X门的输入项;
将所述普通加法器的其中两个输出项、第二个所述第二CNOT门的另外一个输出项以及第三个所述X门的输出项作为所述Kaliski门的其中四个输入项;
将所述一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门进行级联,生成所述第一运算器模块。
可选的,所述演化单元还用于:
获取l+1个模数倍增器模块,以及将l+1个所述模数倍增器模块进行级联,生成所述乘逆处理模块。
可选的,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态方面,所述演化单元还用于:
制备第一乘逆辅助输入量子态、第二乘逆辅助输入量子态、第三乘逆辅助输入量子态和第四乘逆辅助输入量子态;
将所述第一乘逆辅助输入量子态作为所述第一乘逆辅助输入项的输入,将所述第二乘逆辅助输入量子态作为所述第二乘逆辅助输入项的输入,将所述第三乘逆辅助输入量子态作为所述第三乘逆辅助输入项的输入,将所述第四乘逆辅助输入量子态作为所述第四乘逆辅助输入项的输入,将所述第一目标量子态作为所述待乘逆量子态输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第四乘逆辅助输入项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数完整乘法运算,所述目标数据和第一目标量子态均为两个,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元具体用于:
获取模数乘逆器模块、模数快速乘法器模块、逆模数快速乘法器模块、逆模数乘逆器模块和SWAP门,其中,组成所述模数乘逆器模块的逻辑门与组成所述逆模数乘逆器模块的逻辑门转置共轭,组成所述模数快速乘法器模块的逻辑门与组成所述逆模数快速乘法器模块的逻辑门转置共轭;
将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态。
可选的,所述模数乘逆器模块包括四个输入项和四个输出项,所述模数快速乘法器模块包括四个输入项和四个输出项,所述逆模数快速乘法器模块包括五个输入项和五个输出项,所述SWAP门包括两个输入项和两个输出项,所述逆模数乘逆器模块包括四个输入项和四个输出项;
在所述将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路方面,所述演化单元具体用于:
将所述模数乘逆器模块的其中三个输出项作为所述模数快速乘法器模块的其中三个输入项,将所述模数乘逆器模块的另外一个输出项和所述模数快速乘法器模块的四个输出项作为所述逆模数快速乘法器模块的五个输入项,将所述逆模数快速乘法器模块的其中两个输出项作为所述SWAP门的两个输入项,将所述逆模数快速乘法器模块的另外三个输出项和所述SWAP门的其中一个输出项作为所述逆模数乘逆器的输入项;
以及将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路。
可选的,所述模数乘逆器模块的四个输入项包括一个待完整乘法量子态输入项和和三个完整乘法辅助输入项,所述模数乘逆器模块的四个输出项包括第一待完整乘法量子态输出项和三个第一完整乘法辅助输出项;
所述模数快速乘法器模块的四个输入项包括另外一个待完整乘法量子态输入项、所述第一待完整乘法量子态输出项和其中两个所述第一完整乘法辅助输出项;所述模数快速乘法器模块的四个输出项包括两个第二待完整乘法量子态输出项和两个第二完整乘法辅助输出项;
所述逆模数快速乘法器模块的五个输入项包括两个所述第二待完整乘法量子态输出项、两个所述第二完整乘法辅助输出项和另外一个所述第一完整乘法辅助输出项,所述逆模数快速乘法器模块的五个输出项包括两个第三待完整乘法量子态输出项和三个第三完整乘法辅助输出项;
所述SWAP门的两个输入项包括其中一个所述第三待完整乘法量子态输出项和其中一个所述第三完整乘法辅助输出项,所述SWAP门的两个输出项包括一个第四待完整乘法量子态输出项和一个第四完整乘法辅助输出项;
所述逆模数乘逆器模块的四个输入项包括一个所述第四完整乘法辅助输出项、另外两个所述第三完整乘法辅助输出项和另外一个所述第三待完整乘法量子态输出项,所述逆模数乘逆器模块的四个输出项包括一个第五待完整乘法量子态输出项和三个第五完整乘法辅助输出项。
可选的,在所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态方面,所述演化单元具体用于:
制备完整乘法辅助输入量子态;
将两个所述第一目标量子态作为两个所述待完整乘法量子态输入项的输入,将所述完整乘法辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量其中一个所述第一目标量子态对应的量子比特,得到第二目标量子态。
本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。
本发明的又一实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中所述的方法。
本发明的又一实施例提供了一种量子模数算术组件,包括根据上述任一项中所述的方法确定的量子模数运算器。
与现有技术相比,本发明提供的一种量子模数运算方法,通过获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出,实现了量子模数运算操作,填补了相关技术空白。
附图说明
图1为本发明实施例提供的一种量子模数运算方法的计算机终端的硬件结构框图;
图2为本发明实施例提供的一种量子模数运算方法的流程示意图;
图3为本发明实施例提供的一种量子比较运算的流程示意图;
图4为本发明实施例提供的一种量子比较器对应的目标量子线路图;
图5为本发明实施例提供的另一种量子比较器对应的目标量子线路图;
图6为本发明实施例提供的一种量子模数加法运算的流程示意图;
图7为本发明实施例提供的一种模数加法器对应的目标量子线路图;
图8为本发明实施例提供的一种量子模数倍增运算的流程示意图;
图9为本发明实施例提供的一种常数倍增器对应的目标量子线路图;
图10为本发明实施例提供的一种模数倍增器对应的目标量子线路图;
图11为本发明实施例提供的一种量子模数快速乘法运算的流程示意图;
图12为本发明实施例提供的一种模数快速乘法器对应的目标量子线路图;
图13为本发明实施例提供的一种量子模数平方运算的流程示意图;
图14为本发明实施例提供的一种模数平方器对应的目标量子线路图;
图15为本发明实施例提供的一种量子模数乘逆运算的流程示意图;
图16为本发明实施例提供的一种模数乘逆器的对应的目标量子线路图;
图17为本发明实施例提供的一种乘逆输出模块的量子线路图;
图18为本发明实施例提供的一种Kaliski门的量子线路图;
图19为本发明实施例提供的一种乘逆处理模块的量子线路图;
图20为本发明实施例提供的一种量子模数完整乘法运算的流程示意图;
图21为本发明实施例提供的一种模数完整乘法器对应的目标量子线路图;
图22为本发明实施例提供的一种量子模数运算方法的流程示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明实施例首先提供了一种量子模数运算方法,该方法可以应用于电子设备,如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图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门,阿达马门)、泡利-X门(X门)、泡利-Y门(Y门)、泡利-Z门(Z门)、RX门、RY门、RZ门等等;多比特量子逻辑门,如CNOT门、CR门、iSWAP门、Toffoli门等等。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态右矢对应的矩阵进行计算。、
数论中,把一个计量单位称之为模或者模数,例如时钟是以12进制进行计数循环的,即以12为模。模运算在数论和程序设计中都有着广泛的应用,奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。
模数加法运算是指任意两个数据之和求模的运算,例如任何对模数p为10的模数加法运算,8+4mod 10=2。模数减法运算是指任意两个数据之和求模的运算,例如任何对模数p为10的模数减法运算,8-4mod 10=4。模数减法运算可以通过模数加法运算实现。
模数乘法运算是指任意两个数据之积求模的运算,例如任何对模数p为10的模数乘法运算,8×4mod 10=2。模数除法运算是指任意两个数据之商求模的运算,例如任何对模数p为10的模数减法运算,8÷4mod 10=2。模数除法运算可以通过模数乘法运算实现。
模数幂运算是指指任意一个数据之幂求模的运算,例如任何对模数p为10的模数乘法运算,82mod 10=4。模数平方运算是模数幂运算中幂为2的情况。
模数倍增运算是指指任意一个数据的两倍求模的运算,例如任何对模数p为10的模数乘法运算,2×8mod 10=6。
在量子计算领域中,并没有对应经典模数运算例如上述模数加(减)法运算、模数乘(除)法运算、模数幂运算、模数乘逆运算的模数基本算术运算操作的量子逻辑门,而模数运算是实现量子破密算法的关键组件。因此,急需提供一种能够实现量子线路中的模数完整乘法运算操作的技术,以填补相关技术空白。
本发明实施例用于介绍如何在量子计算机中实现模数运算的逻辑电路,并结合预先开发软件QPanda对每个模块进行说明。任何经典逻辑电路,也可以通过量子线路来表示。经典电路和量子线路一一对应,量子逻辑门/量子线路的输入与输出均是量子比特,且输入与输出的量子比特数量相等。量子线路允许量子态以叠加的方式输入,输出的状态即可以相同的方式叠加输出。可逆计算是量子计算的基本,即任何可逆线路存在逆线路,也就是说,将每个原有的输出作为输入,正好可以映射到原来的输入上。可逆线路意味着对于每一种输出,都正好有一种输入与之对应,这种映射是一一映射。例如非门是一个典型的可逆逻辑门,它的逆线路就是它自身。典型的不可逆逻辑门就是与门、或门。例如与门的输入是0,0;0,1;1,0的时候均输出0,这说明不存在从输出到输入的唯一映射。可逆计算意味着信息在计算过程中没有丢失,经过逆变换之后可以恢复原来的状态。不可逆计算意味着信息丢失了。例如从与门的输出,无法推知输入的状态。对于可逆计算来说,是可以推知的。任何连续执行的可逆逻辑门,合起来是一个可逆操作。量子逻辑门全部是可逆逻辑门,所以量子线路是可逆线路。但是量子测量不是可逆计算。
第一具体方法实施例:
参见图2,图2为本发明实施例提供的一种量子模数运算方法的流程示意图,所述方法包括:
步骤201:获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;
其中,待运算的目标数据可以是一个,也可以是两个,还可以是多个。相应的,待运算的目标数据是一个时,则将所述待运算的目标数据转换为一个第一目标量子态;待运算的目标数据是两个时,则将所述待运算的目标数据转换为两个第一目标量子态;待运算的目标数据是多个时,则将所述待运算的目标数据转换为多个第一目标量子态。
具体地,在所述获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态方面,可以是利用现有的振幅编码方式,将待运算的十进制数据转换为二进制的量子态表示。例如,一个目标数据为7,带符号的二进制表示0111;另一个目标数据为4,带符号的二进制表示011;其中,最高位为0表示正数,1表示负数。其中,目标量子态为两个目标量子比特对应的本征态,量子比特位对应的所有本征态表征的数量是2的量子比特位的个数次方。例如:例如一组量子比特为q0、q1、q2,表示第0位、第1位、第2位量子比特,从高位到低位排序为q2q1q0,则该组量子比特位对应的本征态(即量子态)总共有8个,分别为:|000>、|001>、|010>、|011>、|100>、|101>、|110>、|111>,该8个本征态之间的叠加态。该组量子比特位的个数可以根据实际运算需要进行设置。
步骤202:对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;
具体地,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,包括:
基于模数运算指令获取量子逻辑门;
基于所述量子逻辑门生成模数运算器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数运算,生成第二目标量子态。
其中,第二目标量子态可以是仅包含模数运算结果的量子比特的量子态,也可以是参与模数运算的所有的量子比特的量子态。通过对量子比特进行测量,即可得到该第二目标量子态,从而获得模数运算结果。
在介绍本发明的其他具体实施例之前,先对本发明其他实施例中用到的常用量子逻辑门或普通四则运算模块做一个说明。
X门:用于将|0>和|1>互变,等效于绕布洛赫球的X轴旋转180°,绕X轴的固定旋转角度量子逻辑门。其矩阵形式如下:
CNOT门:控制位为|0>时,被控制位不变;控制位为|1>时,被控制位取反。其矩阵形式如下:
CNOT门实质是由单个控制位(控制位为|1>)与X门组成的,由此也衍生出了其他控制门,如,控制位为|0>的控制门,控制位为|0>时,被控制位取反;控制位为|1>时,被控制位不变。还可以有多控一的控制门,多控多的控制门,一控多的控制门。在量子线路的中间表示中,常用空心圆表示0控,实心圆表示1控,中间带十字标识的空心圆表示X门。
SWAP门:用于交换两个量子比特位的状态交换,且不改变相位,其矩阵形式如下:
其中,普通加法器模块用于实现数据之间的求和,具体实现方式可以参见公开号为CN 112162723 A的专利文献;普通减法器模块用于实现数据之间的求差,具体实现方式可以参见公开号为CN 112214200 A的专利文献;当然,普通加法器模块和普通减法器模块的具体实现方式还可以有其他方式,在此不做限定。
上述常数模减法器模块为有一个输入项为模的普通减法器,常数模加法器模块为有一个输入项为模的普通加法器。
需要说明的是,普通加法器模块以及常数模加法器模块、普通减法器模块以及常数模减法器模块不限上述说明的实现方式,也可以有其他的实现方式,只要实现相同的功能即可,在此不作限定,均应在本发明的保护范围之内。
步骤203:将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出。
本实施例中,通过将待运算的目标数据转换后的第一目标量子态,输入模数运算器(即所述目标量子线路)中,得到对应的二进制表示模数运算结果的第二目标量子态。然后将二进制表示的表示模数运算结果的第二目标量子态直接输出,完成目标数据的模数运算。
与现有技术相比,本发明提供的一种量子模数运算方法,通过获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出,实现了量子模数运算操作,填补了相关技术空白。
第二具体方法实施例:
参见图3,图3为本发明实施例提供的一种量子比较运算的流程示意图,所述方法包括:
步骤301:获取普通减法器模块、CNOT门和普通加法器模块;
其中,普通减法器模块、CNOT门和普通加法器模块的具体实施方式参见第一具体实施例,在此不做赘述。
步骤302:将所述普通减法器模块、所述CNOT门和所述普通加法器模块进行级联,生成量子比较器对应的目标量子线路;
具体地,所述普通减法器模块包括三个输入项和三个输出项,所述CNOT门包括二个输入项和二个输出项,所述普通加法器模块包括三个输入项和三个输出项;
在所述将所述普通减法器模块、所述CNOT门和所述普通加法器模块进行级联,生成量子比较器对应的目标量子线路,包括:
将所述普通减法器模块的其中一个输出项与所述CNOT门的其中一个输入项连接,将所述普通减法器模块的另外两个输出项以及所述CNOT门的其中一个输出项与所述普通加法器模块的三个输入项分别一一对应连接,以及将所述普通减法器模块、所述CNOT门和所述普通加法器模块进行级联,生成量子比较器对应的目标量子线路,所述CNOT门的其中一个输出项与所述CNOT门的其中一个输入项对应。
进一步地,所述普通减法器模块的三个输入项包括两个待比较量子态输入项、一个比较辅助输入项,所述普通减法器模块的三个输出项包括两个第一比较中间结果输出项和一个比较中间辅助输出项;
所述CNOT门的两个输入项包括所述普通减法器模块的其中一个第一比较中间结果输出项和一个比较结果输入项,所述CNOT门的两个输出项包括一个第二比较中间结果输出项和一个比较结果输出项;
所述普通加法器模块的三个输入项包括所述普通减法器模块的另外一个第一比较中间结果输出项和一个比较中间辅助输出项,以及所述CNOT门的一个第二比较中间结果输出项;所述普通加法器模块的三个输出项包括两个待比较量子态输出项和一个比较辅助输出项。
如图4所示,图4为本发明实施例提供的一种量子比较器对应的目标量子线路图。|x>、|y>和|a>为普通减法器的三个输入项,其中,|x>和|y>为两个待比较量子态输入项,“/n”表示n个量子比特,表示分别用n个量子比特编码两个目标数据得到|x>和|y>。|a>为一个比较辅助输入项,|a>的初始输入态可以是|0>,也可以是|1>,用于加减法过程中的进位辅助。|x>输入项对应的输出项为CNOT门的其中一个输入项,|b>为CNOT门的另外一个输入项。|y>和|a>输入项对应的输出项以及CNOT门的其中一个输入项对应的输出项为普通加法器的三个输入项。最终|x>、|y>和|a>都被恢复为初始的输入量子态,|b>演化的最终量子态|g>用于存储|x>和|y>的比较结果,可以用|0>表示x>y,用|1>表示x<y;也可以用|1>表示x>y,用|0>表示x<y。
更近一步地,所述普通减法器模块的其中一个待比较量子态输入项包括一个待比较量子态数值输入项和一个待比较量子态符号输入项;所述普通减法器模块的其中一个第一比较中间结果输出项包括一个第一比较中间数值结果输出项和一个第一比较中间符号结果输出项;
所述CNOT门的其中一个输入项为所述普通减法器模块的一个第一比较中间符号结果输出项;
所述普通加法器模块的其中一个输入项包括所述普通减法器模块的一个第一比较中间数值结果输出项和所述普通减法器模块的一个第一比较中间符号结果输出项。
如图5所示,图5为本发明实施例提供的另一种量子比较器对应的目标量子线路图。编码目标数据的n个量子比特中,n-1个量子比特用于编码目标数据的数值,一个量子比特用于编码目标数据的符号,分别对应普通减法器模块的其中一个待比较量子态输入项包括一个待比较量子态数值输入项和一个待比较量子态符号输入项。CNOT门作用在编码目标数据符号的量子比特和编码比较结果的量子比特上,其中,编码目标数据符号的量子比特的量子态为控制位,编码比较结果的量子比特的量子态为受控位。可以看出,最终的比较结果|g>与符号位相关。
步骤302:通过所述目标量子线路对所述两个第一目标量子态的各量子比特进行比较运算,生成第二目标量子态。
具体地,在所述通过所述目标量子线路对所述两个第一目标量子态的各量子比特进行比较运算,生成第二目标量子态方面,包括:
制备比较辅助输入量子态和比较结果输入量子态;
将所述两个第一目标量子态作为所述两个待比较量子态输入项的输入,以及将所述比较辅助输入量子态作为比较辅助输入项的输入,将所述比较结果输入量子态作为所述比较结果输入项的输入,得到制备初态后的所述目标量子线路;
步骤303:运行制备初态后的所述目标量子线路,以及测量所述比较结果输入量子态对应的量子比特,得到第二目标量子态。
对于图5,若比较辅助输入项和比较结果输入项的初始量子态均为|0>,大于或等于0用|0>表示,小于0用|1>表示,则各模块的量子态演化如下:普通减法器模块的输入量子态为|x0···xn-2>|xn-1>|y>|0>|0>,输出量子态为|x-y>|g>|y>|0>|0>;CNOT门的输入量子态为|x-y>|g>|y>|0>|0>,输出量子态为|x-y>|0>|y>|0>|g>;普通加法器模块的输入量子态为|x-y>|0>|y>|0>|g>,输出量子态为|x0···xn-2>|xn-1>|y>|0>|g>。测量可以得到|g>,若x-y≥0,则|g>为|0>,若x-y<0,则|g>为|1>。
需要说明的是,这里的普通减法器仅仅为普通加法器的转置共轭,而非真正的减法器,其目的只是为了判断x和y的大小,故不需要额外的辅助量子比特,如用于辅助表示最终进位的量子比特和用于辅助判断是否需要补码的量子比特。
与现有技术相比,本发明提供的一种量子比较运算方法,通过获取待比较的两个目标数据,并将两个目标数据转换为两个第一目标量子态;对所述两个第一目标量子态执行比较运算对应的量子态演化,获得演化后的存储比较运算结果的第二目标量子态;将最终获得的所述第二目标量子态作为所述待比较的两个目标数据的比较运算结果进行输出,从而实现了量子比较运算,填补量子计算领域中基础算术运算的空白。
第三具体方法实施例:
参见图6,图6为本发明实施例提供的一种量子模数加法运算的流程示意图,所述模数运算为模数加法运算,所述目标数据和第一目标量子态均为两个,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,包括:
步骤601:获取普通加法器模块、常数模减法器模块、常数模加法器模块和比较器模块;
其中,普通加法器模块、常数模减法器模块、常数模加法器模块和比较器模块具体实施方式参见第一具体实施例或第二具体实施例,在此不做赘述。需要说明的是,比较器也还可以有其他的具体实施方式,在此不做限定。
步骤602:将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路;
具体地,所述普通加法器模块包括四个输入项和四个输出项,所述常数模减法器模块包括三个输入项和三个输出项,所述常数模加法器模块包括三个输入项和三个输出项,所述比较器模块包括四个输入项和四个输出项;
所述将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路,包括:
将所述普通加法器模块的其中三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,将所述常数模加法器模块的三个输出项和所述普通加法器模块的另外一个输出项作为所述比较器模块的四个输入项,以及将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路。
进一步地,所述普通加法器模块的四个输入项包括两个待相加量子态输入项、一个加法进位输入项以及一个加法辅助输入项,所述普通加法器模块的四个输出项包括两个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项;
所述常数模减法器模块的三个输入项包括所述普通加法器模块的其中一个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项,所述常数模减法器模块的三个输出项包括一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项,所述常数模加法器模块的三个输出项包括一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项;
所述比较器模块的四个输入项包括所述普通加法器模块的另外一个第一加法中间结果输出项、所述常数模加法器模块的一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项,所述比较器模块的四个输出项包括一个待相加量子态输出项、一个模数加法结果输出项、一个加法进位结果输出项以及一个加法辅助结果输出项。
如图7所示,图7为本发明实施例提供的一种模数加法器对应的目标量子线路图。n、n+2表示量子比特的个数,对于各模块的说明如下:|y>、|x>、|a>和|b>为所述普通加法器模块的四个输入项,|y>和|x>为两个待相加量子态输入项,各用n个量子比特表示目标数据转化后的量子态,一个加法进位输入项|a>,用一个量子比特的量子态表示求和之后的最终进位;|b>为加法辅助输入项,用一个量子比特的量子态表示在求和过程中的进位。这里用到的量子比特的数量为2n+2。
常数模减法器模块用于将|x>在普通加法器模块中对应的输出项|x+y>与常数模p求差,这里常数模p对应的量子态用n个量子比特表示,还需1个量子比特用于判断求差时是否需要补码,因此还需要增加n+1个量子比特,这里用到的量子比特的数量为3n+3。
常数模加法器模块用于将常数模减法器模块中的输出项|x+y-p>与常数模p求和。这里同样还是从n+2个量子比特中取n个用于表示常数模p,第二加法进位输出项的量子态用于控制是否通过常数模加法器进行常数模加法运算,若量子态为|1>则进行常数模加法运算,若量子态为|0>则不进行常数模加法运算。通过常数模加法器进行常数模加法运算的原理与上述常数模减法器进行常数模减法运算的原理类似,在此不再详述。
步骤603:通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态。
具体地,在所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态方面,包括:
制备加法进位输入量子态和加法辅助输入量子态;
将两个所述第一目标量子态作为所述待相加量子态输入项的输入,将所述加法进位输入量子态作为所述加法进位输入项的输入,以及将所述加法辅助输入量子态作为加法辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述比较器模块的一个模数加法结果输出项对应的量子比特,得到第二目标量子态。
举例说明,例如将加法进位输入项和加法辅助输入项的初始量子态——加法进位输入量子态和加法辅助输入量子态制备为|0>,分两种情况介绍各模块的量子态演化:
第一种x+y≥p:普通加法器模块的输入量子态为|y>|x>|0>|0>,输出量子态为|y>|x+y>|0>|0>或|y>|x+y>|1>|0>;常数模减法器的输入量子态为|y>|x+y>|0>|0>或|y>|x+y>|1>|0>,输出量子态为|x+y-p>|0>|0>|p>|0>;由于进位项为|0>,不触发常数模加法器。比较器模块用于重置进位项,由于进位项为|0>,因此不改变进位。最终的输出量子态为|y>|x+y-p>|0>|0>,测量|x>对应的n个量子比特即可得到|x+ymod p>,即|x+y-p>。
第二种x+y<p:第一普通加法器模块的输入量子态为|y>|x>|0>|0>,输出量子态为|y>|x+y>|0>|0>;常数模减法器的输入量子态为|x+y-p>|0>|0>|p>|0>,输出量子态为|x+y-p>|1>|0>|p>|0>;由于进位项为|1>,触发常数模加法器,常数模加法器模块的输入量子态为|x+y-p>|1>|0>|p>|0>,输出量子态为|x+y>|1>|0>|p>|0>。比较器模块用于将进位项|1>重置为|0>。最终的输出量子态为|y>|x+y>|0>|0>,测量|x>对应的n个量子比特即可得到|x+y mod p>,即|x+y>。
与现有技术相比,本发明提供的一种量子模数加法运算方法,通过获取待运算的两个目标数据,并将所述待运算的两个目标数据转换为两个第一目标量子态;对所述两个第一目标量子态执行模数加法运算对应的量子态演化,获得演化后的存储模数加法运算结果的第二目标量子态;将最终获得的所述第二目标量子态作为所述待运算的两个目标数据的模数加法运算结果进行输出,实现了量子线路中的模数加法运算操作,填补了相关技术空白。
第四具体方法实施例:
参见图8,图8为本发明实施例提供的一种量子模数倍增运算的流程示意图,所述模数运算为模数倍增运算,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,包括:
步骤801:获取常数倍增器模块、常数模减法器模块和常数模加法器模块;
其中,常数模减法器模块和常数模加法器模块具体实施方式参见第一具体实施例,在此不做赘述。
其中,所述常数倍增器模块由目标个数的SWAP门级联构成,所述目标个数基于所述第一目标量子态对应的量子比特的个数确定;所述常数倍增器模块的三个输入项包括所述SWAP门的两个输入项,所述常数倍增器模块的三个输入项包括所述SWAP门的两个输出项。
如图9所示,图9为本发明实施例提供的一种常数倍增器对应的目标量子线路图。常数倍增器包括两个输入项和两个输出项,第一个输入项用于输入目标数据x的量子态|x>,将该目标数据x编码在n个量子比特上,得到量子态|x0>···|xn-1>,第二个输入项为进位输入项|a>,用于最终计算结果的辅助进位,其初始输入量子态可以为|0>。常数倍增器模块包括n个SWAP门,每个SWAP门用于将相邻的两个量子比特上的量子态进行交换。例如,目标数据为7,二进制表示111,则加上进位项的输入为0111,通过SWAP门将相邻的两个量子比特上的量子态进行交换,得到输出为1110,用十进制表示为14。
除了上述这种方式实现常数倍增运算外,还可以直接在输入时进行错位编码,将目标数据x转化的第一目标量子态|x>从第二个量子比特开始编码,编码到n-1个量子比特和1个辅助进位的量子比特上,将n个量子比特中的第一个量子比特制备为|0>。例如将一组量子比特为q0、q1、q2、q3,表示第0位、第1位、第2位量子比特,从高位到低位排序为q3q2q1q0。将目标数据为7的二进制表示111转化为量子比特的量子态111q0,将q0的量子态制备为0,则输出为1110,用十进制表示为14。
步骤802:将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路;
具体地,所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块均包括三个输入项和三个输出项,在所述将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路方面,包括:
将所述常数倍增器模块的三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,以及将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路。
其中,所述常数倍增器模块的三个输入项包括一个待倍增量子态输入项、一个倍增进位输入项以及一个倍增辅助输入项;所述常数倍增器模块的三个输出项包括一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;
所述常数模减法器模块的三个输入项包括所述常数倍增器模块的一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;所述常数模减法器模块的三个输出项包括一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;所述常数模加法器模块的三个输出项包括一个模数倍增结果输出项、一个倍增进位输出项和一个倍增辅助输出项。
如图10所示,图10为本发明实施例提供的一种模数倍增器对应的目标量子线路图。n、n+2表示量子比特的个数,对于各模块的说明如下:|x>、|a>和|b>为所述常数倍增器模块的三个输入项,|x>为一个待倍增量子态输入项,用n个量子比特表示目标数据转化后的量子态;一个倍增进位输入项|a>,用于表示常数倍增运算时产生的进位;一个倍增辅助输入项|b>,若常数倍增器的具体实现形式为图9所示的常数倍增器,则不需要用到该倍增辅助输入项,若常数倍增器的具体实现形式为其他的实现形式,例如通过普通加法器来实现常数倍增运算,则需要用到该倍增辅助输入项。因此是否用到倍增辅助输入项取决于具体常数倍增器具体的实现形式。
待倍增量子态输入项对应的输出项为第一倍增中间结果输出项,倍增进位输入项对应的输出项为第一倍增中间进位输出项,第一倍增中间结果输出项和第一倍增中间进位输出项用于表示x的常数倍增运算结果2x。倍增辅助输入项对应的输出项为第一倍增中间辅助输出项,无论该倍增辅助输入项是否用到,其对应的输出项为第一倍增中间辅助输出项都会被复原,可以重新用于其他的辅助运算。
所述常数模减法器模块的三个输入项包括所述常数倍增器模块的一个第一倍增中间结果输出项、一个第一倍增中间进位输出项以及一个第一倍增中间辅助输出项。第一倍增中间结果输出项和第一倍增中间进位输出项表示的常数倍增运算结果2x再与常数模p进行减法运算。从n+2个辅助比特中取复原的n个量子比特表示模p,取一个复原的量子比特用于辅助减法器中的补码判断和一个复原的量子比特用于辅助减法器过程中的进位辅助。这n+2个辅助比特的量子态表示第一倍增中间辅助输出项。第一倍增中间结果输出项对应的输出项为第二倍增中间结果输出项,第一倍增中间进位输出项对应的输出项为第二倍增中间进位输出项,第二倍增中间结果输出项和第二倍增中间进位输出项用于表示常数倍增运算结果2x与模p的减法运算结果2x-p。这里,第一倍增中间辅助输出项对应的第二倍增中间辅助输出项经过常数模减法运算后也被复原,可以用于下一模块的计算。
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二倍增中间结果输出项、一个第二倍增中间进位输出项和一个第二倍增中间辅助输出项。第二倍增中间进位输出项用于控制是否进行常数模加法运算,若量子态为|1>则进行常数模加法运算,若量子态为|0>则不进行常数模加法运算。通过常数模加法器进行常数模加法运算的原理与上述常数模减法器进行常数模减法运算的原理类似,在此不再详述。
步骤803:通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态。
具体地,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态方面,包括:
制备倍增进位输入量子态和倍增辅助输入量子态;
将所述第一目标量子态作为所述待倍增量子态输入项的输入,将所述倍增进位输入量子态作为所述倍增进位输入项的输入,将所述倍增辅助输入量子态作为所述倍增辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述常数模加法器模块的一个模数倍增结果输出项对应的量子比特,得到第二目标量子态。
举例说明,例如将倍增进位输入量子态和倍增辅助输入量子态的初始量子态均制备为|0>,分两种情况介绍各模块的量子态演化:
第一种2x≥p:常数倍增器模块的输入量子态为|x>|0>,输出量子态为|2x>|1>;常数模减法器的输入量子态为|2x>|1>|p>|0>|0>,输出量子态为|2x-p>|0>|p>|0>|0>。由于第二中间进位输出项为|0>,不触发常数模加法器。测量|x>对应的n个量子比特即可得到|2x mod p>,即|2x-p>。
第二种2x<p:常数倍增器模块的输入量子态为|x>|0>,输出量子态为|2x>|1>;常数模减法器的输入量子态为|2x>|1>|p>|0>|0>,输出量子态为|2x-p>|1>|p>|0>|0>;由于进位项为|1>,触发常数模加法器,常数模加法器模块的输入量子态为|2x-p>|1>|p>|0>|0>,输出量子态为|2x>|0>|p>|0>|0>。测量|x>对应的n个量子比特即可得到|2x mod p>,即|2x>。
与现有技术相比,本发明提供的一种量子模数倍增运算方法,通过获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;对所述第一目标量子态执行模数倍增运算对应的量子态演化,获得演化后的存储模数倍增运算结果的第二目标量子态;将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数倍增运算结果进行输出,实现了量子线路中的模数倍增运算操作,填补了相关技术空白。
第五具体方法实施例:
参见图11,图11为本发明实施例提供的一种量子模数快速乘法运算的流程示意图,所述模数运算为模数快速乘法运算,所述目标数据和第一目标量子态均为两个,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,包括:
步骤1101:获取模数加法器模块和模数倍增器模块;
其中,模数加法器模块的具体实现方式参见第三具体实施例,模数倍增器模块的具体实现方式参见第四具体实施例,在此不做赘述。
步骤1102:将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路;
具体地,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同;所述模数倍增器模块的数量比所述第一目标量子态的量子比特的数量n少一个;在所述将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路方面,包括:
将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
其中,第一目标量子态的量子比特的数量为用于编码目标数据的量子比特的数量。交替级联的具体形式如下:
A0B0A1B1······AiBi······An-2Bn-2An-1
其中,Ai为第i个模数加法器模块,Bi为第i个模数倍增器模块。
进一步地,所述模数加法器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;在所述将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路方面,包括:
将当前的所述模数加法器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述模数加法器的另外两个输出项与当前的所述模数倍增器的两个输出项作为下一个所述模数加法器模块的四个输入项;
以及将n个所述模数加法器模块和n-1个所述模数乘法器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
其中,所述模数加法器模块的四个输入项包括两个待快速乘法量子态输入项、一个模数快速乘法结果输入项和一个快速乘法辅助输入项;所述模数加法器模块的四个输出项包括两个待快速乘法量子态输出项、一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;
所述模数倍增器模块的两个输入项包括所述模数加法器模块的一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;所述模数倍增器模块的两个输出项包括一个第二模数快速乘法结果输出项和一个第二快速乘法辅助输出项。
其中,每个待快速乘法量子态输入项包括n个子量子态输入项,每个子量子态输入项对应一个量子比特的量子态作为其输入,量子比特的量子态为|0>或|1>。模数加法器模块的一个输入项为待快速乘法量子态输入项的一个子量子态输入项,该子量子态输入项输入的量子态用于控制是否执行该模数加法器模块的模数加法运算操作,因此该子量子态输入项也可以称为控制位输入项。控制位输入项的输入量子态为|0>,则不执行模数加法运算操作;输入量子态为|1>,则执行模数加法运算操作。第i个模数加法器模块的控制位输入项为第n-1-i个量子比特对应的子量子态输入项,这里i从0开始取值。
步骤1103:通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态。
在所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态方面,包括:
制备模数快速乘法结果输入量子态和快速乘法辅助输入量子态;
将所述第一目标量子态作为两个所述待快速乘法量子态输入项的输入,将所述模数快速乘法结果输入量子态作为所述模数快速乘法结果输入项的输入,将所述辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述模数快速乘法结果输入量子态对应的量子比特,得到第二目标量子态。
举例说明,如图12所示,图12为本发明实施例提供的一种模数快速乘法器对应的目标量子线路图。两个第一目标量子态分别为|x>、|y>,其中用n个量子比特编码得到的|x>,其又可以写为|x0>|x1>···|xn-1>;模数快速乘法结果输入项对应的量子态用n个量子比特表示,快速乘法辅助输入项对应的量子态用n+3个量子比特表示,模数快速乘法结果输入量子态和快速乘法辅助输入量子态均制备为|0>。模数加法器模块通过上述图7所示的线路实现,模数倍增器通过上述图10所示的线路实现。
对于第一个模数加法器模块,通过控制位|xn-1>判断是否执行,若|xn-1>为|1>,则输出为|y mod p>;若|xn-1>为|0>,则输出为|y>;对于第一个模数倍增器,若输入为|y modp>,则输出为|2(y mod p)>,若输入为|y>,则输出为|2y mod p>,后续模块的输入输出均可以根据上述原理推导得到,在此不一一详述。
对于最后一个模数加法器模块,其包括的比较器模块的四个输出项的量子态,两个待快速乘法量子态输出项、一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项即为最终结果。
与现有技术相比,本发明提供的一种量子模数快速乘法运算方法,通过获取待运算的两个目标数据,并将所述待运算的两个目标数据转换为两个第一目标量子态;对两个所述第一目标量子态执行模数快速乘法运算对应的量子态演化,获得演化后的存储模数快速乘法运算结果的第二目标量子态;将最终获得的所述第二目标量子态作为所述待运算的两个目标数据的模数快速乘法运算结果进行输出,实现了量子线路中的模数快速乘法运算操作,填补了相关技术空白。
第六具体方法实施例:
参见图13,图13为本发明实施例提供的一种量子模数平方运算的流程示意图,所述模数运算为模数平方运算,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,包括:
步骤1301:获取CNOT门、模数加法器模块和模数倍增器模块;
其中,CNOT门、模数加法器模块和模数倍增器模块的具体实施方式见上述具体方法实施例,在此不做赘述。
其中,所述CNOT门的数量是所述第一目标量子态的量子比特的数量n的两倍,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同,所述模数倍增器模块的数量比所述第一目标量子态的量子比特n的数量少一个。
步骤1302:将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路;
具体地,在所述将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路方面,包括:
将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块;
将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
其中,每两个所述CNOT门与一个所述模数加法器模块进行级联,是指先将一个CNOT门与模数加法器模块连接,再将模数加法器与另外一个CNOT门连接,形成如ABA的结构。
其中,交替级联的具体形式如下:
A0B0A1B1······AiBi······An-2Bn-2An-1
其中,Ai为第i个第一运算器模块,Bi为第i个模数倍增器模块。
进一步地,所述CNOT门包括两个输入项和两个输出项,所述模数加法器模块包括四个输入项和四个输出项,在所述将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块方面,包括:
将每两个所述CNOT门中的其中一个CNOT门的两个输出项作为一个所述模数加法器模块的其中两个输入项,将所述模数加法器模块的其中两个输入项对应的两个输出项作为每两个所述CNOT门中的另外一个CNOT门的两个输入项,以及将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块。
其中,每两个所述CNOT门中的其中一个CNOT门的两个输入项包括一个第一控制输入项和一个第一待平方量子态输入项;每两个所述CNOT门中的其中一个CNOT门的两个输出项包括一个第一控制输出项和一个第一待平方量子态输出项;
一个所述模数加法器模块的四个输入项包括每两个所述CNOT门中的其中一个CNOT门的一个第一控制输出项和一个第一待平方量子态输出项,以及一个第一模数平方输入项和一个第一平方辅助输入项;一个所述模数加法器模块的四个输出项包括一个第二控制输出项和一个第二待平方量子态输出项,以及一个第一模数平方输出项和一个第一平方辅助输出项;
每两个所述CNOT门中的另外一个CNOT门的两个输入项包括一个所述模数加法器模块的一个第二控制输出项和一个第二待平方量子态输出项;每两个所述CNOT门中的另外一个CNOT门的两个输出项包括一个第三控制输出项和一个第三待平方量子态输出项。
这里需要注意的是,对于CNOT门来说,CNOT门的控制位为第一待平方量子态输入项的一个子输入项对应的量子态,举例来说,对于第一个第一运算器模块中的两个CNOT门,控制位为|xn-1>;对于第二个第一运算器模块中的两个CNOT门,控制位为|xn-2>,其余的以此类推可以确定其控制位和受控位。对于模数加法器模块来说,则控制位为第一控制输入项对应的量子态。举例说明,第一控制输入项对应的初始量子态为|0>,若|xn-1>为|0>,则不进行交换,第一个模数加法器模块不执行;若|xn-1>为|1>,则进行交换,第一控制输入项对应的量子态演化为|1>,第一个模数加法器模块执行,两个待相加的量子态为|1>和|0>。
进一步地,所述第一运算器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;在所述将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路方面,包括:
将当前的所述第一运算器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述第一运算器模块的另外两个输出项和当前的所述模数倍增器模块的两个输出项作为下一个所述第一运算器模块的四个输入项,将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
其中,所述第一运算器模块的四个输入项包括一个第二控制输入项、一个第二待平方量子态输入项、一个第二模数平方输入项和一个第二平方辅助输入项,所述第一运算器模块的四个输出项包括一个第四控制输出项、一个第四待平方量子态输出项、一个第二模数平方输出项、一个第二平方辅助输出项;
所述模数倍增器模块的两个输入项包括一个所述第二模数平方输出项、一个所述第二平方辅助输出项,所述模数倍增器模块的两个输出项包括一个第三模数平方输出项、一个第三平方辅助输出项。
需要说明的是,对于最后一个第一运算器模块的四个输出项,一个第四控制输出项、一个第四待平方量子态输出项、一个第二模数平方输出项、一个第二平方辅助输出项,即为最终的结果输出项。
步骤1303:通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数平方运算,生成第二目标量子态。
具体地,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态方面,包括:
制备控制输入量子态、模数平方输入量子态和平方辅助输入量子态;
将所述控制输入量子态作为所述第二控制输入项的输入,将所述第一目标量子态作为所述第二待平方量子态输入项的输入,将所述模数平方输入量子态作为所述第二模数平方输入项的输入,将所述平方辅助输入量子态作为所述第二平方辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第二模数平方输入项对应的量子比特,得到第二目标量子态。
需要说明的是,第二控制输入项与第一控制输入项对应,第二待平方量子态输入项与第一待平方量子态输入项对应,第二模数平方输入项与第一模数平方输入项对应,第二平方辅助输入项与第一平方辅助输入项对应。第四控制输出项与第三控制输出项对应,第四待平方量子态输出项与第三待平方量子态输出项对应、第二模数平方输出项与第一模数平方输出项对应、第二平方辅助输出项与第一平方辅助输出项对应。
因此,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态方面,另外一具体实施方式为:
制备控制输入量子态、模数平方输入量子态和辅助输入量子态;
将所述控制输入量子态作为所述第一控制输入项的输入,将所述第一目标量子态作为所述第一待平方量子态输入项的输入,将所述模数平方输入量子态作为所述第一模数平方输入项的输入,将所述平方辅助输入量子态作为所述第一平方辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第一模数平方输入项对应的量子比特,得到第二目标量子态。
举例说明,如图14所示,图14为本发明实施例提供的一种模数平方器对应的目标量子线路图。图14包括n个第一运算器模块和n-1个模数倍增器交替级联,每个第一运算器模块包括两个CNOT门和一个模数加法器模块。控制输入量子态用一个量子比特进行编码,第一目标量子态用n个量子比特进行编码,模数平方输入量子态用n个量子比特进行编码,辅助输入量子态用n+3个量子比特进行编码。
在本发明实施例中,控制输入量子态、模数平方输入量子态和平方辅助输入量子态均制备为|0>,第一目标量子态制备为|x>,或者用|x0x1···xn-2xn-1>表示,其最终演化的结果即最后一个第一运算器模块的四个输出项的量子态,第四控制输出项的量子态和第二平方辅助输出项的量子态还是为|0>,第四待平方量子态输出项依旧为|x>,可以用于后续其他运算,第二模数平方输出项的量子态即为|x2mod p>。
与现有技术相比,本发明提供的一种量子模数平方运算方法,通过获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;对所述第一目标量子态执行模数平方运算对应的量子态演化,获得演化后的存储模数平方运算结果的第二目标量子态;将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数平方运算结果进行输出,实现了量子线路中的模数平方运算操作,填补了相关技术空白。
第七具体方法实施例:
参见图15,图15为本发明实施例提供的一种量子模数乘逆运算的流程示意图,所述模数运算为模数乘逆运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
步骤1501:获取量子态转换模块、乘逆输出模块、第一CNOT门、乘逆处理模块、逆乘逆输出模块,其中,组成所述乘逆输出模块的逻辑门与组成所述逆乘逆输出模块的逻辑门转置共轭;
其中,转置共轭指的是矩阵的一种数学变换,具体操作方法是先将矩阵A中的每个元素取共轭,将新得到的元素组成新的矩阵B,然后再对矩阵B作转置变换。各模块由多个逻辑门组成,逻辑门可以写成矩阵形式,模块的转置共轭即组成该模块的逻辑门的转置共轭。
步骤1502:将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路;
具体地,所述量子态转换模块的数量为六,所述量子态转换模块包括一个输入项和一个输出项,所述乘逆输出模块包括七个输入项和七个输出项,所述第一CNOT门包括两个输入项和两个输出项;所述乘逆处理模块包括五个输入项和五个输出项;所述逆乘逆处理模块包括七个输入项和七个输出项;
所述将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路,包括:
将第一个所述量子态转换模块的输出项、第二个所述量子态转换项的输出项作为所述乘逆输出模块的其中两个输入项;
将所述乘逆输出模块的第二个输出项作为第三个所述量子态转换模块的输入项,第四个输出项作为所述第一CNOT门的其中一个输入项;将所述乘逆输出模块的第一个输出项、第三个输出项、第七个输出项,第三个所述量子态转换模块的输出项以及所述第一CNOT门的其中一个输出项作为所述乘逆处理模块的五个输入项;
将所述乘逆处理模块的第二个输出项作为第四个所述量子态转换模块的输入项;将所述乘逆处理模块的第一个输出项、第三个输出项和第四个输出项,第四个所述量子态转换模块的输出项,所述第一CNOT门的另外一个输出项,所述乘逆输出模块的第五个输出项和第六个输出项作为所述逆乘逆输出模块的七个输入项;
将所述逆乘逆输出模块的第二个输出项作为第五个所述量子态转换模块的输入项,将所述逆乘逆输出模块的第五个输出项作为第六个所述量子态转换模块的输入项;
将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路。
其中,第一个所述量子态转换模块的输入项包括一个第一乘逆辅助输入项,第一个所述量子态转换模块的输出项包括一个第一乘逆辅助输出项;第二个所述量子态转换模块的输入项包括一个第二乘逆辅助输入项,第二个所述量子态转换模块的输出项包括一个第二乘逆辅助输出项;
所述乘逆输出模块的七个输入项包括一个待乘逆量子态输入项、一个所述第一乘逆辅助输出项、一个所述第二乘逆辅助输出项和四个第三乘逆辅助输入项;所述乘逆输出模块的七个输出项包括一个第一待乘逆量子态输出项和六个第三乘逆辅助输出项;
所述第一CNOT门的两个输入项包括一个所述第三乘逆辅助输出项和一个第四乘逆辅助输入项,所述第一CNOT门的两个输出项包括两个第四乘逆辅助输出项;第三个所述量子态转换模块的输入项包括一个所述第三乘逆辅助输出项,第三个所述量子态转换模块的输出项包括一个第五乘逆辅助输出项;
所述乘逆处理模块的五个输入项包括两个所述第三乘逆辅助输出项、一个所述第五乘逆辅助输出项、一个所述第一待乘逆量子态输出项和其中一个所述第四乘逆辅助输出项;所述乘逆处理模块的五个输出项包括一个第二待乘逆量子态输出项和四个第六乘逆辅助输出项;
第四个所述量子态转换项的输入项包括一个所述第六乘逆辅助输出项,第四个所述量子态转换项的输出项包括一个第七乘逆辅助输出项;
所述逆乘逆输出模块的七个输入项包括两个所述第六乘逆辅助输出项、一个所述辅助第七乘逆输出项、一个所述第二待乘逆量子态输出项、另外一个所述第四乘逆辅助输出项、两个所述第三乘逆辅助输出项,所述逆乘逆输出模块的七个输出项包括一个第三待乘逆量子态输出项和六个第八乘逆辅助输出项;
第五个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第五个所述量子态转换模块的输出项包括一个第九乘逆辅助输出项;第六个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第六个所述量子态转换模块的输出项包括一个第十乘逆辅助输出项。
其中,第一个所述量子态转换模块用于将输入态转换为|p>,第二个所述量子态转换模块和第四个所述量子态转换模块用于将输入态转换为|1>,第三个所述量子态转换模块、第五个所述量子态转换模块和第六个所述量子态转换模块用于将输入态转换为|0>,其中,所述|p>为模数p转换的量子态。
步骤1503:通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态。
具体地,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态方面,包括:
制备第一乘逆辅助输入量子态、第二乘逆辅助输入量子态、第三乘逆辅助输入量子态和第四乘逆辅助输入量子态;
将所述第一乘逆辅助输入量子态作为所述第一乘逆辅助输入项的输入,将所述第二乘逆辅助输入量子态作为所述第二乘逆辅助输入项的输入,将所述第三乘逆辅助输入量子态作为所述第三乘逆辅助输入项的输入,将所述第四乘逆辅助输入量子态作为所述第四乘逆辅助输入项的输入,将所述第一目标量子态作为所述待乘逆量子态输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第四乘逆辅助输入项对应的量子比特,得到第二目标量子态。
如图16所示,图16为本发明实施例提供的一种模数乘逆器的对应的目标量子线路图。第一个所述量子态转换模块的输入项包括一个第一乘逆辅助输入项,其对应n个量子比特(图16中的第二条线),这n个量子比特的初始量子态即第一乘逆辅助输入量子态制备为|0>;第二个所述量子态转换模块的输入项包括一个第二乘逆辅助输入项,其对应n+1个量子比特(图16中的第五条线),这n+1个量子比特的初始量子态即第二乘逆辅助输入量子态制备为|0>。
乘逆输出模块的一个待乘逆量子态输入项对应n个量子比特(图16中的第三条线),这n个量子比特的初始量子态即第一目标量子态制备为|x>;第一个第三乘逆辅助输入项对应4个量子比特(图16中的第一条线),这4个量子比特的初始量子态即第三乘逆辅助输入量子态制备为|0>,其用于作为乘逆输出模块的控制位;第二个第三乘逆辅助输入项对应n+1个量子比特(图16中的第四条线),这n+1个量子比特的初始量子态即第三乘逆辅助输入量子态制备为|0>;第三个第三乘逆辅助输入项对应2n个量子比特(图16中的第六条线),这2n个量子比特的初始量子态即第三乘逆辅助输入量子态制备为|0>;第四个第三乘逆辅助输入项对应l个量子比特(图16中的第七条线),这l个量子比特的初始量子态即第三乘逆辅助输入量子态制备为|0>,其中l=logn。
所述第一CNOT门的第四乘逆辅助输入项对应n个量子比特(图16中的第八条线),这n个量子比特的初始量子态即第四乘逆辅助输入量子态制备为|0>。
待乘逆量子态输入项对应n个量子比特的末态为|x>,第一乘逆辅助输入项对应的n个量子比特的末态为|0>,第二乘逆辅助输入项对应的n+1个量子比特的末态为|0>,四个第三乘逆辅助输入项对应的量子比特的末态为|0>,这些量子比特可以用于后续的运算操作。第四乘逆辅助输入项对应的量子比特的末态为|x-1mod p>,用于存储模数乘逆运算结果。
在本发明的一具体实施例中,所述方法还包括:
获取三个X门和2n个第二运算器模块,所述X门包括一个输入项和一个输出项,所述第二运算器模块包括八个输入项和八个输出项;
将2n所述个第二运算器模块进行级联,生成第三运算器模块;
将其中两个所述X门的输出项作为所述第三运算器模块的其中两个输入项,将所述第三运算器模块的其中一个输入项作为另外一个所述X门的输入项,将三个所述X门和所述第三运算器模块进行级联,生成所述乘逆处理模块。
进一步地,所述方法还包括:
获取一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门,所述X门包括一个输入项和一个输出项,所述第二CNOT门包括两个输入项和两个输出项,所述普通加法器模块包括四个输入项和四个输出项,所述Kaliski门包括七个输入项和七个输出项;
将第一个所述第二CNOT门的其中一个输出项作为第二个所述第二CNOT门的其中一个输出项;
将第一个所述第二CNOT门的另外一个输出项和第二个所述第二CNOT门的其中一个输出项作为所述普通加法器的其中两个输入项;
将所述普通加法器的其中一个输出项作为第三个所述X门的输入项;
将所述普通加法器的其中两个输出项、第二个所述第二CNOT门的另外一个输出项以及第三个所述X门的输出项作为所述Kaliski门的其中四个输入项;
将所述一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门进行级联,生成所述第一运算器模块。
参见图17,图17为本发明实施例提供的一种乘逆输出模块的量子线路图,其中,空白圆形十字图案表示X门,由直线连接的空白圆形十字和实心黑点组成的图案表示CNOT门,实心黑点表示该CNOT门为1控CNOT门,中间的第一运算器模块被重复执行2n次。在图16中,第一个第三乘逆辅助输入项对应4个量子比特(图16中的第一条线),在图17中将其分为了两部分:普通加法器的其中一个输入项对应的3个量子比特和一个X门的输入项对应的一个量子比特。图17中其余的输入项与图16中输入项的关系可以根据图16和图17得出,在此不作详细阐述。
这里需要说明的是,该模块用于将|p>|x>|0>|1>通过执行少于2n次Kaliski门转化为|1>|0>|x-1(-22n-k)mod p>|p>,但是具体执行多少次Kalishi门并不确定,因此需要控制量子线路在转化成功后停止执行Kaliski门,并且记录Kaliski门的执行次数(2n-k)。用2n个量子比特编码的|recoder>,其第i个量子比特编码的量子态记录了第i轮重复线路执行的信息,以保证信息的可逆性。
从图17中可以看出,每个第二运算器模块只能运行普通加法器和Kaliski门中的一个。当图17中的第三条线路的输入量子态为|0>时,普通加法器会被激活从而执行,Kaliski门未被激活不执行;输入量子态为|1>时,相反。
其中,Kaliski门的具体量子线路参见图18。如图18所示,Kaliski门由十个个控制门(由直线连接的空白十字和实心点或空心点图案表示)、两个比较器、四个SAWP门、一个普通加法器、一个普通减法器、一个常数倍减器和一个常数倍增器级联而成。控制门还分为一控一(一个控制位,一个被控位),一控多(一个控制位,多个被控位),多控一(多个控制位,一个被控位),多控多(多个控制位,多个被控位),其中控制位用实心点(1控)或空心点(0控)表示,被控位用中间有十字的圆表示。若为1控,控制位为|0>时,被控制位不变;控制位为|1>时,被控制位取反;若为0控,控制位为|1>时,被控制位不变;控制位为|0>时,被控制位取反。常数倍增器用于将目标数据增大至其两倍,常数倍减器用于将目标数据减小至其1/2。
在图17中,乘逆输出模块的第一个输入项(图17中的第一条线)对应3个量子比特,在图18中将其分为了三个输入项,图18中其余的输入项与图17中输入项的关系可以根据图16和图17得出,在此不作详细阐述。各逻辑门的连接关系可以根据图18得出,也不进行赘述。|ui>、|vi>、|ri>、|si>分别为第二运算器第i+1次被执行时的输入,|ui+1>、|vi+1>、|ri+1>、|si+1>分别为第二运算器第i+1次被执行时的输出。
在本发明的一具体实施例中,所述方法还包括:
获取l+1个模数倍增器模块,以及将l+1个所述模数倍增器模块进行级联,生成所述乘逆处理模块。
如图19所示,图19为本发明实施例提供的一种乘逆处理模块的量子线路图。前l个模数倍增器模块均包括5个输入项和5个输出项,最后一个模数倍增器模块包括4个输入项和4个输出项。前一个模数倍增器模块的输出项作为后一个模数倍增器模块的输入项,l+1个模数倍增器模块级联。其中,5个输入项中有一个输入项对应的量子态为模数倍增器模块的控制位,控制是否执行模数倍增器模块,若量子态为|1>则执行,若量子态为|0>则不执行。最后一个模数倍增器模块无控制位。
与现有技术相比,本发明提供的一种量子模数乘逆运算方法,通过获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;对所述第一目标量子态执行模数乘逆运算对应的量子态演化,获得演化后的存储模数乘逆运算结果的第二目标量子态;将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数乘逆运算结果进行输出,实现了量子线路中的模数乘逆运算操作,填补了相关技术空白。
第八具体方法实施例:
参见图20,图20为本发明实施例提供的一种量子模数完整乘法运算的流程示意图,所述模数运算为模数完整乘法运算,所述目标数据和第一目标量子态均为两个,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
步骤2001:获取模数乘逆器模块、模数快速乘法器模块、逆模数快速乘法器模块、逆模数乘逆器模块和SWAP门,其中,组成所述模数乘逆器模块的逻辑门与组成所述逆模数乘逆器模块的逻辑门转置共轭,组成所述模数快速乘法器模块的逻辑门与组成所述逆模数快速乘法器模块的逻辑门转置共轭;
其中,模数乘逆器模块、模数快速乘法器模块、逆模数快速乘法器模块、逆模数乘逆器模块和SWAP门的具体实施方式见上述具体方法实施例,在此不做赘述。
步骤2002:将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路;
具体地,所述模数乘逆器模块包括四个输入项和四个输出项,所述模数快速乘法器模块包括四个输入项和四个输出项,所述逆模数快速乘法器模块包括五个输入项和五个输出项,所述SWAP门包括两个输入项和两个输出项,所述逆模数乘逆器模块包括四个输入项和四个输出项;
在所述将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路方面,包括:
将所述模数乘逆器模块的其中三个输出项作为所述模数快速乘法器模块的其中三个输入项,将所述模数乘逆器模块的另外一个输出项和所述模数快速乘法器模块的四个输出项作为所述逆模数快速乘法器模块的五个输入项,将所述逆模数快速乘法器模块的其中两个输出项作为所述SWAP门的两个输入项,将所述逆模数快速乘法器模块的另外三个输出项和所述SWAP门的其中一个输出项作为所述逆模数乘逆器的输入项;
以及将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路。
其中,所述模数乘逆器模块的四个输入项包括一个待完整乘法量子态输入项和和三个完整乘法辅助输入项,所述模数乘逆器模块的四个输出项包括第一待完整乘法量子态输出项和三个第一完整乘法辅助输出项;
所述模数快速乘法器模块的四个输入项包括另外一个待完整乘法量子态输入项、所述第一待完整乘法量子态输出项和其中两个所述第一完整乘法辅助输出项;所述模数快速乘法器模块的四个输出项包括两个第二待完整乘法量子态输出项和两个第二完整乘法辅助输出项;
所述逆模数快速乘法器模块的五个输入项包括两个所述第二待完整乘法量子态输出项、两个所述第二完整乘法辅助输出项和另外一个所述第一完整乘法辅助输出项,所述逆模数快速乘法器模块的五个输出项包括两个第三待完整乘法量子态输出项和三个第三完整乘法辅助输出项;
所述SWAP门的两个输入项包括其中一个所述第三待完整乘法量子态输出项和其中一个所述第三完整乘法辅助输出项,所述SWAP门的两个输出项包括一个第四待完整乘法量子态输出项和一个第四完整乘法辅助输出项;
所述逆模数乘逆器模块的四个输入项包括一个所述第四完整乘法辅助输出项、另外两个所述第三完整乘法辅助输出项和另外一个所述第三待完整乘法量子态输出项,所述逆模数乘逆器模块的四个输出项包括一个第五待完整乘法量子态输出项和三个第五完整乘法辅助输出项。
步骤2003:通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态。
具体地,所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态,包括:
制备完整乘法辅助输入量子态;
将两个所述第一目标量子态作为两个所述待完整乘法量子态输入项的输入,将所述完整乘法辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量其中一个所述第一目标量子态对应的量子比特,得到第二目标量子态。
其中,完整乘法辅助输入量子态为|0>。
举例说明,如图21所示,图21为本发明实施例提供的一种模数完整乘法器对应的目标量子线路图。该量子线路包括4n+l+7个第一类型的量子比特、n个第二类型的量子比特、n个第三类型的量子比特、n个第四类型的量子比特、n个第五类型的量子比特。模数乘逆器模块作用于第一类型、第三类型、第四类型和第五类型的量子比特,模数快速乘法器模块作用于第一类型、第二类型、第三类型和第四类型的量子比特,逆模数快速乘法器模块作用于第一类型、第二类型、第三类型、第四类型和第五类型的量子比特,SWAP门作用于第二类型和第三类型的量子比特,逆模数乘逆器模块作用于第一类型、第三类型、第四类型和第五类型的量子比特。这些模块的输入和输出为其作用的量子比特。
第一类型、第三类型和第五类型的量子比特的初始量子态为上述完整乘法辅助输入量子态|0>,第二类型和第四类型的量子比特的初始量子态为第一目标量子态|x>和|y>。第一类型、第三类型和第五类型的量子比特的末态为|0>,可以用于后续的运算,第四类型的量子比特的末态为|y>,第二类型的量子比特的末态为|xy mod p>。可以看出,这里的模数完整乘法结果用其中一个第一目标量子态表示,可以节约比特的数量。
需要说明的是,本第八具体方法实施例与第五具体方法实施例均可以实现模数乘法运算,不同的是,第五具体方法实施例中所使用的量子比特数量和量子逻辑门的数量均少于本第八具体方法实施例中所使用的量子比特数量和量子逻辑门,因此采用第五具体方法实施例中的模数乘法运算速度更快。但是,第五具体方法实施例的量子线路中,模数快速乘法输出结果需要单独的用n个量子比特存储,而第八具体方法实施例的模数完整乘法结果用其中一个第一目标量子态表示,因此,首先模数完整乘法器比模数快速乘法器的量子线路节约比特的数量。另外,模数快速乘法器的量子线路无法实现模数除法运算(模数快速乘法器的转置共轭,亦即逆模数快速乘法器),而模数完整乘法器的量子线路无法实现模数除法运算。
还需要说明的是,除上述八个具体方法实施例中所述的模数加法运算、模数倍增运算、模数快速乘法运算、模数平方运算、模数乘逆运算、模数完整乘法运算之外,通过上述八个具体实施例中的单个或多个模数算数组件实现的其他模数运算也在本发明的保护范围之内,如通过模数加法运算实现的模数减法运算,通过模数倍增运算或模数快速乘法运算或模数完整乘法运算实现的模数n次倍增运算,通过模数平方运算或模数快速乘法运算或模数完整乘法实现的模数幂运算,通过模数完整乘法运算实现的模数除法运算。
具体实现方式可以是通过改变其输入的第一目标量子态,如令两个第一目标量子态分别为|xn>、|1>,或者,令两个第一目标量子态分别为|xn-1>、|x>,亦或者是其他输入量子态,实现的模数幂运算,这里通过|x>实现|xn>或|xn-1>的方式可以是本发明中提及的模数运算组件,也可以是具有其他线路形式的组件,均不做限定;还可以是通过转置共轭操作,如对模数加法运算中的逻辑门进行转置共轭操作实现的模数减法运算,对模数完整乘法运算中的逻辑门进行转置共轭操作实现的模数除法运算;还可以有其他的具体实现方式,均不做限定。
具体装置实施例:
本发明的另一实施例提供了一种量子模数运算装置,如图22所示,所述装置包括:
获取单元2201,用于获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;
演化单元2202,用于对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;
输出单元2203,用于将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出。
可选的,在所述模数运算为模数加法运算,所述目标数据和第一目标量子态均为两个,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元2202具体用于:
获取普通加法器模块、常数模减法器模块、常数模加法器模块和比较器模块;
将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态。
可选的,所述普通加法器模块包括四个输入项和四个输出项,所述常数模减法器模块包括三个输入项和三个输出项,所述常数模加法器模块包括三个输入项和三个输出项,所述比较器模块包括四个输入项和四个输出项;
在所述将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路方面,所述演化单元2202具体用于:
将所述普通加法器模块的其中三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,将所述常数模加法器模块的三个输出项和所述普通加法器模块的另外一个输出项作为所述比较器模块的四个输入项,以及将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路。
可选的,所述普通加法器模块的四个输入项包括两个待相加量子态输入项、一个加法进位输入项以及一个加法辅助输入项,所述普通加法器模块的四个输出项包括两个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项;
所述常数模减法器模块的三个输入项包括所述普通加法器模块的其中一个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项,所述常数模减法器模块的三个输出项包括一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项,所述常数模加法器模块的三个输出项包括一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项;
所述比较器模块的四个输入项包括所述普通加法器模块的另外一个第一加法中间结果输出项、所述常数模加法器模块的一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项,所述比较器模块的四个输出项包括一个待相加量子态输出项、一个模数加法结果输出项、一个加法进位结果输出项以及一个加法辅助结果输出项。
可选的,在所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态方面,所述演化单元2202具体用于:
制备加法进位输入量子态和加法辅助输入量子态;
将两个所述第一目标量子态作为所述待相加量子态输入项的输入,将所述加法进位输入量子态作为所述加法进位输入项的输入,以及将所述加法辅助输入量子态作为加法辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述比较器模块的一个模数加法结果输出项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数倍增运算,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元2202具体用于:
获取常数倍增器模块、常数模减法器模块和常数模加法器模块;
将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态。
可选的,在所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块均包括三个输入项和三个输出项,所述将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路方面,所述演化单元2202具体用于:
将所述常数倍增器模块的三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,以及将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路。
可选的,所述常数倍增器模块的三个输入项包括一个待倍增量子态输入项、一个倍增进位输入项以及一个倍增辅助输入项;所述常数倍增器模块的三个输出项包括一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;
所述常数模减法器模块的三个输入项包括所述常数倍增器模块的一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;所述常数模减法器模块的三个输出项包括一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;所述常数模加法器模块的三个输出项包括一个模数倍增结果输出项、一个倍增进位输出项和一个倍增辅助输出项。
可选的,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态方面,所述演化单元2202具体用于:
制备倍增进位输入量子态和倍增辅助输入量子态;
将所述第一目标量子态作为所述待倍增量子态输入项的输入,将所述倍增进位输入量子态作为所述倍增进位输入项的输入,将所述倍增辅助输入量子态作为所述倍增辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述常数模加法器模块的一个模数倍增结果输出项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数快速乘法运算,所述目标数据和第一目标量子态均为两个,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元2202具体用于:
获取模数加法器模块和模数倍增器模块;
将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态。
可选的,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同;所述模数倍增器模块的数量比所述第一目标量子态的量子比特的数量n少一个;在所述将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路方面,所述演化单元2202具体用于:
将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
可选的,所述模数加法器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;在所述将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路方面,所述演化单元2202具体用于:
将当前的所述模数加法器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述模数加法器的另外两个输出项与当前的所述模数倍增器的两个输出项作为下一个所述模数加法器模块的四个输入项;
以及将n个所述模数加法器模块和n-1个所述模数乘法器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
可选的,所述模数加法器模块的四个输入项包括两个待快速乘法量子态输入项、一个模数快速乘法结果输入项和一个快速乘法辅助输入项;所述模数加法器模块的四个输出项包括两个待快速乘法量子态输出项、一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;
所述模数倍增器模块的两个输入项包括所述模数加法器模块的一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;所述模数倍增器模块的两个输出项包括一个第二模数快速乘法结果输出项和一个第二快速乘法辅助输出项。
可选的,在所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态方面,所述演化单元2202具体用于:
制备模数快速乘法结果输入量子态和快速乘法辅助输入量子态;
将所述第一目标量子态作为两个所述待快速乘法量子态输入项的输入,将所述模数快速乘法结果输入量子态作为所述模数快速乘法结果输入项的输入,将所述辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述模数快速乘法结果输入量子态对应的量子比特,得到第二目标量子态。
可选的,在所述模数运算为模数平方运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元2202具体用于:
获取CNOT门、模数加法器模块和模数倍增器模块;
将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数平方运算,生成第二目标量子态。
可选的,所述CNOT门的数量是所述第一目标量子态的量子比特的数量n的两倍,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同,所述模数倍增器模块的数量比所述第一目标量子态的量子比特n的数量少一个。
可选的,在所述将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路方面,所述演化单元2202具体用于:
将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块;
将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
可选的,所述CNOT门包括两个输入项和两个输出项,所述模数加法器模块包括四个输入项和四个输出项,在所述将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块方面,所述演化单元2202具体用于:
将每两个所述CNOT门中的其中一个CNOT门的两个输出项作为一个所述模数加法器模块的其中两个输入项,将所述模数加法器模块的其中两个输入项对应的两个输出项作为每两个所述CNOT门中的另外一个CNOT门的两个输入项,以及将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块。
可选的,每两个所述CNOT门中的其中一个CNOT门的两个输入项包括一个第一控制输入项和一个第一待平方量子态输入项;每两个所述CNOT门中的其中一个CNOT门的两个输出项包括一个第一控制输出项和一个第一待平方量子态输出项;
一个所述模数加法器模块的四个输入项包括每两个所述CNOT门中的其中一个CNOT门的一个第一控制输出项和一个第一待平方量子态输出项,以及一个第一模数平方输入项和一个第一平方辅助输入项;一个所述模数加法器模块的四个输出项包括一个第二控制输出项和一个第二待平方量子态输出项,以及一个第一模数平方输出项和一个第一平方辅助输出项;
每两个所述CNOT门中的另外一个CNOT门的两个输入项包括一个所述模数加法器模块的一个第二控制输出项和一个第二待平方量子态输出项;每两个所述CNOT门中的另外一个CNOT门的两个输出项包括一个第三控制输出项和一个第三待平方量子态输出项。
可选的,所述第一运算器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;在所述将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路方面,所述演化单元2202具体用于:
将当前的所述第一运算器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述第一运算器模块的另外两个输出项和当前的所述模数倍增器模块的两个输出项作为下一个所述第一运算器模块的四个输入项,将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
可选的,所述第一运算器模块的四个输入项包括一个第二控制输入项、一个第二待平方量子态输入项、一个第二模数平方输入项和一个第二平方辅助输入项,所述第一运算器模块的四个输出项包括一个第四控制输出项、一个第四待平方量子态输出项、一个第二模数平方输出项、一个第二平方辅助输出项;
所述模数倍增器模块的两个输入项包括一个所述第二模数平方输出项、一个所述第二平方辅助输出项,所述模数倍增器模块的两个输出项包括一个第三模数平方输出项、一个第三平方辅助输出项。
可选的,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态方面,所述演化单元2202具体用于:
制备控制输入量子态、模数平方输入量子态和平方辅助输入量子态;
将所述控制输入量子态作为所述第二控制输入项的输入,将所述第一目标量子态作为所述第二待平方量子态输入项的输入,将所述模数平方输入量子态作为所述第二模数平方输入项的输入,将所述平方辅助输入量子态作为所述第二平方辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第二模数平方输入项对应的量子比特,得到第二目标量子态。
可选的,在所述模数运算为模数乘逆运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元2202具体用于:
获取量子态转换模块、乘逆输出模块、第一CNOT门、乘逆处理模块、逆乘逆输出模块,其中,组成所述乘逆输出模块的逻辑门与组成所述逆乘逆输出模块的逻辑门转置共轭;
将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态。
可选的,所述量子态转换模块的数量为六,所述量子态转换模块包括一个输入项和一个输出项,所述乘逆输出模块包括七个输入项和七个输出项,所述第一CNOT门包括两个输入项和两个输出项;所述乘逆处理模块包括五个输入项和五个输出项;所述逆乘逆处理模块包括七个输入项和七个输出项;
在所述将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路方面,所述演化单元2202具体用于:
将第一个所述量子态转换模块的输出项、第二个所述量子态转换项的输出项作为所述乘逆输出模块的其中两个输入项;
将所述乘逆输出模块的第二个输出项作为第三个所述量子态转换模块的输入项,第四个输出项作为所述第一CNOT门的其中一个输入项;将所述乘逆输出模块的第一个输出项、第三个输出项、第七个输出项,第三个所述量子态转换模块的输出项以及所述第一CNOT门的其中一个输出项作为所述乘逆处理模块的五个输入项;
将所述乘逆处理模块的第二个输出项作为第四个所述量子态转换模块的输入项;将所述乘逆处理模块的第一个输出项、第三个输出项和第四个输出项,第四个所述量子态转换模块的输出项,所述第一CNOT门的另外一个输出项,所述乘逆输出模块的第五个输出项和第六个输出项作为所述逆乘逆输出模块的七个输入项;
将所述逆乘逆输出模块的第二个输出项作为第五个所述量子态转换模块的输入项,将所述逆乘逆输出模块的第五个输出项作为第六个所述量子态转换模块的输入项;
将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路。
可选的,第一个所述量子态转换模块的输入项包括一个第一乘逆辅助输入项,第一个所述量子态转换模块的输出项包括一个第一乘逆辅助输出项;第二个所述量子态转换模块的输入项包括一个第二乘逆辅助输入项,第二个所述量子态转换模块的输出项包括一个第二乘逆辅助输出项;
所述乘逆输出模块的七个输入项包括一个待乘逆量子态输入项、一个所述第一乘逆辅助输出项、一个所述第二乘逆辅助输出项和四个第三乘逆辅助输入项;所述乘逆输出模块的七个输出项包括一个第一待乘逆量子态输出项和六个第三乘逆辅助输出项;
所述第一CNOT门的两个输入项包括一个所述第三乘逆辅助输出项和一个第四乘逆辅助输入项,所述第一CNOT门的两个输出项包括两个第四乘逆辅助输出项;第三个所述量子态转换模块的输入项包括一个所述第三乘逆辅助输出项,第三个所述量子态转换模块的输出项包括一个第五乘逆辅助输出项;
所述乘逆处理模块的五个输入项包括两个所述第三乘逆辅助输出项、一个所述第五乘逆辅助输出项、一个所述第一待乘逆量子态输出项和其中一个所述第四乘逆辅助输出项;所述乘逆处理模块的五个输出项包括一个第二待乘逆量子态输出项和四个第六乘逆辅助输出项;
第四个所述量子态转换项的输入项包括一个所述第六乘逆辅助输出项,第四个所述量子态转换项的输出项包括一个第七乘逆辅助输出项;
所述逆乘逆输出模块的七个输入项包括两个所述第六乘逆辅助输出项、一个所述辅助第七乘逆输出项、一个所述第二待乘逆量子态输出项、另外一个所述第四乘逆辅助输出项、两个所述第三乘逆辅助输出项,所述逆乘逆输出模块的七个输出项包括一个第三待乘逆量子态输出项和六个第八乘逆辅助输出项;
第五个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第五个所述量子态转换模块的输出项包括一个第九乘逆辅助输出项;第六个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第六个所述量子态转换模块的输出项包括一个第十乘逆辅助输出项。
可选的,第一个所述量子态转换模块用于将输入态转换为|p>,第二个所述量子态转换模块和第四个所述量子态转换模块用于将输入态转换为|1>,第三个所述量子态转换模块、第五个所述量子态转换模块和第六个所述量子态转换模块用于将输入态转换为|0>,其中,所述|p>为模数p转换的量子态。
可选的,所述演化单元2202还用于:
获取三个X门和2n个第二运算器模块,所述X门包括一个输入项和一个输出项,所述第二运算器模块包括八个输入项和八个输出项;
将2n所述个第二运算器模块进行级联,生成第三运算器模块;
将其中两个所述X门的输出项作为所述第三运算器模块的其中两个输入项,将所述第三运算器模块的其中一个输入项作为另外一个所述X门的输入项,将三个所述X门和所述第三运算器模块进行级联,生成所述乘逆处理模块。
可选的,所述演化单元2202还用于:
获取一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门,所述X门包括一个输入项和一个输出项,所述第二CNOT门包括两个输入项和两个输出项,所述普通加法器模块包括四个输入项和四个输出项,所述Kaliski门包括七个输入项和七个输出项;
将第一个所述第二CNOT门的其中一个输出项作为第二个所述第二CNOT门的其中一个输出项;
将第一个所述第二CNOT门的另外一个输出项和第二个所述第二CNOT门的其中一个输出项作为所述普通加法器的其中两个输入项;
将所述普通加法器的其中一个输出项作为第三个所述X门的输入项;
将所述普通加法器的其中两个输出项、第二个所述第二CNOT门的另外一个输出项以及第三个所述X门的输出项作为所述Kaliski门的其中四个输入项;
将所述一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门进行级联,生成所述第一运算器模块。
可选的,所述演化单元2202还用于:
获取l+1个模数倍增器模块,以及将l+1个所述模数倍增器模块进行级联,生成所述乘逆处理模块。
可选的,在所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态方面,所述演化单元2202还用于:
制备第一乘逆辅助输入量子态、第二乘逆辅助输入量子态、第三乘逆辅助输入量子态和第四乘逆辅助输入量子态;
将所述第一乘逆辅助输入量子态作为所述第一乘逆辅助输入项的输入,将所述第二乘逆辅助输入量子态作为所述第二乘逆辅助输入项的输入,将所述第三乘逆辅助输入量子态作为所述第三乘逆辅助输入项的输入,将所述第四乘逆辅助输入量子态作为所述第四乘逆辅助输入项的输入,将所述第一目标量子态作为所述待乘逆量子态输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第四乘逆辅助输入项对应的量子比特,得到第二目标量子态。
可选的,所述模数运算为模数完整乘法运算,所述目标数据和第一目标量子态均为两个,在所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态方面,所述演化单元2202具体用于:
获取模数乘逆器模块、模数快速乘法器模块、逆模数快速乘法器模块、逆模数乘逆器模块和SWAP门,其中,组成所述模数乘逆器模块的逻辑门与组成所述逆模数乘逆器模块的逻辑门转置共轭,组成所述模数快速乘法器模块的逻辑门与组成所述逆模数快速乘法器模块的逻辑门转置共轭;
将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态。
可选的,所述模数乘逆器模块包括四个输入项和四个输出项,所述模数快速乘法器模块包括四个输入项和四个输出项,所述逆模数快速乘法器模块包括五个输入项和五个输出项,所述SWAP门包括两个输入项和两个输出项,所述逆模数乘逆器模块包括四个输入项和四个输出项;
在所述将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路方面,所述演化单元2202具体用于:
将所述模数乘逆器模块的其中三个输出项作为所述模数快速乘法器模块的其中三个输入项,将所述模数乘逆器模块的另外一个输出项和所述模数快速乘法器模块的四个输出项作为所述逆模数快速乘法器模块的五个输入项,将所述逆模数快速乘法器模块的其中两个输出项作为所述SWAP门的两个输入项,将所述逆模数快速乘法器模块的另外三个输出项和所述SWAP门的其中一个输出项作为所述逆模数乘逆器的输入项;
以及将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路。
可选的,所述模数乘逆器模块的四个输入项包括一个待完整乘法量子态输入项和和三个完整乘法辅助输入项,所述模数乘逆器模块的四个输出项包括第一待完整乘法量子态输出项和三个第一完整乘法辅助输出项;
所述模数快速乘法器模块的四个输入项包括另外一个待完整乘法量子态输入项、所述第一待完整乘法量子态输出项和其中两个所述第一完整乘法辅助输出项;所述模数快速乘法器模块的四个输出项包括两个第二待完整乘法量子态输出项和两个第二完整乘法辅助输出项;
所述逆模数快速乘法器模块的五个输入项包括两个所述第二待完整乘法量子态输出项、两个所述第二完整乘法辅助输出项和另外一个所述第一完整乘法辅助输出项,所述逆模数快速乘法器模块的五个输出项包括两个第三待完整乘法量子态输出项和三个第三完整乘法辅助输出项;
所述SWAP门的两个输入项包括其中一个所述第三待完整乘法量子态输出项和其中一个所述第三完整乘法辅助输出项,所述SWAP门的两个输出项包括一个第四待完整乘法量子态输出项和一个第四完整乘法辅助输出项;
所述逆模数乘逆器模块的四个输入项包括一个所述第四完整乘法辅助输出项、另外两个所述第三完整乘法辅助输出项和另外一个所述第三待完整乘法量子态输出项,所述逆模数乘逆器模块的四个输出项包括一个第五待完整乘法量子态输出项和三个第五完整乘法辅助输出项。
可选的,在所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态方面,所述演化单元2202具体用于:
制备完整乘法辅助输入量子态;
将两个所述第一目标量子态作为两个所述待完整乘法量子态输入项的输入,将所述完整乘法辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量其中一个所述第一目标量子态对应的量子比特,得到第二目标量子态。
本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;
对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;
将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的又一实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中所述的方法。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;
对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;
将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出。
本发明的又一实施例提供了一种量子模数算术组件,包括根据上述任一项中所述的方法确定的量子模数运算器。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (38)
1.一种量子模数运算方法,其特征在于,所述方法包括:
获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;
对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;
将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出。
2.如权利要求1所述的方法,其特征在于,所述模数运算为模数加法运算,所述目标数据和第一目标量子态均为两个,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取普通加法器模块、常数模减法器模块、常数模加法器模块和比较器模块;
将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态。
3.如权利要求2所述的方法,其特征在于,所述普通加法器模块包括四个输入项和四个输出项,所述常数模减法器模块包括三个输入项和三个输出项,所述常数模加法器模块包括三个输入项和三个输出项,所述比较器模块包括四个输入项和四个输出项;
所述将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路,包括:
将所述普通加法器模块的其中三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,将所述常数模加法器模块的三个输出项和所述普通加法器模块的另外一个输出项作为所述比较器模块的四个输入项,以及将所述普通加法器模块、所述常数模减法器模块、所述常数模加法器模块和所述比较器模块进行级联,生成模数加法器对应的目标量子线路。
4.如权利要求3所述的方法,其特征在于,所述普通加法器模块的四个输入项包括两个待相加量子态输入项、一个加法进位输入项以及一个加法辅助输入项,所述普通加法器模块的四个输出项包括两个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项;
所述常数模减法器模块的三个输入项包括所述普通加法器模块的其中一个第一加法中间结果输出项、一个第一加法进位输出项以及一个第一加法辅助输出项,所述常数模减法器模块的三个输出项包括一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二加法中间结果输出项、一个第二加法进位输出项以及一个第二加法辅助输出项,所述常数模加法器模块的三个输出项包括一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项;
所述比较器模块的四个输入项包括所述普通加法器模块的另外一个第一加法中间结果输出项、所述常数模加法器模块的一个第三加法中间结果输出项、一个第三加法进位输出项以及一个第三加法辅助输出项,所述比较器模块的四个输出项包括一个待相加量子态输出项、一个模数加法结果输出项、一个加法进位结果输出项以及一个加法辅助结果输出项。
5.如权利要求4所述的方法,其特征在于,所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数加法运算,生成第二目标量子态,包括:
制备加法进位输入量子态和加法辅助输入量子态;
将两个所述第一目标量子态作为所述待相加量子态输入项的输入,将所述加法进位输入量子态作为所述加法进位输入项的输入,以及将所述加法辅助输入量子态作为加法辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述比较器模块的一个模数加法结果输出项对应的量子比特,得到第二目标量子态。
6.如权利要求1所述的方法,其特征在于,所述模数运算为模数倍增运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取常数倍增器模块、常数模减法器模块和常数模加法器模块;
将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态。
7.如权利要求6所述的方法,其特征在于,所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块均包括三个输入项和三个输出项,所述将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路,包括:
将所述常数倍增器模块的三个输出项作为所述常数模减法器模块的三个输入项,将所述常数模减法器模块的三个输出项作为所述常数模加法器模块的三个输入项,以及将所述常数倍增器模块、所述常数模减法器模块和所述常数模加法器模块进行级联,生成模数倍增器对应的目标量子线路。
8.如权利要求7所述的方法,其特征在于,所述常数倍增器模块的三个输入项包括一个待倍增量子态输入项、一个倍增进位输入项以及一个倍增辅助输入项;所述常数倍增器模块的三个输出项包括一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;
所述常数模减法器模块的三个输入项包括所述常数倍增器模块的一个第一倍增中间结果输出项、一个第一倍增进位输出项以及一个第一倍增辅助输出项;所述常数模减法器模块的三个输出项包括一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;
所述常数模加法器模块的三个输入项包括所述常数模减法器模块的一个第二倍增中间结果输出项、一个第二倍增进位输出项和一个第二倍增辅助输出项;所述常数模加法器模块的三个输出项包括一个模数倍增结果输出项、一个倍增进位输出项和一个倍增辅助输出项。
9.如权利要求8所述的方法,其特征在于,所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态,包括:
制备倍增进位输入量子态和倍增辅助输入量子态;
将所述第一目标量子态作为所述待倍增量子态输入项的输入,将所述倍增进位输入量子态作为所述倍增进位输入项的输入,将所述倍增辅助输入量子态作为所述倍增辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述常数模加法器模块的一个模数倍增结果输出项对应的量子比特,得到第二目标量子态。
10.如权利要求1所述的方法,其特征在于,所述模数运算为模数快速乘法运算,所述目标数据和第一目标量子态均为两个,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取模数加法器模块和模数倍增器模块;
将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态。
11.如权利要求10所述的方法,其特征在于,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同;所述模数倍增器模块的数量比所述第一目标量子态的量子比特的数量n少一个;所述将所述模数加法器模块和所述模数倍增器模块进行级联,生成模数快速乘法器对应的目标量子线路,包括:
将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
12.如权利要求11所述的方法,其特征在于,所述模数加法器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;所述将n个所述模数加法器模块和n-1个所述模数倍增器模块进行交替级联,生成模数快速乘法器对应的目标量子线路,包括:
将当前的所述模数加法器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述模数加法器的另外两个输出项与当前的所述模数倍增器的两个输出项作为下一个所述模数加法器模块的四个输入项;
以及将n个所述模数加法器模块和n-1个所述模数乘法器模块进行交替级联,生成模数快速乘法器对应的目标量子线路。
13.如权利要求12所述的方法,其特征在于,所述模数加法器模块的四个输入项包括两个待快速乘法量子态输入项、一个模数快速乘法结果输入项和一个快速乘法辅助输入项;所述模数加法器模块的四个输出项包括两个待快速乘法量子态输出项、一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;
所述模数倍增器模块的两个输入项包括所述模数加法器模块的一个第一模数快速乘法结果输出项和一个第一快速乘法辅助输出项;所述模数倍增器模块的两个输出项包括一个第二模数快速乘法结果输出项和一个第二快速乘法辅助输出项。
14.如权利要求13所述的方法,其特征在于,所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数快速乘法运算,生成第二目标量子态,包括:
制备模数快速乘法结果输入量子态和快速乘法辅助输入量子态;
将所述第一目标量子态作为两个所述待快速乘法量子态输入项的输入,将所述模数快速乘法结果输入量子态作为所述模数快速乘法结果输入项的输入,将所述辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述模数快速乘法结果输入量子态对应的量子比特,得到第二目标量子态。
15.如权利要求1所述的方法,其特征在于,所述模数运算为模数平方运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取CNOT门、模数加法器模块和模数倍增器模块;
将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数平方运算,生成第二目标量子态。
16.如权利要求15所述的方法,其特征在于,所述CNOT门的数量是所述第一目标量子态的量子比特的数量n的两倍,所述模数加法器模块的数量与所述第一目标量子态的量子比特的数量n相同,所述模数倍增器模块的数量比所述第一目标量子态的量子比特n的数量少一个。
17.如权利要求16所述的方法,其特征在于,所述将所述CNOT门、所述模数加法器模块和所述模数倍增器模块进行级联,生成模数平方器对应的目标量子线路,包括:
将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块;
将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
18.如权利要求17所述的方法,其特征在于,所述CNOT门包括两个输入项和两个输出项,所述模数加法器模块包括四个输入项和四个输出项,所述将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块,包括:
将每两个所述CNOT门中的其中一个CNOT门的两个输出项作为一个所述模数加法器模块的其中两个输入项,将所述模数加法器模块的其中两个输入项对应的两个输出项作为每两个所述CNOT门中的另外一个CNOT门的两个输入项,以及将每两个所述CNOT门与一个所述模数加法器模块进行级联,生成n个第一运算器模块。
19.如权利要求18所述的方法,其特征在于,每两个所述CNOT门中的其中一个CNOT门的两个输入项包括一个第一控制输入项和一个第一待平方量子态输入项;每两个所述CNOT门中的其中一个CNOT门的两个输出项包括一个第一控制输出项和一个第一待平方量子态输出项;
一个所述模数加法器模块的四个输入项包括每两个所述CNOT门中的其中一个CNOT门的一个第一控制输出项和一个第一待平方量子态输出项,以及一个第一模数平方输入项和一个第一平方辅助输入项;一个所述模数加法器模块的四个输出项包括一个第二控制输出项和一个第二待平方量子态输出项,以及一个第一模数平方输出项和一个第一平方辅助输出项;
每两个所述CNOT门中的另外一个CNOT门的两个输入项包括一个所述模数加法器模块的一个第二控制输出项和一个第二待平方量子态输出项;每两个所述CNOT门中的另外一个CNOT门的两个输出项包括一个第三控制输出项和一个第三待平方量子态输出项。
20.如权利要求19所述的方法,其特征在于,所述第一运算器模块包括四个输入项和四个输出项,所述模数倍增器模块包括两个输入项和两个输出项;所述将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路,包括:
将当前的所述第一运算器模块的其中两个输出项作为当前的所述模数倍增器模块的两个输入项,将当前的所述第一运算器模块的另外两个输出项和当前的所述模数倍增器模块的两个输出项作为下一个所述第一运算器模块的四个输入项,将n个所述第一运算器模块与n-1个所述模数倍增器模块进行交替级联,生成模数平方器对应的目标量子线路。
21.如权利要求20所述的方法,其特征在于,所述第一运算器模块的四个输入项包括一个第二控制输入项、一个第二待平方量子态输入项、一个第二模数平方输入项和一个第二平方辅助输入项,所述第一运算器模块的四个输出项包括一个第四控制输出项、一个第四待平方量子态输出项、一个第二模数平方输出项、一个第二平方辅助输出项;
所述模数倍增器模块的两个输入项包括一个所述第二模数平方输出项、一个所述第二平方辅助输出项,所述模数倍增器模块的两个输出项包括一个第三模数平方输出项、一个第三平方辅助输出项。
22.如权利要求21所述的方法,其特征在于,所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数倍增运算,生成第二目标量子态,包括:
制备控制输入量子态、模数平方输入量子态和平方辅助输入量子态;
将所述控制输入量子态作为所述第二控制输入项的输入,将所述第一目标量子态作为所述第二待平方量子态输入项的输入,将所述模数平方输入量子态作为所述第二模数平方输入项的输入,将所述平方辅助输入量子态作为所述第二平方辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第二模数平方输入项对应的量子比特,得到第二目标量子态。
23.如权利要求1所述的方法,其特征在于,所述模数运算为模数乘逆运算,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取量子态转换模块、乘逆输出模块、第一CNOT门、乘逆处理模块、逆乘逆输出模块,其中,组成所述乘逆输出模块的逻辑门与组成所述逆乘逆输出模块的逻辑门转置共轭;
将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路;
通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态。
24.如权利要求23所述的方法,其特征在于,所述量子态转换模块的数量为六,所述量子态转换模块包括一个输入项和一个输出项,所述乘逆输出模块包括七个输入项和七个输出项,所述第一CNOT门包括两个输入项和两个输出项;所述乘逆处理模块包括五个输入项和五个输出项;所述逆乘逆处理模块包括七个输入项和七个输出项;
所述将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路,包括:
将第一个所述量子态转换模块的输出项、第二个所述量子态转换项的输出项作为所述乘逆输出模块的其中两个输入项;
将所述乘逆输出模块的第二个输出项作为第三个所述量子态转换模块的输入项,第四个输出项作为所述第一CNOT门的其中一个输入项;将所述乘逆输出模块的第一个输出项、第三个输出项、第七个输出项,第三个所述量子态转换模块的输出项以及所述第一CNOT门的其中一个输出项作为所述乘逆处理模块的五个输入项;
将所述乘逆处理模块的第二个输出项作为第四个所述量子态转换模块的输入项;将所述乘逆处理模块的第一个输出项、第三个输出项和第四个输出项,第四个所述量子态转换模块的输出项,所述第一CNOT门的另外一个输出项,所述乘逆输出模块的第五个输出项和第六个输出项作为所述逆乘逆输出模块的七个输入项;
将所述逆乘逆输出模块的第二个输出项作为第五个所述量子态转换模块的输入项,将所述逆乘逆输出模块的第五个输出项作为第六个所述量子态转换模块的输入项;
将所述量子态转换模块、所述乘逆输出模块、所述第一CNOT门、所述乘逆处理模块和所述逆乘逆输出模块进行级联,生成模数乘逆器对应的目标量子线路。
25.如权利要求24所述的方法,其特征在于,第一个所述量子态转换模块的输入项包括一个第一乘逆辅助输入项,第一个所述量子态转换模块的输出项包括一个第一乘逆辅助输出项;第二个所述量子态转换模块的输入项包括一个第二乘逆辅助输入项,第二个所述量子态转换模块的输出项包括一个第二乘逆辅助输出项;
所述乘逆输出模块的七个输入项包括一个待乘逆量子态输入项、一个所述第一乘逆辅助输出项、一个所述第二乘逆辅助输出项和四个第三乘逆辅助输入项;所述乘逆输出模块的七个输出项包括一个第一待乘逆量子态输出项和六个第三乘逆辅助输出项;
所述第一CNOT门的两个输入项包括一个所述第三乘逆辅助输出项和一个第四乘逆辅助输入项,所述第一CNOT门的两个输出项包括两个第四乘逆辅助输出项;第三个所述量子态转换模块的输入项包括一个所述第三乘逆辅助输出项,第三个所述量子态转换模块的输出项包括一个第五乘逆辅助输出项;
所述乘逆处理模块的五个输入项包括两个所述第三乘逆辅助输出项、一个所述第五乘逆辅助输出项、一个所述第一待乘逆量子态输出项和其中一个所述第四乘逆辅助输出项;所述乘逆处理模块的五个输出项包括一个第二待乘逆量子态输出项和四个第六乘逆辅助输出项;
第四个所述量子态转换项的输入项包括一个所述第六乘逆辅助输出项,第四个所述量子态转换项的输出项包括一个第七乘逆辅助输出项;
所述逆乘逆输出模块的七个输入项包括两个所述第六乘逆辅助输出项、一个所述辅助第七乘逆输出项、一个所述第二待乘逆量子态输出项、另外一个所述第四乘逆辅助输出项、两个所述第三乘逆辅助输出项,所述逆乘逆输出模块的七个输出项包括一个第三待乘逆量子态输出项和六个第八乘逆辅助输出项;
第五个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第五个所述量子态转换模块的输出项包括一个第九乘逆辅助输出项;第六个所述量子态转换模块的输入项包括一个所述第八乘逆辅助输出项,第六个所述量子态转换模块的输出项包括一个第十乘逆辅助输出项。
26.如权利要求25所述的方法,其特征在于,第一个所述量子态转换模块用于将输入态转换为|p>,第二个所述量子态转换模块和第四个所述量子态转换模块用于将输入态转换为|1>,第三个所述量子态转换模块、第五个所述量子态转换模块和第六个所述量子态转换模块用于将输入态转换为|0>,其中,所述|p>为模数p转换的量子态。
27.如权利要求24-26任一项所述的方法,其特征在于,所述方法还包括:
获取三个X门和2n个第二运算器模块,所述X门包括一个输入项和一个输出项,所述第二运算器模块包括八个输入项和八个输出项;
将2n所述个第二运算器模块进行级联,生成第三运算器模块;
将其中两个所述X门的输出项作为所述第三运算器模块的其中两个输入项,将所述第三运算器模块的其中一个输入项作为另外一个所述X门的输入项,将三个所述X门和所述第三运算器模块进行级联,生成所述乘逆处理模块。
28.如权利要求27所述的方法,其特征在于,所述方法还包括:
获取一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门,所述X门包括一个输入项和一个输出项,所述第二CNOT门包括两个输入项和两个输出项,所述普通加法器模块包括四个输入项和四个输出项,所述Kaliski门包括七个输入项和七个输出项;
将第一个所述第二CNOT门的其中一个输出项作为第二个所述第二CNOT门的其中一个输出项;
将第一个所述第二CNOT门的另外一个输出项和第二个所述第二CNOT门的其中一个输出项作为所述普通加法器的其中两个输入项;
将所述普通加法器的其中一个输出项作为第三个所述X门的输入项;
将所述普通加法器的其中两个输出项、第二个所述第二CNOT门的另外一个输出项以及第三个所述X门的输出项作为所述Kaliski门的其中四个输入项;
将所述一个X门、两个第二CNOT门、一个普通加法器模块和一个Kaliski门进行级联,生成所述第一运算器模块。
29.如权利要求24-26任一项所述的方法,其特征在于,所述方法还包括:
获取l+1个模数倍增器模块,以及将l+1个所述模数倍增器模块进行级联,生成所述乘逆处理模块。
30.如权利要求27-29任一项所述的方法,其特征在于,所述通过所述目标量子线路对所述第一目标量子态的各量子比特进行模数乘逆运算,生成第二目标量子态,包括:
制备第一乘逆辅助输入量子态、第二乘逆辅助输入量子态、第三乘逆辅助输入量子态和第四乘逆辅助输入量子态;
将所述第一乘逆辅助输入量子态作为所述第一乘逆辅助输入项的输入,将所述第二乘逆辅助输入量子态作为所述第二乘逆辅助输入项的输入,将所述第三乘逆辅助输入量子态作为所述第三乘逆辅助输入项的输入,将所述第四乘逆辅助输入量子态作为所述第四乘逆辅助输入项的输入,将所述第一目标量子态作为所述待乘逆量子态输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量所述第四乘逆辅助输入项对应的量子比特,得到第二目标量子态。
31.如权利要求1所述的方法,其特征在于,所述模数运算为模数完整乘法运算,所述目标数据和第一目标量子态均为两个,所述对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态,包括:
获取模数乘逆器模块、模数快速乘法器模块、逆模数快速乘法器模块、逆模数乘逆器模块和SWAP门,其中,组成所述模数乘逆器模块的逻辑门与组成所述逆模数乘逆器模块的逻辑门转置共轭,组成所述模数快速乘法器模块的逻辑门与组成所述逆模数快速乘法器模块的逻辑门转置共轭;
将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路;
通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态。
32.如权利要求31所述的方法,其特征在于,所述模数乘逆器模块包括四个输入项和四个输出项,所述模数快速乘法器模块包括四个输入项和四个输出项,所述逆模数快速乘法器模块包括五个输入项和五个输出项,所述SWAP门包括两个输入项和两个输出项,所述逆模数乘逆器模块包括四个输入项和四个输出项;
所述将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路,包括:
将所述模数乘逆器模块的其中三个输出项作为所述模数快速乘法器模块的其中三个输入项,将所述模数乘逆器模块的另外一个输出项和所述模数快速乘法器模块的四个输出项作为所述逆模数快速乘法器模块的五个输入项,将所述逆模数快速乘法器模块的其中两个输出项作为所述SWAP门的两个输入项,将所述逆模数快速乘法器模块的另外三个输出项和所述SWAP门的其中一个输出项作为所述逆模数乘逆器的输入项;
以及将所述模数乘逆器模块、所述模数快速乘法器模块、所述逆模数快速乘法器模块、所述逆模数乘逆器模块和SWAP门进行级联,生成模数完整乘法器对应的目标量子线路。
33.如权利要求32所述的方法,其特征在于,所述模数乘逆器模块的四个输入项包括一个待完整乘法量子态输入项和和三个完整乘法辅助输入项,所述模数乘逆器模块的四个输出项包括第一待完整乘法量子态输出项和三个第一完整乘法辅助输出项;
所述模数快速乘法器模块的四个输入项包括另外一个待完整乘法量子态输入项、所述第一待完整乘法量子态输出项和其中两个所述第一完整乘法辅助输出项;所述模数快速乘法器模块的四个输出项包括两个第二待完整乘法量子态输出项和两个第二完整乘法辅助输出项;
所述逆模数快速乘法器模块的五个输入项包括两个所述第二待完整乘法量子态输出项、两个所述第二完整乘法辅助输出项和另外一个所述第一完整乘法辅助输出项,所述逆模数快速乘法器模块的五个输出项包括两个第三待完整乘法量子态输出项和三个第三完整乘法辅助输出项;
所述SWAP门的两个输入项包括其中一个所述第三待完整乘法量子态输出项和其中一个所述第三完整乘法辅助输出项,所述SWAP门的两个输出项包括一个第四待完整乘法量子态输出项和一个第四完整乘法辅助输出项;
所述逆模数乘逆器模块的四个输入项包括一个所述第四完整乘法辅助输出项、另外两个所述第三完整乘法辅助输出项和另外一个所述第三待完整乘法量子态输出项,所述逆模数乘逆器模块的四个输出项包括一个第五待完整乘法量子态输出项和三个第五完整乘法辅助输出项。
34.如权利要求33所述的方法,其特征在于,所述通过所述目标量子线路对两个所述第一目标量子态的各量子比特进行模数完整乘法运算,生成第二目标量子态,包括:
制备完整乘法辅助输入量子态;
将两个所述第一目标量子态作为两个所述待完整乘法量子态输入项的输入,将所述完整乘法辅助输入量子态作为所述辅助输入项的输入,得到制备初态后的所述目标量子线路;
运行制备初态后的所述目标量子线路,以及测量其中一个所述第一目标量子态对应的量子比特,得到第二目标量子态。
35.一种量子模数运算装置,其特征在于,所述装置包括:
获取单元,用于获取待运算的目标数据,并将所述待运算的目标数据转换为第一目标量子态;
演化单元,用于对所述第一目标量子态执行模数运算对应的量子态演化,获得演化后的存储模数运算结果的第二目标量子态;
输出单元,用于将最终获得的所述第二目标量子态作为所述待运算的目标数据的模数运算结果进行输出。
36.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至34任一项中所述的方法。
37.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至34任一项中所述的方法。
38.一种量子模数算术组件,其特征在于,包括根据权利要求1至34任一项中所述的方法确定的量子模数运算器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111144299.4A CN115879556A (zh) | 2021-09-28 | 2021-09-28 | 量子模数运算方法、装置、介质及模数算术组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111144299.4A CN115879556A (zh) | 2021-09-28 | 2021-09-28 | 量子模数运算方法、装置、介质及模数算术组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115879556A true CN115879556A (zh) | 2023-03-31 |
Family
ID=85763569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111144299.4A Withdrawn CN115879556A (zh) | 2021-09-28 | 2021-09-28 | 量子模数运算方法、装置、介质及模数算术组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115879556A (zh) |
-
2021
- 2021-09-28 CN CN202111144299.4A patent/CN115879556A/zh not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112162723B (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
CN112114776B (zh) | 一种量子乘法运算方法、装置、电子装置及存储介质 | |
CN112232513B (zh) | 一种量子态的制备方法及装置 | |
CN113222155B (zh) | 一种量子线路的构建方法、装置、电子装置和存储介质 | |
CN112633508A (zh) | 一种量子线路的生成方法、装置、存储介质及电子装置 | |
CN112633507B (zh) | 一种将复向量编码到量子线路的方法及装置 | |
CN112162724B (zh) | 一种带精度的量子除法运算方法及装置 | |
CN112214200B (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
CN115809707A (zh) | 量子比较运算方法、装置、电子装置及基础算术组件 | |
CN113222156A (zh) | 一种待执行操作的量子模拟方法、装置 | |
CN113222157A (zh) | 一种量子模拟方法、装置、电子装置及存储介质 | |
CN115879556A (zh) | 量子模数运算方法、装置、介质及模数算术组件 | |
CN115879552B (zh) | 量子模数乘逆运算方法、装置、电子装置及模数算术组件 | |
CN115879554B (zh) | 量子模数平方运算方法、装置、电子装置及模数算术组件 | |
CN115809706B (zh) | 量子模数倍增运算方法、装置、电子装置及模数算术组件 | |
CN115879553B (zh) | 量子模数完整乘法运算方法、装置及模数算术组件 | |
CN115809042B (zh) | 量子模数加法运算方法、装置、电子装置及模数算术组件 | |
CN115879555B (zh) | 量子模数快速乘法运算方法、装置及模数算术组件 | |
CN112162725B (zh) | 一种量子除法运算方法、装置、电子装置及存储介质 | |
WO2024109730A1 (zh) | 变量模乘运算器、运算方法及相关装置 | |
CN115936127B (zh) | 一种基于量子技术的数值比较方法、装置及量子计算机 | |
CN116048458B (zh) | 基于量子计算的数值划分方法、装置、设备及存储介质 | |
CN115879557B (zh) | 基于量子线路的数据大小比较方法、装置及量子计算机 | |
CN118095458A (zh) | 变量模乘运算器、运算方法及相关装置 | |
CN118095456A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20230331 |
|
WW01 | Invention patent application withdrawn after publication |