Grover搜索算法

一 简介

Grover算法和Shor算法是量子算法领域两个最重要的量子算法,而Grover算法相比于Shor因子分解算法,有着更广泛的应用。

二 问题描述

N = 2 n N=2^n N=2n,给定一个任意的 x ∈ { 0 , 1 } n x\in\{0,1\}^n x{0,1}n
目标:找到 i i i使得 x i = 1 x_i=1 xi=1(如果没有这样的 i i i,输出“no solution”)。

:经典随机算法需要 Θ ( n ) \Theta(n) Θ(n)次查询才能解决该搜索问题;Grover搜索算法需要 O ( n ) O(\sqrt{n}) O(n )次查询, O ( n log ⁡ n ) O(\sqrt{n}\log n) O(n logn)个其他量子门就可以解决该搜索问题(平方加速)。

三 算法描述

3.1 量子门

1.查询量子门 O x , ± ∣ 0 ⟩ = ( − 1 ) x i ∣ i ⟩ O_{x,\pm}|0\rangle=(-1)^{x_i}|i\rangle Ox,±0=(1)xii
2.酉变换R: ∣ 0 n , b ⟩ → ∣ 0 n , b ⟩ |0^n,b\rangle\to|0^n,b\rangle 0n,b0n,b, 其中 b ∈ { 0 , 1 } b\in\{0,1\} b{0,1};
                                \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\, ∣ i , b ⟩ → ∣ i , b ⟩ |i,b\rangle\to|i,b\rangle i,bi,b, 其中 i ∈ { 0 , 1 } n ∖ { 0 n } i\in\{0,1\}^n\setminus\{0^n\} i{0,1}n{0n}
3.Grover迭代: G = H ⊗ n R H ⊗ n O x , ± \mathcal{G}=H^{\otimes n}RH^{\otimes n}O_{x,\pm} G=HnRHnOx,±

3.2 量子线路

在这里插入图片描述

为了便于分析,我们定义两个量子态:
“Good”态:
在这里插入图片描述
“Bad”态:
在这里插入图片描述
其中 t t t就是满足 x i = 1 x_i=1 xi=1 i i i的个数。

算法步骤如下:
1.设置初始量子态
在这里插入图片描述
2.令 ε = t / N \varepsilon=t/N ε=t/N,应用 k = O ( 1 / ε ) k=O(1/\varepsilon) k=O(1/ε)次如下变换:
G = H ⊗ n R H ⊗ n O x , ± \mathcal{G}=H^{\otimes n}RH^{\otimes n}O_{x,\pm} G=HnRHnOx,±
3.测量寄存器的状态,并检查测量结果 i i i是否是解。

其中,算法第2步理解如下:
在这里插入图片描述
简单来说,算法第2步:量子态从状态 ∣ U ⟩ |U\rangle U出发,通过不断的“反射+反射”,不断向目标态 ∣ G ⟩ |G\rangle G靠近。而目标态 ∣ G ⟩ |G\rangle G就是满足 x i = 1 x_i=1 xi=1 ∣ i ⟩ |i\rangle i的叠加态。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值