首页 / 专利库 / 人工智能 / 量子计算机 / 量子计算机量子处理单元、量子电路以及量子电路量子算法

量子计算机量子处理单元、量子电路以及量子电路量子算法

阅读:179发布:2020-05-14

专利汇可以提供量子计算机量子处理单元、量子电路以及量子电路量子算法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种 量子计算 机 量子处理单元、量子 电路 以及量子电路量子 算法 ,属于计算机技术领域。量子处理单元(QPU)是由5个模 块 组成的,并由一个经典设备控制。量子电路基于SHOR算法,定义两个n量子位输入|x>和|y>;设置一个控制寄存器和一个目标寄存器,为每个算法定义了 门 Gc,G'c和Gt,以及反馈 开关 S0,S1,S2,S3,量子电路量子算法是基于Shor算法的量子处理架构的设计方案,本发明考虑了反馈控制对所提构架的影响,利用反馈调节可以有效保证在大数分解时周期寻找,从而有效实现量子算法的最佳性能。,下面是量子计算机量子处理单元、量子电路以及量子电路量子算法专利的具体信息内容。

1.一种量子计算机量子处理单元,其特征在于,包括
初始化模:根据其经典态描述创建量子态并将其保存到量子存储器
n位量子存储器模块:设置带有量子寄存器的节点,允许存储量子态,量子存储器模块能与量子晶体管和量子通信通道交换量子比特
量子计算模块:通过给定量子算法对量子数据进行逻辑运算处理;
量子晶体管:设置带有量子寄存器的,能够执行量子转换的3量子比特器件,包括三种类型的操作:QET,PHASE和CQET,
测量模块:执行量子检测过程,并给出正在测量的量子位的经典位
经典设备控制器:用于指挥计算机中各部分的协调工作,能在设定好的步骤下完成指定任务。
2.根据权利要求1所述的一种量子计算机量子处理单元,其特征在于,经过量子晶体管的操作集{QET(θ),PHASE(θ),CQET},完成量子计算,对于量子晶体管里的三种三种类型操作中有:
QET对加载到量子晶体管的一对量子位执行以下转换:
对于任意的θ=ΩσNt,θ为晶体管的数量(如果有多个);
PHASE在加载到量子晶体管的一对量子位上执行以下转换:
其中相位θ和 是物理实现的参数,θ为晶体管的数量(如果有多个);
CQET是通过量子晶体管效应实现的QET(π)操作的受控版本;该操作由以下酉矩阵给出:
令θ=π,θ晶体管的数量(如果有多个);操作集{QET(θ),PHASE(θ),CQET}是一个通用的操作集,这意味着所提出的模型能够执行任意的量子计算;QET(θ)门对应于围绕Bloch球体的X轴的旋转X门Rx(θ),并且PHASE(θ)对应旋转Z门Rz(θ)运算,CQET是一个逻辑CNOT门,直至相对相位,可通过额外的PHASE(θ)操作使其一一对应。
3.一种采用权利要求1所述的量子计算机量子处理单元的量子电路,其特征在于,基于SHOR算法,定义两个n量子位输入|x>和|y>;设置一个控制寄存器和一个目标寄存器,为每个算法定义了门Gc,G'c和Gt,以及反馈开关S0,S1,S2,S3。
4.一种基于权利要求3所述的量子电路的量子算法,其特征在于,包括:
步骤1、初始化,让输入状态在起始时均为零状态
步骤2、将因式分解问题转换为顺序搜索,Shor算法的核心是想把质因数分解问题转变成为求某一个函数的周期,也就是说在一开始由量子的并行特性经过一次运算得到的所有函数值,在这之后对函数进行测量,可以测得叠加态的自变量,最后对所得结果进行量子Fourier变换;
步骤3、采用量子算法进行顺序搜索,算法的量子部分是为了找到一个数的因子,解决称为周期寻找的问题就足以解决Shor算法的问题,具体是:周期寻找方法在控制寄存器和目标寄存器上运行;控制寄存器实际上被测量以便找到函数的周期;以估计抽样为1/r的随机整数倍,这可以用来解决顺序搜索问题;由于该算法不需要反馈,开关S0,S1,S2和S3打开;一个n量子位输入|x>存储在控制寄存器中,一个r量子位|y>存储在目标寄存器中;n量子位控制寄器初始存化为 r量子位目标寄初始存化为|1>=|00...1>;门Gc为n量子位量子傅立叶变换(QFT),而门G'c为n量子位量子傅立叶变换的逆变换(QFT-1);Gt门将从此框架中省略,第二个输入将在没有任何处理的情况下进入黑盒;Uf被定义为 控制。
5.根据权利要求4所述的一种基于量子电路的量子算法,其特征在于,所述步骤3中,(1)定义大数质因子分解表述为:N为已知的大奇数,而N=pq(pq均为质数),求p和q,分解因子具体包括
步骤1:随机选取一个正整数y,有y<N,且y与N互质,即gcd(y,N)=1;
步骤2:定义f(x)=yxmod N,可知f(x)是一个周期函数,如果是以r为周期则有:
x x+r
ymod N=y mod N
故:yr=1 mod N
所求f(x)的周期r应为偶数,若r为奇数则需重新取y值,直到r为偶数为止;
步骤3:求p和q;
r/2 2
(y ) -1=0 mod N
(yr/2-1)(yr/2+1)=0 mod N
辗转相除求得yr/2+1和N的最大公因数,则此数为p;
上面各步骤里的主要计算为辗转相除以及计算f(x)和f(x)的周期;辗转相除的时间复杂度为O(n2),计算f(x)的时间复杂度为O(n2(lg n)(lg lg n));求f(x)的周期需要进行傅里叶变换,量子傅里叶变换的复杂度为O(lg n),所以Shor量子算法的时间复杂度为O(n2(lg n)(lg lg n));
(2)求f(x)的周期
Shor算法最关键的地方在于利用量子傅立叶变换来求f(x)的周期,其具体步骤如下:
步骤1:将两个寄存器R1和R2初始化为0,即|ψ0>=|R1>
|R2>=|0>|0>=|00…>|00…>;
步骤2:对R1中的每个位做H变换:
式中q=2m≥N,可知R1寄存器中保存了从0到q-1的所有数的叠加;
步骤3:对|R1>进行幺正变换,其结果存入R2寄存器;
此时的R1与R2处于纠缠态;
l l jr+
步骤4:测量|R2>,假设|R2>态坍缩为z=ymodN;由于f(x)的周期是r,故ymod N=y
1mod N,式中l≤r,j=0,1,…,A,A是(q-1)/r的最大整数;所以:x=1,1+r,…,1+Ar;
|R2>坍缩时,|R1>也相应的坍缩成: 可以看出|R1>是以r为周期
的一组态的叠加;若q是r的整数倍,令A=1/r-1,则有:
式中 此处如果x-1是r的整数倍,则有 否则f(x)=0;
步骤5:对|R1>作量子傅立叶变换QFT(Quantum Fourier Transform);
式中:
其中,若c是q/r的整数倍时,则有 否则
QFT让所需结果得到了增强,而让不需要的结果变为0;这种现象被称为量子干涉现象;
因此可知,若c=kq/r,则:
由此可知,QFT将|R1>的周期由r变成了q/r;
步骤6:测量|R1>QFT,得到c';由于c'=kq/r,因此k/r=c'/q;因c'和q为己知,若gcd(k,r)=1,就可以求出r,最大的r即是所需要求的f(x)的周期。

说明书全文

量子计算机量子处理单元、量子电路以及量子电路量子算法

技术领域

[0001] 本发明涉及一种量子计算机量子处理单元、量子电路以及量子电路量子算法,属于计算机技术领域。

背景技术

[0002] 自从1946年第一台电子计算机诞生以来,计算机经历了电子管、晶体管、中小规模集成电路和超大规模集成电路四个时代,一直处在在飞速发展中,尤其到了二十世纪后半期计算及技术大行其道,人类进入了信息时代。然而,半导体技术的发展受到了摩尔定律的制约,摩尔定律表明集成电路上可容纳的元器件的数目,大概每十八到二十四个月就会增加一倍,性能也将提升一倍。也就是说,随着集成度的提高,当半导体器件小到只有一个原子大小的时候,传统的计算机将面临一个不可逾越的境地。一方面,原子大小级别原件器不再遵循欧姆定律,而量子效应随即会产生,电路的行为不再像之前那样可以精确预测;另一方面,人们发现芯片的集成度的提高会导致计算机中的芯片发热,随之带来的便是能耗的增加,从而限制了计算机的运行速度。然而,能耗来源于计算过程中的不可逆操作。
[0003] 于是,量子计算机[1-2]的发展将成为打开计算机新世界的突破口,与此同时,量子计算机高效解决信息的能和可涉及的领域之广引起了众多科学家、企业以及政府的重视。量子计算是站在物理的度,试图用大自然最基本的规律—即以酉变换、叠加态、纠缠和不确定性原理等为代表的纯量子效应来处理数据,并且所有的量子变换都是可逆变换,不存在信息丢失导致的释放热量[3]。早在1982年,美国加利福尼亚理工学院的Feynman[4]提出了把量子力学和计算机结合起来的可能性,首次提出了量子计算机的概念。他指出,量子计算机比经典计算机更能有效的模拟量子系统,同时他建立了一个能显示如何利用量子系统执行计算的抽象模型。紧接着在1985年,津大学的Deutsch[5]在他的论文中提出任何物理过程原则上都能很好地被量子计算机模拟的方案,他的这种方案被普遍认为是量子计算机的第一个蓝图,他的工作在量子计算机发展中具有里程碑的意义。
[0004] 这些年来,已经有很多学者和企业在对量子计算的理论基础、应用和实现技术等方面进行研究,也先后出现了很多像量子计算模型[6-7]、量子计算仿真框架[8-9]、量子计算机体系结构[10-15]等方面的设计和改进方案,并取得了较为瞩目的研究成果。然而,量子计算机的物理实现极具有挑战性,大规模可行的量子计算机的攻克技术仍在研究之中,包括离子阱[16]、超导体[17]、核磁共振[18]等各种方法。就目前,受关注度较高的D-Wave公司在2011年宣称自己已经研制出了第一台可用于商用量子计算机,这种量子计算系统是基于绝[19] [20]
热量子退火算法而研发的 。尽管如此,学术界对此仍持有怀疑态度 。因此,进行量子处理的研究为能够运行量子算法的量子处理器的体系结构的研究提供了一种新思路。
[0005] 量子计算是基于量子力学的全新计算模式[2,21],利用态叠加性原理,量子计算机能够使用n个量子比特表示2n个数的线性叠加,然后通过一次操作同时实现对2n个叠加的数进行并行运算,提供了一种从根本上实现并行计算的思路,这种并行处理数据的能力相当于经典计算机进行2n次操作,因而量子计算机具备极大超越经典计算机运算能力的潜力。1994年贝尔实验室的Peter Shor博士提出了基于量子傅立叶变换的大数因子分解算法—即Shor算法[22]。该算法引出了计算机科学中的大数因子分解的核心问题。Shor算法的横空出世让全世界感到震惊,使用量子计算机运行Shor算法,可以在多项式时间内成功破译RSA公钥密码体制,较经典计算具有指数加速,这意味人们需要重新审视RSA等公钥密码体质的安全性,充分体现了量子计算机会对国防、政府、金融等领域的信息安全问题造成潜在的巨大威胁。因此,对基于Shor算法的量子处理器的研究显得尤为重要。
[0006] 量子处理单元(QPU)是可以进行量子计算的量子计算机的处理器。QPU中的一个典[23-24]型组件是运行量子算法的量子设备,即量子算法处理单元 。现阶段,针对量子计算机体系结构的探讨及研究仍处于实验平的现状,积极开展量子算法、量子处理单元框架与仿真实现技术的探索,有利于为量子计算与量子信息的研究奠定坚实的理论基础。量子算法及量子处理单元框架的研究是量子计算的主要研究方向之一,对探索新型室温量子计算机系统设计具有显著意义。

发明内容

[0007] 本发明采用如下技术方案:
[0008] .一种量子计算机量子处理单元,其特征在于,包括
[0009] 初始化模:根据其经典态描述创建量子态并将其保存到量子存储器中[0010] n位量子存储器模块:设置带有量子寄存器的节点,允许存储量子态,量子存储器模块能与量子晶体管和量子通信通道交换量子比特
[0011] 量子计算模块:通过给定量子算法对量子数据进行逻辑运算处理;
[0012] 量子晶体管:设置带有量子寄存器的,能够执行量子转换的3量子比特器件,包括三种类型的操作:QET,PHASE和CQET,
[0013] 测量模块:执行量子检测过程,并给出正在测量的量子位的经典位[0014] 经典设备控制器:用于指挥计算机中各部分的协调工作,能在设定好的步骤下完成指定任务。
[0015] 一种量子计算机量子处理单元,其特征在于,经过量子晶体管的操作集{QET(θ),PHASE(θ),CQET},完成量子计算,对于量子晶体管里的三种三种类型操作中有:
[0016] QET对加载到量子晶体管的一对量子位执行以下转换:
[0017]
[0018] 对于任意的θ=ΩσNt,θ为晶体管的数量(如果有多个)。
[0019] PHASE在加载到量子晶体管的一对量子位上执行以下转换:
[0020]
[0021] 其中相位θ和 是物理实现的参数,θ为晶体管的数量(如果有多个)。
[0022] CQET是通过量子晶体管效应实现的QET(π)操作的受控版本。该操作由以下酉矩阵给出:
[0023]
[0024] 令θ=π,θ晶体管的数量(如果有多个)。操作集{QET(θ),PHASE(θ),CQET}是一个通用的操作集,这意味着所提出的模型能够执行任意的量子计算。QET(θ)门对应于围绕Bloch球体的X轴的旋转X门Rx(θ),并且PHASE(θ)对应旋转Z门Rz(θ)运算,CQET是一个逻辑CNOT门,直至相对相位,可通过额外的PHASE(θ)操作使其一一对应。
[0025] 一种采用量子计算机量子处理单元的量子电路,其特征在于,基于SHOR算法,定义两个n量子位输入|x>和|y>。设置一个控制寄存器和一个目标寄存器,为每个算法定义了门Gc,G'c和Gt,以及反馈开关S0,S1,S2,S3。
[0026] 一种基于量子电路的量子算法,其特征在于,包括:
[0027] 步骤1、初始化,让输入状态在起始时均为零状态
[0028] 步骤2、将因式分解问题转换为顺序搜索,Shor算法的核心是想把质因数分解问题转变成为求某一个函数的周期,也就是说在一开始由量子的并行特性经过一次运算得到的所有函数值,在这之后对函数进行测量,可以测得叠加态的自变量,最后对所得结果进行量子Fourier变换。
[0029] 步骤3、采用量子算法进行顺序搜索,算法的量子部分是为了找到一个数的因子,解决称为周期寻找的问题就足以解决Shor算法的问题,具体是:周期寻找方法在控制寄存器和目标寄存器上运行。控制寄存器实际上被测量以便找到函数的周期。以估计抽样为1/r的随机整数倍,这可以用来解决顺序搜索问题。由于该算法不需要反馈,开关S0,S1,S2和S3打开。一个n量子位输入|x>存储在控制寄存器中,一个r量子位|y>存储在目标寄存器中。n量子位控制寄器初始存化为 r量子位目标寄初始存化为|1>=|00...1>。门Gc为n量子位量子傅立叶变换(QFT),而门G'c为n量子位量子傅立叶变换的逆变换(QFT-1)。Gt门将从此框架中省略,第二个输入将在没有任何处理的情况下进入黑盒。Uf被定义为 控制。
[0030] 在上述的一种基于量子电路的量子算法,所述步骤3中,定义大数质因子分解表述为:N为已知的大奇数,而N=pq(pq均为质数),求p和q,分解因子具体包括[0031] 步骤1:随机选取一个正整数y,有y<N,且y与N互质,即gcd(y,N)=1。
[0032] 步骤2:定义f(x)=yxmod N,可知f(x)是一个周期函数,如果是以r为周期则有:
[0033] yxmod N=yx+r mod N
[0034] 故:yr=1mod N
[0035] 所求f(x)的周期r应为偶数,若r为奇数则需重新取y值,直到r为偶数为止。
[0036] 步骤3:求p和q。
[0037] (yr/2)2-1=0mod N
[0038] (yr/2-1)(yr/2+1)=0mod N
[0039] 辗转相除求得yr/2+1和N的最大公因数,则此数为p。
[0040] 上面各步骤里的主要计算为辗转相除以及计算f(x)和f(x)的周期。辗转相除的时间复杂度为O(n2),计算f(x)的时间复杂度为O(n2(lg n)(lglg n))。求f(x)的周期需要进行傅里叶变换,量子傅里叶变换的复杂度为O(lg n),所以Shor量子算法的时间复杂度为O(n2(lg n)(lglg n))。
[0041] (2)求f(x)的周期
[0042] Shor算法最关键的地方在于利用量子傅立叶变换来求f(x)的周期,其具体步骤如下:
[0043] 步骤1:将两个寄存器R1和R2初始化为0,即|ψ0>=|R1>
[0044] |R2>=|0>|0>=|00…>|00…>。
[0045] 步骤2:对R1中的每个位做H变换:
[0046]
[0047] 式中q=2m≥N,可知R1寄存器中保存了从0到q-1的所有数的叠加。
[0048] 步骤3:对|R1>进行幺正变换,其结果存入R2寄存器。
[0049]
[0050] 此时的R1与R2处于纠缠态。
[0051] 步骤4:测量|R2>,假设|R2>态坍缩为z=ylmodN。由于f(x)的周期是r,故yl mod N=yjr+1mod N,式中l≤r,j=0,1,…,A,A是(q-1)/r的最大整数。所以:x=1,1+r,…,1+Ar。
[0052] |R2>坍缩时,|R1>也相应的坍缩成: 可以看出|R1>是以r为周期的一组态的叠加。若q是r的整数倍,令A=1/r-1,则有:
[0053]
[0054] 式中 此处如果x-1是r的整数倍,则有 否则f(x)=0。
[0055] 步骤5:对|R1>作量子傅立叶变换QFT(Quantum Fourier Transform)。
[0056]
[0057] 式中:
[0058]
[0059] 其中,若c是q/r的整数倍时,则有 否则
[0060] QFT让所需结果得到了增强,而让不需要的结果变为0。这种现象被称为量子干涉现象。因此可知,若c=kq/r,则:
[0061]
[0062] 由此可知,QFT将|R1>的周期由r变成了q/r。
[0063] 步骤6:测量|R1>QFT,得到c'。由于c'=kq/r,因此k/r=c'/q。因c'和q为己知,若gcd(k,r)=1,就可以求出r,最大的r即是所需要求的f(x)的周期。
[0064] 本发明涉及一种量子算法处理单元,然后提出了一种基于Shor算法的量子处理架构的设计方案,并考虑了反馈控制对所提构架的影响,利用反馈调节可以有效保证在大数分解时周期寻找,从而有效实现量子算法的最佳性能。附图说明
[0065] 图1是QPU的框架图。
[0066] 图2是量子处理单元(QPU)的原理框图
[0067] 图3是Shor算法周期寻找的问题框架图。
[0068] 图4.1是量子多计算机的框图。
[0069] 图4.2是混合体系结构。
[0070] 图5.1是周期求解图。
[0071] 图5.2是素因数分解15示意图。
[0072] 图5.3a是基于起始数11的模数真值表(当控制量子位处于状态|0>时)。
[0073] 图5.3b是基于起始数11的模数真值表(当控制量子位触发乘法时)。
[0074] 图5.4是不同起始数分解15的测量结果。
[0075] 图5.5是Deutsch算法框架图。
[0076] 图5.6是Grover算法框架图。

具体实施方式

[0077] 下面结合实施例对本发明进行具体说明
[0078] 1、量子处理单元框架的设计
[0079] 在实现量子算法中,基于门和节点的量子处理单元(QPU)设计是量子计算机的关键。如图1所示为本QPU的设计框架,该框架通过在经典计算机上可以针对现有的量子算法进行实现和模拟。
[0080] 在这个量子电路中,有两个输入|x>和|y>。输入数据需要两个寄存器,第一个寄存器用于存储|x>的控制寄存器,第二个寄存器用于存储|y>的目标寄存器。第一寄存器设置在门Gc的输入端,第二寄存器设置在门Gt的输入端。一个n量子位量子寄存器可以同时处于所有从|0>到|2n-1>这2n个状态的叠加。这种效应使得量子计算机可以同时计算所有可能输入的函数,一次通过。因此,Gc和Gt的常规函数是Hadamard变换和量子傅里叶变换(QFT)。大多数量子算法用于门G'c的功能相同,因此如果Gc为量子傅里叶变换,则G'c为量子傅里叶变换的逆变换。
[0081] 所有量子算法中的常见部分是黑盒或Oracle函数Uf,它常被用来为计算子程序建模,并且是可逆的。通常来说,黑盒函数可以简单地看作是一个计算未知函数f的盒子。输入是一些n位字符串|x>,输出是一个m位字符串f(x)。在量子计算中,这样的黑盒只有在可逆时才能存在。要创建可逆盒子,输入|x>与f(x)一起输出。为了使黑盒可逆,需要添加一个额外的m位输入|y>,输出结果是 其中 表示按位模二加法。如果|y>固定为y=0...0,则输出为f(x),而现在输入为n+m位字符串它将有2n+m种可能的结果输出,并且它是单一的。
[0082] 在一些量子算法中,重复执行一些函数或运算符,并且存在反馈以进行迭代。例如,在Grover算法中,运算符G=HU0⊥HUf可以通过以下转换序列来应用,并且反馈被迭代。在该框架中,反馈通过开关S0,S1,S2和S3来实现。在Grover算法中,开关S1和S3在迭代次后关闭,而S0和S2始终打开。在反馈上,运算符Wi和Wj是为扩展未来的量子算法做准备的,现有量子算法也需要不断地对这些运算符进行试验,以做出更高效能的量子计算机。
[0083] 2、量子处理单元原理
[0084] 图2是基于量子晶体管效应和量子存储器的量子计算机的处理单元原理框图。
[0085] 量子处理单元(QPU)是由5个模块组成的,并由一个经典设备控制。它们包括:
[0086] a.一个量子计算模块,通过给定量子算法对量子数据进行逻辑运算处理。
[0087] b.一个n位量子存储器模块,允许存储量子态。该内存的内容由当前状态来描述。量子存储器模块能够与量子晶体管和量子通信通道交换量子比特。
[0088] c.量子晶体管是一种能够执行量子转换的3量子比特器件。对此有三种类型的操作:QET,PHASE和CQET。通常,可以考虑一系列并联的量子晶体管,但为了简单起见,只留下一个模块。
[0089] d.一个初始化模块,可根据其经典态描述创建量子态并将其保存到量子存储器中。我们可以考虑在状态|0>中进行单量子位初始化,因为任何其他状态都可以通过通用操作集来获得[13]。
[0090] e.一个测量模块,它执行量子检测过程,并给出正在测量的量子位的经典位。
[0091] 所提出的模型是量子电路计算模型的特定修改,并且它也是通用的,因为可用的操作集合为量子计算提供了通用基础。
[0092] 这个模型中的量子算法可以用(t,n)量子程序来描述,它是n量子位存储器上几种类型的t指令序列。这些参数对应于关键复杂性度量:t是计算时间,n是所需空间。
[0093] 对于量子晶体管里的三种三种类型操作中有:
[0094] QET对加载到量子晶体管的一对量子位执行以下转换:
[0095]
[0096] 对于任意的θ=ΩσNt,θ为晶体管的数量(如果有多个)。
[0097] PHASE在加载到量子晶体管的一对量子位上执行以下转换:
[0098]
[0099] 其中相位θ和 是物理实现的参数,θ为晶体管的数量(如果有多个)。
[0100] CQET是通过量子晶体管效应实现的QET(π)操作的受控版本。该操作由以下酉矩阵给出:
[0101]
[0102] 令θ=π,θ晶体管的数量(如果有多个)。
[0103] 操作集{QET(θ),PHASE(θ),CQET}是一个通用的操作集,这意味着所提出的模型能够执行任意的量子计算。QET(θ)门对应于围绕Bloch球体的X轴的旋转X门Rx(θ),并且PHASE(θ)对应旋转Z门Rz(θ)运算,CQET是一个逻辑CNOT门,直至相对相位,可通过额外的PHASE(θ)操作使其一一对应。因而,在此通用操作集进行量子计算,并与反馈相互配合的情况下,该处理单元框架可适用于多种算法,再加上经典计算机的辅助可降低资源的消耗,提高量子算法的实现性能。
[0104] 3.建立shor算法的框架
[0105] 3.1建立shor算法的框架
[0106] Shor算法由两部分组成,第一部分是将因式分解问题归结为顺序搜索问题,这可以在经典计算机上完成。第二部分是量子算法解决顺序搜索问题。算法的量子部分是为了找到一个数的因子,解决称为周期寻找的问题就足以解决Shor算法的问题。
[0107] 周期寻找方法在控制寄存器和目标寄存器上运行。最后,控制寄存器实际上被测量以便找到函数的周期。图3显示了如何初始化量子电路的框架,以估计抽样为1/r的随机整数倍,这可以用来解决顺序搜索问题。由于该算法不需要反馈,开关S0,S1,S2和S3打开。一个n量子位输入|x>存储在控制寄存器中,一个r量子位|y>存储在目标寄存器中。n量子位控制寄存器初始化为 r量子位目标寄存器初始化为|1>=|00...1>。门Gc为n量子位量-1
子傅立叶变换(QFT),而门G'c为n量子位量子傅立叶变换的逆变换(QFT )。Gt门将从此框架中省略,这意味着第二个输入将在没有任何处理的情况下进入黑盒。Uf被定义为 控制。
[0108] 3.2模拟结果与分析
[0109] QCL[14-15]是一种结构化的与体系结构无关的量子计算机程序设计语言,其语法模糊的类似于C等经典编程语言。QCL包含了经典编程语言的基本特性也包含了基本量子运算符,因此能进行量子位的幺正变换和测量。
[0110] 因为15能质因子分解成最小的两个素数3和5,于是在linux系统下安装好QCL并搭建好环境用shor算法对15进行质因子分解,结果如5.2所示。
[0111] 当起始值x=4的情况下,模幂的周期为2,因为42mod15=1,而傅立叶变换后出现两个峰值|0>和|128>,p=1/2。因为0是在|ψ'>的第一个寄存器中测量的,而λ/r=0没有给出关于周期r的信息,所以第一次尝试失败。
[0112] 虽然第一个寄存器有8个量子位256个可能的基向量,但是如果一个数字n要被因子分解,假设n的素因子的数量级相同,则期望的周期为 这将导致在DFT之后出现一个周期 意外选取基向量|0>的概率 将为25.800。
[0113] 当起始值x=11时112mod15=1,虽然失败的概率与第一次尝试相同,但这次测量8
选择到了第二个峰值|128>处。在128/2=1/2=λ/r的情况下,正确识别了周期r=2,并找到了15的分解因子gcd(112/2±1,15)=(3,5)。
[0114] 4.基于shor算法的量子处理单元框架
[0115] 4.1量子处理单元框架的设计
[0116] 4.1.1量子多机与混合体系结构
[0117] 本章中所提的量子算法处理单元的框架,是一个在混合的体系结构下执行量子算法的量子装置。该量子装置可以作为量子多机[1]中的量子节点,量子多计算机由大量的节点和量子总线互连组成。节点执行实际计算,每个节点由两部分组成,一部分是保存量子数据的量子部分,另一部分是包含量子器件实时测量和控制电路的经典部分。经典操作由经典节点执行,量子操作由量子节点执行。量子多计算机的框图如图4.1。
[0118] 量子算法最简单的形式是由一个单位变换和随后对结果状态的测量组成。相对于像搜索或数学计算这类传统的计算任务,有效的量子实现往往是概率的。Shor算法等量子算法由两部分组成。第一部分是可以在经典计算机上运行的经典算法,第二部分是可以在量子计算机上运行或在经典计算机上模拟的量子算法。图4.2表示了混合体系结构的经典部分和量子部分之间的关系[22]-[23]。
[0119] 许多算法的量子部分是概率的;通常需要多次运行才能得到所需的结果。混合体系结构的主要阶段如下:
[0120] 1、预先计算某些经典因素(初始化并运行算法的经典部分)。
[0121] 2、在量子电路上运行量子算法:
[0122] a.初始化量子节点(初始化量子电路并定义所有门、开关和单一功能)。
[0123] b.准备输入状态(将输入存储在目标和控制寄存器上)。
[0124] c.执行算法的量子部分(对输入数据应用门和幺正变换)。
[0125] d.测量机器状态的输出(测量量子电路的输出寄存器)。
[0126] e.评估测量(如果检索到所需结果,则完成步骤3中的后处理)。
[0127] f.如果得到所需的结果,则退出(如果找到解决方案,则退出量子电路,否则重复步骤2)。
[0128] 3、完成后处理(运行算法的第二个经典部分)。
[0129] 步骤1和3可以在经典计算机上执行,而步骤2可以使用量子电路在量子计算机上执行。量子电路的测量和评价可以在经典计算机上通过在经典计算机上的模拟来完成。如果量子电路的测量和评估是量子部分的一个阶段,那么在混合体系结构的量子部分中自然会有反馈回路,以可视化所需硬件的总量。
[0130] 4.1.2量子处理单元框架
[0131] 在实现量子算法中,基于门和量子线路的量子算法处理单元设计是量子计算机的关键。如图1所示为本量子处理单元的设计框架,该框架通过在经典计算机上可以针对现有的量子算法进行实现和模拟。
[0132] 在这个量子电路中,有两个输入|x>和|y>。输入数据需要两个寄存器,第一个寄存器用于存储|x>的控制寄存器,第二个寄存器用于存储|y>的目标寄存器。第一寄存器设置在门Gc的输入端,第二寄存器设置在门Gt的输入端。一个n量子位量子寄存器可以同时处于所有从|0>到|2n-1>这2n个状态的叠加。这种效应使得量子计算机可以同时计算所有可能输入的函数,一次通过。因此,Gc和Gt的常规函数是Hadamard变换和量子傅里叶变换(QFT)。大多数量子算法用于门G'c的功能相同,因此如果Gc为量子傅里叶变换,则G'c为量子傅里叶变换的逆变换。
[0133] 所有量子算法中的常见部分是黑盒或Oracle函数Uf,它常被用来为计算子程序建模,并且是可逆的。通常来说,黑盒函数可以简单地看作是一个计算未知函数f的盒子。输入是一些n位字符串|x>,输出是一个m位字符串f(x)。在量子计算中,这样的黑盒只有在可逆时才能存在。要创建可逆盒子,输入|x>与f(x)一起输出。为了使黑盒可逆,需要添加一个额外的m位输入|y>,输出结果是 其中 表示按位模二加法。如果|y>固定为y=0...0,则输出为f(x),而现在输入为n+m位字符串它将有2n+m种可能的结果输出,并且它是单一的。在一些量子算法中,重复执行一些函数或运算符,并且存在反馈以进行迭代。例如,在Grover算法中,运算符G=HU0⊥HUf可以通过以下转换序列来应用,并且反馈被迭代。在该框架中,反馈通过开关S0,S1,S2和S3来实现。在Grover算法中,开关S1和S3在迭代 次后关闭,而S0和S2始终打开。在反馈上,运算符Wi和Wj是为扩展未来的量子算法做准备的,现有量子算法也需要不断地对这些运算符进行试验,以做出更高效能的量子计算机。
[0134] 4.2量子处理单元原理
[0135] 图2是基于量子晶体管效应和量子存储器的量子计算机的处理单元原理框图。
[0136] 量子处理单元是由5个模块组成的,并由一个经典设备控制。它们包括:
[0137] f.一个量子计算模块,通过给定量子算法对量子数据进行逻辑运算处理。
[0138] g.一个n位量子存储器模块,允许存储量子态。该内存的内容由当前状态来描述。量子存储器模块能与量子晶体管和量子通信通道交换量子比特。
[0139] h.量子晶体管是一种能够执行量子转换的3量子比特器件。对此有三种类型的操作:QET,PHASE和CQET。通常,可以考虑一系列并联的量子晶体管,但为了简单起见,我们只留下一个模块。
[0140] i.一个初始化模块,可根据其经典态描述创建量子态并将其保存到量子存储器中。我们可以考虑在状态|0>中进行单量子位初始化,因为任何其他状态都可以通过通用操作集来获得[13]。
[0141] j.一个测量模块,它执行量子检测过程,并给出正在测量的量子位的经典位。
[0142] 所提出的模型是量子电路计算模型的特定修改,并且它也是通用的,因为可用的操作集合为量子计算提供了通用基础。
[0143] 这个模型中的量子算法可以用(t,n)量子程序来描述,它是n量子位存储器上几种类型的t指令序列。这些参数对应于关键复杂性度量:t是计算时间,n是所需空间。
[0144] 对于量子晶体管里的三种三种类型操作中有:
[0145] QET对加载到量子晶体管的一对量子位执行以下转换:
[0146]
[0147] 对于任意的θ=ΩσNt,θ为晶体管的数量(如果有多个)。
[0148] PHASE在加载到量子晶体管的一对量子位上执行以下转换:
[0149]
[0150] 其中相位θ和 是物理实现的参数,θ为晶体管的数量(如果有多个)。
[0151] CQET是通过量子晶体管效应实现的QET(π)操作的受控版本。该操作由以下酉矩阵给出:
[0152]
[0153] 令θ=π,θ晶体管的数量(如果有多个)。
[0154] 操作集{QET(θ),PHASE(θ),CQET}[4]是一个通用的操作集,这意味着所提出的模型能够执行任意的量子计算。QET(θ)门对应于围绕Bloch球体的X轴的旋转X门Rx(θ),并且PHASE(θ)对应旋转Z门Rz(θ)运算,CQET是一个逻辑CNOT门,直至相对相位,可通过额外的PHASE(θ)操作使其一一对应。
[0155] 4.3建立Shor算法量子处理单元框架
[0156] 在量子算法电路中,定义两个n量子位输入|x>和|y>。设置一个控制寄存器和一个目标寄存器,另外,为每个算法定义了门Gc,G'c和Gt,还有反馈开关S0,S1,S2,S3。
[0157] 接下来,对Shor算法进行初始化和设置并建立对应的量子算法框架,验证该框架的实用性。
[0158] Shor算法由两部分组成,第一部分是将因式分解问题归结为顺序搜索问题,这可以在经典计算机上完成。第二部分是量子算法解决顺序搜索问题。算法的量子部分是为了找到一个数的因子,解决称为周期寻找的问题就足以解决Shor算法的问题。
[0159] 周期寻找方法在控制寄存器和目标寄存器上运行。最后,控制寄存器实际上被测量以便找到函数的周期。图3显示了如何初始化量子电路的框架,以估计抽样为1/r的随机整数倍,这可以用来解决顺序搜索问题。由于该算法不需要反馈,开关S0,S1,S2和S3打开。一个n量子位输入|x>存储在控制寄存器中,一个r量子位|y>存储在目标寄存器中。n量子位控制寄器初始存化为 r量子位目标寄初始存化为|1>=|00...1>。门Gc为n量子位量子傅立叶变换(QFT),而门G'c为n量子位量子傅立叶变换的逆变换(QFT-1)。Gt门将从此框架中省略,这意味着第二个输入将在没有任何处理的情况下进入黑盒。Uf被定义为 控制。
[0160] 现有算法在QPU框架中的实现和模拟
[0161] 在量子算法电路中,定义两个n量子位输入|x>和|y>。设置一个控制寄存器和一个目标寄存器,另外,为每个算法定义了门Gc,G'c和Gt,还有反馈开关S0,S1,S2,S3。
[0162] 现有量子算法的初始化和设置已经在所提出的框架中体现出来。接下来,说明现有量子算法对应框架的建立。这里我们用Shor算法举例,验证该框架的实用性。
[0163] 5.1 shor量子算法的仿真实例
[0164] Shor算法是由数学家Peter Shor在1994年提出的,针对整数分解的量子算法。Shor算法又称量子质因数分解演算法,其目的在于:给定一个整数N,找出他的质因数。
[0165] 5.1.1 Shor量子算法的求解步骤与周期寻找
[0166] Shor算法的核心是将大数质因子分解转化成为求某函数的周期,也就是说首先利用量子并行性通过一步计算获得所有的函数值,然后通过测量函数得到相关联的函数自变量的叠加态,并对其进行量子快速傅里叶变换。
[0167] (1)Shor量子算法的主要步骤
[0168] 大数质因子分解问题可以简单表述为:N为已知的大奇数,而N=pq(pq均为质数),求p和q。
[0169] 步骤1:随机选取一个正整数y,有y<N,且y与N互质,即gcd(y,N)=1。
[0170] 步骤2:定义f(x)=yxmod N,可知f(x)是一个周期函数,如果是以r为周期则有:
[0171] yxmod N=yx+r mod N
[0172] 故:yr=1mod N
[0173] 所求f(x)的周期r应为偶数,若r为奇数则需重新取y值,直到r为偶数为止。
[0174] 步骤3:求p和q。
[0175] (yr/2)2-1=0mod N
[0176] (yr/2-1)(yr/2+1)=0mod N
[0177] 辗转相除求得yr/2+1和N的最大公因数,则此数为p。
[0178] 上面各步骤里的主要计算为辗转相除以及计算f(x)和f(x)的周期。辗转相除的时间复杂度为O(n2),计算f(x)的时间复杂度为O(n2(lg n)(lglg n))。求f(x)的周期需要进行傅里叶变换,量子傅里叶变换的复杂度为O(lgn),所以Shor量子算法的时间复杂度为O(n2(lg n)(lglg n))。
[0179] (2)求f(x)的周期
[0180] Shor算法最关键的地方在于利用量子傅立叶变换来求f(x)的周期,其具体步骤如下:步骤1:将两个寄存器R1和R2初始化为0,即|ψ0>=|R1>
[0181] |R2>=|0>|0>=|00…>|00…>。
[0182] 步骤2:对R1中的每个位做H变换:
[0183]
[0184] 式中q=2m≥N,可知R1寄存器中保存了从0到q-1的所有数的叠加。
[0185] 步骤3:对|R1>进行幺正变换,其结果存入R2寄存器。
[0186]
[0187] 此时的R1与R2处于纠缠态。
[0188] 步骤4:测量|R2>,假设|R2>态坍缩为z=ylmodN。由于f(x)的周期是r,故yl mod N=yjr+1mod N,式中l≤r,j=0,1,…,A,A是(q-1)/r的最大整数。所以:x=1,1+r,…,1+Ar。
[0189] |R2>坍缩时,|R1>也相应的坍缩成: 可以看出|R1>是以r为周期的一组态的叠加。若q是r的整数倍,令A=1/r-1,则有:
[0190]
[0191] 式中 此处如果x-1是r的整数倍,则有 否则f(x)=0。
[0192] 步骤5:对|R1>作量子傅立叶变换QFT(Quantum Fourier Transform)。
[0193]
[0194] 式中:
[0195]
[0196] 其中,若c是q/r的整数倍时,则有 否则
[0197] QFT让所需结果得到了增强,而让不需要的结果变为0。这种现象被称为量子干涉现象。因此可知,若c=kq/r,则:
[0198]
[0199] 由此可知,QFT将|R1>的周期由r变成了q/r。
[0200] 步骤6:测量|R1>QFT,得到c'。由于c'=kq/r,因此k/r=c'/q。因c'和q为己知,若gcd(k,r)=1,就可以求出r,最大的r即是所需要求的f(x)的周期。
[0201] 5.1.2量子程序设计语言软件仿真的介绍
[0202] 与传统计算机相同,在量子计算机中的程序设计语言和处理系统是软件系统的重要组成成分。量子程序设计语言,从其设计的角度而言应具有完备性、与硬件无关性、高层抽象性、语义集成性。到目前为止被提出来的量子程序设计语言大约有十五种,它们多为函数式和命令式两种类型,本章将要使用的正是一种具有代表性的结构化命令式量子程序设计语言QCL来对量子处理单元框架进行模拟仿真。
[0203] 量子程序设计语言QCL是由B. 于1998年提出的,其语法类似于C等经典编程语言。程序定义了三种类型包括标量类型、张量类型和量子类型,标量类型有实型、整型、复型、串型、布尔型;张量类型有向量、矩阵和n阶张量三种;量子类型包括通用寄存器(qureg)、量子常量(quconst)、目标寄存器(quvoid)、擦除寄存器(quscratch)等。其语句分为简单语句、交互命令和流程控制语句三大类,而简单语句是由赋值语句、初始化语句、测量语句以及输入输出语句组成;交互命令是由是由模拟语句、开壳语句、列表语句以及退出语句组成;流程控制语句是由循环语句以及异常终止语句组成的。总的来说,它既保留了传统计算的函数、数据类型和I/O交互等特色,又提供了量子数据类型和量子存储表示方法,还反映了诸多如量子计算中的酉变换的可逆性、量子位的非定域性还有状态不可观察性等量子计算特点。在本章中,QCL的运行是基于Ubuntu  16.04Linux系统以及VMware Workstation虚拟机
[0204] 下面以5量子比特为例对量子程序设计语言QCL的语句命令进行一下简单说明。
[0205] 初始化qcl并转存一个量子位
[0206] 1$qcl--bits=5
[0207] 2[0/8]1|00000>
[0208] 3qcl>qureg a[1];
[0209] 4qcl>dump a
[0210] 5:SPECTRUM a:|....0>
[0211] 6 1|0>
[0212] 此处我们在qcl量子堆中为一个1量子位(布尔型)变量分配空间。机器的量子态(|00000>)被初始化为全0。而5个0的字符串(一个0代表量子堆中的一位)就形成该状态的标签。同线性代数传统的数学标记法相比,其主要优点是更易于输入。
[0213] “qureg a[1]”为量子堆中的1位变量a分配空间。dump a命令是告诉了一些关于a的信息。SPECTRUM行则说明了在量子堆中分配给a的量子位的位置;在这种情况下,a的0位是堆中右面第一位的量子位。下面一行告诉我们,如果我们要测量a,那么我们认为“0”的概率为“1”。
[0214] 当然,因为qcl是一个模拟器,所以只是有可能能窥到量子内存。只有不可撤回的改变值才能观察到真正的量子位。
[0215] CNot量子位运算符
[0216] 1 qcl>qureg b[2];
[0217] 2 qcl>Not(b[1]);
[0218] 3[3/8]1|00100>
[0219] 4 qcl>CNot(b[0],b[1]);
[0220] 5[3/8]1|00110>
[0221] 6 qcl>dump b[0];
[0222] 7:SPECTRUM b[0]:|...0.>
[0223] 8 1|1>
[0224] 9 qcl>dump b[1];
[0225] 10:SPECTRUM b[1]:|..0..>
[0226] 11 1|1>
[0227] CNot()运算符同Not()运算符一样,是它本身的逆。第二次应用时,它会把第一次的结果反过来,使您回到同开始时一样的状态。
[0228] 用Mix()进行状态叠加
[0229] 1[0/8]1|00000>
[0230] 2 qcl>qureg a[1];
[0231] 3 qcl>dump a;
[0232] 4:SPECTRUM a:|....0>
[0233] 5 1|0>
[0234] 6 qcl>Mix(a);
[0235] 7[1/8]0.707107|00000>+0.707107|00001>
[0236] 8 qcl>dump a;
[0237] 9:SPECTRUM a:|....0>
[0238] 10 0.5|0>+0.5|1>
[0239] 本例中,利用了量子力学的叠加原理。根据dump a,如果要测量a,则会认为“0”或“1”的概率都等于0.5(0.7071072)。
[0240] 接下来是对一些量子程序设计语言QCL操作语句的名称和作用进行说明,具体如下表5.1所示:
[0241] 表5.1 QCL操作语句列表
[0242]
[0243] 5.1.3仿真结果与分析
[0244] 在Ubuntu 16.04Linux系统中下载并解压qcl安装包,搭建好环境后运行./qcl即进入了qcl量子模拟环境。
[0245] 因为15能素因子分解成最小的两个素数3和5,于是15便成了能被素因数分解的最小数,如图5.2所示是对其进行质素数分解的结果。
[0246] 当起始值x=4的情况下,模幂的周期为2,因为42mod15=1,而傅立叶变换后出现两个峰值|0>和|128>,p=1/2。因为0是在|ψ'>的第一个寄存器中测量的,而λ/r=0没有给出关于周期r的信息,所以第一次尝试失败。
[0247] 虽然第一个寄存器有8个量子位256个可能的基向量,但是如果一个数字n要被因子分解,假设n的素因子的数量级相同,则期望的周期为 这将导致在DFT之后出现一个周期 意外选取基向量|0>的概率 将为25.8%。
[0248] 当起始值x=11时112mod15=1,虽然失败的概率与第一次尝试相同,但这次测量选择到了第二个峰值|128>处。在128/28=1/2=λ/r的情况下,正确识别了周期r=2,并找到了15的分解因子gcd(112/2±1,15)=(3,5)。
[0249] 由前文知道,若要分解n=15随机选取的起始值并不只有4和11,而是属于(2,15)且与15互质的数,即可能被选到的起始数为{2,4,7,8,11,13,14},其对应的周期为{4,2,4,4,2,4,2},除了起始数14即使找到了对应的周期仍然失败外,其它的选择都有可能得到正确的结果。在图5.3中是在模拟过程中11mod15的真值表,a)当控制量子位处于状态|0>时,真值表对应自身操作,即无法达到有效输出;b)当控制量子位触发乘法时,真值表说明了输入状态与11模数15的乘法。
[0250] 在分析测量结果与输出状态的关系时发现除了14无法得到结果外,基于起始数4得到结果的次数也只有一次。图5.4是对于不同起始数分解15的测量结果。红条代表理想数据,蓝条代表测量数据,分别显示的是基于起始数{2,7,8,11,13}对应周期{4,4,4,2,4}的测量结果,为了量化模拟的性能,以平方统计重叠(SSO)来表示测量结果的保真度,对于起始数{2,7,8,11,13}的保真度为0.968,0.964,0.966,0.901,0.972。然而Shor算法允许人们从单次测量中以高概率推导出周期性,因为输出在确切的情况下,QFT是整数的比率,其中分母给出期望的周期性。这个周期性是用一个连续的分数展开来提取的,应用于 当k(量子比特数)足够大时,才与理想情况接近。对于周期性4(和周期寄存器中的3个量子位),输出状态4表示小数 所以允许推导正确周期的输出状态的概率大致减半。因此要获得正确周期性的置信度达到99%要求实验运行大约8次。
[0251] 5.2拓展设想
[0252] 本节中,在继续了解了Deutsch算法和Grover算法之后试图在原有量子单元原框架基础上拓展到其他算法。现有量子算法的初始化和设置已经在所提出的框架中体现出来。
[0253] (1)建立Deutsch算法的框架
[0254] Deutsch算法中的两个输入都是1量子位。第一个输入|x>初始化为|0>,第二个输入|y>初始化为|1>。门Gc,G'c和Gt均为1量子位Hadamard门。在该算法中不需要任何反馈,因此开关S0,S1,S2和S3断开。图5.5显示了Deutsch算法的初始化框架。
[0255] (2)建立Grover算法的框架
[0256] Grover算法包含两个不同的输入|x>和|y>,n量子位的输入|x>被存储在控制寄存器里,1量子位输入|y>被存储在目标寄存器里。该算法的量子电路中,n量子位控制寄存器初始化为 1量子位目标寄存器为|1>。门Gc为n量子位Hadamard门,而门G'c为1量子位Hadamard门,门Gt被运算符 代替。同时,Grover算法迭代由以下变换序列定义的算子 称为Grover迭代。这里需要一个反馈来确保G的这些序列变换迭代 次。这个反馈可以很容易地用开关S0,S1,S2和S3来实现。这可以通过关闭S1和S3,同时保持S0和S2打开来完成。迭代 次时反馈开始执行。反馈回路采用的是直接反馈,可以支持任何未来量子算法的运算符Wi和Wj。Grover算法的初始化框架如图
5.6所示。
[0257] 表5.1中显示了框架在各量子算法中的输入值,门和开的关状态。
[0258] 表5.1各量子算法对应框架设置
[0259]
[0260] 尽管上面已经出示和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型,均应属于本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈