Deutsch算法过程的推导
本文中的内容参考的是 Micheal A.Nielsen与Isaac L.Chuang合著的《Quantum Computation and Quantum Information》有兴趣的同学可以去阅读原文。
Deutsch算法背景介绍
假设,我们有函数 f ( x ) f(x) f(x), 对于一个输入 x ∈ { 0 , 1 } x\in\{0,1\} x∈{ 0,1},有 f ( x ) f(x) f(x)或者为一个常值函数 f ( 0 ) = f ( 1 ) ∈ { 0 , 1 } f(0)=f(1)\in\{0,1\} f(0)=f(1)∈{ 0,1}, 或者为一个平衡函数 f ( x ) = 1 − x f(x)=1-x f(x)=1−x 满足 x ∈ { 0 , 1 } x\in\{0,1\} x∈{ 0,1}。现在的问题是我们应该如何判断 f ( x ) f(x) f(x)是属于哪一个类别。对于经典计算机来说,我们需要两次计算即,计算 f ( 0 ) f(0) f(0)与 f ( 1 ) f(1) f(1), 再比较。而对于量子计算机我们只需要一次计算即可进行判断。
Deutsch算法电路图1
上图中的 U f U_f Uf模块的作用效果可以写成 U f : ∣ x ⟩ ∣ y ⟩ → ∣ x ⟩ ∣ y ⊕ f ( x ) ⟩ U_f:|x\rangle|y\rangle\rightarrow|x\rangle|y\oplus f(x)\rangle Uf:∣x⟩∣y⟩→∣x⟩∣y⊕f(x)⟩,容易说明 U f U_f Uf是酉的。
Deutsch算法推导过程
初始状态我们可以简单写出 ∣ ψ 0 ⟩ = ∣ 0 ⟩ ∣ 1 ⟩ |\psi_0\rangle=|0\rangle|1\rangle ∣ψ0⟩=