1.量子算法的概念
在量子计算中,量子算法是在量子计算的实际模型上运行的一种算法,最常用的模型是量子计算电路模型。经典(或非量子)算法是一个有限的指令序列,或解决问题的一步一步的过程,其中每一步或指令都可以在经典计算机上执行。类似地,量子算法是一个循序渐进的过程,其中每个步骤都可以在量子计算机上执行。
虽然所有的经典算法也可以在量子计算机上执行,但量子算法这个术语通常用于那些看似固有的量子算法,或者使用一些量子计算的本质特征,如态叠加原理或量子纠缠。
2.量子算法的分类
目前的量子算法可以分为两大类:基于Shor的量子Fourier变换和基于Grover的量子搜素算法。
(1)基于Shor的量子Fourier变换
基于Shor的量子Fourier变换,包括解因子(factoring)问题和离散对数问题(discrete logarihm)问题的算法,这些算法提供了对较好经典算法的指数加速。简单来说,Shor算法是一种量子分解算法,相比任何已知的传统分解算法,它提供了指数级加速。而它之所以重要,是因为它意味着足够大的量子计算机可以破解公钥加密。
(2)基于Grover的量子搜素算法
基于Grover的量子搜素算法提供了相对于经典算法的二次加速;而搜索算法的重要性在于经典算法中基于搜索技术的应用非常广泛。对于同样的任务,Grover算法运行速度比较好的经典算法(线性搜索)要快得多。
此外,常提的量子计数(quantum counting)算法是量子Fourier变换和量子搜索算法的巧妙结合,可以比经典计算机更快的估计出搜索问题的解的数目。
延伸阅读
量子计算是什么
量子计算是一种遵循量子力学规律调控量子信息单元进行计算的新型计算模式。对照于传统的通用计算机,其理论模型是通用图灵机;通用的量子计算机,其理论模型是用量子力学规律重新诠释的通用图灵机。从可计算的问题来看,量子计算机只能解决传统计算机所能解决的问题,但是从计算的效率上,由于量子力学叠加性的存在,目前某些已知的量子算法在处理问题时速度要快于传统的通用计算机。
虽然,量子计算有可能使计算机的计算能力大大超过今天的计算机,但仍然存在很多障碍。大规模量子计算所存在重要的问题是,如何长时间地保持足够多的量子比特的量子相干性,同时又能够在这个时间段之内做出足够多的具有超高精度的量子逻辑操作。