6.9 QPE算法¶
6.9.1 QPE算法介绍¶
QPE算法(Quantum Phase Estimation),量子相位估计算法。该算法在很早就已经被提出了,然而真正带来很大影响的,就是基于它实现的HHL算法,以及各种基于HHL算法实现的量子机器学习算法。 相位估计最神奇的效果是达到了相比传统计算机上运行的算法的一个指数加速。这个效果怎么理解,举个简单的例子,就是传统计算机上要运行2的30次方(约等于10亿)次运算,量子计算机上只要运行30次左右就OK了。当然这个指数加速效果是有前提条件的,就是输入和输出都需要是量子比特,而量子比特怎么和经典比特对应起来呢,这又是另外一个问题了。我们只要知道,在算法的运算过程中,是有一个指数加速的效果就可以了。而这个算法凭借它的优势,可以用在很多应用上,比如求阶问题,因子分解问题以及量子机器学习HHL算法等等。
问题描述:¶
问题定义:¶

植入步骤:¶
初始化:
输入包括两部分寄存器集:上面的n个量子位包含第一个寄存器,下面的m个量子位是第二个寄存器。
创建叠加态:
统一给n个量子比特添加H门操作,将n个初始状态置于叠加态,上图中淡蓝色框步骤1里。
应用受控的单一操作:
C-U是一个受控U门,只有当相应的控制位(来自第一个寄存器)为 \(|1⟩\) 时,它才在第二个寄存器上应用单一运算符U。注意位置位的位置,与目标位的对应。
应用逆傅里叶变换:
执行傅里叶变换,详情参考傅里叶变换算法。
测量:
参考线路图:¶
这里给出了一个最简单的测试案例,分别是“-”的相位估计和“+”的相位估计()。以下示例演示了作用于量子比特q[2]的单量子比特哈密顿量 \(σ_x\) 的量子相位估计。去q[3]作为指针系统(测量操作在上面)。在这个例子中,指针系统上的量子傅立叶变换等效于q[3]上的Hadamard门。CNOT门描述了系统+指针系统的离散化演变。指针量子位q[3]的最终测量结果是0或1,这取决于q[2]是在 \(σ_x\) 的+ 1还是-1对应的本征态中准备。在该示例中,量子位q[2]初始化为ZH|0⟩,它是 \(σ_x\) -1所对应的特征向量。因此,测量结果为1。(注意,测量结果等于0,表示的就是-1)
相位估计 – 的情况:¶

相位估计 + 情况:¶

6.9.2 QPE算法的实现¶
下面给出 QRunes 实现 QPE 算法的代码示例:
6.9.3 QPE算法小结¶
QPE算法应用了量子傅里叶逆变换,同时作为一个实用的基础量子算法,又被应用在Shor Algorithm(质因式分解算法),和HHL Algorithm(经常用于各种量子机器学习的最优化算法)等等算法中。