一种面向量子shor算法的仿真方法及装置

文档序号:1505334 发布日期:2020-02-07 浏览:23次 >En<

阅读说明:本技术 一种面向量子shor算法的仿真方法及装置 (Quantum shor algorithm-oriented simulation method and device ) 是由 张新 赵雅倩 李仁刚 于 2019-11-07 设计创作,主要内容包括:本发明公开了一种面向量子shor算法的仿真方法及装置,应用于主机端,可以将待分解数与随机数发送至FPGA端,以使所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得与待求量子态中的周期有关的测量参数,其中,所述随机数与所述待分解数互质,且所述随机数小于所述待分解数;根据所述测量参数进行连分式展开,获得所述待求量子态中的周期;根据所述周期,获得所述待分解数的各分解参数。本发明通过FPGA端运行量子计算中的量子仿真处理部分,主机端运行量子计算中的常规计算处理部分的技术手段,降低仿真过程的延迟,提升了仿真效率。(The invention discloses a quantum shor algorithm-oriented simulation method and device, which are applied to a host end and can send a number to be decomposed and a random number to an FPGA end so that the FPGA end carries out quantum simulation processing according to the number to be decomposed and the random number to obtain measurement parameters related to a period in a quantum state to be solved, wherein the random number and the number to be decomposed are relatively prime, and the random number is smaller than the number to be decomposed; carrying out continuous-division expansion according to the measurement parameters to obtain the period in the quantum state to be solved; and obtaining each decomposition parameter of the number to be decomposed according to the period. According to the invention, by adopting the technical means that the FPGA terminal runs the quantum simulation processing part in the quantum computation and the host terminal runs the conventional computation processing part in the quantum computation, the delay of the simulation process is reduced and the simulation efficiency is improved.)

一种面向量子shor算法的仿真方法及装置

技术领域

本发明涉及数据仿真领域,尤其涉及一种面向量子shor算法的仿真方法及装置。

背景技术

随着科技的不断发展,人们对传统计算机的计算能力的要求逐渐提高。由于当前通过增加元器件的集成度提升传统计算机的计算能力越来越困难,因此计算能力高于传统计算机的量子计算机成为本领域技术人员重点研究对象。

量子计算机依赖量子算法,当前研究量子算法主要通过量子仿真计算平台,然而量子仿真计算平台主要通过集群的软件进行仿真,仿真过程延迟大,导致仿真效率低。

发明内容

鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种面向量子shor算法的仿真方法及装置,技术方案如下:

一种面向量子shor算法的仿真方法,所述方法应用于主机端,所述方法包括:

将待分解数与随机数发送至FPGA端,以使所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得与待求量子态中的周期有关的测量参数,其中,所述随机数与所述待分解数互质,且所述随机数小于所述待分解数;

根据所述测量参数进行连分式展开,获得所述待求量子态中的周期;

根据所述周期,获得所述待分解数的各分解参数。

可选的,所述根据所述周期,获得所述待分解数的各分解参数,包括:

根据欧几里得辗转相除法对所述周期进行处理,获得所述待分解数的各分解参数。

可选的,所述根据欧几里得辗转相除法对所述周期进行处理,获得所述待分解数的各分解参数,包括:

根据ar/2±1计算获得第一数值,其中,a为所述随机数,r为所述周期;

将所述第一数值与所述待分解数的最大公约数确定为所述待分解数的分解参数。

可选的,在所述根据所述周期,获得所述待分解数的各分解参数之后,所述方法还包括:

判断各分解参数的乘积是否与待分解数相等,如果相等,则确定各分解参数是所述待分解数的正确分解参数,如果不相等,则确定各分解参数不是所述待分解参数的正确分解参数,选择另一个随机数,返回执行所述将待分解数与随机数发送至FPGA端,以使所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得与待求量子态中的周期有关的测量参数的步骤。

可选的,所述FPGA端包括第一量子寄存器、第二量子寄存器和量子门,所述第一量子寄存器与所述量子门连接,所述第一量子寄存器与所述第二量子寄存器的初始量子态相同。

可选的,所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得待求量子态和与所述待求量子态中的周期有关的测量参数,包括:

所述FPGA端根据所述待分解数与所述随机数对所述第一量子寄存器和所述第二量子寄存器进行初始化,获得所述第一寄存器和所述第二寄存器的初始量子态,其中,所述第一量子寄存器与所述第二量子寄存器的初始量子态相同;

所述FPGA端根据所述待分解数与所述随机数,对所述第二量子寄存器的初始量子态进行构建,获得所述第一量子寄存器与所述第二量子寄存器的量子纠缠态;

所述FPGA端对所述第二量子寄存器的量子纠缠态进行测量,获得所述第一量子寄存器的第一量子态;

所述FPGA端对所述第一量子寄存器的所述第一量子态进行傅里叶变换,获得所述第一量子寄存器的待求量子态;

所述FPGA对所述待求量子态进行测量,获得与所述待求量子态的周期参数有关的测量参数。

可选的,所述第一量子寄存器与所述第二量子寄存器的初始量子态为:

Figure BDA0002263895350000031

其中,L为所述第一量子寄存器和所述第二量子寄存器的量子比特数,所述量子比特数满足:N2≤2L≤2N2

所述第一量子寄存器与所述第二量子寄存器的量子纠缠态为:

其中,a为所述随机数,N为所述待分解数;

所述第一量子寄存器的第一量子态为:

Figure BDA0002263895350000033

其中,

Figure BDA0002263895350000034

l为偏移量,r为所述周期;

所述第一量子寄存器的待求量子态为:

Figure BDA0002263895350000035

其中,i为虚数,y为与所述待求量子态中的周期有关的测量参数。

一种面向量子shor算法的仿真装置,所述装置应用于主机端,所述装置包括:仿真数值发送单元、周期获得单元和分解参数获得单元,

所述仿真数值发送单元,用于将待分解数与随机数发送至FPGA端,以使所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得与待求量子态中的周期有关的测量参数,其中,所述随机数与所述待分解数互质,且所述随机数小于所述待分解数;

所述周期获得单元,用于根据所述测量参数进行连分式展开,获得所述待求量子态中的周期;

所述分解参数获得单元,用于根据所述周期,获得所述待分解数的各分解参数。

可选的,所述分解参数获得单元具体用于根据欧几里得辗转相除法对所述周期进行处理,获得所述待分解数的各分解参数。

可选的,所述装置还包括:判断单元、正确分解参数确定单元和随机数选择单元,

所述判断单元用于所述分解参数获得单元据所述周期,获得所述待分解数的各分解参数之后,判断各分解参数的乘积是否与待分解数相等,如果相等,则触发所述正确分解参数确定单元,如果不相等,则触发所述随机数选择单元;

所述正确分解参数确定单元,用于确定各分解参数是所述待分解数的正确分解参数;

所述随机数选择单元,用于确定各分解参数不是所述待分解参数的正确分解参数,选择另一个随机数,触发所述仿真数值发送单元。

借由上述技术方案,本发明提供的一种面向量子shor算法的仿真方法及装置,应用于主机端,可以将待分解数与随机数发送至FPGA端,以使所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得与待求量子态中的周期有关的测量参数,其中,所述随机数与所述待分解数互质,且所述随机数小于所述待分解数;根据所述测量参数进行连分式展开,获得所述待求量子态中的周期;根据所述周期,获得所述待分解数的各分解参数。本发明通过FPGA端运行量子计算中的量子仿真处理部分,主机端运行量子计算中的常规计算处理部分的技术手段,降低仿真过程的延迟,提升了仿真效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的

具体实施方式

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种面向量子shor算法的仿真方法的流程示意图;

图2示出了本发明实施例提供的FPGA端的量子仿真处理过程的流程示意图;

图3示出了本发明实施例提供的乘法器与查找表的连接示意图;

图4示出了本发明实施例提供的另一种面向量子shor算法的仿真方法的流程示意图;

图5示出了本发明实施例提供的另一种面向量子shor算法的仿真方法的流程示意图;

图6示出了本发明实施例提供的一种面向量子shor算法的仿真装置的结构示意图;

图7示出了本发明实施例提供的另一种面向量子shor算法的仿真装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

如图1所示,本发明实施例提供的一种面向量子shor算法的仿真方法,所述方法应用于主机端,所述方法包括:

S100、将待分解数与随机数发送至FPGA端,以使所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得与待求量子态中的周期有关的测量参数,其中,所述随机数与所述待分解数互质,且所述随机数小于所述待分解数。

其中,主机端可以为携带中央处理器(Central Processing Unit,CPU)的电子设备。待分解参数可以为需要分解的整数。本方法实施例可以随机选择一个自然数作为随机数。可选的,所述待分解参数与所述随机数互质,且所述随机数小于所述待分解参数。

FPGA端可以为携带有FPGA(Field-Programmable Gate Array,现场可编程门阵列)的设备,例如FPGA处理板卡。FPGA端与主机端设备可以通过通信总线进行通信连接,其中,通信总线可以为采用PCI-Express(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)的总线。FPGA端可以与主机端通信连接。

本发明实施例可以根据数论理论,将直接分解待分解数获得该待分解数的分解参数转化为通过求解周期性函数的周期获得该待分解数的分解参数。例如,N为待分解数,a为随机数,本发明实施例可以通过计算周期性函数fa,N(x)=ax(modN)的周期,进而获得待分解数的各分解参数。

需要注意的是,本发明实施例获得周期性函数fa,N(x)=ax(modN)的周期的过程可以使用量子shor算法。本发明实施例可以根据量子shor算法,在FPGA端中对待分解数和随机数进行量子仿真处理,进而获得能够求解出周期性函数fa,N(x)=ax(modN)的周期的测量参数。

本发明实施例可以通过通信总线,将待分解数与随机数发送至FPGA端。可选的,所述FPGA端可以包括第一量子寄存器、第二量子寄存器和量子门,所述第一量子寄存器与所述量子门连接,所述第一量子寄存器与所述第二量子寄存器的初始量子态相同。

可选的,如图2所示,FPGA端的量子仿真处理过程可以包括:

S10、所述FPGA端根据所述待分解数与所述随机数对所述第一量子寄存器和所述第二量子寄存器进行初始化,获得所述第一寄存器和所述第二寄存器的初始量子态,其中,所述第一量子寄存器与所述第二量子寄存器的初始量子态相同。

其中,所述第一量子寄存器与所述第二量子寄存器的初始量子态为:

Figure BDA0002263895350000061

其中,L为所述第一量子寄存器和所述第二量子寄存器的量子比特数,所述量子比特数满足:N2≤2L≤2N2

S20、所述FPGA端根据所述待分解数与所述随机数,对所述第二量子寄存器的初始量子态进行构建,获得所述第一量子寄存器与所述第二量子寄存器的量子纠缠态。

所述第一量子寄存器与所述第二量子寄存器的量子纠缠态为:

Figure BDA0002263895350000062

其中,a为所述随机数,N为所述待分解数。

具体的,本发明实施例可以通过对第一量子寄存器和第二量子寄存器的初始量子态进行幺正变换获得量子纠缠态。第一量子寄存器和第二量子寄存器的量子纠缠态相同。

S30、所述FPGA端对所述第二量子寄存器的量子纠缠态进行测量,获得所述第一量子寄存器的第一量子态。

所述第一量子寄存器的第一量子态为:

Figure BDA0002263895350000071

其中,l为偏移量,r为所述周期。

具体的,本发明实施例在对

Figure BDA0002263895350000073

进行测量时,假设第二量子寄存器的量子纠缠态的坍缩态为z=al(modN),由于量子仿真函数的周期为r,则可以获得al(modN)=ajr+l(modN),其中,l≤r,j=0,1,...,A,所以x=l,l+r,...,l+Ar,因此,当第二量子寄存器的量子纠缠态坍缩时,第一量子寄存器的量子纠缠态相应地坍缩为第一量子态:

Figure BDA0002263895350000074

S40、所述FPGA端对所述第一量子寄存器的所述第一量子态进行傅里叶变换,获得所述第一量子寄存器的待求量子态。

所述第一量子寄存器的待求量子态为:

其中,i为虚数,y为与所述待求量子态中的周期有关的测量参数。

FPGA端还可以通过与乘法器连接的查找表对第一量子态进行傅里叶变换。具体的,FPGA端可以通过与乘法器连接的查找表完成傅里叶变换过程中的指数计算。乘法器与查找表的连接可以如图3所示。

S50、所述FPGA对所述待求量子态进行测量,获得与所述待求量子态的周期参数有关的测量参数。

其中,测量参数为正整数。

S200、根据所述测量参数进行连分式展开,获得所述待求量子态中的周期。

其中,连分式展开(continued fraction expansion)是大规模系统的一种频域降阶法,其基本出发点是:将原型展开成连分式,然后截取前面几个起主要作用的偏系数构成简化模型,连分式法计算简便,拟合精度较高,是一种很有效的传递函数简化法。

具体的,在FPGA对待求量子态进行测量后,获得的测量参数满足不等式

Figure BDA0002263895350000081

其中,q=2L,k=0,1,2,·····,n。本发明实施例可以对该不等式

Figure BDA0002263895350000082

进行连分式展开,当k与r的最大公约数为1时,将该r的值确定为待求量子态中的周期。

S300、根据所述周期,获得所述待分解数的各分解参数。

可选的,如图4所示,本发明实施例提供的另一种面向量子shor算法的仿真方法,步骤S300可以包括:

S310、根据欧几里得辗转相除法对所述周期进行处理,获得所述待分解数的各分解参数。

具体的,本发明实施例可以根据ar/2±1计算获得第一数值,其中,a为所述随机数,r为所述周期。将所述第一数值与所述待分解数的最大公约数确定为所述待分解数的分解参数。

为了便于理解,此处通过举例进行说明:假设随机数a=7,周期r=4,待分解数N=15,则根据ar/2±1计算获得的第一数值为48和50,则48与15的最大公约数为3,50与15的最大公约数为5,因此待分解数的分解参数为3和5。

需要注意的是,本发明实施例中的随机数是随机选择的自然数,由于在实际情况中待分解数可以为较大数值的整数,因此本发明实施例可以在确定待分解数的各分解参数之后,对分解参数进行校验,判断分解参数是否为待分解数的正确分解参数。

具体的,如图5所示,本发明实施例提供的另一种面向量子shor算法的仿真方法,在步骤S300之后,还可以包括:

S400、判断各分解参数的乘积是否与待分解数相等,如果相等,则执行步骤S500,如果不相等则执行步骤S600。

S500、确定各分解参数是所述待分解数的正确分解参数;

S600、确定各分解参数不是所述待分解参数的正确分解参数,选择另一个随机数,返回执行步骤S100。

优选的,本发明实施例可以通过OpenCL(Open Computing Language,开放运算语言)与RTL(real time language,实时语言)编辑本发明实施例提供的一种基于量子计算的仿真方法中的步骤。可以理解的是,本发明实施例还可以通过其他的程序语言进行编辑,在此不作进一步的限定。

本发明实施例提供的一种面向量子shor算法的仿真方法,应用于主机端,可以可以将待分解数与随机数发送至FPGA端,以使所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得与待求量子态中的周期有关的测量参数,其中,所述随机数与所述待分解数互质,且所述随机数小于所述待分解数;根据所述测量参数进行连分式展开,获得所述待求量子态中的周期;根据所述周期,获得所述待分解数的各分解参数。本发明实施例通过FPGA端运行量子计算中的量子仿真处理部分,主机端运行量子计算中的常规计算处理部分的技术手段,降低仿真过程的延迟,提升了仿真效率。

与上述方法实施例相对应,本发明实施例还提供了一种面向量子shor算法的仿真装置,其结构如图6所示,该装置应用于主机端,所述装置包括:仿真数值发送单元100、周期获得单元200和分解参数获得单元300。

所述仿真数值发送单元100,用于将待分解数与随机数发送至FPGA端,以使所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得与待求量子态中的周期有关的测量参数,其中,所述随机数与所述待分解数互质,且所述随机数小于所述待分解数。

其中,主机端可以为携带中央处理器(Central Processing Unit,CPU)的电子设备。待分解参数可以为需要分解的整数。本方法实施例可以随机选择一个自然数作为随机数。可选的,所述待分解参数与所述随机数互质,且所述随机数小于所述待分解参数。

FPGA端可以为携带有FPGA(Field-Programmable Gate Array,现场可编程门阵列)的设备,例如FPGA处理板卡。FPGA端与主机端设备可以通过通信总线进行通信连接,其中,通信总线可以为采用PCI-Express(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)的总线。FPGA端可以与主机端通信连接。

主机端可以通过通信总线,将待分解数与随机数发送至FPGA端。可选的,所述FPGA端可以包括第一量子寄存器、第二量子寄存器和量子门,所述第一量子寄存器与所述量子门连接,所述第一量子寄存器与所述第二量子寄存器的初始量子态相同。

所述周期获得单元200,用于根据所述测量参数进行连分式展开,获得所述待求量子态中的周期。

所述分解参数获得单元300,用于根据所述周期,获得所述待分解数的各分解参数。

具体的,所述分解参数获得单元300具体用于根据欧几里得辗转相除法对所述周期进行处理,获得所述待分解数的各分解参数。

具体的,分解参数获得单元300可以根据ar/2±1计算获得第一数值,其中,a为所述随机数,r为所述周期。将所述第一数值与所述待分解数的最大公约数确定为所述待分解数的分解参数。

如图7所示,本发明实施例提供的另一种面向量子shor算法的仿真装置还可以包括:判断单元400、正确分解参数确定单元500和随机数选择单元600。

所述判断单元400用于所述分解参数获得单元300据所述周期,获得所述待分解数的各分解参数之后,判断各分解参数的乘积是否与待分解数相等,如果相等,则触发所述正确分解参数确定单元500,如果不相等,则触发所述随机数选择单元600。

所述正确因子确定单元,用于确定各分解参数是所述待分解数的正确分解参数。

所述随机数选择单元600,用于确定各分解参数不是所述待分解参数的正确分解参数,选择另一个随机数,触发所述仿真数值发送单元100。

本发明实施例提供的一种面向量子shor算法的仿真装置,应用于主机端,可以可以将待分解数与随机数发送至FPGA端,以使所述FPGA端根据所述待分解数与所述随机数进行量子仿真处理获得与待求量子态中的周期有关的测量参数,其中,所述随机数与所述待分解数互质,且所述随机数小于所述待分解数;根据所述测量参数进行连分式展开,获得所述待求量子态中的周期;根据所述周期,获得所述待分解数的各分解参数。本发明实施例通过FPGA端运行量子计算中的量子仿真处理部分,主机端运行量子计算中的常规计算处理部分的技术手段,降低仿真过程的延迟,提升了仿真效率。

在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种面向GPU芯片渲染输出单元性能仿真方法及平台

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类