在解空间 {0,⋯,N−1} 中寻找满足 f(x)=1 的解,其中 N=2n。
O∣x⟩={−∣x⟩∣x⟩ if x is a solution, otherwise.
- 令起始态为∣ψ⟩=N1∑i=1N−1∣i⟩
- 进行 Grover 迭代若干次
- 应用黑箱
- 应用 H⊗n
- 应用反射变换 2∣0⟩⟨0∣−I
- 应用 H⊗n
设我们将所有态分为非解和解两组,则有
∣ψ⟩=NN−M∣α⟩+NM∣β⟩.
则 O 是沿非解态反射,而 2∣ψ⟩⟨ψ∣−I 是沿 ∣ψ⟩ 反射,另设
sin(2θ)=NM,
则在该平面上角度转动了 θ。因此该迭代应该运行
2NM2π≈4πMN
次。另外,如果不知道 N 和 M 的关系,只需要重复足够多的次数,测量就能得到随机的一个解。
最优性
Grover 算法是几乎最优的,这表现为任何能完美分辨出 ∣x⟩ 的算法都至少需要 N 次黑箱运算。
相关内容
参考文献