对于量子态的纠错,与经典信息论中的纠错有着巨大的不同,
解决办法:不直接对数据态测量,也不简单复制,而是通过添加额外量子位,把单个 qubit 的错误收集到冗余 qubits 上,并通过量子线路运算(不测量 / 隐含测量)来恢复单个 qubit 的量子态。
测量往往是不可逆运算。但是对于量子隐形传态和量子纠错码中精心设计的测量线路来说,测量结果都没有揭示任何有关要被测量的量子比特的信息,因此这个测量是可逆的。
纠正比特翻转错误(信道以概率 p p p 执行 X X X 酉运算):
∣ ψ ⟩ ↦ ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) ∣ 0 ⟩ ∣ 0 ⟩ ↦ α ∣ 000 ⟩ + β ∣ 111 ⟩ |\psi\rangle \mapsto (\alpha|0\rangle + \beta|1\rangle)|0\rangle|0\rangle \mapsto \alpha|000\rangle + \beta|111\rangle ∣ψ⟩↦(α∣0⟩+β∣1⟩)∣0⟩∣0⟩↦α∣000⟩+β∣111⟩
注意码字 α ∣ 000 ⟩ + β ∣ 111 ⟩ \alpha|000\rangle + \beta|111\rangle α∣000⟩+β∣111⟩ 并不是 ∣ ψ ⟩ ∣ ψ ⟩ ∣ ψ ⟩ |\psi\rangle|\psi\rangle|\psi\rangle ∣ψ⟩∣ψ⟩∣ψ⟩,虽然与三重复码很像,但这并没有克隆量子态 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩。
收到量子态 ∣ x y z ⟩ |xyz\rangle ∣xyz⟩,假设它至多发生一比特的比特翻转,那么校验子 x + z x+z x+z 和 y + z y+z y+z 就指示了发生比特翻转的位置。因为 X 2 = I X^2=I X2=I,我们只需对 x x x 执行一次 C 2 ( X ) C^2(X) C2(X) 就得到了 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩。不过 Toffoli 门的容错实现很复杂。可以将 α ∣ 000 ⟩ + β ∣ 111 ⟩ \alpha|000\rangle + \beta|111\rangle α∣000⟩+β∣111⟩ 看做是由 ∣ 000 ⟩ , ∣ 111 ⟩ |000\rangle, |111\rangle ∣000⟩,∣111⟩ 张成的 1 1 1 维线性码(线性子空间),极小距离是 3 3 3。
纠正相位翻转错误(信道以概率 p p p 执行 Z Z Z 酉运算):
∣ ψ ⟩ ↦ α ∣ 000 ⟩ + β ∣ 111 ⟩ ↦ H ⊗ 3 α ∣ + + + ⟩ + β ∣ − − − ⟩ |\psi\rangle \mapsto \alpha|000\rangle + \beta|111\rangle \overset{H^{\otimes 3}}{\mapsto} \alpha|+++\rangle + \beta|---\rangle ∣ψ⟩↦α∣000⟩+β∣111⟩↦H⊗3α∣+++⟩+β∣−−−⟩
其中 ∣ + ⟩ : = H ∣ 0 ⟩ = ∣ 0 ⟩ + ∣ 1 ⟩ 2 , ∣ − ⟩ : = H ∣ 1 ⟩ = ∣ 0 ⟩ − ∣ 1 ⟩ 2 |+\rangle := H|0\rangle = \dfrac{|0\rangle+|1\rangle}{\sqrt2}, |-\rangle := H|1\rangle = \dfrac{|0\rangle-|1\rangle}{\sqrt2} ∣+⟩:=H∣0⟩=2∣0⟩+∣1⟩,∣−⟩:=H∣1⟩=2∣0⟩−∣1⟩
收到量子态 ∣ x y z ⟩ |xyz\rangle ∣xyz⟩,假设它至多发生一比特的相位翻转。由于 H 2 = I H^2=I H2=I, H Z H = X HZH=X HZH=X,因此对 ∣ x y z ⟩ |xyz\rangle ∣xyz⟩ 执行 H ⊗ 3 H^{\otimes 3} H⊗3 就转化为了至多发生一比特的比特翻转。接下来使用纠正比特翻转的解码电路即可。可以将 α ∣ + + + ⟩ + β ∣ − − − ⟩ \alpha|+++\rangle + \beta|---\rangle α∣+++⟩+β∣−−−⟩ 看做是由 ∣ + + + ⟩ , ∣ − − − ⟩ |+++\rangle, |---\rangle ∣+++⟩,∣−−−⟩ 张成的 1 1 1 维线性码(线性子空间),极小距离是 3 3 3。
那么,如何同时对抗比特翻转错误 或/和 相位翻转错误呢?Shor 编码将上述的比特翻转纠错码和相位翻转纠错码组合起来。因为 X Z = − Z X XZ=-ZX XZ=−ZX,我们忽略整体相因子,它们是相同的酉运算。我们可以先纠正比特翻转错误,然后再纠正相位翻转错误。
∣ ψ ⟩ ↦ α ∣ 000 ⟩ + β ∣ 111 ⟩ ↦ α ∣ 0 L ⟩ + β ∣ 1 L ⟩ |\psi\rangle \mapsto \alpha|000\rangle + \beta|111\rangle \mapsto \alpha|0_L\rangle + \beta|1_L\rangle ∣ψ⟩↦α∣000⟩+β∣111⟩↦α∣0L⟩+β∣1L⟩
其中
∣ 0 L ⟩ : = ( ∣ 000 ⟩ + ∣ 111 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) 2 2 ∣ 1 L ⟩ : = ( ∣ 000 ⟩ − ∣ 111 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) 2 2 |0_L\rangle := \dfrac{(|000\rangle+|111\rangle)(|000\rangle+|111\rangle)(|000\rangle+|111\rangle)}{2\sqrt2}\\ |1_L\rangle := \dfrac{(|000\rangle-|111\rangle)(|000\rangle-|111\rangle)(|000\rangle-|111\rangle)}{2\sqrt2}\\ ∣0L⟩:=22(∣000⟩+∣111⟩)(∣000⟩+∣111⟩)(∣000⟩+∣111⟩)∣1L⟩:=22(∣000⟩−∣111⟩)(∣000⟩−∣111⟩)(∣000⟩−∣111⟩)
于是 Shor 编码用 9 9 9 个 qubits 编码了 1 1 1 个 qubit。它可以纠正至多一比特的比特翻转以及至多一比特的相位翻转(发生错误的位置可以相同也可以不同)。而对于两个以上的比特翻转或者两个以上的相位翻转,Shor 有时可以纠正,有时不可以纠正。
Calderbank-Shor-Steane 码使用经典线性纠错码及其子码和对偶码来构造量子纠错码。
Hadamard 变换,将 ∣ 0 ⟩ |0\rangle ∣0⟩(Bloch 球面 ( θ = 0 , ϕ = 0 ) (\theta=0,\phi=0) (θ=0,ϕ=0))映射到了 ∣ + ⟩ : = H ∣ 0 ⟩ |+\rangle:= H|0\rangle ∣+⟩:=H∣0⟩(Bloch 球面 ( θ = π / 2 , ϕ = 0 ) (\theta=\pi/2,\phi=0) (θ=π/2,ϕ=0)),将 ∣ 1 ⟩ |1\rangle ∣1⟩(Bloch 球面 ( θ = π , ϕ = 0 ) (\theta=\pi,\phi=0) (θ=π,ϕ=0))映射到了 ∣ − ⟩ : = H ∣ 1 ⟩ |-\rangle:= H|1\rangle ∣−⟩:=H∣1⟩(Bloch 球面 ( θ = − π / 2 , ϕ = 0 ) (\theta=-\pi/2,\phi=0) (θ=−π/2,ϕ=0))。
易知 ∣ 0 ⟩ = X ∣ 1 ⟩ |0\rangle = X|1\rangle ∣0⟩=X∣1⟩ 互为比特翻转,而 ∣ + ⟩ = Z ∣ − ⟩ |+\rangle = Z|-\rangle ∣+⟩=Z∣−⟩ 互为相位翻转。我们将 ∣ 0 ⟩ , ∣ 1 ⟩ |0\rangle,|1\rangle ∣0⟩,∣1⟩ 叫做标准基,将 ∣ + ⟩ , ∣ − ⟩ |+\rangle,|-\rangle ∣+⟩,∣−⟩ 叫做共轭基。容易验证:
∣ ψ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ = α + β 2 ∣ + ⟩ + α − β 2 ∣ − ⟩ H ∣ ψ ⟩ = H ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) = α + β 2 ∣ 0 ⟩ + α − β 2 ∣ 1 ⟩ |\psi\rangle = \alpha|0\rangle + \beta|1\rangle = \dfrac{\alpha+\beta}{\sqrt2}|+\rangle + \dfrac{\alpha-\beta}{\sqrt2}|-\rangle\\ H|\psi\rangle = H(\alpha|0\rangle + \beta|1\rangle) = \dfrac{\alpha+\beta}{\sqrt2}|0\rangle + \dfrac{\alpha-\beta}{\sqrt2}|1\rangle ∣ψ⟩=α∣0⟩+β∣1⟩=2α+β∣+⟩+2α−β∣−⟩H∣ψ⟩=H(α∣0⟩+β∣1⟩)=2α+β∣0⟩+2α−β∣1⟩
所以 H ∣ ψ ⟩ H|\psi\rangle H∣ψ⟩ 在标准基下的系数,就是 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 在共轭基下的系数。
n n n 比特量子态 ∣ x ⟩ |x\rangle ∣x⟩ 的 n n n 重 Hadamard 变换,公式为:
H ⊗ n ∣ x ⟩ = ∑ y = 0 2 n − 1 ( − 1 ) x y T ∣ y ⟩ 2 n / 2 H^{\otimes n} |x\rangle = \dfrac{\sum_{y=0}^{2^n-1} (-1)^{xy^T}|y\rangle}{2^{n/2}} H⊗n∣x⟩=2n/2∑y=02n−1(−1)xyT∣y⟩
在量子力学的线性叠加中, ∑ i \sum_i ∑i 中的 i i i 不是整数,而是二进制向量。上式里的 x y T xy^T xyT 表示的是 G F ( 2 ) GF(2) GF(2) 上的行向量的内积。
在标准基下的经典 [ n , m , d ] [n,m,d] [n,m,d] 线性码 C \mathcal C C,它的所有码字的等权重 p v = 1 / 2 m p_v=1/2^m pv=1/2m 叠加,
∣ C ⟩ = 1 2 m ∑ v ∈ C ∣ v ⟩ |C\rangle = \dfrac{1}{\sqrt{2^m}} \sum_{v \in \mathcal C} |v\rangle ∣C⟩=2m1v∈C∑∣v⟩
在共轭基下为
H ⊗ n ∣ C ⟩ = 1 2 m ∑ v ∈ C H ⊗ n ∣ v ⟩ = 1 2 m ∑ v ∈ C ∑ w = 0 2 n − 1 ( − 1 ) v w T ∣ w ⟩ 2 n / 2 = 1 2 m + n ∑ w = 0 2 n − 1 ∑ a = 0 2 m − 1 ( − 1 ) ( a G ) w T ∣ w ⟩ = 1 2 n + m ∑ w ∈ C ⊥ 2 m ∣ w ⟩ = 1 2 n − m ∑ w ∈ C ⊥ ∣ w ⟩ \begin{aligned} H^{\otimes n} |C\rangle &= \dfrac{1}{\sqrt{2^m}} \sum_{v \in \mathcal C} H^{\otimes n}|v\rangle\\ &= \dfrac{1}{\sqrt{2^m}} \sum_{v \in \mathcal C} \dfrac{\sum_{w=0}^{2^n-1} (-1)^{vw^T}|w\rangle}{2^{n/2}}\\ &= \dfrac{1}{\sqrt{2^{m+n}}} \sum_{w=0}^{2^n-1} \sum_{a=0}^{2^m-1} (-1)^{(aG)w^T}|w\rangle\\ &= \dfrac{1}{\sqrt{2^{n+m}}} \sum_{w \in \mathcal C^\perp} 2^m |w\rangle\\ &= \dfrac{1}{\sqrt{2^{n-m}}} \sum_{w \in \mathcal C^\perp} |w\rangle\\ \end{aligned} H⊗n∣C⟩=2m1v∈C∑H⊗n∣v⟩=2m1v∈C∑2n/2∑w=02n−1(−1)vwT∣w⟩=2m+n1w=0∑2n−1a=0∑2m−1(−1)(aG)wT∣w⟩=2n+m1w∈C⊥∑2m∣w⟩=2n−m1w∈C⊥∑∣w⟩
其中 ∑ a = 0 2 m − 1 ( − 1 ) ( a G ) w T ∣ w ⟩ \sum_{a=0}^{2^m-1} (-1)^{(aG)w^T}|w\rangle ∑a=02m−1(−1)(aG)wT∣w⟩ 这一项,对于固定的 w ∉ C ⊥ w \notin \mathcal C^\perp w∈/C⊥,则 G w T ≠ 0 m Gw^T\neq0^m GwT=0m,从而遍历 a a a 的加和为零。最后只会剩下 w ∈ C ⊥ w \in \mathcal C^\perp w∈C⊥ 的那些项,使得 ( a G ) w T = 0 m (aG)w^T=0^m (aG)wT=0m 导致因子 2 m 2^m 2m。
也就是说,在标准基下的经典 [ n , m , d ] [n,m,d] [n,m,d] 线性码 C \mathcal C C 所有码字的等权重叠加,在共轭基下恰好是它的 [ n , n − m , d ′ ] [n,n-m,d'] [n,n−m,d′] 对偶码 C ⊥ \mathcal C^\perp C⊥ 所有码字的等权重叠加。
假设 C 1 \mathcal C_1 C1 是 G F ( 2 ) GF(2) GF(2) 上的 [ n , m , d 1 ] [n,m,d_1] [n,m,d1] 线性码(线性子空间), C 2 ⊂ C 1 \mathcal C_2 \sub \mathcal C_1 C2⊂C1 是它的 K K K 阶子码(陪集数 [ C 1 : C 2 ] = 2 K [\mathcal C_1:\mathcal C_2]=2^K [C1:C2]=2K),再考虑两者的对偶码。那么这四个线性码的关系为:
C 2 [ n , m − K , ≥ d 1 ] ⊂ C 1 [ n , m , d 1 ] ⟺ C 2 ⊥ [ n , n − m + K , d 2 ] ⊃ C 1 ⊥ [ n , n − m , ≥ d 2 ] \begin{aligned} C_2[n, m-K, \ge d_1] &\subset C_1[n, m, d_1]\\ \iff C_2^\perp[n, n-m+K, d_2] &\supset C_1^\perp[n, n-m, \ge d_2] \end{aligned} C2[n,m−K,≥d1]⟺C2⊥[n,n−m+K,d2]⊂C1[n,m,d1]⊃C1⊥[n,n−m,≥d2]
为了编码 K K K 位的量子比特,我们考虑商群元素 w ∈ C 2 ⊥ / C 1 ⊥ w \in \mathcal C_2^\perp/\mathcal C_1^\perp w∈C2⊥/C1⊥(商群大小 2 K 2^K 2K),它的陪集 w + C 1 ⊥ w+\mathcal C_1^\perp w+C1⊥ 中元素的等权重加和,
∣ C w ⟩ = 1 2 n − m ∑ v ∈ C 1 ⊥ ∣ w + v ⟩ |C_w\rangle = \dfrac{1}{\sqrt{2^{n-m}}} \sum_{v \in \mathcal C_1^\perp} |w+v\rangle ∣Cw⟩=2n−m1v∈C1⊥∑∣w+v⟩
在共轭基下,
H ⊗ n ∣ C w ⟩ = 1 2 m ∑ v ∈ C 1 ( − 1 ) w v T ∣ v ⟩ H^{\otimes n}|C_w\rangle = \dfrac{1}{\sqrt{2^m}} \sum_{v \in \mathcal C_1} (-1)^{wv^T}|v\rangle\\ H⊗n∣Cw⟩=2m1v∈C1∑(−1)wvT∣v⟩
那么 CSS 码 { ∣ C w ⟩ } \{|C_w\rangle\} {∣Cw⟩} 有如下性质:
现在,我们使用汉明码来实例化 CSS 码。选取 C 1 C_1 C1 是 [ 7 , 4 , 3 ] [7,4,3] [7,4,3] 汉明码,令 C 2 C_2 C2 是它的 [ 7 , 3 , 4 ] [7,3,4] [7,3,4] 子码,特别的 C 1 = C 2 ⊥ C_1 = C_2^\perp C1=C2⊥ 相互对偶,陪集个数 [ C 1 : C 2 ] = 2 1 [C_1:C_2]=2^1 [C1:C2]=21,并且 C 2 C_2 C2 恰好就是 C 1 C_1 C1 中所有偶重码字。
C 1 \mathcal C_1 C1 的生成矩阵为
G ( 7 , 4 , 3 ) = [ 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] T G(7,4,3) = \left[\begin{array}{cccc} 1&1&1&0\\ 0&1&1&1\\ 1&1&0&1\\ \hline 1&0&0&0\\ 0&1&0&0\\ 0&0&1&0\\ 0&0&0&1\\ \end{array}\right]^T G(7,4,3)= 1011000111010011000100110001 T
C 2 \mathcal C_2 C2 的生成矩阵为
H ( 7 , 4 , 3 ) = [ 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 ] H(7,4,3) = \left[\begin{array}{ccc|cccc} 1&0&0 &1&1&1&0\\ 0&1&0 &0&1&1&1\\ 0&0&1 &1&1&0&1\\ \end{array}\right] H(7,4,3)= 100010001101111110011
在标准基下,它的两个码字为
∣ 0 ˉ ⟩ = 1 2 3 ∑ v ∈ C 1 , w t ( v ) ≡ 0 ∣ v ⟩ = ∣ 0 ⟩ L + ∣ 1 ⟩ L 2 ∣ 1 ˉ ⟩ = 1 2 3 ∑ v ∈ C 1 , w t ( v ) ≡ 1 ∣ v ⟩ = ∣ 0 ⟩ L − ∣ 1 ⟩ L 2 |\bar 0\rangle = \dfrac{1}{\sqrt{2^3}} \sum_{v \in C_1,wt(v)\equiv0} |v\rangle = \dfrac{|0\rangle_L + |1\rangle_L}{\sqrt2}\\ |\bar 1\rangle = \dfrac{1}{\sqrt{2^3}} \sum_{v \in C_1,wt(v)\equiv1} |v\rangle = \dfrac{|0\rangle_L - |1\rangle_L}{\sqrt2}\\ ∣0ˉ⟩=231v∈C1,wt(v)≡0∑∣v⟩=2∣0⟩L+∣1⟩L∣1ˉ⟩=231v∈C1,wt(v)≡1∑∣v⟩=2∣0⟩L−∣1⟩L
在共轭基下,它的两个码字为
∣ 0 ⟩ L = 1 2 4 ( ∑ v ∈ C 1 , w t ( v ) ≡ 0 ∣ v ⟩ + ∑ v ∈ C 1 , w t ( v ) ≡ 1 ∣ v ⟩ ) = ∣ 0 ˉ ⟩ + ∣ 1 ˉ ⟩ 2 ∣ 1 ⟩ L = 1 2 4 ( ∑ v ∈ C 1 , w t ( v ) ≡ 0 ∣ v ⟩ − ∑ v ∈ C 1 , w t ( v ) ≡ 1 ∣ v ⟩ ) = ∣ 0 ˉ ⟩ − ∣ 1 ˉ ⟩ 2 |0\rangle_L = \dfrac{1}{\sqrt{2^4}} \left(\sum_{v \in C_1,wt(v)\equiv0} |v\rangle + \sum_{v \in C_1,wt(v)\equiv1} |v\rangle\right) = \dfrac{|\bar 0\rangle + |\bar 1\rangle}{\sqrt2}\\ |1\rangle_L = \dfrac{1}{\sqrt{2^4}} \left(\sum_{v \in C_1,wt(v)\equiv0} |v\rangle - \sum_{v \in C_1,wt(v)\equiv1} |v\rangle\right) = \dfrac{|\bar 0\rangle - |\bar 1\rangle}{\sqrt2}\\ ∣0⟩L=241 v∈C1,wt(v)≡0∑∣v⟩+v∈C1,wt(v)≡1∑∣v⟩ =2∣0ˉ⟩+∣1ˉ⟩∣1⟩L=241 v∈C1,wt(v)≡0∑∣v⟩−v∈C1,wt(v)≡1∑∣v⟩ =2∣0ˉ⟩−∣1ˉ⟩
Steane 码是一个 [ 7 , 1 , 3 ] [7,1,3] [7,1,3] 量子纠错码,可纠正 1 1 1 位比特翻转或者 1 1 1 位相位翻转。
信道 E \mathcal E E 就是一个酉运算,它必定可以表示为 X X X 以及 Z Z Z 的组合形式
E = e 0 I + e 1 X + e 2 Z + e 3 X Z \mathcal E = e_0I + e_1X + e_2Z + e_3XZ E=e0I+e1X+e2Z+e3XZ
其中 e 0 , e 1 , e 2 , e 3 e_0,e_1,e_2,e_3 e0,e1,e2,e3 都是复数。因此,只要可以纠正 t t t 位的比特翻转以及相位翻转错误,那么就可以纠正 t t t 位的任意错误。
一个幺正操作称为合法操作,如果它将码空间映射到自身。合法比容错更加基本和重要。
一个合法操作称为容错计算,如果它能通过逐位操作实现。容错的意义是单比特错误仅仅引起单比特错误。
容错计算通用门组: { H ˉ , P ˉ , C N O T ‾ , T o f f o l i ‾ } \{\bar H, \bar P, \overline{CNOT}, \overline{Toffoli}\} {Hˉ,Pˉ,CNOT,Toffoli},容错的阿达玛门、相位门、受控非门、双控非门。其中 { H ˉ , P ˉ , C N O T ‾ } \{\bar H, \bar P, \overline{CNOT}\} {Hˉ,Pˉ,CNOT} 可以被经典计算机有效模拟,并不会超越,实现容错的 Toffoli 门是最重要的。
可以基于 Steane 码来构造上述的四个容错量子门。略略略。。。
量子并行计算与经典随机化方法很相近,但是差别在于:在经典概率计算机上,不同概率分支总是相互排斥的;而在量子计算机上,不同的叠加分量却可能通过干涉而给出函数的某种全局性质。量子算法本质:精心选择函数和最终变换,以便有效地确定有关函数的有用的全局信息。这种全局信息在经典计算机上是不能有效得到的。
经典 DFT 公式为
y k = 1 N ∑ j = 0 N − 1 e j k ⋅ 2 π i / N x j y_k = \dfrac{1}{\sqrt N} \sum_{j=0}^{N-1} e^{jk \cdot 2\pi i/N} x_j yk=N1j=0∑N−1ejk⋅2πi/Nxj
类比着定义基态 ∣ j ⟩ |j\rangle ∣j⟩(对应的 x = e j x=e_j x=ej 是单位向量,仅有 x j = 1 x_j=1 xj=1 而其他位置都是零)的量子傅里叶变换(QFT),其中 ∣ j ⟩ = ∣ j 1 j 2 ⋯ j n ⟩ |j\rangle=|j_1j_2\cdots j_n\rangle ∣j⟩=∣j1j2⋯jn⟩, N = 2 n N=2^n N=2n,
∣ j ⟩ ⟶ Q F T 1 N ∑ k = 0 N − 1 e j k ⋅ 2 π i / N ∣ k ⟩ |j\rangle \overset{QFT}{\longrightarrow} \dfrac{1}{\sqrt N} \sum_{k=0}^{N-1} e^{jk \cdot 2\pi i/N}|k\rangle ∣j⟩⟶QFTN1k=0∑N−1ejk⋅2πi/N∣k⟩
那么任意态 ∑ j = 0 N − 1 x j ∣ j ⟩ \sum_{j=0}^{N-1} x_j|j\rangle ∑j=0N−1xj∣j⟩ 的 QFT 为:
∑ j = 0 N − 1 x j ∣ j ⟩ ⟶ Q F T 1 N ∑ j = 0 N − 1 x j ∑ k = 0 N − 1 e j k ⋅ 2 π i / N ∣ k ⟩ = ∑ k = 0 N − 1 ( 1 N ∑ j = 0 N − 1 e j k ⋅ 2 π i / N x j ) ∣ k ⟩ = ∑ k = 0 N − 1 y k ∣ k ⟩ \begin{aligned} \sum_{j=0}^{N-1} x_j|j\rangle &\overset{QFT}{\longrightarrow} \dfrac{1}{\sqrt N} \sum_{j=0}^{N-1} x_j\sum_{k=0}^{N-1} e^{jk \cdot 2\pi i/N}|k\rangle\\ &= \sum_{k=0}^{N-1}\left(\dfrac{1}{\sqrt N} \sum_{j=0}^{N-1} e^{jk \cdot 2\pi i/N}x_j \right)|k\rangle\\ &= \sum_{k=0}^{N-1}y_k|k\rangle \end{aligned} j=0∑N−1xj∣j⟩⟶QFTN1j=0∑N−1xjk=0∑N−1ejk⋅2πi/N∣k⟩=k=0∑N−1(N1j=0∑N−1ejk⋅2πi/Nxj)∣k⟩=k=0∑N−1yk∣k⟩
那么向量 x = [ x 1 , ⋯ , x N ] x=[x_1,\cdots,x_N] x=[x1,⋯,xN] 作为几率幅的叠加态 ∑ j = 0 N − 1 x j ∣ j ⟩ \sum_{j=0}^{N-1} x_j|j\rangle ∑j=0N−1xj∣j⟩,经过 QFT 后得到叠加态 ∑ k = 0 N − 1 y k ∣ k ⟩ \sum_{k=0}^{N-1}y_k|k\rangle ∑k=0N−1yk∣k⟩,它的几率幅 y = [ y 1 , ⋯ , y N ] y=[y_1,\cdots,y_N] y=[y1,⋯,yN] 恰好是 y = D F T ( x ) y=DFT(x) y=DFT(x) 啦!
令 k = 2 n − 1 k 1 + ⋯ + 2 0 k 1 k=2^{n-1}k_1+\cdots+2^0k_1 k=2n−1k1+⋯+20k1 是二进制表示,那么 k / 2 n = 2 − 1 k 1 + ⋯ + 2 − n k n k/2^n = 2^{-1}k_1+\cdots+2^{-n}k_n k/2n=2−1k1+⋯+2−nkn 是精度 n n n 的定点小数。现在我们考虑如何有效计算 Q F T ( ∣ j ⟩ ) QFT(|j\rangle) QFT(∣j⟩),
∣ j ⟩ ⟶ Q F T 1 2 n ∑ k = 0 2 n − 1 e j k ⋅ 2 π i / 2 n ∣ k ⟩ = 1 2 n ∑ k 1 = 0 1 ⋯ ∑ k n = 0 1 e j ∑ l = 1 n ( 2 − l k l ) ⋅ 2 π i ∣ k 1 ⋯ k n ⟩ = 1 2 n ⨂ l = 1 n ∑ k l = 0 1 e ⋅ j k l ⋅ 2 π i / 2 l ∣ k l ⟩ = 1 2 n ⨂ l = 1 n [ ∣ 0 ⟩ + e j ⋅ 2 π i / 2 l ∣ 1 ⟩ ] = 1 2 n ⨂ l = 1 n [ ∣ 0 ⟩ + ( e 2 π i ) 0. j n − l + 1 ⋯ j n ∣ 1 ⟩ ] \begin{aligned} |j\rangle &\overset{QFT}{\longrightarrow} \dfrac{1}{\sqrt{2^n}} \sum_{k=0}^{2^n-1} e^{jk \cdot 2\pi i/2^n}|k\rangle\\ &= \dfrac{1}{\sqrt{2^n}} \sum_{k_1=0}^{1}\cdots \sum_{k_n=0}^{1} e^{j\sum_{l=1}^n(2^{-l}k_l) \cdot 2\pi i}|k_1\cdots k_n\rangle\\ &= \dfrac{1}{\sqrt{2^n}} \bigotimes_{l=1}^n \sum_{k_l=0}^{1} e^{\cdot jk_l \cdot 2\pi i/2^l}|k_l\rangle\\ &= \dfrac{1}{\sqrt{2^n}} \bigotimes_{l=1}^n \left[|0\rangle+ e^{j \cdot 2\pi i/2^l}|1\rangle\right]\\ &= \dfrac{1}{\sqrt{2^n}} \bigotimes_{l=1}^n \left[|0\rangle+ (e^{2\pi i})^{0.j_{n-l+1}\cdots j_n}|1\rangle\right]\\ \end{aligned} ∣j⟩⟶QFT2n1k=0∑2n−1ejk⋅2πi/2n∣k⟩=2n1k1=0∑1⋯kn=0∑1ej∑l=1n(2−lkl)⋅2πi∣k1⋯kn⟩=2n1l=1⨂nkl=0∑1e⋅jkl⋅2πi/2l∣kl⟩=2n1l=1⨂n[∣0⟩+ej⋅2πi/2l∣1⟩]=2n1l=1⨂n[∣0⟩+(e2πi)0.jn−l+1⋯jn∣1⟩]
其中的 0. j n − l + 1 ⋯ j n 0.j_{n-l+1}\cdots j_n 0.jn−l+1⋯jn 是定点二进制小数。因此通过对 ∣ + ⟩ : = H ∣ 0 ⟩ |+\rangle:=H|0\rangle ∣+⟩:=H∣0⟩ 执行一些受控相位旋转即可完成 QFT 的计算,
R k : = [ 1 0 0 e 2 π i / 2 k ] , k = 1 , 2 , ⋯ , n R_k := \begin{bmatrix} 1&0\\ 0&e^{2\pi i/2^k} \end{bmatrix}, k=1,2,\cdots,n Rk:=[100e2πi/2k],k=1,2,⋯,n
一共需要 n n n 个 H H H 门以及 ( n − 1 ) n / 2 (n-1)n/2 (n−1)n/2 个 R k R_k Rk 门,包括控制位的话每条线上有 n n n 个门,因此复杂度为 O ( n 2 ) O(n^2) O(n2)。而经典的 FFT 复杂度为 O ( N log N ) = O ( n 2 n ) O(N\log N)=O(n2^n) O(NlogN)=O(n2n),因此量子傅里叶实现了指数级的加速。
Shor 算法可以求解离散对数问题或者整数分解问题。
归约算法:给定一个合数 N = p q N=pq N=pq,随机选择 x ∈ [ 1 , N − 1 ] x \in [1,N-1] x∈[1,N−1],如果 g c d ( x , N ) > 1 gcd(x,N)>1 gcd(x,N)>1 则找到了因子。否则 g c d ( x , N ) = 1 gcd(x,N)=1 gcd(x,N)=1 使得 x ∈ Z N ∗ x \in\mathbb Z_N^* x∈ZN∗,我们调用求阶神谕获得 r = o r d ( x ) r=ord(x) r=ord(x) 满足 x r = 1 ( m o d N ) x^r=1 \pmod N xr=1(modN)。如果 r r r 是偶数,并且 x r / 2 ≠ − 1 ( m o d N ) x^{r/2} \neq -1 \pmod N xr/2=−1(modN),就说明 N ∣ x r − 1 = ( x r / 2 − 1 ) ( x r / 2 + 1 ) N \mid x^r-1 = (x^{r/2}-1)(x^{r/2}+1) N∣xr−1=(xr/2−1)(xr/2+1),计算 g c d ( x r / 2 − 1 , N ) gcd(x^{r/2}-1,N) gcd(xr/2−1,N) 以及 g c d ( x r / 2 + 1 , N ) gcd(x^{r/2}+1,N) gcd(xr/2+1,N) 就得到了因子。否则重新选择随机数。
现在给出求阶量子算法。对于 x r = 1 ( m o d N ) x^r=1\pmod N xr=1(modN) 求解问题,对于 L L L 比特的量子态,我们定义酉算子 U U U 使得
U ∣ y ⟩ : = { ∣ x y ⟩ , 0 ≤ y < N ∣ y ⟩ , N ≤ y < 2 L − 1 U|y\rangle := \left\{\begin{aligned} |xy\rangle,&& 0\le y
定义状态
∣ u s ⟩ : = 1 r ∑ k = 0 r − 1 e − 2 s k π i / r ∣ x k ⟩ |u_s\rangle := \dfrac{1}{\sqrt r} \sum_{k=0}^{r-1} e^{-2sk\pi i/r} |x^k\rangle ∣us⟩:=r1k=0∑r−1e−2skπi/r∣xk⟩
其中的 x y , x k xy,x^k xy,xk 都是 ( m o d N ) \pmod N (modN) 意义下的。利用 1 r ∑ s = 0 r − 1 ∣ u s ⟩ = ∣ 1 ⟩ \dfrac{1}{\sqrt r}\sum_{s=0}^{r-1}|u_s\rangle=|1\rangle r1∑s=0r−1∣us⟩=∣1⟩ 以及 1 r ∑ s = 0 r − 1 e 2 s k π i / r ∣ u s ⟩ = ∣ x k ⟩ \dfrac{1}{\sqrt r}\sum_{s=0}^{r-1} e^{2sk\pi i/r} |u_s\rangle=|x^k\rangle r1∑s=0r−1e2skπi/r∣us⟩=∣xk⟩,可以证明(好长的式子)它们满足:
U ∣ u s ⟩ = e 2 s π i / r ∣ u s ⟩ U|u_s\rangle = e^{2s\pi i/r}|u_s\rangle U∣us⟩=e2sπi/r∣us⟩
也就是说, ∣ u s ⟩ |u_s\rangle ∣us⟩ 就是酉算子 U U U 的本征态,对应的本征值为 e 2 s π i / r e^{2s\pi i/r} e2sπi/r,我们需要的 r r r 可由相位 2 π i ⋅ s / r 2\pi i \cdot s/r 2πi⋅s/r 来确定。
下面的问题就是如何估计对 U ∣ u ⟩ = e 2 π i ϕ ∣ u ⟩ U|u\rangle = e^{2\pi i\phi}|u\rangle U∣u⟩=e2πiϕ∣u⟩ 进行相位估计了。我们使用 t t t 比特量子态 ∣ j ⟩ = ∣ j 1 ⋯ j t ⟩ |j\rangle=|j_1\cdots j_t\rangle ∣j⟩=∣j1⋯jt⟩ 作为控制位, N = 2 t N=2^t N=2t,执行运算
∣ j ⟩ ∣ u ⟩ ↦ ∣ j ⟩ U j ∣ u ⟩ = ∣ j ⟩ U ∑ l = 0 t − 1 2 l j l ∣ u ⟩ |j\rangle|u\rangle \mapsto |j\rangle U^j|u\rangle = |j\rangle U^{\sum_{l=0}^{t-1}2^lj_l}|u\rangle ∣j⟩∣u⟩↦∣j⟩Uj∣u⟩=∣j⟩U∑l=0t−12ljl∣u⟩
对于受控相移, ∣ j ⟩ ( e i α ) j ∣ u ⟩ = P ( e i α ) ∣ j ⟩ ∣ u ⟩ |j\rangle (e^{i\alpha})^j|u\rangle = P(e^{i\alpha})|j\rangle|u\rangle ∣j⟩(eiα)j∣u⟩=P(eiα)∣j⟩∣u⟩,也就是靶位不变而控制位经过对应的相位门,于是有
∣ j l ⟩ U 2 l j l ∣ u ⟩ = ∣ j l ⟩ ( e 2 π i ϕ ) 2 l j l ∣ u ⟩ = [ 1 0 0 e 2 π i ( ϕ 2 l ) ] ∣ j l ⟩ ∣ u ⟩ |j_l\rangle U^{2^lj_l}|u\rangle = |j_l\rangle (e^{2\pi i \phi})^{2^lj_l}|u\rangle = \begin{bmatrix} 1&0\\ 0&e^{2\pi i(\phi 2^l)} \end{bmatrix} |j_l\rangle |u\rangle ∣jl⟩U2ljl∣u⟩=∣jl⟩(e2πiϕ)2ljl∣u⟩=[100e2πi(ϕ2l)]∣jl⟩∣u⟩
我们令 ∣ j l ⟩ = ∣ + ⟩ = ( ∣ 0 ⟩ + ∣ 1 ⟩ ) / 2 |j_l\rangle = |+\rangle = (|0\rangle+|1\rangle)/\sqrt2 ∣jl⟩=∣+⟩=(∣0⟩+∣1⟩)/2,那么 ∣ j ⟩ U j ∣ u ⟩ |j\rangle U^j|u\rangle ∣j⟩Uj∣u⟩ 的结果就是
( ∣ 0 ⟩ + e 2 π i ( ϕ 2 0 ) ∣ 1 ⟩ 2 ) ( ∣ 0 ⟩ + e 2 π i ( ϕ 2 1 ) ∣ 1 ⟩ 2 ) ⋯ ( ∣ 0 ⟩ + e 2 π i ( ϕ 2 t − 1 ) ∣ 1 ⟩ 2 ) ∣ u ⟩ \left(\dfrac{|0\rangle + e^{2\pi i(\phi 2^0)} |1\rangle}{\sqrt2}\right)\left(\dfrac{|0\rangle + e^{2\pi i(\phi 2^1)} |1\rangle}{\sqrt2}\right)\cdots\left(\dfrac{|0\rangle + e^{2\pi i(\phi 2^{t-1})} |1\rangle}{\sqrt2}\right)|u\rangle (2∣0⟩+e2πi(ϕ20)∣1⟩)(2∣0⟩+e2πi(ϕ21)∣1⟩)⋯(2∣0⟩+e2πi(ϕ2t−1)∣1⟩)∣u⟩
那么前半部分的 t t t 量子比特恰好就是 1 2 t ∑ k = 0 2 t − 1 e 2 π i ( ϕ k ) ∣ k ⟩ \dfrac{1}{\sqrt{2^t}}\sum_{k=0}^{2^t-1}e^{2\pi i(\phi k)}|k\rangle 2t1∑k=02t−1e2πi(ϕk)∣k⟩,假设相位 ϕ = j / N = j / 2 t \phi = j/N = j/2^t ϕ=j/N=j/2t,那么容易看出这恰好就是 Q F T ( ∣ j ⟩ ) QFT(|j\rangle) QFT(∣j⟩),因此执行逆变换 Q F T − 1 QFT^{-1} QFT−1 就得到了基态 ∣ j ⟩ |j\rangle ∣j⟩,测量出 j j j 就得到了 ϕ \phi ϕ 的值。如果相位 ϕ \phi ϕ 并不能表示为 t t t 比特定点小数,那么执行 Q F T − 1 QFT^{-1} QFT−1 得到是一个基态的叠加,执行测量后获得是相位 ϕ \phi ϕ 有限精度的近似值。选择一个足够长的 t t t 就可以较为精确的估计出相位。
利用这个相位估计算法,构造出求阶量子算法,于是可以求解整数分解问题。
归约算法:给定群元素 b = a s ( m o d N ) b=a^s \pmod N b=as(modN),定义周期函数 f ( x 1 , x 2 ) : = b x 1 a x 2 = a s x 1 + x 2 ( m o d N ) f(x_1,x_2) := b^{x_1}a^{x_2} = a^{sx_1+x_2} \pmod N f(x1,x2):=bx1ax2=asx1+x2(modN),满足 f ( x 1 + l , x 2 − l s ) = f ( x 1 , x 2 ) f(x_1+l,x_2-ls)=f(x_1,x_2) f(x1+l,x2−ls)=f(x1,x2) 因此周期为 ( l , − l s ) , ∀ l ∈ Z (l,-ls),\forall l \in \mathbb Z (l,−ls),∀l∈Z。我们调用求周期神谕获得 ( l , − l s ) (l,-ls) (l,−ls) 就可以计算出离散对数 s s s 了。
现在给出求周期量子算法。给定周期函数 f ( x + r ) = f ( x ) f(x+r)=f(x) f(x+r)=f(x),周期 0 < r < 2 L 0
U ∣ x ⟩ ∣ y ⟩ ↦ ∣ x ⟩ ∣ y ⊕ f ( x ) ⟩ U|x\rangle|y\rangle \mapsto |x\rangle|y \oplus f(x)\rangle U∣x⟩∣y⟩↦∣x⟩∣y⊕f(x)⟩
将量子态 ∣ f ( x ) ⟩ |f(x)\rangle ∣f(x)⟩ 写成 QFT 形式 ∣ f ^ ( l ) ⟩ : = 1 r ∑ l = 0 r − 1 e − l x ⋅ 2 π i / r ∣ f ( l ) ⟩ |\hat f(l)\rangle := \frac{1}{\sqrt r}\sum_{l=0}^{r-1} e^{-lx \cdot2\pi i/r}|f(l)\rangle ∣f^(l)⟩:=r1∑l=0r−1e−lx⋅2πi/r∣f(l)⟩,那么有
∣ f ( x ) ⟩ = 1 r ∑ l = 0 r − 1 e l x ⋅ 2 π i / r ∣ f ^ ( l ) ⟩ |f(x)\rangle = \dfrac{1}{\sqrt r}\sum_{l=0}^{r-1} e^{lx \cdot2\pi i/r}|\hat f(l)\rangle ∣f(x)⟩=r1l=0∑r−1elx⋅2πi/r∣f^(l)⟩
使用一个 t = O ( L + log ( 1 / ϵ ) ) t=O(L+\log(1/\epsilon)) t=O(L+log(1/ϵ)) 比特量子寄存器,创建叠加态 1 2 t ∣ x ⟩ ∣ 0 ⟩ \dfrac{1}{\sqrt{2^t}}|x\rangle|0\rangle 2t1∣x⟩∣0⟩,做酉变换 U U U 得到
1 2 t ∣ x ⟩ ∣ f ( x ) ⟩ ≈ 1 r ∑ l = 0 r − 1 ( 1 2 t ∑ x = 0 2 t − 1 e l x ⋅ 2 π i / r ∣ x ⟩ ) ∣ f ^ ( l ) ⟩ \dfrac{1}{\sqrt{2^t}}|x\rangle|f(x)\rangle \approx \dfrac{1}{\sqrt r}\sum_{l=0}^{r-1} \left(\dfrac{1}{\sqrt{2^t}}\sum_{x=0}^{2^t-1} e^{lx \cdot2\pi i/r}|x\rangle\right)|\hat f(l)\rangle 2t1∣x⟩∣f(x)⟩≈r1l=0∑r−1 2t1x=0∑2t−1elx⋅2πi/r∣x⟩ ∣f^(l)⟩
对于寄存器的前半部分执行 Q F T − 1 QFT^{-1} QFT−1 得到叠加态 ∑ l = 0 r − 1 ∣ 2 t l / r ⟩ \sum_{l=0}^{r-1}|2^tl/r\rangle ∑l=0r−1∣2tl/r⟩,测量出若干个 l / r l/r l/r 便可确定周期 r r r 了。
对于二维函数 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2) 它的二维 DFT 可视为两个一维 DFT 的直积,我们应用 Q F T N ⊗ Q F T N QFT_N \otimes QFT_N QFTN⊗QFTN 到两个寄存器上以提取出周期,从而求解出离散对数。
Grover 算法可以为搜索问题带来平方根级别的加速。
函数 f a ( x ) f_a(x) fa(x) 作为一个量子黑盒,被定义为 f a ( x ) = 1 ⟺ x = a f_a(x)=1 \iff x=a fa(x)=1⟺x=a,它的索引为 ∣ a ⟩ ∈ { 0 , 1 } n |a\rangle \in \{0,1\}^n ∣a⟩∈{0,1}n 是个基态但是未知。我们的目标是搜索出 a a a 的值。
定义酉算子 U a U_a Ua 为,
U a ∣ x ⟩ ∣ y ⟩ ↦ ∣ x ⟩ ∣ y ⊕ f a ( x ) ⟩ U_a|x\rangle|y\rangle \mapsto |x\rangle|y \oplus f_a(x)\rangle Ua∣x⟩∣y⟩↦∣x⟩∣y⊕fa(x)⟩
令辅助量子位 ∣ y ⟩ = ∣ − ⟩ |y\rangle = |-\rangle ∣y⟩=∣−⟩,那么它有以下性质
U a ∣ x ⟩ ∣ − ⟩ = ( − 1 ) f a ( x ) ∣ x ⟩ ∣ − ⟩ U_a|x\rangle|-\rangle = (-1)^{f_a(x)}|x\rangle|-\rangle Ua∣x⟩∣−⟩=(−1)fa(x)∣x⟩∣−⟩
那么可以表示出 U a = I − 2 ∣ a ⟩ ⟨ a ∣ U_a = I - 2|a\rangle\langle a| Ua=I−2∣a⟩⟨a∣,这个酉算子的几何图像是将任意态做关于法向 ∣ a ⟩ |a\rangle ∣a⟩ 超平面的镜面反射(将 ∣ a ⟩ |a\rangle ∣a⟩ 方向的分量符号改变,其他分量不变)。
定义 ∣ s ⟩ : = H ⊗ n ∣ 0 ⟩ = 1 N ∑ x = 0 N − 1 ∣ x ⟩ |s\rangle := H^{\otimes n}|0\rangle = \dfrac{1}{\sqrt N}\sum_{x=0}^{N-1} |x\rangle ∣s⟩:=H⊗n∣0⟩=N1∑x=0N−1∣x⟩,其中 N = 2 n N=2^n N=2n。我们构造酉算子 U s : = 2 ∣ s ⟩ ⟨ s ∣ − I U_s := 2|s\rangle\langle s|-I Us:=2∣s⟩⟨s∣−I,这个酉算子的几何图像是将正交于 ∣ s ⟩ |s\rangle ∣s⟩ 的子空间做的中心反射(将 ∣ s ⟩ |s\rangle ∣s⟩ 正交方向的分量符号改变,其他分量不变)。
因为 ∣ a ⟩ |a\rangle ∣a⟩ 是基态,必然满足 ⟨ a ∣ s ⟩ = 1 / N \langle a|s\rangle=1/\sqrt N ⟨a∣s⟩=1/N。假设 1 / N = sin θ 1/\sqrt N=\sin\theta 1/N=sinθ,即它们的夹角为 π / 2 − θ \pi/2 - \theta π/2−θ,满足 ∣ s ⟩ = ± sin θ ∣ a ⟩ ± cos θ ∣ a ⊥ ⟩ |s\rangle = \pm \sin\theta|a\rangle \pm \cos\theta|a^\perp\rangle ∣s⟩=±sinθ∣a⟩±cosθ∣a⊥⟩。如图所示:
定义酉算子 U = U s U a U = U_sU_a U=UsUa,那么它的几何意义是将 ∣ x ⟩ |x\rangle ∣x⟩ 先经过 U a U_a Ua 的关于 ∣ a ⊥ ⟩ |a^\perp\rangle ∣a⊥⟩ 轴对称为 ∣ x ′ ⟩ |x'\rangle ∣x′⟩,然后经过 U s U_s Us 的 ∣ s ⟩ |s\rangle ∣s⟩ 轴对称得到 ∣ x ′ ′ ⟩ |x''\rangle ∣x′′⟩。最终的结果是 ∣ x ′ ′ ⟩ |x''\rangle ∣x′′⟩ 对比于 ∣ x ⟩ |x\rangle ∣x⟩ 转过了 2 θ 2\theta 2θ 角度。
Grover 算法制备 ∣ s ⟩ |s\rangle ∣s⟩,它与未知的 ∣ a ⟩ |a\rangle ∣a⟩ 之间的角度是 θ \theta θ( sin θ = 1 / N \sin\theta=1/\sqrt N sinθ=1/N,选取足够大的 n n n 使得 θ ≈ 1 / N \theta \approx 1/\sqrt N θ≈1/N 是个很小的角度)。然后调用 f a ( x ) f_a(x) fa(x) 黑盒来实现酉变换 U U U,迭代计算 U T ∣ s ⟩ U^T|s\rangle UT∣s⟩,那么它转过了 2 T θ 2T \theta 2Tθ 角度,使得夹角成为 ( 2 T + 1 ) θ (2T+1)\theta (2T+1)θ。如果迭代次数为:
T ≈ π N 4 T \approx \dfrac{\pi\sqrt N}{4} T≈4πN
那么转过的角度为 ( 2 T + 1 ) θ ≈ π 2 (2T+1)\theta \approx \dfrac{\pi}{2} (2T+1)θ≈2π,于是 U T ∣ s ⟩ ≈ ∣ a ⟩ U^T|s\rangle \approx |a\rangle UT∣s⟩≈∣a⟩,执行测量得到基态 a a a 的值。量子摇晃:迭代执行 U U U 酉变换,放大 ∣ a ⟩ |a\rangle ∣a⟩ 方向的几率幅,这使得 ∣ s ⟩ |s\rangle ∣s⟩ 不断地靠近 ∣ a ⟩ |a\rangle ∣a⟩。
对于多目标的搜索问题, f a ( x ) = 1 ⟺ x ∈ S a , ∣ S a ∣ = r f_a(x)=1 \iff x \in S_a, |S_a|=r fa(x)=1⟺x∈Sa,∣Sa∣=r,量子黑盒中的秘密值为
∣ a ⟩ = 1 r ∑ i = 1 r ∣ a i ⟩ |a\rangle = \dfrac{1}{\sqrt r}\sum_{i=1}^r |a_i\rangle ∣a⟩=r1i=1∑r∣ai⟩
从而有 ⟨ s ∣ a ⟩ = r / N = sin θ \langle s|a \rangle = \sqrt{r/N} = \sin\theta ⟨s∣a⟩=r/N=sinθ,其中 θ ≈ r / N \theta \approx \sqrt{r/N} θ≈r/N。经过 T ≈ π N 4 r T \approx \dfrac{\pi\sqrt N}{4\sqrt r} T≈4rπN 次迭代,使得 U T ∣ s ⟩ ≈ ∣ a ⟩ U^T|s\rangle \approx |a\rangle UT∣s⟩≈∣a⟩,测量后以概率 1 / r 1/r 1/r 坍缩到某一个基态 ∣ a i ⟩ ∈ S a |a_i\rangle \in S_a ∣ai⟩∈Sa 上。重复大约 r ∑ k = 1 r 1 / k ≈ r ln r r\sum_{k=1}^r1/k \approx r \ln r r∑k=1r1/k≈rlnr 次直到搜索出全部的值,总的复杂度为 O ( π 4 r N ln r ) = O ( 2 n / 2 r ln r ) O(\dfrac{\pi}{4}\sqrt{rN}\ln r) = O(2^{n/2}\sqrt{r}\ln r) O(4πrNlnr)=O(2n/2rlnr),相较于 O ( 2 n ) O(2^n) O(2n) 给出了平方根级别的加速,但依然是指数级的。