一种低复杂度的量子线路模拟系统的制作方法

文档序号:14678194发布日期:2018-06-12 21:47阅读:145来源:国知局

本发明属于量子计算领域,具体涉及一种基于量子线路模型的程序语言描述系统,是一种低时间、空间复杂度的,用计算机对量子线路进行模拟系统。



背景技术:

以量子线路模型描述的量子算法,是一种操控量子计算机,使其对输入状态进行处理,并且输出特定的测量值的方法。量子计算机在运行量子算法时因其具有相对普通计算机更高效的处理数学问题的能力,例如能将破解RSA密钥的时间从数百年加速到数小时,故成为一种正在研究中的关键技术。量子计算机的处理速度随量子位数量的增长而指数增长,预计到50位以上时,量子计算机在特定问题上的处理速度将比世界上所有超级计算机的处理速度之和快。然而,现阶段的量子计算机的原型机的量子位数量较少,实际处理速度还没有经典计算机快。为了解决这个问题,人们用理论分析的方法对量子计算机的行为进行预测,这种方法通常用来验证量子算法或者量子计算机行为的正确性,对量子算法和量子计算机设计进行指导。

以往,人们使用代表量子逻辑门的幺正变换矩阵和代表量子态的复数矢量之积对量子态的变化进行分析和模拟仿真。但是,这样的计算的时间、空间复杂度都随着量子位的个数以二次的指数函数增长,当量子位达到20位时,表示一个量子逻辑门所需的矩阵维数达到1048576,以双精度浮点数据类型为例,需要16384GB的内存进行储存,占用的储存空间十分巨大。另外,人们使用量子线路图对量子算法进行描述,这种方法还存在可扩展性差的缺点。



技术实现要素:

1、要解决的问题

针对现有技术中因矩阵运算需要存储空间过大导致无法计算或存储空间足够但计算时间过长而不宜模拟量子线路的问题,本发明提供了一种低复杂度的模拟系统,对量子线路进行模拟。本发明利用量子逻辑门隐含的内在规律直接对量子态矢量的矩阵元进行操作,同时,这一方法还具有可扩展性,在未来可以使用超级计算机模拟位数更多的量子计算机。

2、技术方案

为解决上述问题,本发明采用如下的技术方案。

发明原理:利用量子逻辑门的矩阵特点,将复杂冗余的矩阵乘法降阶为多个低维的矩阵乘法。

一种低复杂度的量子线路模拟系统,包括输入模块、数据处理模块和输出模块,所述的数据处理模块对数据的处理过程如下:

(1)建立数学模型,表征量子态与量子逻辑门操作

对于单量子比特,数学模型为一个1*2的复向量;对于N个量子比特,通过直积运算得到1*2N的复向量;利用两个1*2N维的向量,分别存储量子态的实部与虚部,以任意给定量子逻辑门U以及操作的比特编号,表征相应的量子逻辑门;

(2)对量子比特进行分组,将量子比特的编号重排

根据量子比特是否为控制比特或受控比特作为判断条件,将量子比特分为两组:不是控制或受控比特的量子比特记为循环比特,控制或受控量子比特记为操作比特;将所有的操作比特的编号排在循环比特的后面,按照此编号对存储量子态的向量及总的操作矩阵U0重新排列,所述总的操作矩阵U0是每一个量子比特对应的量子逻辑门的矩阵形式的直积,循环比特对应的量子逻辑门的矩阵形式为单位矩阵;

(3)对总的操作矩阵U0降阶,计算输出态

利用重新排布后的总的操作矩阵U0中矩阵元排布的规律,将2N+2N的矩阵乘法,降阶为2N-m个2m*2m的矩阵乘法,完成数据处理过程;

其中,m为给定量子逻辑门的维度,对于单量子比特逻辑门,m=1,对于两量子比特逻辑门,m=2,以此类推。

进一步地,所述的步骤(2)中,对量子比特进行分组,将量子比特的编号重排的方法如下:

对于N位量子比特,总的操作矩阵U0为2N*2N的矩阵,输出量子态|θ>out通过总的操作矩阵U0与输入量子态|θ>in相乘得到,即|θ>out=U0*|θ>in;具体的:

1)对于单量子比特逻辑门Ui,总的操作矩阵U0可表示为:

其中,I为2*2的单位矩阵;将第i位量子比特移至第N位量子比特后,其余量子比特的位置不变,按照编号由小至大的顺序排列,即:

i为1、2....N之间的任一整数,相应的,存储输入量子态|θ>in的编号也做对应的调整;

输入量子态|θ>in改写为:|θ>in=|q1q2 ...qi-1qi+1 ...qNqi>;q1、q2 ...qi-1、qi+1...qN为循环比特,qi为操作比特;

单位矩阵直积的结果仍为单位矩阵,故总的操作矩阵U0改写为:

2)对于两量子比特逻辑门Uij,分组原理与单比特量子逻辑门相同,通过上述方法,将第ij位量子比特移至第N位量子比特后,其余量子比特位置不变,按照编号由小至大的顺序排列。总的操作矩阵U0改写为:

输入量子态|θ>in改写为:|θ>in=|q1q2 ...qi-1qi+1 ...qj-1qj+1 ...qNqiqj>;q1、q2...qi-1、qi+1...qj-1qj+1...qN为循环比特,qi、qj为操作比特;

注:为了表述方便,本方法中的两量子比特逻辑门的符号表示中,均默认为i<j且i+1<j-1,但处理实际问题中并无此要求,满足上述文字叙述即可。

3)同理,此方法扩展至三位以上的多位量子比特逻辑门操作。

进一步地,所述的步骤(3)对总的操作矩阵U0降阶的方法如下:

1)对于单量子比特逻辑门

根据所述的步骤(2)的排列结果,将循环比特按照编号从00...00遍历至11...11,步长为1;对于操作比特进行相应的量子逻辑门计算,具体如下:

其中|q1q2...qi-1qi+1...qN0>in,|q1q2...qi-1qi+1...qN1>in表示的是输入量子态分量为|q1q2...qi-1qi+1...qN0>,|q1q2...qi-1qi+1...qN1>的系数;|q1q2...qi-1qi+1...qN>out,|q1q2...qi-1qi+1...qN1>out表示的是输出量子态分量为|q1q2...qi-1qi+1...qN0>,|q1q2...qi-1qi+1...qN1>的系数;

故将2N*2N的矩阵乘法,化简为2N-1个2*2的矩阵乘法,依次完成每个2*2的矩阵即可得到输出量子态的结果;

2)对于双量子比特逻辑门,降阶方法与单量子比特逻辑门相同;

由于所述的步骤(2)的分组操作,输出量子态|θ>out=U*|θ>in可以重新表述为:对于q1q2...qi-1qi+1...qj-1qj+1...qN的从00…0至11…1的全排列,共2N-2种情况,对于每一种情况,执行

故将2N*2N的矩阵乘法,化简为2N-2个4*4的矩阵乘法,依次完成每个4*4的矩阵即可得到输出量子态的结果;

3)同理,此方法扩展三位以上更多位的量子比特逻辑门操作。

3、有益效果

相比于现有技术,本发明的有益效果为:

(1)本发明避免了显式表示量子逻辑门矩阵的系统中矩阵元数量过多的缺点,以及省略了矩阵乘法中的冗余操作,通过对操作矩阵与量子态编号的重新排列,得到操作矩阵的规律,从而对表示量子态的复向量直接计算,取代矩阵乘法的技术方案,以平方数量级相对矩阵乘法方法计算该问题;

(2)本发明采用化矩阵乘法为一阶向量运算的技术方案,提供了一种计算速度快,内存消耗低的求解量子线路仿真的一种系统。对于N位量子比特的模拟,传统矩阵算法需要存储2N*2N的操作矩阵以及1*2N的列向量。而改进后的技术只需要存储1*2N的列向量即可实现;

(3)本发明可扩展性强。对于三量子比特以上的量子逻辑门,可以采用相同的排列划分的方法,对N位量子比特系统做一个m量子比特逻辑门,可化简为2N-m+1次m*m的矩阵乘法运算。采用本系统的计算量远小于传统矩阵算法,且计算复杂度与单量子比特逻辑门相比并无差异。

附图说明

图1为本发明的线路模拟流程图。

具体实施方式

下面结合附图对本发明进行详细描述。

结合图1,基于具体的实施例对本发明的系统做进一步的描述。本发明的低复杂度的量子线路模拟系统,包括依次连接的输入模块、数据处理模块和输出模块。输入模块的作用是,数据输入。数据处理模块的作用是,完成对来自输入模块的数据的处理。输出模块的作用是对经数据处理模块处理的数据进行输出。具体的,数据处理模块对数据的处理过程如下:

下面以N=4的量子比特系统为例,量子输入态具体表示为:

注:

(1)在以下的实施例中,下标含义如下:|q1q3q3q4>in0的下标in代表输入态,out代表输出态,0代表编号重新排布前的顺序,1代表编号重新排布后的顺序。

(2)为了方便叙述,本实施例中每个量子态分量系数均为实数,但不仅限于实数,计算方法完全一致。

(3)|θ>in0和|θ>out0中,系数为零的量子态分量在总的量子态的表达式中省略不表示。

实施例1:对q2做Hadamard门操作。

步骤一:建立数学模型,用表征对量子体系的操作,此时总的操作矩阵U0与输入量子态|θ>in0可表示为:

步骤二:将量子比特分组,将量子比特的编号重排:

据量子比特是否为控制比特或受控比特作为判断条件,将量子比特进行分组,q1、q3、q4为循环比特,q2为操作比特。

根据分组结果,对量子比特编号重新排列,并按照此编号对存储量子态的向量及总的操作矩阵重新排列。重新排列后的量子态|θ>in1与重新排列后的总的操作矩阵U1如下:

步骤三:对总的操作矩阵降阶,计算输出态

通过新的编号以及操作矩阵的形式,可以将16*16的矩阵转换成8个2*2的矩阵。

接下来,利用分块后的矩阵,计算输出态:

其中q1q3q4为000至111的全排列共8种情况,依次计算输出结果。

具体过程如下:

q1q3q4=000时,

q1q3q4=001时,

q1q3q4=010时,

q1q3q4=011时,

q1q3q4=100时,

q1q3q4=101时,

q1q3q4=110时,

q1q3q4=111时,

最后,将上述结果结合可得到输出态

完成数据处理过程。

实施例1采用传统的矩阵算法,需要存储大小为16*16的总的操作矩阵,以及163次浮点乘法运算与16*15次浮点加法运算。

采用本发明的方法,只需要存储2*2大小的操作矩阵,以及32次浮点乘法运算和16次浮点加法运算。

实施例2:对q1q3做q1控制q3的CNOT门,记为CNOT1,3

步骤一:建立数学模型,用表征量子比特逻辑门。

步骤二:将量子比特分组,将量子比特的编号重排:据量子比特是否为控制比特或受控比特作为判断条件,将量子比特进行分组,q2、q4为循环比特,q1、q3为操作比特。根据分组结果,对量子比特编号重新排列,并按照此编号对存储量子态的向量及总的操作矩阵重新排列。重新排列后的量子态|θ>in1与重新排列后的总的操作矩阵U1如下:

其中,

步骤三:对总的操作矩阵降阶,计算输出态

通过新的编号以及操作矩阵的形式,可以将16*16的矩阵转换成4个4*4的矩阵。

接下来,利用分块后的矩阵,计算输出态:

其中q2q4为00至11的全排列情况,共四种情况。

具体过程如下:

q2q4=00时:

q2q4=01时:

q2q4=10时:

q2q4=11时:

最后,将上述结果结合可得到输出态

完成数据处理过程。

实施例2采用传统的矩阵算法,需要存储大小为16*16的总的操作矩阵,以及163次浮点乘法运算与16*15次浮点加法运算。

采用本发明的方法,只需要存储4*4大小的操作矩阵,以及64次浮点乘法运算和48次浮点加法运算。

实施例3:对q1q3q4做q1q3控制q4的Toffoli门,记为Toffoli1,3,4

步骤一:建立数学模型,用表征量子比特逻辑门。

步骤二:将量子比特分组,将量子比特的编号重排:据量子比特是否为控制比特或受控比特作为判断条件,将量子比特进行分组,q2为循环比特,q1、q3、q4为操作比特。根据分组结果,对量子比特编号重新排列,并按照此编号对存储量子态的向量及总的操作矩阵重新排列。重新排列后的量子态|θ>in1与重新排列后总的操作矩阵U1如下:

其中,

步骤三:对总的操作矩阵降阶,计算输出态

通过新的编号以及操作矩阵的形式,可以将16*16的矩阵转换成2个8*8的矩阵。

接下来,利用分块后的矩阵,计算输出态:

其中q2为0至1的全排列情况,共两种情况。

具体过程如下:

q2=0时:

q2=1时:

最后,将上述结果结合可得到输出态

完成数据处理过程。

实施例3采用传统的矩阵算法,需要存储大小为16*16的总的操作矩阵,以及163次浮点乘法运算与16*15次浮点加法运算。

采用本发明的方法,只需要存储8*8大小的操作矩阵,以及128次浮点乘法运算和112次浮点加法运算。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1