image 量子算法
量子算法

量子算法是在现实的量子计算模型上运行的算法,最常用的模型是计算的量子电路模型。 经典(或非量子)算法是一种有限的指令序列,或一步地解决问题的过程,或每一步指令都可以在经典计算机上执行。

量子算法是一个逐步的过程,每个步骤都可以在量子计算机上执行。虽然所有经典算法都可以在量子计算机上实现, 但量子算法这个术语通常用于那些看起来是量子的算法,或者使用量子计算的一些基本特性,如量子叠加或量子纠缠。

使用经典计算机无法判定的问题,使用量子计算机仍然无法来确定。量子算法有趣的是,它们可能能够比经典算法更快地解决一些问题, 因为量子算法所利用的量子叠加和量子纠缠可能不可以在经典计算机上有效地模拟。

最著名的算法是 Shor 分解算法和 Grover 的搜索非结构化数据库或无序列表的算法。 Shor 算法运行速度比最著名的经典因式分解算法(一般的数域筛选算法)快得多(几乎是指数级),对于同样的任务, Grover 算法运行速度比最好的经典算法(线性搜索)要快得多。

1994年,美国贝尔实验室的彼得·肖尔(Peter Shor) 提出了Shor算法,在算法界引起了轰动,它从理论上展示了量子计算机能够把质因数分解问题的求解,从指数时间降到多项式时间。目前通用的计算机加密方案——RSA加密,利用的就是质因数分解的时间复杂性:用目前最快的算法对一个大整数进行质因数分解,需要花费的时间都在数年以上。但通过Shor算法,一台量子比特数足够多的量子计算机,能够“轻易”破解RSA模型下的任何大整数。彼得·肖尔因此荣获1999 年理论计算机科学的最高奖——哥德尔奖。

1996年,Lov Grover提出了Grover量子搜索算法,该算法被公认为继Shor算法后的第二大算法,它解决的是无序数据库搜索问题,也是第一个被完整地实验实现的量子算法。时至今日,Grover算法仍是不同量子计算平台的基准实验之一。

2009年,MIT三位科学家阿朗·哈罗(Aram Harrow)、阿维那坦·哈西迪姆(Avinatan Hassidim)和赛斯·劳埃德(Seth Lloyd)联合开发了HHL算法。用于求解线性方程组,比起经典算法有指数加速的效果。线性方程组是很多科学和工程领域的核心,所以HHL算法可在机器学习、数据拟合等多种场景中展现出量子计算的优势。 从2009年开始,以谷歌、IBM为代表的一些企业,开始把规模化量子计算机的工程化作为主要的发展方向。他们从两个比特开始,后来逐渐做到几十量子比特的规模。随着研究的深入,大家意识到实现大规模图灵完备的通用量子计算机是一个超出目前工程化水平太多的技术。在规模化还没有达到足够大的情况下,很多科学家转而研究非图灵完备的专用量子计算架构。此类专用量子架构舍弃了逻辑门,但比起通用量子计算更加容易实用化,可以在一些专业领域,解决某种特定类型的问题。

在此过程中,很多专用的量子算法出现了。这其中包括一些优化的算法:如变分量子特征值求解算法(Variational Quantum Eigensolver,VQE)、量子近似优化算法(Quantum Approximation Optimization Algorithm,QAOA)等;还有一些采样的算法,包括玻色采样(Boson Sampling)、量子随机游走(Quantum Walk)等算法,此外还有美国斯坦福大学提出的CIM相干伊辛机(Coherent Ising Machine)、以D-Wave公司为代表的量子退火算法(Quantum annealing)等。 基于量子的叠加和纠缠等原理,使得量子算法非常适于解决人工智能和机器学习中核心的优化(Optimization)过程类问题,所以从2018年开始,以谷歌为代表的企业纷纷开始投入量子人工智能,特别是与深度学习相结合的领域。具有代表性的成果包括Google公司在2020年提出的Tensorflow Quantum(TFQ)框架。TFQ是一种量子-经典混合机器学习的开放源代码库,允许研发人员在设计、训练和测试混合量子经典模型时,可以模拟量子处理器的算法,在最终联机时,还可以在真实量子处理器上运行这些模型的量子部分。TFQ可用于量子分类、量子控制和量子近似优化等功能。

量子卫星将主要开展星地高速量子密钥分发实验、广域量子通信网络实验、星地量子纠缠分发实验、地星量子隐形传态实验共4项科学实验。其中,星地高速量子密钥分发实验就像从卫星向地面分发钥匙,实现卫星与地面之间以量子密钥为核心的保密通信试验。当量子密钥产生后,通信双方即可进行保密通信,这个过程从原理上已经证明是绝对不可窃听、无法破译的,因此整个通信过程是无条件安全的。

此外量子人工智能的研究范畴还包括量子卷积网络QCNN、量子自然语言处理QNLP、量子生成模型QGM等。包括斯坦福大学等在内的单位还在进行量子神经元(CIM Quantum Neuron)方向的研究。预计在未来3到5年中,将会有更多的企业、资源投入到量子人工智能方向的算法研究,成果不断涌现,将量子AI推向一个新的高潮。

Grover算法

Grover提出的量子搜寻算法是一种量子计算的经典算法,它适用于解决如下问题:从 N个未分类的客体中寻找出某个特定的客体。

经典算法只能是一个接一个地搜寻,直到找到所要的客体为止,这种算法平均地讲要寻找 N/2次,成功几率为1/2,而采用Grover的量子算法则只需要 Nkk√次(即N开kk次方)。

例如,要从有着100万个号码的电话本中找出某个指定号码,该电话本是以姓名为顺序编排的。经典方法是一个个找,平均要找50万次,才能以 1/2几率找到所要电话号码。Grover的量子算法是每查询一次可以同时检查所有100万个号码。

由于100万量子比特处于叠加态,量子干涉的效应会使前次的结果影响到下一次的量子操作,这种干涉生成的操作运算重复1000(即 N √ ,N开根号)次后,获得正确答案的几率为1/2。但若再多重复操作几次,那么找到所需电话号码的几率接近于1。

Grover算法的用途很广,可以寻找最大值、最小值、平均值等,也可以用于下棋。最有趣的是可有效地攻击密码体系,如 DES体系,这个问题的实质是从n=256≈7×1016个可能的密钥中寻找一个正确的密钥。若以每秒100万密钥的运算速率操作,经典计算需要1000年,而采用Grover算法的量子计算机则只需小于4分钟的时间。

针对对称(私钥)加密,如AES加密算法,只能进行暴力破解,而传统计算机的破解时间为指数时间,更准确地说,是依据其中密钥的长度。而量子计算机可以利用Grover算法进行更优化的暴力破解,其效率更高 ,量子计算机暴力破解AES-256加密的效率跟传统计算机暴力破解AES-128是一样的。

更广泛而言,Grover算法是一种量子数据库搜索算法,相比传统的算法,达到同样的效果,它的请求次数要少得多。对称加密算法的暴力破解仅仅是Grover算法的其中一个应用。

Shor算法

量子计算的一个主要原理是使构成叠加态的各个基态通过量子门的作用相互干涉,从而改变它们之间的相对相位,使其概率振幅发生变化,从而使各个由基态所表示的运算结果被观测的概率发生变化。量子计算的另一个重要的机制是量子纠缠态,即对处于纠缠态的量子位中的某几位进行操作,不仅会改变这些量子位的状态,还会改变与它们相对纠缠的其他量子位的状态。Shor算法中得到量子傅里叶变换所需要的状态时,就利用了量子纠缠这一特性。一般而言,量子算法有两个储存器,我们分别称之为A储存器和B储存器。首先将A储存器中的量子比特进行旋转,得到储存器的计算初态;再通过多个逻辑门操作组成组合而成一个总的幺正算符U(f),将U(f)作用于储存器A和B;利用量子算法的并行计算特性一次性计算出所有f的值;紧接着利用U中的相互作用,立即存入B存储器中对应的量子态,使A与B中的量子态产生纠缠;最后测量存储器A与B其中一个,造成另一个存储器坍缩。

Shor算法所解决的问题为设一个很大的奇数N,N为两个质数n1和n2的乘积,现在已知N求n1和n2。Shor算法求解的具体步骤包括:a.先取随机数找周期:先随机取一个小于N且与N互质的数y,按照欧拉定理一定可以找到N的周期r;b.求得周期r为偶数的同余式方程组:当周期r为奇数时,回到步骤a重新取y值,当r为偶数时取y^(r/2)=x可得x^2=1 mod N;c.求解公因子n1与n2并验证n1*n2=N:x^2=1 mod N方程得n1=gcd(x-1,N),n2=gcd(x+1,N),即求得n1与n2。

Shor算法线路简图: