量子搜索算法(Grover‘s algorithm)

一. 背景 

        在最近写的一篇论文中,需要从一个量子态|\psi\rangle中找到某几位中正数所对应的相位。看了很多博客,发现几乎所有的博客都是以均衡叠加态|\psi\rangle=H^{\otimes n}|0...0\rangle为基础进行搜索的,其中H是Hadamard门。这种搜索是把对应相位的振幅放大,也就是说振幅本身并不具备有价值信息,反而是相位具有,然后通过把振幅翻转到某些位置的相位上,增大其测量概率,然后翻转后的量子态就能够以较高的概率塌缩到振幅经过放大的相位。然而在有些量子算法中,更重要的信息是储存在量子态的振幅中,而不是相位,这个该怎么通过量子搜索算法实现呢?

注:|\psi\rangle=\cos\theta|0\rangle+\sin\theta|1\rangle\cos\theta\sin\theta是振幅,|0\rangle|1\rangle是相位。

二. 通用形式的Grover's algorithm

        对于被搜索量子态|\psi\rangle=H^{\otimes n}|0...0\rangle,用量子搜索算法对其进行搜索,需要四个酉矩阵:首先是标记矩阵O,这个矩阵的作用是把符合要求的相位的振幅翻转;其次是H^{\otimes n},在此称之为还原酉矩阵,目的是把量子态还原,便于后续振幅放大;再者是翻转算子P,P的作用是把量子态绕|0...0\rangle翻转,P+I=2E_{11};最后再作用一个H^{\otimes n}把量子态还原。上述四个过程是一次搜索迭代,一般来说,迭代次数大致为R=\sqrt{\frac{M}{N}},其中M是量子态维度,N是被搜索的相位个数。总结一下其最终的矩阵表示形式为|\psi_1\rangle=H^{\otimes n}PH^{\otimes n}O|\psi\rangle

        对于更一般的形式|\psi\rangle=U|0...0\rangle,量子搜索算法的操作过程与上述类似,其最终矩阵表达形式为|\psi_1\rangle=UPU^{\dagger}O|\psi\rangle

三. 问题的应用

        假定|\psi\rangle=U|0...0\rangle是M维的,需要被放大的振幅是前N个,其中有N-1个负数,只有一个正数,现在的目标是找出正数所对应的相位。首先,我们需要把正振幅给放大,保证其在被搜索的N个相位里振幅的绝对值是最大的,不然在迭代过程中有可能会把振幅绝对值最大的相位放到最大,在后续的测量中就会出错。这个操作的实现可以通过对前N相位作用一个如下的酉矩阵实现

.

然后我们把PM扩充到M维,通过添加E_{ii}即可实现,记为P_1,现在需要被搜索的量子态变为|\xi\rangle=P_1U|0...0\rangle=U_1|0...0\rangle

后面再通过|\xi_1\rangle=U_1PU^{\dagger}_1O|\xi\rangle即可实现振幅放大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值