CN111291892A - 一种量子并行搜索方法 - Google Patents

一种量子并行搜索方法 Download PDF

Info

Publication number
CN111291892A
CN111291892A CN202010055786.2A CN202010055786A CN111291892A CN 111291892 A CN111291892 A CN 111291892A CN 202010055786 A CN202010055786 A CN 202010055786A CN 111291892 A CN111291892 A CN 111291892A
Authority
CN
China
Prior art keywords
register
quantum
state
solution
operator
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.)
Granted
Application number
CN202010055786.2A
Other languages
English (en)
Other versions
CN111291892B (zh
Inventor
王平
刘光强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen University
Original Assignee
Shenzhen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen University filed Critical Shenzhen University
Priority to CN202010055786.2A priority Critical patent/CN111291892B/zh
Publication of CN111291892A publication Critical patent/CN111291892A/zh
Application granted granted Critical
Publication of CN111291892B publication Critical patent/CN111291892B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Superconductor Devices And Manufacturing Methods Thereof (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及一种量子并行搜索方法,若将Oracle算子作为一个单元,则本发明所述方法能够在以运行时间复杂度为O(2n/4)和线路复杂度为O(2n/4)的情况下以接近1的概率找到搜索问题的解。由Grover算法的性质可知,量子迭代线路由G算子一个接一个串联构成,当输入量子比特数n比较大时,庞大的量子线路规模是Grover算法实际应用的主要障碍。本发明的主要目的在于提出一种改善的Grover量子搜索方法,旨在解决降低现有Grover算法的线路复杂度问题。

Description

一种量子并行搜索方法
技术领域
本发明涉及信息安全技术领域,更具体地,涉及一种量子并行搜索方法。
背景技术
量子计算是计算机科学、数学和物理学交叉的新领域,近几十年来,量子计算已经成为信息研究领域关注的焦点。作为一种新的计算模型,量子计算比经典计算要快得多。它依赖于量子力学原理来获得可满足性问题的解。量子的叠加性是量子计算的一个很重要的特性,以输入n个量子比特为例,量子计算可以一次计算2n个数据,每个计算结果以一定的概率幅值给出。
Grover在1996年提出了一种量子搜索算法,Grover算法是目前应用最广泛的量子捜索算法,可以在时间复杂度为
Figure BDA0002372745900000011
的情况下求解一个规模为N的无结构数据库中的搜索问题,Grove算法相对于经典算法进行了平方加速。Grover算法通过反复迭代
Figure BDA0002372745900000012
次G算子,放大目标状态的概率幅,减小非目标状态的概率幅,最终测量其叠加状态将以接近1的概率找到目标状态。反复应用G算子,这相当于在量子线路串联G算子的量子线路,量子线路越复杂,则需要更多的基础量子门电路和量子比特,每设计一个基础量子门电路和量子比特都需要耗费大量资源。而受限于目前所掌握的技术,量子计算机只能配备少量的量子位,对于只配有少量的量子比特的量子计算机,其实际应用也将受到更大的限制。目前最新的量子计算机是谷歌公司旗下的拥有53位量子比特的量子计算机。因此,本发明设计一个改进的Grover算法,采用时间-空间折衷的方法,以牺牲运算时间次数来降低量子线路的复杂度,从而可以减少量子比特数,使得配有少量的量子比特的量子计算机可以得到更广泛的应用。量子计算机可以加速NP完全问题,如3SAT、图着色、旅行商等NP完全问题。
发明内容
本发明为克服上述现有技术所述的量子搜索效率低的缺陷,提供一种量子并行搜索方法。
Grover算法是相对于经典算法是一种二次方加速的量子算法,该算法能够在以运行时间复杂度为O(1)和线路复杂度为
Figure BDA0002372745900000013
的情况下以接近1的概率找到问题的解,其中量子线路由G算子一个接一个串联构成,在输入状态经过
Figure BDA0002372745900000021
次G算子时,再测量最后的叠加态将以接近1的概率找到解。由Grover算法的性质可知,当输入量子比特数n比较大时,庞大的量子线路规模是Grover算法实际应用的主要障碍。
本发明所述方法基于量子并行搜索系统来实现,所述系统包括可调用的:寄存器1、寄存器2、寄存器3、G算子、辅助比特0、辅助比特1、Hadamard门、compare线路、受控UH门;
辅助比特0的初始化状态为|0>、辅助比特1的初始化状态为|1>状;
寄存器对应问题的输入;
G算子包括Oracle量子线路,算子U量子线路;
初始化为|0>状态的辅助比特0,作用是在Oracle算子里控制寄存器中的量子比特;
初始化为|1>状态的辅助比特1辅助翻转解的位置;
Oracle量子线路,用来检查辅助比特的相位来判断x是否为搜索问题的一个解;
算子U量子线路,用来放大搜索问题的解的概率幅值;测量线路,是对算法最后输出状态作测量;还有一些基本的量子门电路;
U算子由单位矩阵、Hadamard门和条件相移Ux算子组成。
Hadamard门用于变换
Figure BDA0002372745900000022
条件相移Ux算子的作用是使得状态|0>以外的每一个计算基态获得-1的相位移动;
所述方法包括以下步骤:
S1:构建一个搜索问题;
S2:应用Hadamard门于寄存器2和寄存器3,使得寄存器2和寄存器3为均衡状态;
S3:应用迭代算子G,更新寄存器2和寄存器3的量子状态,增加目标状态的概率幅值同时降低非目标状态的概率幅值;
S4:对寄存器2更新后的状态进行测量;
S5:寻找搜索问题的解。
优选地,S1具体为:假设一个搜索问题,其搜索空间为N=2n,即可以用n个比特表示其搜索空间大小,将搜索问题表示为一个输入x的函数f(x),则x取值范围是[0,2n-1],函数f的定义是,若x是一个搜索问题的解,则f(x)=1,否则f(x)=0,如果f(x)有唯一解,为了方便起见,令x0表示搜索问题的唯一解,则f(x0)=1,当x≠x0使得f(x)=0;找到f(x)的解时即是找到了一个搜索问题的解。
对于一个搜索问题f(x),可以先求出g(x)的唯一解x′0,再由x′0求f(x)的x0
其中,
Figure BDA0002372745900000031
Figure BDA0002372745900000032
x的取值范围是
Figure BDA0002372745900000033
符号
Figure BDA0002372745900000034
是模二运算(异或);
优选地,S2包括以下步骤:
S2.1:设每一个经典取值x1取值范围为
Figure BDA0002372745900000035
并将其经典值转变为二进制值,存储于寄存器1中;寄存器2初始化为状态
Figure BDA0002372745900000036
寄存器3初始化为状态
Figure BDA0002372745900000037
辅助量子比特0初始化为|0>;辅助量子比特1初始化为|1>;
其中,
Figure BDA0002372745900000038
表示n2个量子比特的状态都是|0>状态;
S2.2:对寄存器2、寄存器3中的量子比特做Hadamard变换,即分别应用
Figure BDA0002372745900000039
Figure BDA00023727459000000310
于寄存器2和寄存器3,得到系统所需的均衡叠加状态;对辅助量子比特1做Hadamard变换;
S2.3:应用Oracle算子于S2.2所得的状态,若存在解,则标志解的位置,否则保持不变;
S2.4:应用U算子于系统,假设g(x)存在解,则增大解的概率幅,同时减小非解的概率幅;
其中,U算子由单位矩阵、Hadamard变换
Figure BDA00023727459000000311
和条件相移Ux算子组成;
S2.5:将S2.3和S2.4整合为一个G算子,G=UO,使用G算子对S2.2后的系统的量子均衡叠加态进行
Figure BDA00023727459000000312
次迭代;
其中,O表示Oracle算子;
优选地,在对寄存器2测量之前,再应用一次
Figure BDA00023727459000000313
于寄存器2;
如果当前子问题不包含g(x)的解x′0,则测量值为0;如果当前子问题包含g(x)的解x′0,则测量结果值是随机坍缩到
Figure BDA00023727459000000314
中的一个值;
若测量值为非零值时,则当前子问题包含x′0,此时,去掉最后一次
Figure BDA00023727459000000315
在当前的x1值重新执行该系统一次,再测量即可得到x′0对应于n2的部分,假设测量值为x″0,则
Figure BDA00023727459000000316
优选地,S5中搜索问题的解采用穷举法进行寻找。
优选地,S5包括以下步骤:
S5.1:判断x″0是否等于0,若不等于0,则
Figure BDA0002372745900000041
k=0,并执行S5.2,若等于0,则判断
Figure BDA0002372745900000042
是否成立,若不成立,则表示找不到解,并结束搜索,若成立,则令x1=x1+1,并返回S3;
S5.2:判断
Figure BDA0002372745900000043
是否成立,若成立,则找到解
Figure BDA0002372745900000044
并结束搜索;若不成立,则执行S5.3;
S5.3:判断
Figure BDA0002372745900000045
是否成立,若不成立,则表示找不到解,并结束搜索,若成立,则令k=k+1,并返回S5.2。
优选地,条件相移Ux算子的作用是使得寄存器2中状态
Figure BDA0002372745900000046
以外的每一个计算基态获得-1的相位移动,Ux算子由2|0><0|-I表示。
优选地,
Figure BDA0002372745900000047
优选地,O的作用是标志g(x)的解的位置,使得状态|x0′>→-|x0′>,其他状态则保持不变,其对应的矩阵可以用I-2|x0′><x0′|表示。
与现有技术相比,本发明技术方案的有益效果是:现有的Grover算法的线路复杂度为O(2n/2)。而改进的Grover算法,如果将Oracle算子看成一个单元,则改进的算法量子线路复杂度为O(2n/4),运行时间复杂度为O(2n/4),因此,减少了大量的量子门的应用和所需的量子比特数量,使得配有少量的量子计算机可以得到更为广泛的应用。
附图说明
图1为量子并行搜索方法的流程图;
图2为具有通用输入的Grover算法的线路框架图;
图3为改进Grover量子搜索算法的线路框架图;
图4为改进Grover算法的Oracle算子线路框架图;
图5为Grover量子搜索算法的几何过程描述图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1:
本实施例提供一种量子并行搜索方法,所述方法基于量子并行搜索系统来实现,所述系统包括可调用的:寄存器1、寄存器2、寄存器3、G算子、辅助比特0、辅助比特1、Hadamard门、compare线路、受控UH门;
辅助比特0的初始化状态为|0>、辅助比特1的初始化状态为|1>状;
寄存器对应问题的输入;
G算子包括Oracle量子线路,算子U量子线路;
初始化为|0>状态的辅助比特0,作用是在Oracle算子里控制寄存器中的量子比特;
初始化为|1>状态的辅助比特1辅助翻转解的位置;
Oracle量子线路,用来检查辅助比特的相位来判断x是否为搜索问题的一个解;
算子U量子线路,用来放大搜索问题的解的概率幅值;测量线路,是对算法最后输出状态作测量;还有一些基本的量子门电路;
U算子由单位矩阵、Hadamard门和条件相移Ux算子组成。
Hadamard门用于变换
Figure BDA0002372745900000051
条件相移Ux算子的作用是使得状态|0>以外的每一个计算基态获得-1的相位移动;
如图1所示,所述方法包括以下步骤:
S1:构建一个搜索问题;
S2:应用Hadamard门于寄存器2和寄存器3,使得寄存器2和寄存器3为均衡状态;
S3:应用迭代算子G,更新寄存器2和寄存器3的量子状态,增加目标状态的概率幅值同时降低非目标状态的概率幅值;
S4:对寄存器2更新后的状态进行测量;
S5:寻找搜索问题的解。
具体来说,首先假设函数f(x)表示一个搜索问题,若f(x)=1则表示找到解,f(x)=0则找不到解,其搜索空间为N=2n的问题,即x的取值范围是[0,2n-1],如果f(x)有唯一解x0使得f(x0)=1,x的其他取值都使得f(x)=0。Grover算法可以在线路复杂度为
Figure BDA0002372745900000061
的情况下找到f(x)的唯一解x0,当输入比特数n比较大时,量子线路消耗过大,为了降低线路规模,考虑将n个输入比特分成两部分:n1和n2,其中n1+n2=n并且n1为经典比特。经典比特n1的输入范围是
Figure BDA0002372745900000062
可以将原来的问题转为
Figure BDA0002372745900000063
个子搜索问题,每个子问题对应于n2个量子比特的输入的Grover搜索算法。对于每一个经典取值
Figure BDA0002372745900000064
算法的子搜索空间为
Figure BDA0002372745900000065
对于x1的全部取值,即
Figure BDA0002372745900000066
其对应搜索空间为原来问题的搜索空间2n,因此,f(x)的解x0必定存在于其中一个搜索子问题。该方法可以在运行时间复杂度为
Figure BDA0002372745900000067
和线路复杂度为
Figure BDA0002372745900000068
的情况下以接近1的概率找到问题的解。假设n1取值为n/3,n2取值为2n/3,(若n不能被3整除,则取
Figure BDA0002372745900000069
则该方法的运行时间复杂度为O(2n/3)和线路复杂度为O(2n /3)。因此,相比于原来的Grover算法,该方法将量子线路从O(2n/2)降至O(2n/3)。为实现该算法,需要准备两个寄存器和一个辅助量子比特,寄存器1存储n1个经典比特,寄存2存储n2个量子比特。整个量子线路图如图2所示。
步骤1.x1取值范围为
Figure BDA00023727459000000610
并将其经典值转变为二进制值,存储于寄存器1中;寄存器2初始化为状态
Figure BDA00023727459000000611
辅助量子比特初始化为|1>。
步骤2.对寄存器2中的量子比特做变换,即应用Hadamard变换
Figure BDA00023727459000000612
于寄存器2,得到系统所需的均衡叠加状态;对辅助量子比特做Hadamard变换H得到辅助量子比特的叠加态。
步骤3.应用Oracle算子于步骤2所得的状态,Oracle算子可以查找系统的均衡叠加态中是否存在问题解的状态,若存在所述问题解的状态,则标记所述问题解的状态,若不存在所述问题解的状态,则保持原状态,即Oracle算子对系统不起任何作用。
步骤4.对在Oracle算子应用于系统后得到的状态,应用Hadamard变换
Figure BDA00023727459000000613
于寄存器2。
步骤5.在系统执行条件相移Ux算子,使得寄存器2中状态
Figure BDA00023727459000000614
以外的每一个计算基态获得-1的相位移动。
步骤6.对在Ux算子应用于系统后得到的状态,应用Hadamard变换
Figure BDA00023727459000000615
于寄存器2。
对于步骤4、5、6所做的算子运算可以写成算子U,该算子亦称为关于均值的反演运算。将Oracle算子和U结合写成G算子,该算子对应于Grover算法中的G算子。使用G算子对步骤2后的系统的量子均衡叠加态进行
Figure BDA0002372745900000071
次迭代并在每次迭代后更新系统的叠加态。在对寄存器2测量之前,再应用一次
Figure BDA0002372745900000072
于寄存器2,如果当前子问题不包含原问题的解,测量得到的结果值一定是0。如果测量结果是非零值,则去掉最后一次变换
Figure BDA0002372745900000073
在不改变当前x1的值,重新执行一次该系统再测量,假设测量值为x′,则
Figure BDA0002372745900000074
为了更进一步降低量子线路规模,对于搜索空间为N=2n的f(x),将n个输入比特分为三个部分:n1、n2和n3,其中n1+n2+n3=n。对于原问题f(x),当且仅当x的取值为x0时,使得f(x0)=1,对于x≠x0,f(x)=0。设计一个布尔函数g(x)。
Figure BDA0002372745900000075
其中,x的取值范围是
Figure BDA00023727459000000723
符号
Figure BDA0002372745900000076
是模二运算(异或)。因此,对于f(x)存在唯一解x0,使得f(x0)=1,相应地,对应g(x)也同样存在唯一的值x0′,使得g(x0′)=1,对于x≠x0′,则g(x)=0。假设可以找到x0′,则同样可以找到原问题的解x0
Figure BDA0002372745900000077
其中
Figure BDA0002372745900000078
为了找到具体的解x0,可以通过简单的穷举搜索计算
Figure BDA0002372745900000079
是否等于1来确定k值,其运行时间复杂度为
Figure BDA00023727459000000710
为了获得布尔函数g(x)的唯一解x′0使得g(x)=1,利用前面所述的方法,n1为经典比特,其取值范围是
Figure BDA00023727459000000711
因此,可以将求解布尔函数g(x)的问题转为
Figure BDA00023727459000000712
个子搜索问题,每个子问题对应于n2个量子比特的输入的量子搜索算法,则x′0必定存在于其中一个子问题中。因此,可以在运行时间复杂度为
Figure BDA00023727459000000713
和线路复杂度为
Figure BDA00023727459000000714
的情况下以接近1的概率找到g(x)的唯一解x′0。在获得g(x)的解x′0之后,可以通过简单的穷举搜索计算
Figure BDA00023727459000000715
来找到f(x)的解
Figure BDA00023727459000000716
其运算时间复杂度为
Figure BDA00023727459000000717
假设n1取值为n/4,n2取值为n/2,n3取值为n/4(若n不能被4整除,则取
Figure BDA00023727459000000721
Figure BDA00023727459000000722
如果将Oracle算子看做一个单元,则该方法寻找g(x)的解x′0的时间复杂度为O(2n/4)和线路复杂度为O(2n/4),最后再以运算时间复杂度为O(2n/4)简单穷举搜索获得f(x)的解x0。实现该算法的整个量子线路框架图如图3所示,其中寄存器1存储n1个经典比特,寄存2存储n2个量子比特,寄存3存储n3个量子比特,辅助比特0主要作用是在Oracle算子里控制寄存器3中的量子比特,辅助比特1和前面所述方法一致。该算法与前面述所方法的步骤类似,下面作简要概述。对于图3,将最里面的虚线框包含两个Hadamard变换
Figure BDA0002372745900000081
和条件相移Ux算子写成一个U算子,U算子主要作用是对寄存器2中的量子比特作均值的反演运算,条件相移Ux算子与前面述所一样。
步骤1.x1取值范围为
Figure BDA00023727459000000812
并将其经典值转变为二进制值,存储于寄存器1中;寄存器2初始化为状态
Figure BDA0002372745900000082
寄存器3初始化为状态
Figure BDA0002372745900000083
辅助量子比特0初始化为|0>;辅助量子比特1初始化为|1>。
步骤2.对寄存器2、寄存器3中的量子比特做Hadamard变换,即分别应用
Figure BDA0002372745900000084
Figure BDA0002372745900000085
于寄存器2和寄存器3,得到系统所需的均衡叠加状态;对辅助量子比特1做Hadamard变换。
步骤3.应用Oracle算子于步骤2所得的状态,Oracle算子主要是标志g(x)的解x′0的位置,如果不存在解,则保持原状态,即Oracle算子对系统不起任何作用。
步骤4.应用U算子于系统,假设g(x)存在解,则增大解的概率幅,同时减小非解的概率幅。
对于步骤3和步骤4,可写成一个G算子,使用G算子对步骤2后的系统的量子均衡叠加态进行
Figure BDA0002372745900000086
次迭代。与前面所述方法一样,在对寄存器2测量之前,再应用一次
Figure BDA0002372745900000087
于寄存器2。如果当前子问题不包含g(x)的解x′0,则测量值为0;如果当前子问题包含g(x)的解x′0,则测量结果值是随机坍缩到
Figure BDA0002372745900000088
中的一个值。若测量值为非零值时,则当前子问题包含x′0,此时,只需去掉最后一次
Figure BDA0002372745900000089
在当前的x1值重新执行该系统一次,再测量即可得到x′0对应于n2的部分,假设测量值为x″0,则
Figure BDA00023727459000000810
在获得x′0的基础下可以通过简单的穷举法寻找f(x)的解x0
作为一个具体的实施例,下面结合具体情况进行比较分析:
对于一个搜索问题f(x),假设存在唯一解x0使得f(x0)=1,x的其他取值都使得f(x)=0,其搜索空间为N=2n,n为输入比特数量,我们的任务是在N个待搜索元素中找到x0。结合图2,将n个输入比特分成两部分:n1和n2,其中n1+n2=n,即将原来的问题转为
Figure BDA00023727459000000813
个子搜索问题,每个子问题对应于n2个量子比特的输入的Grover搜索算法。以
Figure BDA00023727459000000811
分别表示系统中的初始状态,初始状态经过Hadamard门线路的状态,经过Oracle算子的状态,经过相位概率幅值放大后的状态。初始化寄存器1,2和辅助量子比特,其中x1取值范围为
Figure BDA0002372745900000091
将x1的值转为二进制值,并将其对应的位从高到低存储于寄存器1中;寄存器2初始化为状态
Figure BDA0002372745900000092
辅助量子比特初始化为|1>。以
Figure BDA0002372745900000093
表示系统的初始化状态,则:
Figure BDA0002372745900000094
将系统的初始状态
Figure BDA0002372745900000095
对应的n2量子比特经过Hadamard变换
Figure BDA0002372745900000096
则在寄存器2中可得到对应n2量子比特的均衡叠加态
Figure BDA0002372745900000097
辅助比特经过Hadamard变换H,得到状态
Figure BDA0002372745900000098
Figure BDA0002372745900000099
表示此时对应的状态。
Figure BDA00023727459000000910
其中
Figure BDA00023727459000000922
表示单位矩阵。应用Oracle算子于系统,其可以标志f(x)的解的位置,即Oracle可以使得状态|x0>→-|x0>,对于其他状态则保持不变,其对应的矩阵可以用I-2|x0><x0|表示。用O表示Oracle算子,则:
Figure BDA00023727459000000911
条件相移Ux算子的作用是使得寄存器2中状态
Figure BDA00023727459000000912
以外的每一个计算基态获得-1的相位移动,Ux算子可以由2|0><0|-I表示。将Ux算子与其两边的Hadamard变换以U表示,则
Figure BDA00023727459000000913
Figure BDA00023727459000000914
表示应用U于状态
Figure BDA00023727459000000915
Figure BDA00023727459000000916
式中
Figure BDA00023727459000000917
表示状态|x>的幅值,
Figure BDA00023727459000000918
表示叠加态的幅值的平均值。对于图2中的外层虚线框部分以算子G表示,即G=UO。对于每个
Figure BDA00023727459000000919
在系统中重复应用G算子
Figure BDA00023727459000000920
次。以
Figure BDA00023727459000000921
表示:
Figure BDA0002372745900000101
其中ax,r是第r迭代对应状态|x>的幅值,
ax,r=-ax,r-1+2〈ar-1>
Figure BDA0002372745900000102
当r=1时,
Figure BDA0002372745900000103
Figure BDA0002372745900000104
如果当前子问题不包含f(x)的解x0,即
Figure BDA00023727459000001015
Figure BDA0002372745900000106
则:
Figure BDA0002372745900000107
如果当前子问题包含f(x)的解x0,即x0∈X1,则:
Figure BDA0002372745900000108
在使用G算子对系统的量子均衡叠加态进行
Figure BDA0002372745900000109
次迭代后,对寄存器2的量子叠加态进行测量,如果当前子搜索问题包含原问题的解x0,测量结果将于接近1的概率得到解x0对应于n2的部分,假设测量值为x′,则
Figure BDA00023727459000001010
若当前子搜索问题不包含原问题的解x0,则测量的结果值是量子均衡叠加态随机坍缩到
Figure BDA00023727459000001011
中的一个值。因此,这不能区分当前子问题是否包含原问题的解。考虑到多数情况下,当前子问题是不包含原问题的解,因此,在对寄存器2测量之前,再应用一次Hadamard变换
Figure BDA00023727459000001012
于寄存器2。如果当前子问题不包含原问题的解,在最后应用
Figure BDA00023727459000001013
到系统中之前,寄存器2的量子状态是均衡叠加状态,因此,应用
Figure BDA00023727459000001014
于寄存器2,测量得到的结果值一定是0;如果当前子问题包含原问题的解,则测量结果值是随机坍缩到
Figure BDA0002372745900000111
中的一个值。由此可知,当测量结果为非零值时,可以判断当前子问题包含解,此时,只需去掉最后一次Hadamard变换
Figure BDA0002372745900000112
在当前的x1值重新执行该系统一次,再测量即可得到x0对应于n2的部分,假设测量值为x′,则
Figure BDA0002372745900000113
如果测量结果为0值,则取x1的下一个值再次执行此系统。总的来说,该方法可以在运行时间复杂度为
Figure BDA00023727459000001116
和线路复杂度为
Figure BDA0002372745900000115
的情况下找到问题的解。
值得注意的是,如果当前子问题包含原问题的解,由该系统得到叠加态经测量后,测量值有可能为0值,此时,该方法无法找到正确的解,由于测量状态是随机坍缩到
Figure BDA0002372745900000116
中的其中一个状态,而测量之前的寄存器2中的量子状态接近于均匀叠加状态,因此,由于随机坍缩到0值而找不到正确的解的概率约等于
Figure BDA0002372745900000117
为了更进一步降低量子线路规模,对于一个搜索问题f(x),可以先求出g(x)的唯一解x′0,再由x′0求f(x)的x0。结合图3,将n个输入比特分成两部分:n1,n2和n3,其中n1+n2+n3=n。以
Figure BDA0002372745900000118
分别表示系统中的初始状态,初始状态经过Hadamard门线路的状态,经过r此迭代算子G的状态。以x1对应的二进制初始化寄存器1;寄存器2、3分别初始化为
Figure BDA0002372745900000119
辅助比特0、1分别初始化为|0>,|1>,辅助比特0的主要作用是控制寄存器3(以下分析过程忽略辅助比特0,这并不影响结果),则:
Figure BDA00023727459000001110
Figure BDA00023727459000001111
其中,y为对应寄存器3中的量子状态;
以O表示Oracle算子,这里O的主要作用是标志g(x)的解的位置,使得状态|x0′>→-|x0′>,其他状态则保持不变,其对应的矩阵可以用I-2|x0′><x0′|表示。以U表示条件相移Ux算子与其两边的Hadamard变换的结果,即:
Figure BDA00023727459000001112
对于图3将虚线框对应算子G,则G=UO。
Figure BDA00023727459000001113
表示系统经过迭代G算子
Figure BDA00023727459000001114
次对应的状态。
Figure BDA00023727459000001115
Figure BDA0002372745900000121
当r=1时,
Figure BDA0002372745900000122
如果当前子问题不包含g(x)的解x0′,即
Figure BDA0002372745900000123
则:
Figure BDA0002372745900000124
如果当前子问题包含g(x)的解x0′,即x0′∈X1,则:
Figure BDA0002372745900000125
其中
Figure BDA0002372745900000126
yi表示状态|y>对应的i位的状态,y0表示搜索问题的解对应寄存器3中的n3比特的部分。
在系统经过r次迭代后,对寄存器2进行测量,和前面所述方法一样,在测量之前,再应用一次Hadamard变换
Figure BDA0002372745900000127
于寄存器2。如果当前子问题不包含g(x)的解x0′,则测量结果值一定是0;如果当前子问题包含x0′,则去掉最后一次Hadamard变换
Figure BDA0002372745900000128
在当前的x1值重新执行该系统一次,再测量即可得到x0′对应于n2的部分,假设测量值为x′,则
Figure BDA0002372745900000129
在获得g(x)的解x0′后,以简单的穷举法计算
Figure BDA00023727459000001210
是否等于1从而确定k值,若等于1即找到原来搜索问题的解
Figure BDA00023727459000001211
图4为该算法对应的Oracle的线路,比较器(线路compare)的主要作用是对比状态
Figure BDA00023727459000001212
和寄存器3的结果。如果当前子问题不包含x0′,则此时寄存器3中的量子状态是
Figure BDA00023727459000001213
经过比较器后,使得辅助量子比特0从状态|0>变为状态|1>从而使得受控UH门应用于寄存器3对应的量子比特,受控UH门的主要作用是在当前子问题不包含解的情况下,系统进行下一次迭代时保证寄存器3中的量子比特是均衡叠加状态;辅助量子比特1则保持不变。如果当前子问题包含x0′,则量子比特0保持不变,从而受控UH门不对系统起作用;辅助量子比特1则从状态
Figure BDA00023727459000001214
变为状态
Figure BDA00023727459000001215
从而标志g(x)的解。如果当前子问题包含x0′,以|y0>表示系统经过图4里面虚线框的线路对应寄存器3的量子状态,以|y0′>表示状态|y0>经过
Figure BDA0002372745900000131
的状态,则:
Figure BDA0002372745900000132
其对应的状态有一半的量子比特获得-1的相位移动。该算法整个Oracle算子的作用是标志g(x)的解x0′,效果等价于在n2个量子搜索空间中标志出解,如果在n2+n3个量子搜索空间中标志,则相当于简单地标志了
Figure BDA00023727459000001322
个解,量子线路的复杂度为
Figure BDA0002372745900000133
由于|y0′>有一半的量子比特获得-1的相位移动,等效于标志了
Figure BDA00023727459000001323
个解,因此,量子线路复杂度应为
Figure BDA0002372745900000134
Figure BDA0002372745900000135
因此,在该系统中需要迭代
Figure BDA0002372745900000136
次G算子,如果忽略系数
Figure BDA0002372745900000137
则线路复杂度为
Figure BDA0002372745900000138
由图4可知,在Oracle算子里,里面的G算子迭代了
Figure BDA0002372745900000139
因此整个量子线路复杂度为
Figure BDA00023727459000001310
通常n3的占比较小,假设将Oracle算子看为一个单元,则线路复杂度为
Figure BDA00023727459000001311
最后,在获得g(x)的解x0′时,通过简单穷举确定k值,即可确定原问题的解
Figure BDA00023727459000001312
Figure BDA00023727459000001313
由于该算法是基于前面所述方法实现的,因此,在对寄存器2测量时,则会以概率为
Figure BDA00023727459000001314
得到的结果为0,这意味着该算法找不到解。
此外,Grover算法本身就是一种概率型搜索算法,因此,对于这两种方法还存在Grover算法本身对应的测量误差,假设f(x)存在唯一解x0,以
Figure BDA00023727459000001315
Figure BDA00023727459000001316
表示非解,|β>=|x0>表示解,则系统的均衡叠加状态:
Figure BDA00023727459000001317
|α>和|β>张量成一个二维空间,如图5所示。在系统经过r次的迭代算子G,状态Gr
Figure BDA00023727459000001318
接近|β>,两者之间存在一定的夹角。令:
Figure BDA00023727459000001319
Figure BDA00023727459000001320
则:
Figure BDA00023727459000001321
在系统上应用G,则:
Figure BDA0002372745900000141
在系统迭代r次G,
Figure BDA0002372745900000142
当N很大时,
Figure BDA0002372745900000143
因此最终状态
Figure BDA0002372745900000144
和|β>的角误差至多为
Figure BDA0002372745900000145
测量最终的误差概率为
Figure BDA0002372745900000146
因此,对于上述两种方法,存在
Figure BDA0002372745900000147
的误差概率。为了使
Figure BDA0002372745900000148
最接近|β>,则:
Figure BDA0002372745900000149
解得
Figure BDA00023727459000001410
以上所述都是针对f(x)只有一个解x0,假设f(x)存在M个解,以|X0|=M表示解空间,则:
Figure BDA00023727459000001411
Figure BDA00023727459000001412
Figure BDA00023727459000001413
令:
Figure BDA00023727459000001414
Figure BDA00023727459000001415
在系统迭代r次G,
Figure BDA00023727459000001416
当M<<N时,
Figure BDA00023727459000001417
因此,
Figure BDA0002372745900000151
解得
Figure BDA0002372745900000152
对于第二个算法,由于
Figure BDA0002372745900000153
算子不能保证g(x)等于1,因此,需要重新设计g(x),令
Figure BDA0002372745900000154
可以保证当f(x)存在解时,则g(x)=1。以上所述算法都是将原来搜索问题转化为
Figure BDA0002372745900000155
个子问题,不妨假设,每个子问题对应有
Figure BDA0002372745900000156
个解,令
Figure BDA0002372745900000157
则对每子问题,需要迭代
Figure BDA0002372745900000158
次G。当M<<N时,系统量子线路迭代次数约等于
Figure BDA0002372745900000159
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (9)

1.一种量子并行搜索方法,其特征在于,所述方法基于量子并行搜索系统来实现,所述系统包括可调用的:寄存器1、寄存器2、寄存器3、G算子、辅助比特0、辅助比特1、Hadamard门、compare线路、受控UH门;
辅助比特0的初始化状态为|0>、辅助比特1的初始化状态为|1>状;
寄存器对应问题的输入;
G算子包括Oracle量子线路,算子U量子线路;
初始化为|0>状态的辅助比特0,作用是在Oracle算子里控制寄存器中的量子比特;
初始化为|1>状态的辅助比特1辅助翻转解的位置;
Oracle量子线路,用来检查辅助比特的相位来判断x是否为搜索问题的一个解;
算子U量子线路,用来放大搜索问题的解的概率幅值;测量线路,是对算法最后输出状态作测量;还有一些基本的量子门电路;
U算子由单位矩阵、Hadamard门和条件相移Ux算子组成;
Hadamard门用于变换
Figure FDA0002372745890000011
条件相移Ux算子的作用是使得状态|0>以外的每一个计算基态获得-1的相位移动;
所述方法包括以下步骤:
S1:构建一个搜索问题;
S2:应用Hadamard门于寄存器2和寄存器3,使得寄存器2和寄存器3为均衡状态;
S3:应用迭代算子G,更新寄存器2和寄存器3的量子状态,增加目标状态的概率幅值同时降低非目标状态的概率幅值;
S4:对寄存器2更新后的状态进行测量;
S5:寻找搜索问题的解。
2.根据权利要求1所述的量子并行搜索方法,其特征在于,S1具体为:假设一个搜索问题f(x),其搜索空间为N=2n,即可以用n个比特表示其搜索空间大小,将搜索问题表示为一个输入x的函数f(x),则x取值范围是[0,2n-1],函数f的定义是,若x是一个搜索问题的解,则f(x)=1,否则f(x)=0,如果f(x)有唯一解,为了方便起见,令x0表示搜索问题的唯一解,则f(x0)=1,当x≠x0使得f(x)=0;找到f(x)的解时即是找到了一个搜索问题的解;
对于搜索问题f(x),可以先求出g(x)的唯一解x′0,再由x′0求f(x)的x0
其中,
Figure FDA0002372745890000021
Figure FDA0002372745890000022
x的取值范围是
Figure FDA0002372745890000023
符号
Figure FDA0002372745890000024
是模二运算。
3.根据权利要求2所述的量子并行搜索方法,其特征在于,S2包括以下步骤:
S2.1:设每一个经典取值x1取值范围为
Figure FDA0002372745890000025
并将其经典值转变为二进制值,存储于寄存器1中;寄存器2初始化为状态
Figure FDA0002372745890000026
寄存器3初始化为状态
Figure FDA0002372745890000027
辅助量子比特0初始化为|0>;辅助量子比特1初始化为|1>;
其中,
Figure FDA0002372745890000028
表示n2个量子比特的状态都是|0>状态;
S2.2:对寄存器2、寄存器3中的量子比特做Hadamard变换,即分别应用
Figure FDA0002372745890000029
Figure FDA00023727458900000210
于寄存器2和寄存器3,得到系统所需的均衡叠加状态;对辅助量子比特1做Hadamard变换;
S2.3:应用Oracle算子于S2.2所得的状态,若存在解,则标志解的位置,否则保持不变;
S2.4:应用U算子于系统,假设g(x)存在解,则增大解的概率幅,同时减小非解的概率幅;
其中,U算子由单位矩阵、Hadamard变换
Figure FDA00023727458900000211
和条件相移Ux算子组成;
S2.5:将S2.3和S2.4整合为一个G算子,G=UO,使用G算子对S2.2后的系统的量子均衡叠加态进行
Figure FDA00023727458900000212
次迭代;
其中,O表示Oracle算子。
4.根据权利要求3所述的量子并行搜索方法,其特征在于,在对寄存器2测量之前,再应用一次
Figure FDA00023727458900000213
于寄存器2;
如果当前子问题不包含g(x)的解x′0,则测量值为0;如果当前子问题包含g(x)的解x′0,则测量结果值是随机坍缩到
Figure FDA00023727458900000214
中的一个值;
若测量值为非零值时,则当前子问题包含x′0,此时,去掉最后一次
Figure FDA00023727458900000215
在当前的x1值重新执行该系统一次,再测量即可得到x′0对应于n2的部分,假设测量值为x″0,则
Figure FDA00023727458900000216
5.根据权利要求4所述的量子并行搜索方法,其特征在于,S5中搜索问题的解采用穷举法进行寻找。
6.根据权利要求1或5所述的量子并行搜索方法,其特征在于,S5包括以下步骤:
S5.1:判断x″0是否等于0,若不等于0,则
Figure FDA0002372745890000031
并执行S5.2,若等于0,则判断
Figure FDA0002372745890000032
是否成立,若不成立,则表示找不到解,并结束搜索,若成立,则令x1=x1+1,并返回S3;
S5.2:判断
Figure FDA0002372745890000033
是否成立,若成立,则找到解
Figure FDA0002372745890000034
并结束搜索;若不成立,则执行S5.3;
S5.3:判断
Figure FDA0002372745890000035
是否成立,若不成立,则表示找不到解,并结束搜索,若成立,则令k=k+1,并返回S5.2。
7.根据权利要求6所述的量子并行搜索方法,其特征在于,条件相移Ux算用来使寄存器2中状态
Figure FDA0002372745890000036
以外的每一个计算基态获得-1的相位移动,Ux算子由2|0><0|-I表示。
8.根据权利要求7所述的量子并行搜索方法,其特征在于,
Figure FDA0002372745890000037
9.根据权利要求8所述的量子并行搜索方法,其特征在于,O用来标志g(x)的解的位置,使得状态|x0′>→-|x0′>,其他状态则保持不变,其对应的矩阵用I-2|x0′><x0′|表示。
CN202010055786.2A 2020-01-17 2020-01-17 一种量子并行搜索方法 Active CN111291892B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010055786.2A CN111291892B (zh) 2020-01-17 2020-01-17 一种量子并行搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010055786.2A CN111291892B (zh) 2020-01-17 2020-01-17 一种量子并行搜索方法

Publications (2)

Publication Number Publication Date
CN111291892A true CN111291892A (zh) 2020-06-16
CN111291892B CN111291892B (zh) 2023-01-17

Family

ID=71023421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010055786.2A Active CN111291892B (zh) 2020-01-17 2020-01-17 一种量子并行搜索方法

Country Status (1)

Country Link
CN (1) CN111291892B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966456A (zh) * 2021-03-05 2021-06-15 深圳大学 一种提高量子计算效率的电路设计方法和系统
CN114638369A (zh) * 2020-12-15 2022-06-17 华为技术有限公司 量子计算方法和系统
CN115511094A (zh) * 2021-06-23 2022-12-23 合肥本源量子计算科技有限责任公司 量子线路执行结果确定方法、装置及量子计算机操作系统
US20230289501A1 (en) * 2022-03-08 2023-09-14 The Boeing Company Reducing Resources in Quantum Circuits
CN118014095A (zh) * 2024-04-10 2024-05-10 国开启科量子技术(安徽)有限公司 分布式的多目标量子搜索方法、装置、介质及设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383235B1 (en) * 2000-03-09 2008-06-03 Stmicroelectronic S.R.L. Method and hardware architecture for controlling a process or for processing data based on quantum soft computing
US20090164435A1 (en) * 2007-12-20 2009-06-25 Routt Thomas J Methods and systems for quantum search, computation and memory
US20110145288A1 (en) * 2009-12-16 2011-06-16 At&T Intellectual Property I, Lp Methods, apparatus, and computer program products for quantum searching for multiple search targets
CN106197455A (zh) * 2016-07-28 2016-12-07 武汉大学 一种城市交通路网实时动态多路口路径导航量子搜索方法
CN107622312A (zh) * 2017-10-18 2018-01-23 浙江工商大学 基于Grover搜索算法下的量子相干性和量子纠缠的方法
US20180039903A1 (en) * 2015-03-09 2018-02-08 Michele MOSCA Quantum Circuit Synthesis Using Deterministic Walks
CN109214517A (zh) * 2018-10-16 2019-01-15 深圳职业技术学院 量子状态搜索方法及装置
CN109978171A (zh) * 2019-02-26 2019-07-05 南京航空航天大学 一种基于云计算的Grover量子仿真算法优化方法
US20190302107A1 (en) * 2010-07-26 2019-10-03 The University Of Vermont Hybrid quantum-classical computing system and method
EP3570223A1 (en) * 2018-05-17 2019-11-20 Korea Advanced Institute of Science and Technology Effective quantum ram architecture for quantum database

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383235B1 (en) * 2000-03-09 2008-06-03 Stmicroelectronic S.R.L. Method and hardware architecture for controlling a process or for processing data based on quantum soft computing
US20090164435A1 (en) * 2007-12-20 2009-06-25 Routt Thomas J Methods and systems for quantum search, computation and memory
US20110145288A1 (en) * 2009-12-16 2011-06-16 At&T Intellectual Property I, Lp Methods, apparatus, and computer program products for quantum searching for multiple search targets
US20190302107A1 (en) * 2010-07-26 2019-10-03 The University Of Vermont Hybrid quantum-classical computing system and method
US20180039903A1 (en) * 2015-03-09 2018-02-08 Michele MOSCA Quantum Circuit Synthesis Using Deterministic Walks
CN106197455A (zh) * 2016-07-28 2016-12-07 武汉大学 一种城市交通路网实时动态多路口路径导航量子搜索方法
CN107622312A (zh) * 2017-10-18 2018-01-23 浙江工商大学 基于Grover搜索算法下的量子相干性和量子纠缠的方法
EP3570223A1 (en) * 2018-05-17 2019-11-20 Korea Advanced Institute of Science and Technology Effective quantum ram architecture for quantum database
CN109214517A (zh) * 2018-10-16 2019-01-15 深圳职业技术学院 量子状态搜索方法及装置
CN109978171A (zh) * 2019-02-26 2019-07-05 南京航空航天大学 一种基于云计算的Grover量子仿真算法优化方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LIN BIE ETC.: "Quantum genetics clustering algorithm based on high-Dimensional and multi-chain coding scheme", 《2018 TENTH INTERNATIONAL CONFERENCE ON ADVANCED COMPUTATIONAL INTELLIGENCE (ICACI)》 *
PULAK RANJAN GIRI,ETC: "The Review on Quantum Search Algorithms", 《DOI 10.1007/S11128-017-1768-7》 *
张煜东等: "一种改进的Grover量子搜索算法", 《信号处理》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114638369A (zh) * 2020-12-15 2022-06-17 华为技术有限公司 量子计算方法和系统
CN112966456A (zh) * 2021-03-05 2021-06-15 深圳大学 一种提高量子计算效率的电路设计方法和系统
CN112966456B (zh) * 2021-03-05 2023-08-25 深圳大学 一种提高量子计算效率的电路设计方法和系统
CN115511094A (zh) * 2021-06-23 2022-12-23 合肥本源量子计算科技有限责任公司 量子线路执行结果确定方法、装置及量子计算机操作系统
CN115511094B (zh) * 2021-06-23 2023-06-02 合肥本源量子计算科技有限责任公司 量子线路执行结果确定方法、装置及量子计算机操作系统
US20230289501A1 (en) * 2022-03-08 2023-09-14 The Boeing Company Reducing Resources in Quantum Circuits
US12197834B2 (en) * 2022-03-08 2025-01-14 The Boeing Company Reducing resources in quantum circuits
CN118014095A (zh) * 2024-04-10 2024-05-10 国开启科量子技术(安徽)有限公司 分布式的多目标量子搜索方法、装置、介质及设备

Also Published As

Publication number Publication date
CN111291892B (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
CN111291892B (zh) 一种量子并行搜索方法
US10423887B2 (en) Compilation, memory management, and fault localization with ancillas in an unknown state
Häner et al. Factoring using 2n+ 2 qubits with Toffoli based modular multiplication
Scherer et al. Concrete resource analysis of the quantum linear-system algorithm used to compute the electromagnetic scattering cross section of a 2D target
Marella et al. Introduction to quantum computing
US10885458B2 (en) Quantum circuit synthesis using deterministic walks
US20220335325A1 (en) Quantum algorithm and design for a quantum circuit architecture to simulate interacting fermions
Wong et al. Quantum speedup for protein structure prediction
Sarkar et al. An algorithm for DNA read alignment on quantum accelerators
Li et al. Application of distributed semi-quantum computing model in phase estimation
Zhu et al. A realizable GAS-based quantum algorithm for traveling salesman problem
Fujishima FPGA-based high-speed emulator of quantum computing
EP4242936A1 (en) Reducing resources in quantum circuits
Zhang et al. The Quantum Shor Algorithm Simulated on FPGA
Soni et al. Quantum‐based exact pattern matching algorithms for biological sequences
Zhang et al. An iterative method for finding the spectral radius of an irreducible nonnegative tensor
CN113297531B (zh) 一种完美相位估计下直流潮流方程的求解方法
Liu et al. Multi-state swap test algorithm
CN114925844A (zh) 用于量子系统的处理方法和电子设备
Gushanskiy et al. Development of a scheme of a hardware accelerator of quantum computing for correction quantum types of errors
JP2022188981A (ja) 量子コンピュータ及び量子コンピュータの量子状態制御方法
Cantone et al. Quantum Circuits for Fixed Substring Matching Problems
de Valk et al. Quantum state preparation for bell-shaped probability distributions using deconvolution methods
Au-Yeung et al. Quantum algorithms for scientific computing
Hidary et al. Quantum computing methods

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
GR01 Patent grant
GR01 Patent grant