本发明涉及信息安全技术领域,尤其涉及一种量子搜索方法、系统、电子装置及存储介质。
背景技术:
由于量子特性在信息处理过程中有着特殊的性质,因而可能在提高算法速率、提供安全性、增大信息存储量和提高精准度等这几个方面突破经典计算的极限。因此,将量子力学首次应用到计算机科学领域中,诞生一门新的交叉学科,即量子计算,对国家安全、军事和产业等领域有着颠覆性影响的研究方向。
在计算机科学中,从无序的数据库中找到目标数据是数据库搜索问题。该问题为:假设有n个无序条目,将其标号,确定里面是否存在一个‘abc’条目,如果存在这个‘abc’条目,找出这个条目的下标。经典算法需经过o(n)次运算才能找到这个条目。1996年,grover提出了运算速度得到平方增长的量子搜索方法,即grover算法,grover算法通过反复使用g算子,放大目标状态的概率幅,减小非目标状态的概率幅,以接近1的概率找到目标状态。该算法将oracle调用次数从经典算法的o(n)降低到
但是,虽然grover算法能以高概率测量到搜索问题解的状态,但是应用了更多次的g量子线路,使整个算法的量子线路相较于经典算法更为复杂,因此现有的量子搜索方法,运算效率仍有待提高。
技术实现要素:
本发明的主要目的在于提供一种量子搜索方法,旨在解决现有技术中的量子搜索方法有待提高的技术问题。
为实现上述目的,本发明第一方面提供一种量子搜索方法,包括:在接收需要搜索的问题后,初始化用于量子计算的计算机系统,得到计算机系统的初始状态;对计算机系统的初始状态进行转换,得到计算机系统的均衡叠加态;使用g算子迭代并更新计算机系统的均衡叠加态,得到计算机系统的系统状态;对计算机系统的系统状态直接进行测量,得到测量结果;使用经典oracle函数对所述测量结果进行验证,在验证所述测量结果为问题正确解的目标状态后,输出所述测量结果。
进一步地,所述对计算机系统的初始状态进行转换,得到计算机系统的均衡叠加态包括:将计算机系统的初始状态经过hadamard变换,得到计算机系统的第一均衡叠加态;将计算机系统归一化的目标状态及归一化的非目标状态作为二维空间中的状态向量,并在计算机系统的第一均衡叠加态的基础上,重新构造计算机系统的系统状态,得到适用于g算子的计算机系统的系统状态。
进一步地,所述使用g算子迭代并更新计算机系统的均衡叠加态,得到计算机系统的系统状态包括:使用oracle算子查找计算机系统的第一均衡叠加态中是否存在问题解的状态,若存在所述问题解的状态,则标记所述问题解的状态;对经过oracle算子查找之后的计算机系统的系统状态进行条件相移操作,以更新计算机系统的均衡叠加态;使用g算子对更新后的计算机系统的均衡叠加态进行
进一步地,所述使用经典oracle函数对所述测量结果进行验证,在验证所述测量结果为问题正确解的目标状态后,输出所述测量结果包括:使用经典oracle函数对所述测量结果进行验证;若所述测量结果经过经典oracle函数验证后与问题正确解的目标状态一致,则输出所述测量结果作为问题正确解;若所述测量结果经过经典oracle函数验证后与问题正确解的目标状态不一致,则重新初始化用于量子计算的计算机系统,得到计算机系统的初始状态,并重复后续步骤,直至所述测量结果与问题正确解的目标状态一致,输出所述测量结果。
本发明第二方面提供一种量子搜索系统,包括:量子态制备模块,用于初始化用于量子计算的计算机系统,得到计算机系统的初始状态;量子态变换模块,用于对所述量子态制备模块得到的计算机系统的初始状态进行转换,得到计算机系统的均衡叠加态;量子态更新模块,用于使用g算子迭代并更新所述量子态变换模块得到的计算机系统的均衡叠加态,得到计算机系统的系统状态;测量模块,用于对经过所述量子态更新模块更新后的计算机系统的系统状态直接进行测量,得到测量结果;结果验证模块,用于使用经典oracle函数对所述测量模块得到的测量结果进行验证,在验证所述测量结果为问题正确解的目标状态后,输出所述测量结果。
进一步地,所述量子态变换模块包括:第一变换单元,用于将所述量子态制备模块得到的计算机系统的初始状态经过hadamard变换,得到计算机系统的第一均衡叠加态;第二变换单元,用于将目标状态划分单元划分的计算机系统归一化的目标状态及归一化的非目标状态作为二维空间中的状态向量,并在所述第一变换单元得到的计算机系统的第一均衡叠加态的基础上,重新构造计算机系统的系统状态,得到适用于g算子的计算机系统的系统状态。
进一步地,所述量子态更新模块包括:状态标记单元,用于在oracle中查找量子的均衡叠加态中是否存在搜索问题解的状态,若存在所述问题解的状态,则标记所述问题解的状态;相位转移单元,用于对经过所述状态标记单元的oracle算子查找之后的计算机系统的系统状态进行条件相移操作,以更新计算机系统的均衡叠加态;迭代更新单元,用于使用g算子对所述相位转移单元更新后的计算机系统的均衡叠加态进行
进一步地,所述结果验证模块包括:oracle验证单元,用于使用经典oracle函数对所述测量模块得到的测量结果进行验证;测量结果输出单元,用于在所述测量模块得到的测量结果经过经典oracle函数验证后与所述量子态变换模块构造的问题正确解的目标状态一致,则输出所述测量结果作为问题正确解;循环单元,用于若所述测量模块得到的测量结果经过所述oracle验证单元的验证后与所述量子态变换模块构造的问题正确解的目标状态不一致,则重新调用量子态制备模块、量子态变换模块、量子态更新模块、测量模块及结果验证模块,直至所述测量结果与问题正确解的目标状态一致,输出所述测量结果。
本发明第三方面提供一种电子装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述中的任意一项所述方法。
本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述中的任意一项所述方法。
本发明提供一种量子搜索方法、系统、电子装置及存储介质,有益效果在于:在计算计算机系统的均衡叠加态并更新计算机系统的均衡叠加态后,通过多次测量及验证的方法来确定问题的正确解,减少了g量子线路的调用,从而显著降低了量子搜索方法线路的复杂性,提高了量子搜索方法的运算效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例量子搜索方法的流程示意框图;
图2为本发明实施例量子搜索方法的量子线路简图;
图3为本发明实施例量子搜索方法测量的量子线路和经典oracle函数线路;
图4为本发明实施例量子搜索方法的g算子迭代的量子线路简图;
图5为本发明实施例量子搜索方法的几何过程描述图;
图6为本发明实施例量子搜索方法经过x次g算子迭代的几何描述图;
图7为本发明实施例量子搜索系统的结构示意框图;
图8为本发明电子装置的结构示意框图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为一种量子搜索方法,包括:s1、在接收需要搜索的问题后,初始化用于量子计算的计算机系统,得到计算机系统的初始状态;s2、对计算机系统的初始状态进行转换,得到计算机系统的均衡叠加态;s3、使用g算子迭代并更新计算机系统的均衡叠加态,得到计算机系统的系统状态;s4、对计算机系统的系统状态直接进行测量,得到测量结果;s5、使用经典oracle函数对测量结果进行验证,在验证测量结果为问题正确解的目标状态后,输出测量结果。
对计算机系统的初始状态进行转换,得到计算机系统的均衡叠加态包括:将计算机系统的初始状态经过hadamard变换,得到计算机系统的第一均衡叠加态;将计算机系统归一化的目标状态及归一化的非目标状态作为二维空间中的状态向量,并在计算机系统的第一均衡叠加态的基础上,系统状态,得到适用于g算子的计算机系统的系统状态。
使用g算子迭代并更新计算机系统的均衡叠加态,得到计算机系统的系统状态包括:使用oracle算子查找计算机系统的第一均衡叠加态中是否存在问题解的状态,若存在问题解的状态,则标记问题解的状态;对经过oracle算子查找之后的计算机系统的系统状态进行条件相移操作,以更新计算机系统的均衡叠加态;使用g算子对更新后的计算机系统的均衡叠加态进行
使用经典oracle函数对测量结果进行验证,在验证测量结果为问题正确解的目标状态后,输出测量结果包括:使用经典oracle函数对测量结果进行验证;若测量结果经过经典oracle函数验证后与问题正确解的目标状态一致,则输出测量结果作为问题正确解;若测量结果经过经典oracle函数验证后与问题正确解的目标状态不一致,则重新初始化用于量子计算的计算机系统,得到计算机系统的初始状态,并重复后续步骤,直至测量结果与问题正确解的目标状态一致,输出测量结果。
请参阅图2,本申请提供的量子搜索方法,使用了两个寄存器,第一个寄存器使用了n个量子比特;第二个寄存器使用少量量子比特作为oracle的工作空间。
请参阅图3,在图3中(a)为测量的量子线路,(b)为经典oracle函数线路,因此本申请提供的量子搜索方法,先制备计算机系统的初始状态,
随后使用g算子迭代,由图2可知,本申请提供的量子搜索方法应用
(1)应用oracle操作o,查找叠加状态|ψ>中是否存在搜索问题解的状态。如果存在这个状态,就标记这个状态。
(2)对(1)中的结果使用hadamard变换
(3)实施条件相移操作,使状态|0>之外的其他状态获得-1的相位,即如公式2所示,公式2表示如下:
(4)对(3)中的状态,实施hadamard变换
由此可见,实施一次g算子的迭代操作要经过(1)-(4)的四个步骤,其中步骤(2)至步骤(4)总的作用如公式3所示,公式3表示如下:
公式3中的状态|ψ>为计算机系统的均衡叠加状态。所以g算子迭代操作可以使用公式4表示,公式4表示如下:
g=(2|ψ><ψ|-i)o
在公式4中,o是酉矩阵,表述为o=i-2|τ><τ|;实施公式4中的迭代操作,输出状态如公式5所示,公式5表示如下:
对公式5中的状态再次实施g算子的迭代操作,将公式5的状态进行变换,变换后的状态如公式6所示,公式6表示如下:
对公式6表示的状态再次进行g算子的迭代操作,将公式6的状态进行变换,变换后的状态如公式7所示,公式7表示如下:
使用g算子进行三次迭代后可发现,均衡叠加状态|ψ>概率幅随着迭代次数的增加而减少,搜索问题的解状态|τ>的概率幅随着迭代次数的增加而增加。按照这样的规律,初始状态经过x次g算子迭代之后,计算机系统的状态更新为|ψx>=gx|ψ)。
使用g算子迭代并更新计算机系统的均衡叠加态包括:使用oracle算子查找计算机系统的第一均衡叠加态中是否存在问题解的状态,若存在问题解的状态,则标记问题解的状态;对标记的问题解的状态进行hadamard变换,得到问题解的均衡叠加态;对问题解的均衡叠加态进行条件相移,使得相位为0之外的其他状态的问题解的均衡叠加态相位转变为-1;对相位为o及相位为-1的问题解的均衡叠加态进行hadamard变换,以更新计算机系统的均衡叠加态;使用g算子对更新后的计算机系统的均衡叠加态进行
由公式4可知量子搜索方法的迭代算子g=(2|ψ><ψ|-i)o;其中,算子2|ψ><ψ|-i和o可以看作是在二维空间中关于对应量子态的两次反射变换。因此该概率型量子搜索算法的迭代算子g可以看成是由搜索问题解的状态和非搜索问题解成的二维空间中的一个旋转算子。该概率型量子搜索算法过程的几何思想是:应用
首先将公式1表示的计算机系统的均衡叠加态分为归一化的目标状态和归一化的非目标状态,归一化的目标状态及归一化的非目标状态分别如公式8及公式9所示,公式8表示如下:
公式9表示如下:
在公式8及公式9中,n是所有状态的总数,m是搜索问题的解的个数,因此,公式1中的计算机系统的初始状态|ψ>可以重新定义,重新定义的|ψ>如公式10所示,公式10表示如下:
在公式10中,计算机系统的状态|ψ>看作是由状态向量|α>和向量|β>所形成的二维空间里的向量。公式10中|ψ>分量的系数如公式11所示,公式11表示如下:
则对公式10中的|ψ>再次构造为公式12,公式12表示如下:
如图5所示,公式12中的|ψ>为二维平面中的初始状态。迭代算子g是图5中的一个旋转算子,即g=(2|ψ><ψ|-i)o。其中,o算子是通过改变目标状态的相位,标记了这个目标状态的酉算子。且这个算子为|α>和|β>所张成的二维平面上相对于向量|α>实施了一次反射变换,即o(a|α>+b|β>)=a|α>-b|β>。类似地,在|α>和|β>所形成的平面上,2|ψ><ψ|-i算子是相对于向量|ψ>进行了一次反射变换。上述两次反射变换的乘积形成了一次旋转操作,即为旋转算子g。
本申请提供的量子搜索方法过程是:反复应用
如图5所示,计算机系统的均衡叠加状态|ψ>经过一次旋转算子g作用后,公式12中的|ψ>发生变换,得到|ψ1>,|ψ1>如公式13所示,公式13表示如下:
第二次实施旋转算子g后,公式13中的|ψ1>发生变化,|ψ1>转变为|ψ2>,|ψ2>如公式14表示,公式14表示如下:
第三次实施旋转算子g后,公式14中的|ψ2>转变为|ψ3>,|ψ3>如公式15表示,公式15表示如下:
在对|ψ>进行了三次迭代时,|ψ>每经过一次旋转算子g后,状态相位增加一个旋转角度θ;如图6所示,按照迭代的规律,在x次旋转算子g迭代操作之后,|ψ>状态变换为|ψx>,|ψx>如公式16所示,公式16表示如下:
若公式16中,
就量子搜索方法的量子线路而言,在原始grover算法运行过程中,g算子线路是由单量子比特门的复合而成的量子线路。g算子的量子线路比测量的量子线路和经典oracle函数验证线路更复杂。在原始grover算法中,均衡叠加状态经过
根据算法几何过程中旋转角度的变换规律,应用一次g算子,系统状态的相位会增加θ角度。随着迭代次数的增加,叠加状态|ψ>的相位会相应的增加。若经过x次g迭代之后,对|ψx>进行测量能以1/2的概率测量到目标状态|β>;则公式16中目标状态的系数满足公式17所示的条件,公式17表示如下:
通过公式17可得,本申请提供的量子搜索方法找到搜索问题的解的最少迭代次数为公式18所示,公式18表示如下:
在公式18中,ci(x)表示取实数x最接近的整数;由公式11可知
当m=1时,
而在经过
若假设经过y次g算子迭代,本申请提供的量子搜索方法通过多次测量和经典oracle验证能以概率p找到搜索问题的解。由公式16可知,经过y次g迭代之后的计算机系统的状态|ψy>可以如公式21所示,公式21表示如下:
在满足公式22的条件下,本申请提供的量子搜索方法的解的最少迭代次数可以如公式23所示;
公式22表示如下:
公式23表示如下:
ci(y)表示取实数y最接近的整数,由公式11可知
从而可知,本申请提供的量子搜索方法经过
本申请实施例提供一种量子搜索系统,请参阅图7,包括:量子态制备模块1、量子态变换模块2、量子态更新模块3、测量模块4及结果验证模块5;量子态制备模块1用于初始化用于量子计算的计算机系统,得到计算机系统的初始状态;量子态变换模块2用于对量子态制备模块1得到的计算机系统的初始状态进行转换,得到计算机系统的均衡叠加态;量子态更新模块3用于使用g算子迭代并更新量子态变换模块2得到的计算机系统的均衡叠加态,得到计算机系统的系统状态;测量模块4用于对经过量子态更新模块3更新后的计算机系统的系统状态直接进行测量,得到测量结果;结果验证模块5用于使用经典oracle函数对测量模块4得到的测量结果进行验证,在验证测量结果为问题正确解的目标状态后,输出测量结果。
量子态变换模块2包括:第一变换单元及第二变换单元;第一变换单元用于将量子态制备模块1得到的计算机系统的初始状态经过hadamard变换,得到计算机系统的第一均衡叠加态;第二变换单元用于将目标状态划分单元划分的计算机系统归一化的目标状态及归一化的非目标状态作为二维空间中的状态向量,并在第一变换单元得到的计算机系统的第一均衡叠加态的基础上,重新构造计算机系统的系统状态,得到适用于g算子的计算机系统的系统状态。
量子态更新模块3包括:状态标记单元、相位转移单元及迭代更新单元;状态标记单元用于在oracle中查找量子的均衡叠加态中是否存在搜索问题解的状态,若存在问题解的状态,则标记问题解的状态;相位转移单元,用于对经过状态标记单元的oracle算子查找之后的计算机系统的系统状态进行条件相移操作,以更新计算机系统的均衡叠加态;迭代更新单元用于使用g算子对相位转移单元更新后的计算机系统的均衡叠加态进行
结果验证模块5包括:oracle验证单元、测量结果输出单元及循环单元;oracle验证单元用于使用经典oracle函数对测量模块4得到的测量结果进行验证;测量结果输出单元用于在测量模块4得到的测量结果经过经典oracle函数验证后与量子态变换模块2构造的问题正确解的目标状态一致,则输出测量结果作为问题正确解;循环单元用于若测量模块4得到的测量结果经过oracle验证单元的验证后与量子态变换模块2构造的问题正确解的目标状态不一致,则重新调用量子态制备模块1、量子态变换模块2、量子态更新模块、测量模块4及结果验证模块5,直至测量结果与问题正确解的目标状态一致,输出测量结果。
本申请实施例提供一种电子装置,请参阅8,该电子装置包括:存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序,处理器602执行该计算机程序时,实现前述中描述的量子搜索方法。
进一步的,该电子装置还包括:至少一个输入设备603以及至少一个输出设备604。
上述存储器601、处理器602、输入设备603以及输出设备604,通过总线605连接。
其中,输入设备603具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备604具体可为显示屏。
存储器601可以是高速随机存取记忆体(ram,randomaccessmemory)存储器,也可为非不稳定的存储器(non-volatilememory),例如磁盘存储器。存储器601用于存储一组可执行程序代码,处理器602与存储器601耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述中的存储器601。该计算机可读存储介质上存储有计算机程序,该程序被处理器602执行时实现前述实施例中描述的量子搜索方法。
进一步的,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器601(rom,read-onlymemory)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种量子搜索方法、系统、电子装置及存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。