全文摘要
本发明公开了一种量子计算模拟方法、装置、存储介质和电子装置,方法包括:遍历目标量子程序,判断所述目标量子程序是否符合预设适用条件;若符合,拆分所述目标量子程序对应的量子线路,构建子量子线路;针对每条所述子量子线路,初始化所述子量子线路对应量子比特的量子态振幅值,并计算量子比特经对应所述子量子线路执行后的量子态振幅值;根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态振幅值,实现量子计算模拟。利用本发明实施例,能够提高量子计算的模拟效率。
主设计要求
1.一种量子计算模拟方法,其特征在于,所述方法包括:遍历目标量子程序,判断所述目标量子程序是否符合预设适用条件;若符合,拆分所述目标量子程序对应的量子线路,构建子量子线路;针对每条所述子量子线路,初始化所述子量子线路对应量子比特的量子态振幅值,并计算量子比特经对应所述子量子线路执行后的量子态振幅值;根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态振幅值,实现量子计算模拟。
设计方案
1.一种量子计算模拟方法,其特征在于,所述方法包括:
遍历目标量子程序,判断所述目标量子程序是否符合预设适用条件;
若符合,拆分所述目标量子程序对应的量子线路,构建子量子线路;
针对每条所述子量子线路,初始化所述子量子线路对应量子比特的量子态振幅值,并计算量子比特经对应所述子量子线路执行后的量子态振幅值;
根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态振幅值,实现量子计算模拟。
2.根据权利要求1所述的量子计算模拟方法,其特征在于,所述预设适用条件包括:
所述目标量子程序包含单量子逻辑门和\/或双量子逻辑门。
3.根据权利要求2所述的量子计算模拟方法,其特征在于,所述拆分目标量子程序对应的量子线路,构建子量子线路,包括:
判断所述目标量子程序对应的量子线路中是否包含双量子逻辑门;其中,所述量子线路包括:目标量子程序的前预设数量个量子比特所处的第一部分量子线路和其余量子比特所处的第二部分量子线路;
若包含双量子逻辑门,判断每一双量子逻辑门操作的两量子比特是否分别处于第一部分量子线路和第二部分量子线路中;
若每一双量子逻辑门操作的两量子比特均不分别处于第一部分量子线路和第二部分量子线路中,将所述量子线路的第一部分量子线路确定为一子量子线路,第二部分量子线路确定为另一子量子线路;其中,各条子量子线路中的量子比特位均从0依序编号。
4.根据权利要求3所述的量子计算模拟方法,其特征在于,所述方法还包括:
若不包含双量子逻辑门,将所述量子线路的第一部分量子线路确定为一子量子线路,第二部分量子线路确定为另一子量子线路;其中,各条子量子线路中的量子比特位均从0依序编号。
5.根据权利要求3所述的量子计算模拟方法,其特征在于,所述方法还包括:
若存在所操作的两量子比特分别处于第一部分量子线路和第二部分量子线路中的双量子逻辑门,判断该存在的各双量子逻辑门是否均为特定种类的双量子逻辑门;
若均为特定种类的双量子逻辑门,针对每一特定种类的双量子逻辑门,将该双量子逻辑门拆分为第一预设单门、第二预设单门和特定单量子逻辑门,并生成当前量子线路的副本,将所述第一预设单门添加到当前量子线路中,将所述第二预设单门和特定单量子逻辑门添加到当前量子线路的副本中;
其中,所述第一预设单门和所述第二预设单门操作的目标量子比特均为该双量子逻辑门的控制比特,所述特定单量子逻辑门操作的目标量子比特为该双量子逻辑门的操作比特,所述特定单量子逻辑门由该双量子逻辑门的种类确定;
拆分当前添加完成的所有新量子线路,将每一新量子线路对应的当前第一部分量子线路及第二部分量子线路,均确定为子量子线路;其中,各条子量子线路中的量子比特位均从0依序编号。
6.根据权利要求3-5任一项所述的量子计算模拟方法,其特征在于,所述特定种类至少包括以下一种或多种:
CNOT门、CZ门和CR门。
7.根据权利要求1所述的量子计算模拟方法,其特征在于,所述计算量子比特经对应子量子线路执行后的量子态的振幅值,包括:
当子量子线路中包含量子逻辑门时,基于子量子线路中量子逻辑门的执行时序,计算各量子逻辑门操作后的量子态的振幅值,直至得到最后一个量子逻辑门操作后的量子态的振幅值,作为量子比特经对应子量子线路执行后的量子态的振幅值;
其中,第一个量子逻辑门操作后的量子态振幅值根据对应量子比特初始化后的量子态振幅值和所述第一个量子逻辑门的酉矩阵计算得到,其余量子逻辑门操作后的量子态振幅值根据前一量子逻辑门操作后的量子态振幅值和当前量子逻辑门的酉矩阵计算得到;
否则,将初始化得到的量子态的初始振幅值,确定为该子量子线路执行后的量子态振幅值。
8.根据权利要求1-7任一项所述的量子计算模拟方法,其特征在于,所述根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态振幅值,包括:
在各子量子线路中均包含量子逻辑门的情况下,根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态的振幅值;
否则,根据不包含量子逻辑门的子量子线路外的其余子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态的振幅值。
9.一种量子计算模拟装置,其特征在于,所述装置包括:
遍历模块,用于遍历所述目标量子程序,判断所述目标量子程序是否符合预设适用条件;
构建模块,用于所述目标量子程序符合预设适用条件的情况下,拆分目标量子程序对应的量子线路,构建子量子线路;
第一计算模块,用于针对每条子量子线路,初始化所述子量子线路对应量子比特的量子态振幅值,并计算量子比特经对应所述子量子线路执行后的量子态振幅值;
第二计算模块,用于根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态振幅值,实现量子计算模拟。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8任一项中所述的方法。
设计说明书
技术领域
本发明属于量子计算技术领域,特别是一种量子计算模拟方法、装置、存储介质和电子装置。
背景技术
量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。
量子计算模拟是一个借助数值计算和计算机科学来仿真遵循量子力学规律的模拟计算,作为一个仿真程序,它依据量子力学的量子比特的基本定律,利用计算机的高速计算能力,刻画量子态的时空演化。
目前,可以先通过量子计算的相关理论,用经典计算机实现量子计算模拟,主要包括全振幅模拟与单振幅模拟,其中,全振幅模拟一次能够模拟出量子比特的量子态的所有振幅,单振幅模拟一次只模拟出所有量子态的振幅中的一个。但是,随量子程序中量子线路包含的量子比特数越多,两种模拟的内存开销随之增长,全振幅模拟的内存开销更呈指数增长,造成模拟效率降低。如要对涉及30个量子比特的量子计算进行模拟时,内存开销需16GByte(吉字节);40个量子比特时,内存开销需16TByte(太字节),即210<\/sup>*(16GByte);50个量子比特时,内存开销则需16PByte(拍字节),即210<\/sup>*(16TByte)。并且,随着模拟的量子比特数越多,量子线路的复杂度增大,模拟效率也会随之下降。
发明内容
本发明的目的是提供一种量子计算模拟方法、装置、存储介质和电子装置,以解决现有技术中的不足,它能够提高量子计算的模拟效率。本发明采用的技术方案如下:
为达到上述目的,本发明提供了一种量子计算模拟方法,所述方法包括:
遍历目标量子程序,判断所述目标量子程序是否符合预设适用条件;
若符合,拆分所述目标量子程序对应的量子线路,构建子量子线路;
针对每条所述子量子线路,初始化所述子量子线路对应量子比特的量子态振幅值,并计算量子比特经对应所述子量子线路执行后的量子态振幅值;
根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态振幅值,实现量子计算模拟。
可选的,所述预设适用条件包括:
所述目标量子程序包含单量子逻辑门和\/或双量子逻辑门。
可选的,所述拆分目标量子程序对应的量子线路,构建子量子线路,包括:
判断所述目标量子程序对应的量子线路中是否包含双量子逻辑门;其中,所述量子线路包括:目标量子程序的前预设数量个量子比特所处的第一部分量子线路和其余量子比特所处的第二部分量子线路;
若包含双量子逻辑门,判断每一双量子逻辑门操作的两量子比特是否分别处于第一部分量子线路和第二部分量子线路中;
若每一双量子逻辑门操作的两量子比特均不分别处于第一部分量子线路和第二部分量子线路中,将所述量子线路的第一部分量子线路确定为一子量子线路,第二部分量子线路确定为另一子量子线路;其中,各条子量子线路中的量子比特位均从0依序编号。
可选的,所述方法还包括:
若不包含双量子逻辑门,将所述量子线路的第一部分量子线路确定为一子量子线路,第二部分量子线路确定为另一子量子线路;其中,各条子量子线路中的量子比特位均从0依序编号。
可选的,所述方法还包括:
若存在所操作的两量子比特分别处于第一部分量子线路和第二部分量子线路中的双量子逻辑门,判断该存在的各双量子逻辑门是否均为特定种类的双量子逻辑门;
若均为特定种类的双量子逻辑门,针对每一特定种类的双量子逻辑门,将该双量子逻辑门拆分为第一预设单门、第二预设单门和特定单量子逻辑门,并生成当前量子线路的副本,将所述第一预设单门添加到当前量子线路中,将所述第二预设单门和特定单量子逻辑门添加到当前量子线路的副本中;
其中,所述第一预设单门和所述第二预设单门操作的目标量子比特均为该双量子逻辑门的控制比特,所述特定单量子逻辑门操作的目标量子比特为该双量子逻辑门的操作比特,所述特定单量子逻辑门由该双量子逻辑门的种类确定;
拆分当前添加完成的所有新量子线路,将每一新量子线路对应的当前第一部分量子线路及第二部分量子线路,均确定为子量子线路;其中,各条子量子线路中的量子比特位均从0依序编号。
可选的,所述特定种类至少包括以下一种或多种:
CNOT门、CZ门和CR门。
可选的,所述计算量子比特经对应子量子线路执行后的量子态的振幅值,包括:
当子量子线路中包含量子逻辑门时,基于子量子线路中量子逻辑门的执行时序,计算各量子逻辑门操作后的量子态的振幅值,直至得到最后一个量子逻辑门操作后的量子态的振幅值,作为量子比特经对应子量子线路执行后的量子态的振幅值;
其中,第一个量子逻辑门操作后的量子态振幅值根据对应量子比特初始化后的量子态振幅值和所述第一个量子逻辑门的酉矩阵计算得到,其余量子逻辑门操作后的量子态振幅值根据前一量子逻辑门操作后的量子态振幅值和当前量子逻辑门的酉矩阵计算得到;
否则,将初始化得到的量子态的初始振幅值,确定为该子量子线路执行后的量子态振幅值。
可选的,所述根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态振幅值,包括:
在各子量子线路中均包含量子逻辑门的情况下,根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态的振幅值;
否则,根据不包含量子逻辑门的子量子线路外的其余子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态的振幅值。
为达到上述目的,本发明提供了一种量子计算模拟装置,所述装置包括:
遍历模块,用于遍历所述目标量子程序,判断所述目标量子程序是否符合预设适用条件;
构建模块,用于所述目标量子程序符合预设适用条件的情况下,拆分目标量子程序对应的量子线路,构建子量子线路;
第一计算模块,用于针对每条子量子线路,初始化所述子量子线路对应量子比特的量子态振幅值,并计算对应量子比特经子量子线路执行后的量子态振幅值;
第二计算模块,用于根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态振幅值,实现量子计算模拟。
可选的,所述预设适用条件包括:
所述目标量子程序包含单量子逻辑门和\/或双量子逻辑门。
可选的,所述构建模块,具体用于:
判断所述目标量子程序对应的量子线路中是否包含双量子逻辑门;其中,所述量子线路包括:目标量子程序的前预设数量个量子比特所处的第一部分量子线路和其余量子比特所处的第二部分量子线路;
若包含双量子逻辑门,判断每一双量子逻辑门操作的两量子比特是否分别处于第一部分量子线路和第二部分量子线路中;
若每一双量子逻辑门操作的两量子比特均不分别处于第一部分量子线路和第二部分量子线路中,将所述量子线路的第一部分量子线路确定为一子量子线路,第二部分量子线路确定为另一子量子线路;其中,各条子量子线路中的量子比特位均从0依序编号。
可选的,所述装置还包括:
第一确定模块,用于在不包含双量子逻辑门的情况下,将所述量子线路的第一部分量子线路确定为一子量子线路,第二部分量子线路确定为另一子量子线路;其中,各条子量子线路中的量子比特位均从0依序编号。
可选的,所述装置还包括:
判断模块,用于存在所操作的两量子比特分别处于第一部分量子线路和第二部分量子线路中的双量子逻辑门的情况下,判断该存在的各双量子逻辑门是否均为特定种类的双量子逻辑门;
添加模块,用于所述存在的各双量子逻辑门均为特定种类的双量子逻辑门的情况下,针对每一特定种类的双量子逻辑门,将该双量子逻辑门拆分为第一预设单门、第二预设单门和特定单量子逻辑门,并生成当前量子线路的副本,将所述第一预设单门添加到当前量子线路中,将所述第二预设单门和特定单量子逻辑门添加到当前量子线路的副本中;
其中,所述第一预设单门和所述第二预设单门操作的目标量子比特均为该双量子逻辑门的控制比特,所述特定单量子逻辑门操作的目标量子比特为该双量子逻辑门的操作比特,所述特定单量子逻辑门由该双量子逻辑门的种类确定;
第二确定模块,用于拆分当前添加完成的所有新量子线路,将每一新量子线路对应的当前第一部分量子线路及第二部分量子线路,均确定为子量子线路;其中,各条子量子线路中的量子比特位均从0依序编号。
可选的,所述特定种类至少包括以下一种或多种:
CNOT门、CZ门和CR门。
可选的,所述第一计算模块,具体用于:
当子量子线路中包含量子逻辑门时,基于子量子线路中量子逻辑门的执行时序,计算各量子逻辑门操作后的量子态的振幅值,直至得到最后一个量子逻辑门操作后的量子态的振幅值,作为量子比特经对应子量子线路执行后的量子态的振幅值;
其中,第一个量子逻辑门操作后的量子态振幅值根据对应量子比特初始化后的量子态振幅值和所述第一个量子逻辑门的酉矩阵计算得到,其余量子逻辑门操作后的量子态振幅值根据前一量子逻辑门操作后的量子态振幅值和当前量子逻辑门的酉矩阵计算得到;
否则,将初始化得到的量子态的初始振幅值,确定为该子量子线路执行后的量子态振幅值。
可选的,所述第二计算模块,具体用于:
在各子量子线路中均包含量子逻辑门的情况下,根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态的振幅值;
否则,根据不包含量子逻辑门的子量子线路外的其余子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态的振幅值。
为达到上述目的,本发明提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行以上所述的方法。
为达到上述目的,本发明提供了一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行以上所述的方法。
与现有技术相比,本发明通过遍历所述目标量子程序,判断所述目标量子程序是否符合预设适用条件;若符合,拆分目标量子程序中的量子线路,构建子量子线路;针对每条子量子线路,初始化所述子量子线路对应量子比特的量子态振幅值,并计算对应量子比特经子量子线路执行后的量子态振幅值;根据各条子量子线路对应的振幅值,计算所述量子线路对应量子比特的量子态振幅值,实现量子计算模拟。由于量子线路被拆分成各条子量子线路,每条子量子线路的量子比特数减少,线路复杂度得以降低,内存开销随之下降,从而能够在更低的硬件条件下,实现更高的量子计算模拟效率。
附图说明
图1是本发明实施例提供的量子计算模拟方法的一种流程示意图;
图2是本发明实施例提供的一种量子线路的拆分示意图;
图3是本发明实施例提供的量子计算模拟装置的一种结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明实施例提供了一种量子计算模拟方法,应用于电子设备如终端,优选应用于计算机,如普通电脑即可。下面对其进行详细说明。
参见图1,图1为本发明实施例提供的量子计算模拟方法的一种流程示意图,可以包括如下步骤:
S101,遍历目标量子程序,判断所述目标量子程序是否符合预设适用条件;若符合,执行S102,否则停止;
具体的,所述预设适用条件可以包括:目标量子程序包含单量子逻辑门和\/或双量子逻辑门。对多(三及三以上)量子逻辑门不适用,量子逻辑门处于额外的受控状态(极少情况)不适用,如单量子逻辑门H门(Hadamard Gate,阿达马门)原本操作的量子比特为q 0<\/sub>,人为操控H门额外操作q1<\/sub>和q3<\/sub>,使得H门操作3量子比特,导致H门处于额外的受控状态。如无特殊说明,本发明所指各量子逻辑门都处于正常操控状态下。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责执行量子计算。实际上,真正的量子程序是由量子语言如Qrunes语言编写的一串能够在量子计算机(前述量子设备)上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现对量子计算的模拟。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,为了对量子计算进行模拟以验证量子应用等等,可以通过运行在普通计算机的量子虚拟机实现。本发明实施例所指量子程序(目标量子程序),即是在量子虚拟机上运行的由经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线),以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个目标量子程序整体上对应有一条总的量子线路,本发明所述量子线路即指该条总的量子线路,其中,该量子线路中的量子比特总数与目标量子程序的量子比特总数相同。可以理解为:一个量子程序主要由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即个量子逻辑门被执行的时间顺序。
需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,就像传统逻辑门跟一般数位线路之间的关系。量子逻辑门包括单量子逻辑门(简称单门)、双量子逻辑门(简称双门)以及多量子逻辑门(简称多门)。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态右矢对应的矩阵进行计算的。
例如,量子态右矢|0>对应的矩阵为设计图
相关信息详情
申请码:申请号:CN201910572167.8
申请日:2019-06-28
公开号:CN110188885A
公开日:2019-08-30
国家:CN
国家/省市:34(安徽)
授权编号:授权时间:主分类号:G06N 10/00
专利分类号:G06N10/00;G06F17/50
范畴分类:40A;
申请人:合肥本源量子计算科技有限责任公司
第一申请人:合肥本源量子计算科技有限责任公司
申请人地址:230008 安徽省合肥市合肥市高新区创业产业园二期E2栋6层
发明人:俞磊;窦猛汉
第一发明人:俞磊
当前权利人:合肥本源量子计算科技有限责任公司
代理人:代理机构:代理机构编号:优先权:关键词:当前状态:审核中
类型名称:外观设计