第五章 量子计算进阶专题 (Advanced Topics in Quantum Computing)
前四章已经构建了理解量子计算的完整基础:从线性代数与复数(第一章)、量子力学原理(第二章)、量子比特与量子门(第三章),到量子傅里叶变换的数学形式和Shor算法的核心思想(第四章)。然而,这些章节中仍有一些关键的技术细节和前沿专题尚未深入展开。本章将填补这些空白,从五个维度提升读者对量子计算的理解深度:我们将展示如何将抽象的量子傅里叶变换转化为具体的量子电路;我们将学习量子相位估计——读取量子系统本征值的指数级加速技术;我们将直面真实量子计算机最大的敌人——噪声与退相干;我们将探索NISQ(含噪中等规模量子)时代最重要的算法范式——变分量子算法;最后,我们还将介绍5.5 5.5 5.5 哈密顿量模拟简介——量子计算在量子化学和材料科学中最有前景的应用之一。这五个专题分别对应量子算法的电路实现、核心应用、物理限制、近期实践和核心应用前景,共同构成从理论到实验的完整桥梁。
5.1 量子傅里叶变换的电路实现 (QFT Circuit Construction)
从DFT到QFT:回顾与动机
回顾1.8节 中学习的离散傅里叶变换(DFT)。对于N = 2 n N = 2^n N = 2 n 个复数x 0 , x 1 , … , x N − 1 x_0, x_1, \ldots, x_{N-1} x 0 , x 1 , … , x N − 1 ,DFT将它们变换为一组新的复数y 0 , y 1 , … , y N − 1 y_0, y_1, \ldots, y_{N-1} y 0 , y 1 , … , y N − 1 :
y k = 1 N ∑ j = 0 N − 1 x j ω N j k , ω N = e 2 π i / N y_k = \frac{1}{\sqrt{N}}\sum_{j=0}^{N-1}x_j\omega_N^{jk}, \quad \omega_N = e^{2\pi i/N} y k = N 1 ∑ j = 0 N − 1 x j ω N j k , ω N = e 2 π i / N
在量子计算中,**量子傅里叶变换(Quantum Fourier Transform, QFT)**是DFT的量子实现。它不是对经典数据数组做变换,而是对量子态的振幅做变换。给定一个n n n 量子比特的态:
∣ ψ ⟩ = ∑ j = 0 N − 1 x j ∣ j ⟩ \lvert\psi\rangle = \sum_{j=0}^{N-1}x_j\lvert j\rangle ∣ ψ ⟩ = ∑ j = 0 N − 1 x j ∣ j ⟩
QFT将其变换为:
U QFT ∣ ψ ⟩ = ∑ k = 0 N − 1 y k ∣ k ⟩ U_{\text{QFT}}\lvert\psi\rangle = \sum_{k=0}^{N-1}y_k\lvert k\rangle U QFT ∣ ψ ⟩ = ∑ k = 0 N − 1 y k ∣ k ⟩
其中y k y_k y k 正是上述DFT系数。用基矢表示,QFT的作用为:
U QFT ∣ j ⟩ = 1 N ∑ k = 0 N − 1 ω N j k ∣ k ⟩ U_{\text{QFT}}\lvert j\rangle = \frac{1}{\sqrt{N}}\sum_{k=0}^{N-1}\omega_N^{jk}\lvert k\rangle U QFT ∣ j ⟩ = N 1 ∑ k = 0 N − 1 ω N j k ∣ k ⟩
这是量子计算中最重要的变换之一。从矩阵角度看,U QFT U_{\text{QFT}} U QFT 是一个2 n × 2 n 2^n \times 2^n 2 n × 2 n 的酉矩阵,其( j , k ) (j,k) ( j , k ) 元为ω N j k / N \omega_N^{jk}/\sqrt{N} ω N j k / N ——这正是1.8节 中DFT矩阵的量子版本。但关键在于:经典计算机需要O ( N log N ) = O ( 2 n n ) O(N\log N) = O(2^n n) O ( N log N ) = O ( 2 n n ) 次操作来计算DFT,而量子计算机只需要O ( n 2 ) O(n^2) O ( n 2 ) 个量子门就能实现QFT——这是指数级的加速。
二进制分数表示:QFT的因式分解
为了将QFT转化为电路,我们需要将上述求和式因式分解为单量子比特的张量积形式。这是QFT电路构造的核心技巧。
首先引入二进制分数表示 :对于一个二进制小数0. j 1 j 2 … j m 0.j_1 j_2 \ldots j_m 0. j 1 j 2 … j m ,其值为:
0. j 1 j 2 … j m = j 1 2 + j 2 4 + ⋯ + j m 2 m 0.j_1 j_2 \ldots j_m = \frac{j_1}{2} + \frac{j_2}{4} + \cdots + \frac{j_m}{2^m} 0. j 1 j 2 … j m = 2 j 1 + 4 j 2 + ⋯ + 2 m j m
例如,0.1 = 1 / 2 0.1 = 1/2 0.1 = 1/2 ,0.01 = 1 / 4 0.01 = 1/4 0.01 = 1/4 ,0.11 = 3 / 4 0.11 = 3/4 0.11 = 3/4 。
现在,将整数j j j 用n n n 位二进制表示为j = j 1 j 2 … j n j = j_1 j_2 \ldots j_n j = j 1 j 2 … j n ,即j = j 1 2 n − 1 + j 2 2 n − 2 + ⋯ + j n 2 0 j = j_1 2^{n-1} + j_2 2^{n-2} + \cdots + j_n 2^0 j = j 1 2 n − 1 + j 2 2 n − 2 + ⋯ + j n 2 0 。QFT作用在基矢∣ j ⟩ = ∣ j 1 j 2 … j n ⟩ \lvert j\rangle = \lvert j_1 j_2 \ldots j_n\rangle ∣ j ⟩ = ∣ j 1 j 2 … j n ⟩ 上,经过一系列代数运算(展开指数、分离变量),可以得到惊人的因式分解形式:
U QFT ∣ j 1 j 2 … j n ⟩ = 1 2 n / 2 ( ∣ 0 ⟩ + e 2 π i ⋅ 0. j n ∣ 1 ⟩ ) ⊗ ( ∣ 0 ⟩ + e 2 π i ⋅ 0. j n − 1 j n ∣ 1 ⟩ ) ⊗ ⋯ ⊗ ( ∣ 0 ⟩ + e 2 π i ⋅ 0. j 1 j 2 … j n ∣ 1 ⟩ ) U_{\text{QFT}}\lvert j_1 j_2 \ldots j_n\rangle = \frac{1}{2^{n/2}}\left(\lvert0\rangle + e^{2\pi i \cdot 0.j_n}\lvert1\rangle\right) \otimes \left(\lvert0\rangle + e^{2\pi i \cdot 0.j_{n-1}j_n}\lvert1\rangle\right) \otimes \cdots \otimes \left(\lvert0\rangle + e^{2\pi i \cdot 0.j_1 j_2 \ldots j_n}\lvert1\rangle\right) U QFT ∣ j 1 j 2 … j n ⟩ = 2 n /2 1 ( ∣ 0 ⟩ + e 2 π i ⋅ 0. j n ∣ 1 ⟩ ) ⊗ ( ∣ 0 ⟩ + e 2 π i ⋅ 0. j n − 1 j n ∣ 1 ⟩ ) ⊗ ⋯ ⊗ ( ∣ 0 ⟩ + e 2 π i ⋅ 0. j 1 j 2 … j n ∣ 1 ⟩ )
让我们验证这个公式的正确性。以n = 1 n=1 n = 1 为例:j = j 1 j = j_1 j = j 1 ,N = 2 N = 2 N = 2 ,则:
U QFT ∣ j 1 ⟩ = 1 2 ( ∣ 0 ⟩ + e 2 π i ⋅ 0. j 1 ∣ 1 ⟩ ) U_{\text{QFT}}\lvert j_1\rangle = \frac{1}{\sqrt{2}}\left(\lvert0\rangle + e^{2\pi i \cdot 0.j_1}\lvert1\rangle\right) U QFT ∣ j 1 ⟩ = 2 1 ( ∣ 0 ⟩ + e 2 π i ⋅ 0. j 1 ∣ 1 ⟩ )
当j 1 = 0 j_1 = 0 j 1 = 0 时,e 2 π i ⋅ 0 = 1 e^{2\pi i \cdot 0} = 1 e 2 π i ⋅ 0 = 1 ,得1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) \frac{1}{\sqrt{2}}(\lvert0\rangle + \lvert1\rangle) 2 1 (∣ 0 ⟩ + ∣ 1 ⟩) ;当j 1 = 1 j_1 = 1 j 1 = 1 时,e 2 π i ⋅ 1 / 2 = e π i = − 1 e^{2\pi i \cdot 1/2} = e^{\pi i} = -1 e 2 π i ⋅ 1/2 = e π i = − 1 ,得1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) \frac{1}{\sqrt{2}}(\lvert0\rangle - \lvert1\rangle) 2 1 (∣ 0 ⟩ − ∣ 1 ⟩) 。这正是阿达马门H H H 的作用!所以单量子比特QFT就是H H H 门。
这个因式分解的重要性在于:输出态已经写成了n n n 个单量子比特态的张量积 。这意味着我们可以用n n n 个并行的单比特操作来制备输出态的每个因子——这是构造高效量子电路的关键。
受控相位旋转门 C R k CR_k C R k
观察因式分解中的第l l l 个因子:
∣ 0 ⟩ + e 2 π i ⋅ 0. j n − l + 1 … j n ∣ 1 ⟩ \lvert0\rangle + e^{2\pi i \cdot 0.j_{n-l+1} \ldots j_n}\lvert1\rangle ∣ 0 ⟩ + e 2 π i ⋅ 0. j n − l + 1 … j n ∣ 1 ⟩
相位e 2 π i ⋅ 0. j n − l + 1 … j n e^{2\pi i \cdot 0.j_{n-l+1} \ldots j_n} e 2 π i ⋅ 0. j n − l + 1 … j n 可以展开为:
e 2 π i ⋅ 0. j n − l + 1 ⋅ e 2 π i ⋅ 0.0 j n − l + 2 ⋅ ⋯ ⋅ e 2 π i ⋅ 0.0 … 0 j n e^{2\pi i \cdot 0.j_{n-l+1}} \cdot e^{2\pi i \cdot 0.0j_{n-l+2}} \cdot \cdots \cdot e^{2\pi i \cdot 0.0\ldots 0j_n} e 2 π i ⋅ 0. j n − l + 1 ⋅ e 2 π i ⋅ 0.0 j n − l + 2 ⋅ ⋯ ⋅ e 2 π i ⋅ 0.0 … 0 j n
每个指数项对应一个受控相位旋转。为此,定义受控相位旋转门(Controlled-Phase Rotation) C R k CR_k C R k :
C R k = ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 e 2 π i / 2 k ) CR_k = \begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&1&0\\0&0&0&e^{2\pi i/2^k}\end{pmatrix} C R k = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 e 2 π i / 2 k
它作用于两个量子比特:当控制比特为∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 时,给目标比特的∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 分量添加相位e 2 π i / 2 k e^{2\pi i/2^k} e 2 π i / 2 k ;当控制比特为∣ 0 ⟩ \lvert0\rangle ∣ 0 ⟩ 时,目标比特不变。注意C R 1 CR_1 C R 1 就是受控Z Z Z 门(CZ),因为e 2 π i / 2 = e π i = − 1 e^{2\pi i/2} = e^{\pi i} = -1 e 2 π i /2 = e π i = − 1 。
C R k CR_k C R k 的矩阵在计算基{ ∣ 00 ⟩ , ∣ 01 ⟩ , ∣ 10 ⟩ , ∣ 11 ⟩ } \{\lvert00\rangle, \lvert01\rangle, \lvert10\rangle, \lvert11\rangle\} {∣ 00 ⟩ , ∣ 01 ⟩ , ∣ 10 ⟩ , ∣ 11 ⟩} 下是对角的,这使其在实验上相对容易实现(许多物理平台天然支持对角的两比特门)。
QFT的级联电路构造
现在我们可以构造完整的QFT电路。QFT电路从第一个量子比特到第n n n 个量子比特依次操作:
第1个量子比特 :施加H H H 门,然后依次施加C R 2 , C R 3 , … , C R n CR_2, CR_3, \ldots, CR_n C R 2 , C R 3 , … , C R n ,控制比特分别为第2, 3, … \ldots … , n n n 个量子比特。
H H H 门产生∣ 0 ⟩ + e 2 π i ⋅ 0. j 1 ∣ 1 ⟩ \lvert0\rangle + e^{2\pi i \cdot 0.j_1}\lvert1\rangle ∣ 0 ⟩ + e 2 π i ⋅ 0. j 1 ∣ 1 ⟩
C R 2 CR_2 C R 2 (控制=比特2)添加相位e 2 π i ⋅ 0.0 j 2 = e 2 π i j 2 / 4 e^{2\pi i \cdot 0.0j_2} = e^{2\pi i j_2/4} e 2 π i ⋅ 0.0 j 2 = e 2 π i j 2 /4 ,将相位变为e 2 π i ⋅ 0. j 1 j 2 e^{2\pi i \cdot 0.j_1 j_2} e 2 π i ⋅ 0. j 1 j 2
C R 3 CR_3 C R 3 (控制=比特3)添加相位e 2 π i j 3 / 8 e^{2\pi i j_3/8} e 2 π i j 3 /8 ,将相位变为e 2 π i ⋅ 0. j 1 j 2 j 3 e^{2\pi i \cdot 0.j_1 j_2 j_3} e 2 π i ⋅ 0. j 1 j 2 j 3
以此类推…
第2个量子比特 :施加H H H 门,然后依次施加C R 2 , C R 3 , … , C R n − 1 CR_2, CR_3, \ldots, CR_{n-1} C R 2 , C R 3 , … , C R n − 1 ,控制比特分别为第3, 4, … \ldots … , n n n 个量子比特。
…
第n n n 个量子比特 :仅施加H H H 门。
3 3 3 量子比特QFT电路如下:
j₁: |j₁⟩ —H—•—————•——— → 输出比特 3
| |
j₂: |j₂⟩ ————R₂—H—•——— → 输出比特 2
|
j₃: |j₃⟩ ————R₃—R₂—H— → 输出比特 1
其中R k R_k R k 表示C R k CR_k C R k 门,控制比特在上方,目标比特在下方。图中R 2 R_2 R 2 从比特2控制比特1,R 3 R_3 R 3 从比特3控制比特1,依此类推。
更一般地,n n n 量子比特QFT电路需要:
n n n 个H H H 门
∑ k = 1 n − 1 k = n ( n − 1 ) / 2 \sum_{k=1}^{n-1}k = n(n-1)/2 ∑ k = 1 n − 1 k = n ( n − 1 ) /2 个受控相位门
总门数为O ( n 2 ) O(n^2) O ( n 2 ) 。由于同一层的H H H 门可以并行执行(不同比特上的H H H 门互不干扰),而受控相位门涉及不同比特对,电路深度也是O ( n ) O(n) O ( n ) (如果所有两比特门可以并行执行),或在最保守估计下为O ( n 2 ) O(n^2) O ( n 2 ) 。
反向排序问题与SWAP门修正
仔细观察因式分解的输出:
第1个因子 ⊗ 第2个因子 ⊗ ⋯ ⊗ 第 n 个因子 \text{第1个因子} \otimes \text{第2个因子} \otimes \cdots \otimes \text{第$n$个因子} 第 1 个因子 ⊗ 第 2 个因子 ⊗ ⋯ ⊗ 第 n 个因子
其中第l l l 个因子对应e 2 π i ⋅ 0. j n − l + 1 … j n e^{2\pi i \cdot 0.j_{n-l+1}\ldots j_n} e 2 π i ⋅ 0. j n − l + 1 … j n ,即它只依赖于输入比特j n − l + 1 , … , j n j_{n-l+1}, \ldots, j_n j n − l + 1 , … , j n 。这意味着:
第1个输出因子(最高位)只依赖于输入的最低位j n j_n j n
第n n n 个输出因子(最低位)依赖于所有输入比特j 1 , … , j n j_1, \ldots, j_n j 1 , … , j n
因此,QFT电路的输出比特顺序是反转的 。如果我们希望输出按照k 1 k 2 … k n k_1 k_2 \ldots k_n k 1 k 2 … k n 的正常顺序排列,需要在电路末尾添加⌊ n / 2 ⌋ \lfloor n/2 \rfloor ⌊ n /2 ⌋ 个SWAP门来反转比特顺序。
SWAP门交换两个量子比特的状态,其矩阵为:
SWAP = ( 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 ) \text{SWAP} = \begin{pmatrix}1&0&0&0\\0&0&1&0\\0&1&0&0\\0&0&0&1\end{pmatrix} SWAP = 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1
SWAP可以用3个CNOT门实现:CNOT(1→2)、CNOT(2→1)、CNOT(1→2)。因此完整的QFT电路(含比特顺序修正)需要O ( n 2 ) O(n^2) O ( n 2 ) 个基本门。
3量子比特QFT的完整数值例子
让我们以一个具体的3量子比特例子验证QFT电路的正确性。取输入态∣ ψ ⟩ = ∣ 011 ⟩ \lvert\psi\rangle = \lvert011\rangle ∣ ψ ⟩ = ∣ 011 ⟩ (即j = 3 j = 3 j = 3 )。
步骤1:初始态
∣ ψ 0 ⟩ = ∣ 0 ⟩ 1 ⊗ ∣ 1 ⟩ 2 ⊗ ∣ 1 ⟩ 3 \lvert\psi_0\rangle = \lvert0\rangle_1 \otimes \lvert1\rangle_2 \otimes \lvert1\rangle_3 ∣ ψ 0 ⟩ = ∣ 0 ⟩ 1 ⊗ ∣ 1 ⟩ 2 ⊗ ∣ 1 ⟩ 3
步骤2:对比特1施加H H H
∣ ψ 1 ⟩ = 1 2 ( ∣ 0 ⟩ 1 + ∣ 1 ⟩ 1 ) ⊗ ∣ 1 ⟩ 2 ⊗ ∣ 1 ⟩ 3 \lvert\psi_1\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle_1 + \lvert1\rangle_1) \otimes \lvert1\rangle_2 \otimes \lvert1\rangle_3 ∣ ψ 1 ⟩ = 2 1 (∣ 0 ⟩ 1 + ∣ 1 ⟩ 1 ) ⊗ ∣ 1 ⟩ 2 ⊗ ∣ 1 ⟩ 3
步骤3:C R 2 CR_2 C R 2 (控制=比特2,目标=比特1)
控制比特2为∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ ,所以目标比特1的∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 分量获得相位e 2 π i / 4 = e π i / 2 = i e^{2\pi i/4} = e^{\pi i/2} = i e 2 π i /4 = e π i /2 = i :
∣ ψ 2 ⟩ = 1 2 ( ∣ 0 ⟩ 1 + i ∣ 1 ⟩ 1 ) ⊗ ∣ 1 ⟩ 2 ⊗ ∣ 1 ⟩ 3 \lvert\psi_2\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle_1 + i\lvert1\rangle_1) \otimes \lvert1\rangle_2 \otimes \lvert1\rangle_3 ∣ ψ 2 ⟩ = 2 1 (∣ 0 ⟩ 1 + i ∣ 1 ⟩ 1 ) ⊗ ∣ 1 ⟩ 2 ⊗ ∣ 1 ⟩ 3
步骤4:C R 3 CR_3 C R 3 (控制=比特3,目标=比特1)
控制比特3为∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ ,所以目标比特1的∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 分量获得额外相位e 2 π i / 8 = e π i / 4 = 1 + i 2 e^{2\pi i/8} = e^{\pi i/4} = \frac{1+i}{\sqrt{2}} e 2 π i /8 = e π i /4 = 2 1 + i :
i ⋅ e π i / 4 = e π i / 2 ⋅ e π i / 4 = e 3 π i / 4 = − 1 2 + i 2 i \cdot e^{\pi i/4} = e^{\pi i/2} \cdot e^{\pi i/4} = e^{3\pi i/4} = -\frac{1}{\sqrt{2}} + \frac{i}{\sqrt{2}} i ⋅ e π i /4 = e π i /2 ⋅ e π i /4 = e 3 π i /4 = − 2 1 + 2 i
所以:
∣ ψ 3 ⟩ = 1 2 ( ∣ 0 ⟩ 1 + e 3 π i / 4 ∣ 1 ⟩ 1 ) ⊗ ∣ 1 ⟩ 2 ⊗ ∣ 1 ⟩ 3 \lvert\psi_3\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle_1 + e^{3\pi i/4}\lvert1\rangle_1) \otimes \lvert1\rangle_2 \otimes \lvert1\rangle_3 ∣ ψ 3 ⟩ = 2 1 (∣ 0 ⟩ 1 + e 3 π i /4 ∣ 1 ⟩ 1 ) ⊗ ∣ 1 ⟩ 2 ⊗ ∣ 1 ⟩ 3
这对应∣ 0 ⟩ + e 2 π i ⋅ 0.011 ∣ 1 ⟩ = ∣ 0 ⟩ + e 2 π i ⋅ 3 / 8 ∣ 1 ⟩ \lvert0\rangle + e^{2\pi i \cdot 0.011}\lvert1\rangle = \lvert0\rangle + e^{2\pi i \cdot 3/8}\lvert1\rangle ∣ 0 ⟩ + e 2 π i ⋅ 0.011 ∣ 1 ⟩ = ∣ 0 ⟩ + e 2 π i ⋅ 3/8 ∣ 1 ⟩ 。
步骤5:对比特2施加H H H
比特2目前为∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ ,H ∣ 1 ⟩ = 1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) H\lvert1\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle - \lvert1\rangle) H ∣ 1 ⟩ = 2 1 (∣ 0 ⟩ − ∣ 1 ⟩) :
∣ ψ 4 ⟩ = 1 2 ( ∣ 0 ⟩ 1 + e 3 π i / 4 ∣ 1 ⟩ 1 ) ⊗ 1 2 ( ∣ 0 ⟩ 2 − ∣ 1 ⟩ 2 ) ⊗ ∣ 1 ⟩ 3 \lvert\psi_4\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle_1 + e^{3\pi i/4}\lvert1\rangle_1) \otimes \frac{1}{\sqrt{2}}(\lvert0\rangle_2 - \lvert1\rangle_2) \otimes \lvert1\rangle_3 ∣ ψ 4 ⟩ = 2 1 (∣ 0 ⟩ 1 + e 3 π i /4 ∣ 1 ⟩ 1 ) ⊗ 2 1 (∣ 0 ⟩ 2 − ∣ 1 ⟩ 2 ) ⊗ ∣ 1 ⟩ 3
步骤6:C R 2 CR_2 C R 2 (控制=比特3,目标=比特2)
控制比特3为∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ ,比特2的∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 分量获得相位i i i :
∣ ψ 5 ⟩ = 1 2 ( ∣ 0 ⟩ 1 + e 3 π i / 4 ∣ 1 ⟩ 1 ) ⊗ 1 2 ( ∣ 0 ⟩ 2 + i ( − 1 ) ∣ 1 ⟩ 2 ) ⊗ ∣ 1 ⟩ 3 \lvert\psi_5\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle_1 + e^{3\pi i/4}\lvert1\rangle_1) \otimes \frac{1}{\sqrt{2}}(\lvert0\rangle_2 + i(-1)\lvert1\rangle_2) \otimes \lvert1\rangle_3 ∣ ψ 5 ⟩ = 2 1 (∣ 0 ⟩ 1 + e 3 π i /4 ∣ 1 ⟩ 1 ) ⊗ 2 1 (∣ 0 ⟩ 2 + i ( − 1 ) ∣ 1 ⟩ 2 ) ⊗ ∣ 1 ⟩ 3
= 1 2 ( ∣ 0 ⟩ 1 + e 3 π i / 4 ∣ 1 ⟩ 1 ) ⊗ 1 2 ( ∣ 0 ⟩ 2 + e 3 π i / 2 ∣ 1 ⟩ 2 ) ⊗ ∣ 1 ⟩ 3 = \frac{1}{\sqrt{2}}(\lvert0\rangle_1 + e^{3\pi i/4}\lvert1\rangle_1) \otimes \frac{1}{\sqrt{2}}(\lvert0\rangle_2 + e^{3\pi i/2}\lvert1\rangle_2) \otimes \lvert1\rangle_3 = 2 1 (∣ 0 ⟩ 1 + e 3 π i /4 ∣ 1 ⟩ 1 ) ⊗ 2 1 (∣ 0 ⟩ 2 + e 3 π i /2 ∣ 1 ⟩ 2 ) ⊗ ∣ 1 ⟩ 3
这对应∣ 0 ⟩ + e 2 π i ⋅ 0.11 ∣ 1 ⟩ \lvert0\rangle + e^{2\pi i \cdot 0.11}\lvert1\rangle ∣ 0 ⟩ + e 2 π i ⋅ 0.11 ∣ 1 ⟩ 。
步骤7:对比特3施加H H H
∣ ψ 6 ⟩ = 1 2 ( ∣ 0 ⟩ 1 + e 3 π i / 4 ∣ 1 ⟩ 1 ) ⊗ 1 2 ( ∣ 0 ⟩ 2 + e 3 π i / 2 ∣ 1 ⟩ 2 ) ⊗ 1 2 ( ∣ 0 ⟩ 3 − ∣ 1 ⟩ 3 ) \lvert\psi_6\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle_1 + e^{3\pi i/4}\lvert1\rangle_1) \otimes \frac{1}{\sqrt{2}}(\lvert0\rangle_2 + e^{3\pi i/2}\lvert1\rangle_2) \otimes \frac{1}{\sqrt{2}}(\lvert0\rangle_3 - \lvert1\rangle_3) ∣ ψ 6 ⟩ = 2 1 (∣ 0 ⟩ 1 + e 3 π i /4 ∣ 1 ⟩ 1 ) ⊗ 2 1 (∣ 0 ⟩ 2 + e 3 π i /2 ∣ 1 ⟩ 2 ) ⊗ 2 1 (∣ 0 ⟩ 3 − ∣ 1 ⟩ 3 )
这对应∣ 0 ⟩ + e 2 π i ⋅ 0.1 ∣ 1 ⟩ \lvert0\rangle + e^{2\pi i \cdot 0.1}\lvert1\rangle ∣ 0 ⟩ + e 2 π i ⋅ 0.1 ∣ 1 ⟩ 。
步骤8:SWAP修正比特顺序 (比特1↔比特3)
最终输出(忽略归一化因子1 / 2 3 / 2 1/2^{3/2} 1/ 2 3/2 )为8个基矢的叠加,振幅由e 2 π i ⋅ 3 k / 8 / 8 e^{2\pi i \cdot 3k/8}/\sqrt{8} e 2 π i ⋅ 3 k /8 / 8 给出,其中k = 0 , 1 , … , 7 k = 0, 1, \ldots, 7 k = 0 , 1 , … , 7 。这正是DFT作用于基矢∣ 3 ⟩ \lvert3\rangle ∣ 3 ⟩ 的结果。
近似QFT与深度优化
在实际量子计算机上,非常小的相位旋转(如C R n CR_n C R n 当n n n 很大时,e 2 π i / 2 n ≈ 1 e^{2\pi i/2^n} \approx 1 e 2 π i / 2 n ≈ 1 )难以精确实现。一个实用的优化是近似QFT(Approximate QFT) :丢弃所有k > k max k > k_{\max} k > k m a x 的C R k CR_k C R k 门,其中k max = O ( log n ) k_{\max} = O(\log n) k m a x = O ( log n ) 。这种近似的误差可以被控制在任意小的范围内,但电路深度降低到O ( n log n ) O(n \log n) O ( n log n ) ,在某些架构下甚至可以优化到O ( n ) O(n) O ( n ) 。
小结 (Summary):
量子傅里叶变换通过将输出态因式分解为单量子比特的张量积,实现了高效的电路构造。QFT电路由n n n 个H H H 门和n ( n − 1 ) / 2 n(n-1)/2 n ( n − 1 ) /2 个受控相位旋转门组成,总复杂度为O ( n 2 ) O(n^2) O ( n 2 ) 个门。二进制分数表示揭示了每个输出比特只依赖于输入比特的一个子集,这是级联电路结构的关键。输出比特顺序反转需要通过SWAP门修正。3量子比特的数值例子验证了电路的正确性。
与量子计算的连接 (Connection to Quantum Computing):
QFT是Shor算法和量子相位估计的核心子程序。从抽象的DFT矩阵到具体的H H H 门+受控相位门的级联电路,是量子算法从数学描述到物理实现的关键一步。理解QFT的电路构造,是理解这些指数级加速算法如何在真实量子硬件上运行的基础。O ( n 2 ) O(n^2) O ( n 2 ) 的电路复杂度意味着QFT可以在中等规模的量子计算机上实现,使其成为近期量子计算中最实用的变换之一。
5.2 量子相位估计 (Quantum Phase Estimation)
问题陈述:读取量子系统的本征值
量子相位估计(Quantum Phase Estimation, QPE)是量子计算中最强大的子程序之一。它解决如下问题:
给定 :一个酉算子U U U 和它的一个本征向量∣ u ⟩ \lvert u\rangle ∣ u ⟩ ,满足U ∣ u ⟩ = e 2 π i θ ∣ u ⟩ U\lvert u\rangle = e^{2\pi i \theta}\lvert u\rangle U ∣ u ⟩ = e 2 π i θ ∣ u ⟩ 。
目标 :估计相位θ ∈ [ 0 , 1 ) \theta \in [0, 1) θ ∈ [ 0 , 1 ) 的数值。
这个问题看似抽象,但它包含了量子计算中许多核心算法的本质。例如,在Shor算法中,U U U 是实现模幂运算的酉算子,∣ u ⟩ \lvert u\rangle ∣ u ⟩ 是对应的周期态,而θ \theta θ 的精确值直接给出因数分解所需的关键信息。
经典计算机上,估计一个酉算子的本征相位没有直接的方法——我们通常需要计算U U U 的全部矩阵元并做对角化,复杂度为O ( N 3 ) O(N^3) O ( N 3 ) (N = 2 n N = 2^n N = 2 n )。量子相位估计则利用量子并行性和QFT,以仅O ( n 2 ) O(n^2) O ( n 2 ) 个门的复杂度直接”读取”相位——这是指数级加速。
算法电路结构:辅助寄存器 + 受控酉操作 + 逆QFT
QPE电路由三部分组成,使用两个量子寄存器:
第一寄存器(辅助/计数寄存器) :t t t 个量子比特,初始化为∣ 0 ⟩ ⊗ t \lvert0\rangle^{\otimes t} ∣ 0 ⟩ ⊗ t
第二寄存器(目标寄存器) :存储本征向量∣ u ⟩ \lvert u\rangle ∣ u ⟩ (假设已制备好)
电路结构如下:
|0⟩ —H—•——————•——————•———H†—S†—...— → 测量 → θ的二进制估计
|0⟩ —H—| U¹ | U² | —H†—...—
|0⟩ —H—| | | ...
⋮ | | |
|0⟩ —H—•———————•———————•———————...—
| | |
|u⟩ ——U¹——U²——U⁴——...——U^(2^{t-1})— → |u⟩ (不变)
步骤1:创建叠加态
对所有t t t 个辅助比特施加H H H 门:
1 2 t ∑ x = 0 2 t − 1 ∣ x ⟩ ⊗ ∣ u ⟩ \frac{1}{\sqrt{2^t}}\sum_{x=0}^{2^t-1}\lvert x\rangle \otimes \lvert u\rangle 2 t 1 ∑ x = 0 2 t − 1 ∣ x ⟩ ⊗ ∣ u ⟩
步骤2:受控酉操作编码相位
依次施加受控U 2 k U^{2^k} U 2 k 操作,控制比特为辅助寄存器的第k k k 个比特,目标为∣ u ⟩ \lvert u\rangle ∣ u ⟩ 。受控U 2 k U^{2^k} U 2 k 的作用是:当控制比特为∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 时,对目标施加U 2 k U^{2^k} U 2 k ;当控制比特为∣ 0 ⟩ \lvert0\rangle ∣ 0 ⟩ 时,目标不变。
数学上,对于辅助比特处于∣ x ⟩ = ∣ x t − 1 x t − 2 … x 0 ⟩ \lvert x\rangle = \lvert x_{t-1} x_{t-2} \ldots x_0\rangle ∣ x ⟩ = ∣ x t − 1 x t − 2 … x 0 ⟩ (其中x k ∈ { 0 , 1 } x_k \in \{0,1\} x k ∈ { 0 , 1 } ),受控操作将目标态变为:
U x 0 ⋅ U 2 x 1 ⋅ U 4 x 2 ⋯ U 2 t − 1 x t − 1 ∣ u ⟩ = U x ∣ u ⟩ = e 2 π i θ x ∣ u ⟩ U^{x_0} \cdot U^{2x_1} \cdot U^{4x_2} \cdots U^{2^{t-1}x_{t-1}}\lvert u\rangle = U^x\lvert u\rangle = e^{2\pi i \theta x}\lvert u\rangle U x 0 ⋅ U 2 x 1 ⋅ U 4 x 2 ⋯ U 2 t − 1 x t − 1 ∣ u ⟩ = U x ∣ u ⟩ = e 2 π i θ x ∣ u ⟩
因此,整个辅助-目标系统的态变为:
1 2 t ∑ x = 0 2 t − 1 e 2 π i θ x ∣ x ⟩ ⊗ ∣ u ⟩ \frac{1}{\sqrt{2^t}}\sum_{x=0}^{2^t-1}e^{2\pi i \theta x}\lvert x\rangle \otimes \lvert u\rangle 2 t 1 ∑ x = 0 2 t − 1 e 2 π i θ x ∣ x ⟩ ⊗ ∣ u ⟩
这是关键的一步:相位θ \theta θ 被编码到了辅助寄存器的振幅中!注意这个态的形式——它与QFT的输出态非常相似。
步骤3:逆QFT读取相位
对上述态的辅助寄存器部分施加逆量子傅里叶变换(Inverse QFT, QFT† ^\dagger † ) 。QFT† ^\dagger † 是QFT的厄米共轭,它将频率域的表示转换回时域。
如果θ \theta θ 恰好可以用t t t 位二进制精确表示,即θ = 0. θ 1 θ 2 … θ t \theta = 0.\theta_1 \theta_2 \ldots \theta_t θ = 0. θ 1 θ 2 … θ t ,则逆QFT将辅助寄存器精确地变为∣ θ 1 θ 2 … θ t ⟩ \lvert\theta_1 \theta_2 \ldots \theta_t\rangle ∣ θ 1 θ 2 … θ t ⟩ 。测量辅助寄存器,我们就直接读出了θ \theta θ 的二进制表示!
更精确地说,如果θ = j / 2 t \theta = j/2^t θ = j / 2 t (即t t t 位二进制小数),则:
QFT † ( 1 2 t ∑ x = 0 2 t − 1 e 2 π i j x / 2 t ∣ x ⟩ ) = ∣ j ⟩ \text{QFT}^\dagger\left(\frac{1}{\sqrt{2^t}}\sum_{x=0}^{2^t-1}e^{2\pi i j x/2^t}\lvert x\rangle\right) = \lvert j\rangle QFT † ( 2 t 1 ∑ x = 0 2 t − 1 e 2 π ij x / 2 t ∣ x ⟩ ) = ∣ j ⟩
这正是QFT的定义性质(正交性)的直接推论。
精度分析与成功概率
当θ \theta θ 不是t t t 位二进制小数时(即不能被精确表示),QPE给出的是θ \theta θ 的最佳t t t 位近似。设θ \theta θ 的真实值与最近的t t t 位二进制小数b / 2 t b/2^t b / 2 t 的距离为δ \delta δ (∣ δ ∣ ≤ 1 / 2 t + 1 |\delta| \leq 1/2^{t+1} ∣ δ ∣ ≤ 1/ 2 t + 1 )。
测量结果落在b b b 附近的概率满足:
p ( ∣ 测量结果 − b ∣ < 2 t − m ) ≥ 1 − 1 2 ( 2 m − t − 1 ) p(|\text{测量结果} - b| < 2^{t-m}) \geq 1 - \frac{1}{2(2^{m-t}-1)} p ( ∣ 测量结果 − b ∣ < 2 t − m ) ≥ 1 − 2 ( 2 m − t − 1 ) 1
特别地,要获得n n n 位精度的估计(即误差小于1 / 2 n 1/2^n 1/ 2 n ),需要t = n + O ( 1 ) t = n + O(1) t = n + O ( 1 ) 个辅助比特。更精确地说,如果希望以至少1 − ϵ 1-\epsilon 1 − ϵ 的概率获得n n n 位精度,需要:
t = n + ⌈ log 2 ( 2 + 1 2 ϵ ) ⌉ t = n + \left\lceil\log_2\left(2 + \frac{1}{2\epsilon}\right)\right\rceil t = n + ⌈ log 2 ( 2 + 2 ϵ 1 ) ⌉
例如,要以99%的成功率获得n n n 位精度,大约需要t = n + 8 t = n + 8 t = n + 8 个辅助比特。
与Shor算法的关系
Shor算法的核心是阶数发现(Order Finding) :给定与N N N 互质的整数a a a ,找到最小的正整数r r r 使得a r ≡ 1 ( m o d N ) a^r \equiv 1 \pmod{N} a r ≡ 1 ( mod N ) 。这个问题可以表述为相位估计:
定义酉算子U U U :U ∣ x ⟩ = ∣ a x m o d N ⟩ U\lvert x\rangle = \lvert ax \mod N\rangle U ∣ x ⟩ = ∣ a x mod N ⟩ (作用于⌈ log 2 N ⌉ \lceil\log_2 N\rceil ⌈ log 2 N ⌉ 个量子比特)。这个U U U 的本征态为:
∣ u s ⟩ = 1 r ∑ k = 0 r − 1 e − 2 π i s k / r ∣ a k m o d N ⟩ \lvert u_s\rangle = \frac{1}{\sqrt{r}}\sum_{k=0}^{r-1}e^{-2\pi i s k/r}\lvert a^k \mod N\rangle ∣ u s ⟩ = r 1 ∑ k = 0 r − 1 e − 2 π i s k / r ∣ a k mod N ⟩
对应的本征值为e 2 π i s / r e^{2\pi i s/r} e 2 π i s / r ,其中s = 0 , 1 , … , r − 1 s = 0, 1, \ldots, r-1 s = 0 , 1 , … , r − 1 。
通过QPE估计s / r s/r s / r ,然后用连分数展开 从s / r s/r s / r 的近似中提取r r r 。这就是Shor算法中QFT/QPE发挥核心作用的机制。QPE将抽象的数论问题转化为量子系统本征相位的物理测量,是数学与物理的深刻交汇。
实现挑战:受控 U 2 k U^{2^k} U 2 k 操作
QPE的理论框架优美而简洁,但其实验实现面临重大挑战:
制备本征态∣ u ⟩ \lvert u\rangle ∣ u ⟩ :通常我们不知道∣ u ⟩ \lvert u\rangle ∣ u ⟩ 的具体形式。在实际中,我们制备∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ (或其他简单态),它可以表示为所有本征态的叠加:∣ 1 ⟩ = ∑ s ∣ u s ⟩ / r \lvert1\rangle = \sum_s \lvert u_s\rangle/\sqrt{r} ∣ 1 ⟩ = ∑ s ∣ u s ⟩ / r 。QPE同时对多个本征相位进行估计,测量结果以一定概率给出某个s / r s/r s / r 的值——这足以完成阶数发现。
实现受控U 2 k U^{2^k} U 2 k :这是最大的实验挑战。对于Shor算法中的模幂运算U 2 k ∣ x ⟩ = ∣ a 2 k x m o d N ⟩ U^{2^k}\lvert x\rangle = \lvert a^{2^k}x \mod N\rangle U 2 k ∣ x ⟩ = ∣ a 2 k x mod N ⟩ ,需要实现O ( ( log N ) 3 ) O((\log N)^3) O (( log N ) 3 ) 个基本门。虽然理论上可行,但当前量子硬件的门保真度和相干时间限制了可执行的U 2 k U^{2^k} U 2 k 规模。
量子比特数量 :Shor算法分解一个L L L 位的整数,需要约2 L 2L 2 L 个量子比特用于辅助寄存器,加上O ( L ) O(L) O ( L ) 个量子比特用于目标寄存器。对于2048位RSA(L = 2048 L = 2048 L = 2048 ),需要约4000-5000个量子比特——这远超当前最先进的量子计算机(~1000量子比特)。
小结 (Summary):
量子相位估计通过创建辅助寄存器的叠加态、施加受控U 2 k U^{2^k} U 2 k 操作将相位编码到振幅中,再用逆QFT将相位信息转换为可测量的二进制表示,实现了对酉算子本征相位的指数级加速估计。t t t 个辅助比特提供约t − O ( 1 ) t - O(1) t − O ( 1 ) 位的精度估计。Shor算法中的阶数发现是QPE的直接应用。受控U 2 k U^{2^k} U 2 k 的实现是当前实验的主要瓶颈。
与量子计算的连接 (Connection to Quantum Computing):
QPE是量子计算”读取”量子系统内禀信息的通用工具。它不仅用于Shor算法,还广泛应用于量子化学(计算分子能级)、量子模拟(读取系统演化频率)和量子机器学习等领域。理解QPE的电路结构和精度分析,是理解量子计算机如何从抽象的量子态中提取有用经典信息的关键。QPE展示了量子算法设计的典型范式:利用叠加态编码问题、用量子干涉提取答案。
5.3 噪声模型与退相干 (Noise Models & Decoherence)
开放量子系统:为什么噪声不可避免
在前面的章节中,我们讨论的都是封闭量子系统(Closed Quantum System) ——一个完全孤立于外界环境、仅受精确控制的酉演化支配的理想系统。但在现实中,没有任何量子系统是完全孤立的。**开放量子系统(Open Quantum System)**与环境持续耦合,导致量子信息的退化和丢失。
这种耦合为什么不可避免?因为量子比特是真实的物理系统(电子自旋、超导电路、离子能级等),它们必然与周围的电磁场、晶格振动(声子)、热辐射等环境自由度相互作用。这些环境自由度构成了一个巨大的”热库”(Heat Bath),其希尔伯特空间的维度通常是量子比特的指数倍。量子比特与环境之间的纠缠,使得量子比特的纯态演化为我们将在2.6节 中学习的混态——这正是退相干(Decoherence)的物理起源。
理解噪声不是可选的附加知识,而是评估任何量子计算方案实际可行性的基础。当前所有量子计算机都在”NISQ”(含噪中等规模量子)时代运行,噪声是限制计算规模和深度的首要因素。
算子和表示(Kraus表示)
对于开放量子系统,演化不再是纯态到纯态的酉映射,而是密度矩阵到密度矩阵的完全正定保迹映射(CPTP Map) 。这种映射可以用算子和表示(Operator-Sum Representation) ,也称Kraus表示 来刻画:
ρ → E ( ρ ) = ∑ k E k ρ E k † \rho \to \mathcal{E}(\rho) = \sum_k E_k \rho E_k^\dagger ρ → E ( ρ ) = ∑ k E k ρ E k †
其中{ E k } \{E_k\} { E k } 称为Kraus算子(Kraus Operators) ,满足完备性关系 :
∑ k E k † E k = I \sum_k E_k^\dagger E_k = I ∑ k E k † E k = I
这个条件保证了映射保迹:Tr ( E ( ρ ) ) = Tr ( ρ ) = 1 \text{Tr}(\mathcal{E}(\rho)) = \text{Tr}(\rho) = 1 Tr ( E ( ρ )) = Tr ( ρ ) = 1 。
Kraus表示的物理意义是:环境对量子系统的作用可以看作一系列”量子操作”的统计混合。每个E k E_k E k 对应环境的一种可能”响应”,而整个演化是这些响应的概率加权平均。这与经典噪声的信道模型完全类似——只是这里的”信道”作用在密度矩阵上,而非经典概率分布上。
如果只有一个Kraus算子E 0 = U E_0 = U E 0 = U (酉矩阵),则退化为封闭系统的酉演化:E ( ρ ) = U ρ U † \mathcal{E}(\rho) = U\rho U^\dagger E ( ρ ) = U ρ U † 。因此,Kraus表示是酉演化的自然推广,统一描述了从纯酉演化到完全退极化的全部可能情况。
退极化信道(Depolarizing Channel)
**退极化信道(Depolarizing Channel)**是最简单的噪声模型之一,描述以概率p p p 将量子态完全随机化的过程:
E ( ρ ) = ( 1 − p ) ρ + p 3 ( X ρ X + Y ρ Y + Z ρ Z ) \mathcal{E}(\rho) = (1-p)\rho + \frac{p}{3}(X\rho X + Y\rho Y + Z\rho Z) E ( ρ ) = ( 1 − p ) ρ + 3 p ( X ρX + Y ρ Y + Z ρZ )
对应的Kraus算子为:
E 0 = 1 − p I , E 1 = p 3 X , E 2 = p 3 Y , E 3 = p 3 Z E_0 = \sqrt{1-p}\, I, \quad E_1 = \sqrt{\frac{p}{3}}\, X, \quad E_2 = \sqrt{\frac{p}{3}}\, Y, \quad E_3 = \sqrt{\frac{p}{3}}\, Z E 0 = 1 − p I , E 1 = 3 p X , E 2 = 3 p Y , E 3 = 3 p Z
验证完备性:E 0 † E 0 + E 1 † E 1 + E 2 † E 2 + E 3 † E 3 = ( 1 − p ) I + p 3 ( I + I + I ) = I E_0^\dagger E_0 + E_1^\dagger E_1 + E_2^\dagger E_2 + E_3^\dagger E_3 = (1-p)I + \frac{p}{3}(I + I + I) = I E 0 † E 0 + E 1 † E 1 + E 2 † E 2 + E 3 † E 3 = ( 1 − p ) I + 3 p ( I + I + I ) = I ✓
物理意义 :以概率1 − p 1-p 1 − p ,量子态不受影响;以概率p / 3 p/3 p /3 分别施加X X X 、Y Y Y 或Z Z Z 错误(比特翻转、相位翻转或两者兼有)。当p = 1 p = 1 p = 1 时,任意输入态都变为完全混态I / 2 I/2 I /2 ——信息完全丢失。
在布洛赫球上,退极化信道将所有点均匀地向球心收缩:
r ⃗ → ( 1 − p ) r ⃗ \vec{r} \to (1-p)\vec{r} r → ( 1 − p ) r
即布洛赫向量的长度缩小为原来的1 − p 1-p 1 − p 倍,但方向不变。当p = 1 p = 1 p = 1 时,整个球面坍缩到球心r ⃗ = 0 ⃗ \vec{r} = \vec{0} r = 0 。
比特翻转信道(Bit-Flip Channel)
**比特翻转信道(Bit-Flip Channel)**以概率p p p 翻转量子比特(∣ 0 ⟩ ↔ ∣ 1 ⟩ \lvert0\rangle \leftrightarrow \lvert1\rangle ∣ 0 ⟩ ↔ ∣ 1 ⟩ ),对应经典的”位错误”:
E ( ρ ) = ( 1 − p ) ρ + p X ρ X \mathcal{E}(\rho) = (1-p)\rho + p X\rho X E ( ρ ) = ( 1 − p ) ρ + pX ρX
Kraus算子:E 0 = 1 − p I E_0 = \sqrt{1-p}\, I E 0 = 1 − p I ,E 1 = p X E_1 = \sqrt{p}\, X E 1 = p X 。
在布洛赫球上,比特翻转信道的效果是:
( x , y , z ) → ( x , ( 1 − 2 p ) y , ( 1 − 2 p ) z ) (x, y, z) \to (x, (1-2p)y, (1-2p)z) ( x , y , z ) → ( x , ( 1 − 2 p ) y , ( 1 − 2 p ) z )
不对,让我重新计算。设ρ = 1 2 ( I + x X + y Y + z Z ) \rho = \frac{1}{2}(I + xX + yY + zZ) ρ = 2 1 ( I + x X + y Y + z Z ) ,则:
E ( ρ ) = ( 1 − p ) ρ + p X ρ X = 1 2 ( I + x X + ( 1 − 2 p ) y Y + ( 1 − 2 p ) z Z ) \mathcal{E}(\rho) = (1-p)\rho + p X\rho X = \frac{1}{2}\left(I + xX + (1-2p)yY + (1-2p)zZ\right) E ( ρ ) = ( 1 − p ) ρ + pX ρX = 2 1 ( I + x X + ( 1 − 2 p ) y Y + ( 1 − 2 p ) z Z )
所以布洛赫坐标变换为:
x → x , y → ( 1 − 2 p ) y , z → ( 1 − 2 p ) z x \to x, \quad y \to (1-2p)y, \quad z \to (1-2p)z x → x , y → ( 1 − 2 p ) y , z → ( 1 − 2 p ) z
即x x x 坐标保持不变,y y y 和z z z 坐标按因子1 − 2 p 1-2p 1 − 2 p 缩放。当p = 1 / 2 p = 1/2 p = 1/2 时,y y y 和z z z 分量完全消失,态变为ρ = 1 2 ( I + x X ) \rho = \frac{1}{2}(I + xX) ρ = 2 1 ( I + x X ) ——如果初始x = 0 x = 0 x = 0 ,则变为完全混态。比特翻转信道在x x x 轴上保持信息,但在y y y -z z z 平面上压缩态。
相位翻转信道(Phase-Flip / Dephasing Channel)
相位翻转信道(Phase-Flip Channel) ,也称退相位信道(Dephasing Channel) ,以概率p p p 施加Z Z Z 门(翻转∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 的相位):
E ( ρ ) = ( 1 − p ) ρ + p Z ρ Z \mathcal{E}(\rho) = (1-p)\rho + p Z\rho Z E ( ρ ) = ( 1 − p ) ρ + pZ ρZ
Kraus算子:E 0 = 1 − p I E_0 = \sqrt{1-p}\, I E 0 = 1 − p I ,E 1 = p Z E_1 = \sqrt{p}\, Z E 1 = p Z 。
布洛赫球上的效果:
E ( ρ ) = 1 2 ( I + ( 1 − 2 p ) x X + ( 1 − 2 p ) y Y + z Z ) \mathcal{E}(\rho) = \frac{1}{2}\left(I + (1-2p)xX + (1-2p)yY + zZ\right) E ( ρ ) = 2 1 ( I + ( 1 − 2 p ) x X + ( 1 − 2 p ) y Y + z Z )
即:
x → ( 1 − 2 p ) x , y → ( 1 − 2 p ) y , z → z x \to (1-2p)x, \quad y \to (1-2p)y, \quad z \to z x → ( 1 − 2 p ) x , y → ( 1 − 2 p ) y , z → z
**这是退相干的核心机制!**相位翻转信道在x x x -y y y 平面上压缩态(衰减相干项),但保持z z z 坐标(能量本征态的占据概率)不变。当p = 1 / 2 p = 1/2 p = 1/2 时,x x x 和y y y 分量消失,态变为经典的概率混合ρ = 1 + z 2 ∣ 0 ⟩ ⟨ 0 ∣ + 1 − z 2 ∣ 1 ⟩ ⟨ 1 ∣ \rho = \frac{1+z}{2}\lvert0\rangle\langle0\rvert + \frac{1-z}{2}\lvert1\rangle\langle1\rvert ρ = 2 1 + z ∣ 0 ⟩ ⟨ 0 ∣ + 2 1 − z ∣ 1 ⟩ ⟨ 1 ∣ ——量子相干性完全丢失,只剩下经典概率信息。
退相位信道的重要性在于:它是大多数物理系统中主导的噪声机制。由于能量守恒的约束,系统与环境交换能量的过程(导致z z z 变化)通常比纯相位信息丢失(x x x 、y y y 衰减)慢得多。因此,T 2 T_2 T 2 (相位相干时间)通常比T 1 T_1 T 1 (能量弛豫时间)短——这是实验量子计算中最常见的限制因素。
幅值阻尼信道(Amplitude Damping)
**幅值阻尼信道(Amplitude Damping Channel)**描述能量从量子系统耗散到环境中的过程,例如激发态自发辐射衰变到基态:
E ( ρ ) = E 0 ρ E 0 † + E 1 ρ E 1 † \mathcal{E}(\rho) = E_0 \rho E_0^\dagger + E_1 \rho E_1^\dagger E ( ρ ) = E 0 ρ E 0 † + E 1 ρ E 1 †
其中:
E 0 = ( 1 0 0 1 − γ ) , E 1 = ( 0 γ 0 0 ) E_0 = \begin{pmatrix}1&0\\0&\sqrt{1-\gamma}\end{pmatrix}, \quad E_1 = \begin{pmatrix}0&\sqrt{\gamma}\\0&0\end{pmatrix} E 0 = ( 1 0 0 1 − γ ) , E 1 = ( 0 0 γ 0 )
参数γ ∈ [ 0 , 1 ] \gamma \in [0, 1] γ ∈ [ 0 , 1 ] 是能量耗散的概率。E 1 E_1 E 1 将∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ (激发态)变为∣ 0 ⟩ \lvert0\rangle ∣ 0 ⟩ (基态),对应能量ℏ ω \hbar\omega ℏ ω 释放到环境中。E 0 E_0 E 0 缩减∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 的振幅,保持∣ 0 ⟩ \lvert0\rangle ∣ 0 ⟩ 不变。
验证完备性:
E 0 † E 0 + E 1 † E 1 = ( 1 0 0 1 − γ ) + ( 0 0 0 γ ) = I E_0^\dagger E_0 + E_1^\dagger E_1 = \begin{pmatrix}1&0\\0&1-\gamma\end{pmatrix} + \begin{pmatrix}0&0\\0&\gamma\end{pmatrix} = I E 0 † E 0 + E 1 † E 1 = ( 1 0 0 1 − γ ) + ( 0 0 0 γ ) = I
在布洛赫球上,幅值阻尼将态向北极(∣ 0 ⟩ \lvert0\rangle ∣ 0 ⟩ ,基态)吸引:
ρ = 1 2 ( 1 + z x − i y x + i y 1 − z ) → 1 2 ( 1 + z + γ ( 1 − z ) 1 − γ ( x − i y ) 1 − γ ( x + i y ) ( 1 − γ ) ( 1 − z ) ) \rho = \frac{1}{2}\begin{pmatrix}1+z&x-iy\\x+iy&1-z\end{pmatrix} \to \frac{1}{2}\begin{pmatrix}1+z+\gamma(1-z)&\sqrt{1-\gamma}(x-iy)\\\sqrt{1-\gamma}(x+iy)&(1-\gamma)(1-z)\end{pmatrix} ρ = 2 1 ( 1 + z x + i y x − i y 1 − z ) → 2 1 ( 1 + z + γ ( 1 − z ) 1 − γ ( x + i y ) 1 − γ ( x − i y ) ( 1 − γ ) ( 1 − z ) )
坐标变换为:
x → 1 − γ x , y → 1 − γ y , z → z + γ ( 1 − z ) = 1 − ( 1 − γ ) ( 1 − z ) x \to \sqrt{1-\gamma}\, x, \quad y \to \sqrt{1-\gamma}\, y, \quad z \to z + \gamma(1-z) = 1 - (1-\gamma)(1-z) x → 1 − γ x , y → 1 − γ y , z → z + γ ( 1 − z ) = 1 − ( 1 − γ ) ( 1 − z )
当γ → 1 \gamma \to 1 γ → 1 时,任意态都趋近于∣ 0 ⟩ \lvert0\rangle ∣ 0 ⟩ 。当γ ≪ 1 \gamma \ll 1 γ ≪ 1 时,系统经历指数衰减e − t / T 1 e^{-t/T_1} e − t / T 1 ,其中T 1 T_1 T 1 是能量弛豫时间(Energy Relaxation Time) 。
5.3.4 量子误差缓解 (Quantum Error Mitigation)
量子纠错(4.4节)通过冗余编码主动纠正错误,但需要大量物理量子比特和远低于阈值的物理错误率。在NISQ时代(含噪中等规模量子),硬件尚未达到纠错阈值,于是出现了另一条技术路线——量子误差缓解 (Quantum Error Mitigation, QEM) 。与QEC不同,QEM不纠正错误,而是在经典后处理中移除噪声的影响 ,以无偏方式估计无噪声的期望值。QEM的核心观察是:我们虽然无法在量子硬件上消除噪声,但可以通过巧妙地改变噪声并测量其影响,在经典计算机上”减去”噪声贡献。
零噪声外推 (Zero-Noise Extrapolation, ZNE) :
核心思想:在不同噪声水平下测量同一算符的期望值,然后外推到零噪声极限
如何控制噪声水平:通过脉冲拉伸(pulse stretching,在超导平台上延长门操作时间)或门折叠(gate folding,插入恒等门的分解来增加电路深度)来系统性地放大噪声
拟合模型:⟨ O ⟩ ( λ ) = ⟨ O ⟩ 0 + a 1 λ + a 2 λ 2 + ⋯ \langle O \rangle(\lambda) = \langle O \rangle_0 + a_1\lambda + a_2\lambda^2 + \cdots ⟨ O ⟩ ( λ ) = ⟨ O ⟩ 0 + a 1 λ + a 2 λ 2 + ⋯ ,其中 λ \lambda λ 是噪声放大因子
Richardson外推或指数拟合
实验验证:ZNE技术在VQE中可将能量估计误差降低5-10倍(IBM、Rigetti 2020-2022)
概率误差消除 (Probabilistic Error Cancellation, PEC) :
核心思想:将噪声量子门表示为理想门与噪声通道的组合,通过蒙特卡洛采样反转噪声
实现方式:将每个噪声门分解为理想门的线性组合,以”准概率”方式采样,乘以符号因子 γ \gamma γ 来修正期望值
代价:采样方差随 γ 2 \gamma^2 γ 2 增长,γ \gamma γ 随电路深度指数级增长——因此PEC仅适用于浅层电路
适用范围:与ZNE相比,PEC在低深度下提供更精确的修正但成本更高
虚拟态蒸馏 (Virtual Distillation) :
较新的方法(2021-2022),通过制备 M M M 份副本并测量交换算符的期望值来”蒸馏”无噪声态
不需要额外的辅助比特,但需要 SWAP \text{SWAP} SWAP 门网络
适用于中等深度电路,是一种介于QEC和QEM之间的方法
测量误差修正 :
最简单的QEM形式:通过制备已知基态(如 ∣ 0 ⟩ ⊗ n \lvert0\rangle^{\otimes n} ∣ 0 ⟩ ⊗ n 和 ∣ 1 ⟩ ⊗ n \lvert1\rangle^{\otimes n} ∣ 1 ⟩ ⊗ n )并测量,构建测量误差响应矩阵 A A A ,然后通过 P corrected = A − 1 P raw P_{\text{corrected}} = A^{-1} P_{\text{raw}} P corrected = A − 1 P raw 修正所有后续测量
复杂度:O ( 2 n ) O(2^n) O ( 2 n ) 的完整矩阵修正,或使用张量积分解近似
QEC vs QEM 对比 :
维度 量子纠错 (QEC) 量子误差缓解 (QEM) 目标 主动纠正错误 后处理移除噪声偏差 量子开销 大量辅助比特(d 2 : 1 d^2:1 d 2 : 1 ) 额外电路执行(2-10x深度) 经典开销 实时解码器 蒙特卡洛/外推拟合 误差缩放 指数级(低于阈值时) 多项式级(外推次数) 适用期 容错时代(2030+) NISQ时代(当前) 已展示 低于阈值(Willow 10 − 5 10^{-5} 1 0 − 5 ) 2-10x 精度提升(IBM/Google)
T 1 T_1 T 1 和 T 2 T_2 T 2 时间
实验量子计算中,噪声用两个特征时间刻画:
T 1 T_1 T 1 (能量弛豫时间,Longitudinal Relaxation Time) :描述能量从激发态泄漏到基态的速率。如果t = 0 t = 0 t = 0 时系统处于∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ ,则z z z 坐标的演化满足:
z ( t ) = 2 e − t / T 1 − 1 z(t) = 2e^{-t/T_1} - 1 z ( t ) = 2 e − t / T 1 − 1
即激发态占据概率按e − t / T 1 e^{-t/T_1} e − t / T 1 衰减。T 1 T_1 T 1 越大,量子比特保持能量的能力越强。
T 2 T_2 T 2 (退相干时间,Transverse Relaxation Time) :描述量子叠加态(x x x -y y y 平面上的态)失去相干性的速率。x x x 和y y y 坐标的衰减满足:
x ( t ) = x ( 0 ) e − t / T 2 , y ( t ) = y ( 0 ) e − t / T 2 x(t) = x(0)\, e^{-t/T_2}, \quad y(t) = y(0)\, e^{-t/T_2} x ( t ) = x ( 0 ) e − t / T 2 , y ( t ) = y ( 0 ) e − t / T 2
T 2 T_2 T 2 与T 1 T_1 T 1 的关系为:
1 T 2 = 1 2 T 1 + 1 T ϕ \frac{1}{T_2} = \frac{1}{2T_1} + \frac{1}{T_\phi} T 2 1 = 2 T 1 1 + T ϕ 1
其中T ϕ T_\phi T ϕ 是纯退相位时间 ,描述纯相位噪声(能量守恒的相位随机化)的速率。通常T ϕ ≪ T 1 T_\phi \ll T_1 T ϕ ≪ T 1 ,因此T 2 ≪ T 1 T_2 \ll T_1 T 2 ≪ T 1 ——相位相干比能量弛豫快得多地丢失。
当前最先进的超导量子比特:T 1 ∼ 100 – 500 μ s T_1 \sim 100\text{--}500\,\mu\text{s} T 1 ∼ 100 – 500 μ s ,T 2 ∼ 50 – 200 μ s T_2 \sim 50\text{--}200\,\mu\text{s} T 2 ∼ 50 – 200 μ s 。这意味着量子计算必须在远小于∼ 100 μ s \sim 100\,\mu\text{s} ∼ 100 μ s 的时间内完成,否则噪声将淹没量子信号。由于典型单量子比特门时间约∼ 10 – 50 ns \sim 10\text{--}50\,\text{ns} ∼ 10 – 50 ns ,当前系统可以执行约10 3 – 10 4 10^3\text{--}10^4 1 0 3 – 1 0 4 个门操作——这定义了NISQ时代的计算边界。
噪声对量子纠错的启示
上述噪声模型的分析揭示了一个关键事实:单量子比特的错误可以看作是I I I 、X X X 、Y Y Y 、Z Z Z 的统计组合 。这暗示了一种对抗噪声的策略:如果我们能够检测并纠正X X X 、Y Y Y 、Z Z Z 错误,就能保护量子信息。
然而,量子纠错的挑战比经典纠错大得多,原因有三:
连续错误 :量子错误是连续的(布洛赫球上的任意旋转),而经典错误是离散的(比特翻转)。虽然Kraus表示将连续演化分解为离散操作的混合,但纠错电路本身也受噪声影响。
不可克隆定理 :我们不能复制量子信息来保护它,因此必须采用更精巧的编码策略(如将1个逻辑量子比特编码到多个物理量子比特中)。
测量破坏相干性 :为了检测错误,我们需要测量某些可观测量,但测量会导致坍缩。量子纠错码(如Steane码、Shor码、表面码)通过测量**稳定子(Stabilizer)**而不是量子比特本身来绕过这一限制——稳定子测量揭示错误信息而不破坏编码的量子态。
**表面码(Surface Code)**是目前最有前景的量子纠错方案。它使用二维晶格上的物理量子比特编码一个逻辑量子比特,通过局域的稳定子测量检测X X X 和Z Z Z 错误。表面码的阈值定理表明:如果单量子比特的错误率低于约1 % 1\% 1% ,逻辑错误率可以任意降低——这是容错量子计算的理论基础。
小结 (Summary):
开放量子系统与环境耦合导致信息丢失,用Kraus算子和表示统一描述。退极化信道以概率p p p 完全随机化量子态;比特翻转信道保留x x x 坐标但压缩y y y 、z z z ;相位翻转(退相位)信道是退相干的核心机制,衰减x x x 、y y y 但保留z z z ;幅值阻尼描述能量耗散,将态向基态吸引。T 1 T_1 T 1 和T 2 T_2 T 2 时间刻画噪声强度,当前硬件限制NISQ时代电路深度约10 3 – 10 4 10^3\text{--}10^4 1 0 3 – 1 0 4 门。量子纠错通过多比特编码和稳定子测量对抗噪声,表面码是最有前景的容错方案;在NISQ时代,量子误差缓解(ZNE、PEC、虚拟态蒸馏)通过经典后处理以无偏方式估计无噪声期望值,为当前硬件提供了另一种噪声应对策略,与面向容错时代的QEC形成互补。
与量子计算的连接 (Connection to Quantum Computing):
噪声是量子计算从理论走向实践的最大障碍。理解噪声模型不仅帮助我们评估量子算法的实际可行性,还指导量子纠错码的设计。NISQ时代的变分量子算法(5.4节 )之所以被寄予厚望,正是因为它们对噪声的鲁棒性优于需要深度电路的算法(如Shor算法)。从退相位信道到T 2 T_2 T 2 时间,从Kraus表示到表面码,噪声理论架起了抽象量子算法与真实物理硬件之间的桥梁。
5.4 变分量子算法 (Variational Quantum Algorithms)
量子-经典混合架构
我们已学习的量子算法(Shor、Grover、QPE)都假设理想的容错量子计算机——数百万量子比特、极低的错误率、足够长的相干时间。但当前和近期可预见的量子硬件远未达到这一标准。**NISQ(Noisy Intermediate-Scale Quantum)**时代的设备有∼ 50 – 1000 \sim 50\text{--}1000 ∼ 50 – 1000 个量子比特、有限相干时间和显著的门错误率。在这种限制下,需要新的算法范式。
**变分量子算法(Variational Quantum Algorithms, VQA)**应运而生。它的核心思想是:将量子计算机用作”参数化态制备器”,将困难的优化问题交给经典计算机处理。
混合架构的工作流程为:
经典优化器 选择一组参数θ ⃗ \vec{\theta} θ
量子计算机 用参数化电路U ( θ ⃗ ) U(\vec{\theta}) U ( θ ) 制备试探态∣ ψ ( θ ⃗ ) ⟩ \lvert\psi(\vec{\theta})\rangle ∣ ψ ( θ )⟩
量子计算机 测量该态的某些可观测量,得到能量(或其他代价函数)的估计值E ( θ ⃗ ) E(\vec{\theta}) E ( θ )
经典计算机 根据E ( θ ⃗ ) E(\vec{\theta}) E ( θ ) 更新参数θ ⃗ → θ ⃗ ′ \vec{\theta} \to \vec{\theta}' θ → θ ′
重复步骤2—4,直到收敛
这个循环利用了量子计算机在态制备和测量方面的优势(指数级大希尔伯特空间中的操作),同时避开了深度量子电路的噪声积累——参数化电路通常很浅(O ( 1 ) O(1) O ( 1 ) 或O ( log n ) O(\log n) O ( log n ) 深度)。经典优化器处理参数更新,利用成熟的经典优化算法(梯度下降、Adam、L-BFGS等)。
变分原理:能量上界
变分量子算法的理论基础是变分原理(Variational Principle) :对于任意量子态∣ ψ ⟩ \lvert\psi\rangle ∣ ψ ⟩ ,哈密顿量H H H 的期望值满足:
⟨ ψ ∣ H ∣ ψ ⟩ ≥ E 0 \langle\psi|H|\psi\rangle \geq E_0 ⟨ ψ ∣ H ∣ ψ ⟩ ≥ E 0
其中E 0 E_0 E 0 是H H H 的基态能量(最低本征值)。等号当且仅当∣ ψ ⟩ \lvert\psi\rangle ∣ ψ ⟩ 是基态时成立。
这意味着:如果我们能够制备一个接近基态的试探态∣ ψ ( θ ⃗ ) ⟩ \lvert\psi(\vec{\theta})\rangle ∣ ψ ( θ )⟩ ,其能量期望值就给出了基态能量的上界。通过最小化⟨ H ⟩ θ ⃗ \langle H \rangle_{\vec{\theta}} ⟨ H ⟩ θ ,我们同时获得了基态能量的估计和近似基态本身。
这个原理在量子化学中尤为重要:分子的电子结构由薛定谔方程H ∣ ψ ⟩ = E ∣ ψ ⟩ H\lvert\psi\rangle = E\lvert\psi\rangle H ∣ ψ ⟩ = E ∣ ψ ⟩ 描述,但精确求解对于多电子系统(超过约20个电子)在经典计算机上是不可能的。变分量子算法提供了用NISQ设备计算分子基态能量的可能路径。
VQE:变分量子本征求解器
**变分量子本征求解器(Variational Quantum Eigensolver, VQE)**是VQA家族中最著名的算法,专门用于寻找量子系统的基态能量和基态波函数。
算法流程 :
1. 参数化量子电路(Ansatz) :
选择一个参数化电路U ( θ ⃗ ) U(\vec{\theta}) U ( θ ) ,将初始态∣ 0 ⟩ ⊗ n \lvert0\rangle^{\otimes n} ∣ 0 ⟩ ⊗ n 变换为试探态:
∣ ψ ( θ ⃗ ) ⟩ = U ( θ ⃗ ) ∣ 0 ⟩ ⊗ n \lvert\psi(\vec{\theta})\rangle = U(\vec{\theta})\lvert0\rangle^{\otimes n} ∣ ψ ( θ )⟩ = U ( θ ) ∣ 0 ⟩ ⊗ n
常见的Ansatz包括:
硬件高效Ansatz(Hardware-Efficient Ansatz, HEA) :使用与目标量子硬件原生门集匹配的简单门层(如单比特旋转+纠缠门)。深度浅,但可能难以表示复杂的基态。
UCCSD(Unitary Coupled Cluster with Single and Double excitations) :基于量子化学的激发算子构建,物理动机强,但电路深度较大。
2. 能量测量 :
将哈密顿量H H H 分解为泡利算子的线性组合(通过Jordan-Wigner变换 或Bravyi-Kitaev变换 ):
H = ∑ k c k P k , P k ∈ { I , X , Y , Z } ⊗ n H = \sum_k c_k P_k, \quad P_k \in \{I, X, Y, Z\}^{\otimes n} H = ∑ k c k P k , P k ∈ { I , X , Y , Z } ⊗ n
能量的期望值为:
⟨ H ⟩ θ ⃗ = ∑ k c k ⟨ ψ ( θ ⃗ ) ∣ P k ∣ ψ ( θ ⃗ ) ⟩ \langle H \rangle_{\vec{\theta}} = \sum_k c_k \langle\psi(\vec{\theta})|P_k|\psi(\vec{\theta})\rangle ⟨ H ⟩ θ = ∑ k c k ⟨ ψ ( θ ) ∣ P k ∣ ψ ( θ )⟩
每个⟨ P k ⟩ \langle P_k \rangle ⟨ P k ⟩ 可以通过适当的基变换后在计算基下测量得到。例如,测量⟨ X ⟩ \langle X \rangle ⟨ X ⟩ 时,先对所有相关比特施加H H H 门,再测量Z Z Z 。
3. 经典优化 :
使用经典优化器最小化⟨ H ⟩ θ ⃗ \langle H \rangle_{\vec{\theta}} ⟨ H ⟩ θ 。常用的优化器包括:
梯度下降 :需要估计梯度∂ ⟨ H ⟩ / ∂ θ i \partial \langle H \rangle / \partial \theta_i ∂ ⟨ H ⟩ / ∂ θ i
SPSA(Simultaneous Perturbation Stochastic Approximation) :只用2次函数评估估计所有梯度分量,适合噪声环境
L-BFGS :拟牛顿法,收敛快但对噪声敏感
梯度估计的量子方法 :
参数偏移规则(Parameter Shift Rule)允许精确计算梯度:
∂ ⟨ H ⟩ ∂ θ i = 1 2 ( ⟨ H ⟩ θ i + π / 2 − ⟨ H ⟩ θ i − π / 2 ) \frac{\partial \langle H \rangle}{\partial \theta_i} = \frac{1}{2}\left(\langle H \rangle_{\theta_i + \pi/2} - \langle H \rangle_{\theta_i - \pi/2}\right) ∂ θ i ∂ ⟨ H ⟩ = 2 1 ( ⟨ H ⟩ θ i + π /2 − ⟨ H ⟩ θ i − π /2 )
这只需要在θ i ± π / 2 \theta_i \pm \pi/2 θ i ± π /2 处分别评估能量,无需数值微分。
应用:量子化学
VQE最重要的应用是计算分子的基态能量 。例如,计算氢分子H 2 H_2 H 2 的基态能量需要4个量子比特(4个自旋轨道),VQE可以在当前的NISQ设备上实现。对于更大的分子(如N 2 N_2 N 2 、H 2 O H_2O H 2 O ),需要更多量子比特和更深的电路,但仍是近期最有希望的量子优势应用场景之一。
QAOA:量子近似优化算法
量子近似优化算法(Quantum Approximate Optimization Algorithm, QAOA)由Farhi、Goldstone和Gutmann于2014年提出,专门用于解决 组合优化问题 。
问题设定 :
组合优化问题可以表述为:最小化一个定义在n n n 位二进制串上的代价函数C ( z ) C(z) C ( z ) ,其中z ∈ { 0 , 1 } n z \in \{0,1\}^n z ∈ { 0 , 1 } n 。例如,MaxCut问题:给定一个图G = ( V , E ) G = (V, E) G = ( V , E ) ,将顶点分成两组,使得两组之间的边数最大。
将代价函数映射为问题哈密顿量(Problem Hamiltonian) C C C :
C = ∑ z C ( z ) ∣ z ⟩ ⟨ z ∣ C = \sum_{z} C(z) \lvert z\rangle\langle z\rvert C = ∑ z C ( z ) ∣ z ⟩ ⟨ z ∣
基态∣ z opt ⟩ \lvert z_{\text{opt}}\rangle ∣ z opt ⟩ 对应最优解。但直接寻找基态是困难的(NP-hard)。
QAOA电路结构 :
QAOA使用p p p 层交替的酉演化:
∣ ψ ( γ ⃗ , β ⃗ ) ⟩ = e − i β p B e − i γ p C ⋯ e − i β 1 B e − i γ 1 C ∣ + ⟩ ⊗ n \lvert\psi(\vec{\gamma}, \vec{\beta})\rangle = e^{-i\beta_p B}e^{-i\gamma_p C} \cdots e^{-i\beta_1 B}e^{-i\gamma_1 C} \lvert+\rangle^{\otimes n} ∣ ψ ( γ , β )⟩ = e − i β p B e − i γ p C ⋯ e − i β 1 B e − i γ 1 C ∣ + ⟩ ⊗ n
其中:
混合哈密顿量(Mixer Hamiltonian) :B = ∑ j = 1 n X j B = \sum_{j=1}^{n} X_j B = ∑ j = 1 n X j ,即所有比特上的X X X 门之和。它的作用是驱动系统在解空间中进行”随机游走”。
问题哈密顿量 :C = ∑ ⟨ j , k ⟩ ∈ E 1 2 ( I − Z j Z k ) C = \sum_{\langle j,k\rangle \in E} \frac{1}{2}(I - Z_j Z_k) C = ∑ ⟨ j , k ⟩ ∈ E 2 1 ( I − Z j Z k ) (以MaxCut为例)
初始态 :∣ + ⟩ ⊗ n \lvert+\rangle^{\otimes n} ∣ + ⟩ ⊗ n ,所有比特的等幅叠加
参数γ ⃗ = ( γ 1 , … , γ p ) \vec{\gamma} = (\gamma_1, \ldots, \gamma_p) γ = ( γ 1 , … , γ p ) 和β ⃗ = ( β 1 , … , β p ) \vec{\beta} = (\beta_1, \ldots, \beta_p) β = ( β 1 , … , β p ) 通过经典优化器调整,以最小化期望值⟨ C ⟩ \langle C \rangle ⟨ C ⟩ 。
p = 1 p=1 p = 1 的QAOA电路示例(3比特MaxCut) :
|0⟩ —H—Rz(γ₁)—•——————Rx(β₁)—
| (ZZ)
|0⟩ —H—Rz(γ₁)—⊕—•—————Rx(β₁)—
| (ZZ)
|0⟩ —H—Rz(γ₁)———⊕——Rx(β₁)—
其中R z ( γ ) Rz(\gamma) R z ( γ ) 来自e − i γ C e^{-i\gamma C} e − iγ C 的对角演化,Z Z ZZ Z Z 门(受控Z Z Z 门的变形)实现e − i γ Z j Z k / 2 e^{-i\gamma Z_j Z_k/2} e − iγ Z j Z k /2 。
应用 :
QAOA已被应用于MaxCut、图着色、旅行商问题(TSP)、投资组合优化等问题。虽然对于一般问题,QAOA的近似比是否能超越经典算法仍是开放问题,但对于某些特定问题实例,QAOA已展示出优于经典贪心算法的性能。
变分算法的挑战
尽管变分量子算法为NISQ时代提供了实用路径,但它们面临几个根本性挑战:
1. 贫瘠高原(Barren Plateaus)
这是变分量子算法最严峻的理论挑战。研究表明,对于深度为O ( poly ( n ) ) O(\text{poly}(n)) O ( poly ( n )) 的随机参数化电路,代价函数的梯度∂ ⟨ H ⟩ / ∂ θ i \partial \langle H \rangle / \partial \theta_i ∂ ⟨ H ⟩ / ∂ θ i 的方差随量子比特数n n n 指数级减小:
Var ( ∂ ⟨ H ⟩ ∂ θ i ) ∼ 1 2 n \text{Var}\left(\frac{\partial \langle H \rangle}{\partial \theta_i}\right) \sim \frac{1}{2^n} Var ( ∂ θ i ∂ ⟨ H ⟩ ) ∼ 2 n 1
这意味着当电路规模增大时,梯度变得极其微小且被噪声淹没——优化器无法找到下降方向。这种现象被称为贫瘠高原(Barren Plateaus) ,因为代价函数 landscape 像贫瘠的高原一样平坦,没有明显的梯度信息。
缓解策略包括:
使用局部代价函数(而非全局代价函数)
设计问题特定的浅层Ansatz
采用分层优化策略
2. 测量采样开销
估计能量期望值⟨ H ⟩ = ∑ k c k ⟨ P k ⟩ \langle H \rangle = \sum_k c_k \langle P_k \rangle ⟨ H ⟩ = ∑ k c k ⟨ P k ⟩ 需要测量每一项⟨ P k ⟩ \langle P_k \rangle ⟨ P k ⟩ 。每个⟨ P k ⟩ \langle P_k \rangle ⟨ P k ⟩ 的估计精度为ϵ \epsilon ϵ 需要O ( 1 / ϵ 2 ) O(1/\epsilon^2) O ( 1/ ϵ 2 ) 次测量(由中心极限定理)。如果哈密顿量有M M M 项,则总采样复杂度为O ( M / ϵ 2 ) O(M/\epsilon^2) O ( M / ϵ 2 ) 。对于量子化学问题,M M M 可以非常大(O ( n 4 ) O(n^4) O ( n 4 ) ),导致巨大的测量开销。
缓解策略包括:
分组对易(Grouping Commuting Pauli Strings) :同时测量对易的泡利算子串
经典阴影(Classical Shadows) :用随机测量一次性获取多个可观测量的信息
3. 电路深度与表达能力的权衡
更深的电路可以表示更复杂的量子态(表达能力更强),但也更容易受到噪声影响(保真度更低)。Ansatz的设计需要在表达能力和噪声鲁棒性之间找到平衡。硬件高效Ansatz深度浅、噪声鲁棒,但可能无法近似目标基态;UCCSD等化学启发Ansatz表达能力强,但电路深度可能超过NISQ设备的限制。
变分算法与容错量子计算的关系
变分量子算法不是容错量子计算的替代品,而是过渡期(NISQ时代)的核心算法范式。它们的关系可以概括如下:
特性 NISQ变分算法 容错量子算法 电路深度 O ( 1 ) O(1) O ( 1 ) 或O ( log n ) O(\log n) O ( log n ) O ( poly ( n ) ) O(\text{poly}(n)) O ( poly ( n )) 量子比特数 10 2 – 10 3 10^2\text{--}10^3 1 0 2 – 1 0 3 10 6 + 10^6+ 1 0 6 + 错误率容忍 10 − 2 10^{-2} 1 0 − 2 10 − 4 10^{-4} 1 0 − 4 或更低经典优化 必需 不需要 应用场景 量子化学、优化 因子分解、大分子模拟
VQE在量子化学中的应用被认为是最有希望在NISQ设备上实现量子实用优势的领域。虽然经典方法(如密度矩阵重整化群DMRG、耦合簇CCSD(T))对于小分子非常精确,但对于强关联系统(如过渡金属催化剂、高温超导体的Hubbard模型),经典方法失效,而VQE可能提供新的计算路径。
从更广阔的视角看,变分量子算法代表了量子计算的一种”实用主义”转向:与其等待完美的容错量子计算机,不如利用现有(不完美)的量子硬件,结合经典计算,解决有实际价值的科学和工程问题。这种混合范式可能是量子计算在未来十年内产生实际影响的主要途径。
小结 (Summary):
变分量子算法采用量子-经典混合架构,将参数化量子电路用于态制备,经典优化器用于参数更新。VQE利用变分原理⟨ ψ ∣ H ∣ ψ ⟩ ≥ E 0 \langle\psi|H|\psi\rangle \geq E_0 ⟨ ψ ∣ H ∣ ψ ⟩ ≥ E 0 估计基态能量,在量子化学中有重要应用。QAOA通过交替应用问题哈密顿量和混合哈密顿量解决组合优化问题。变分算法面临三大挑战:贫瘠高原(梯度指数级消失)、测量采样开销O ( 1 / ϵ 2 ) O(1/\epsilon^2) O ( 1/ ϵ 2 ) 、电路深度与表达能力的权衡。它们是NISQ时代最有希望的实用量子计算范式。
与量子计算的连接 (Connection to Quantum Computing):
变分量子算法架起了当前NISQ硬件与未来容错量子计算机之间的桥梁。它们展示了量子计算如何在噪声和规模限制下产生实际价值。从VQE的量子化学应用到QAOA的组合优化,变分算法将抽象的量子力学原理转化为解决实际问题的计算工具。理解变分算法的原理、优势和局限,是评估量子计算在近期内能否产生”量子优势”的关键。无论未来量子硬件如何发展,变分优化的思想——用量子态制备和经典优化的协同来解决复杂问题——都将继续在量子计算中扮演重要角色。
5.5 哈密顿量模拟简介 (Hamiltonian Simulation)
问题陈述 :给定一个哈密顿量 H H H (描述量子系统的总能量),计算时间演化算子 U ( t ) = e − i H t U(t) = e^{-iHt} U ( t ) = e − i H t 并模拟其作用于初始态的效果。这是量子计算最有前景的应用之一——用于量子化学(分子基态计算)、材料科学(电子结构)、高能物理(晶格规范理论)。
为什么经典模拟困难 :H H H 作用于 n n n 个量子比特的系统,其矩阵大小为 2 n × 2 n 2^n \times 2^n 2 n × 2 n ——指数级。但 H H H 通常是稀疏的 (如量子化学中的 H = ∑ t p q a p † a q + ∑ v p q r s a p † a q † a r a s H = \sum t_{pq} a_p^\dagger a_q + \sum v_{pqrs} a_p^\dagger a_q^\dagger a_r a_s H = ∑ t pq a p † a q + ∑ v pq r s a p † a q † a r a s ),只涉及少数几项。
Trotter分解 (Trotter-Suzuki分解——最基本的方法):
若 H = ∑ j = 1 m H j H = \sum_{j=1}^m H_j H = ∑ j = 1 m H j ,且每个 H j H_j H j 容易模拟(如仅作用于少数比特的Pauli串),则
e − i H t ≈ ( ∏ j = 1 m e − i H j t / N ) N e^{-iHt} \approx \left(\prod_{j=1}^m e^{-iH_j t/N}\right)^N e − i H t ≈ ( j = 1 ∏ m e − i H j t / N ) N
其中 N N N 是 Trotter 步数,误差 O ( t 2 / N ) O(t^2/N) O ( t 2 / N ) 。
物理直觉:将时间 t t t 切分为 N N N 个小段 t / N t/N t / N ,在每个小段内近似认为各 H j H_j H j 对易
复杂度:O ( m 2 t 2 / ϵ ) O(m^2 t^2/\epsilon) O ( m 2 t 2 / ϵ ) 达到精度 ϵ \epsilon ϵ
高阶 Trotter 方法 :
二阶分解:e − i ( A + B ) Δ t ≈ e − i A Δ t / 2 e − i B Δ t e − i A Δ t / 2 e^{-i(A+B)\Delta t} \approx e^{-iA\Delta t/2} e^{-iB\Delta t} e^{-iA\Delta t/2} e − i ( A + B ) Δ t ≈ e − i A Δ t /2 e − i B Δ t e − i A Δ t /2
四阶分解:通过嵌套二阶分解,误差从 O ( Δ t 2 ) O(\Delta t^2) O ( Δ t 2 ) 降至 O ( Δ t 4 ) O(\Delta t^4) O ( Δ t 4 )
后 Trotter 方法 (近年突破):
量子信号处理 (Quantum Signal Processing):通过量子奇异值变换(QSVT)实现最优的 O ( t + log ( 1 / ϵ ) ) O(t + \log(1/\epsilon)) O ( t + log ( 1/ ϵ )) 复杂度
泰勒级数法:将 e − i H t e^{-iHt} e − i H t 展开为泰勒级数,通过线性组合酉算子(LCU)实现
量子行走法:将哈密顿量模拟转化为量子行走问题
应用 :
量子化学:模拟分子 H 2 , L i H , F e 2 S 2 H_2, LiH, Fe_2S_2 H 2 , L i H , F e 2 S 2 的电子结构(已经在小规模上实验验证)
凝聚态物理:Hubbard模型、t-J模型的基态和动力学
高能物理:Schwinger模型、晶格QED的模拟
当前局限 :
实用有用的量子化学模拟需要 10 6 - 10 8 10^6\text{-}10^8 1 0 6 - 1 0 8 个量子门,远超当前硬件能力
纠错后的资源开销仍然巨大(可能需要数千逻辑量子比特运行数千小时)
Trotter误差与门保真度的耦合尚需深入研究
小结 (Summary):
哈密顿量模拟旨在计算时间演化算子 e − i H t e^{-iHt} e − i H t ,是量子计算在量子化学、材料科学和高能物理中最有前景的应用。经典模拟因指数级矩阵规模而困难,但哈密顿量通常是稀疏的。Trotter分解将总哈密顿量拆分为易模拟项的乘积,是最基本的方法;高阶Trotter方法通过对称化分解降低误差。近年突破包括量子信号处理(QSVT)、泰勒级数法和量子行走法,实现了更优的复杂度。当前局限在于实用规模的模拟需要远超现有硬件能力的门数,纠错后的资源开销仍然巨大。
与量子计算的连接 (Connection to Quantum Computing):
哈密顿量模拟是量子计算”杀手级应用”的最有力候选之一。它直接利用量子系统的自然演化来模拟其他量子系统,避免了经典计算机指数级存储和计算的瓶颈。从Trotter分解到量子信号处理,哈密顿量模拟的发展展示了量子算法如何从基本物理直觉出发,通过数学深化实现复杂度突破。它与变分量子算法(如VQE)紧密相连:VQE用于寻找基态能量,而哈密顿量模拟用于研究系统动力学。理解哈密顿量模拟的原理和局限,是评估量子计算能否在量子化学和材料科学中产生实际优势的关键。
第五章总结
本章从四个关键维度补全了量子计算进阶专题的知识拼图:
5.3.4 量子误差缓解(ZNE、PEC、虚拟态蒸馏)填补了NISQ时代”如何在纠错不可用的情况下运行算法”的核心缺口
5.1-5.2 QFT电路实现与QPE构成了Shor算法和量子模拟的算法引擎,是量子指数级加速的技术核心
5.3 噪声模型(Kraus算子、退极化/比特翻转/相位翻转/幅值阻尼信道)为理解真实量子硬件的物理限制提供了语言
5.4 变分量子算法(VQE、QAOA)展示了量子-经典混合范式在NISQ时代的实用价值
5.5 哈密顿量模拟作为量子计算的”杀手级应用”候选,连接了算法理论与实际应用场景
这五个专题的共同主题是:量子计算从理论走向实践所面临的核心挑战——噪声、退相干、纠错开销和算法设计约束。掌握这些专题,读者现在不仅能理解”量子计算如何工作”,更能评估”量子计算何时、以何种方式产生实际价值”。
附录
量子算法详解:从原理到电路实现
补充材料 — 量子计算前置教程(第三部分 3.6 节的深化与扩展)
本文档为教程第三部分 3.6 节(量子算法导引)中概述的五种核心量子算法提供完整的
数学推导、电路构造、复杂度证明和工作示例。读者应已完成教程 Part 1–3 的学习,
熟悉复数、线性代数、量子比特、量子门、量子电路以及量子傅里叶变换(QFT)的基础概念。
Part 5.1(QFT 电路实现)和 Part 5.2(量子相位估计 QPE)的内容将被 Shor 算法直接引用。
目录
Deutsch-Jozsa 算法
Bernstein-Vazirani 算法 (附加)
Simon 算法 (附加)
Grover 搜索算法
Shor 因子分解算法
算法复杂度对比总表
参考文献与延伸阅读
1. Deutsch-Jozsa 算法
1.1 问题定义与经典复杂度
问题 :给定一个布尔函数 f : { 0 , 1 } n → { 0 , 1 } f: \{0,1\}^n \to \{0,1\} f : { 0 , 1 } n → { 0 , 1 } ,承诺 f f f 要么是常数函数 (对所有 x ∈ { 0 , 1 } n x \in \{0,1\}^n x ∈ { 0 , 1 } n ,f ( x ) f(x) f ( x ) 取值相同),要么是平衡函数 (恰好对一半输入输出 0 0 0 ,一半输出 1 1 1 )。判定 f f f 是常数函数还是平衡函数。
经典复杂度分析 (最坏情况):
确定性算法:在最坏情况下需要 2 n − 1 + 1 2^{n-1}+1 2 n − 1 + 1 次查询。因为即使前 2 n − 1 2^{n-1} 2 n − 1 次查询都得到了相同的结果,仍然不能判定 f f f 是常数函数——可能剩下的 2 n − 1 2^{n-1} 2 n − 1 次全部是相反结果,使得 f f f 恰好平衡。只有查询到第 2 n − 1 + 1 2^{n-1}+1 2 n − 1 + 1 次并得到相同结果时,才能确定 f f f 是常数函数。因此确定性查询复杂度为 Θ ( 2 n ) \Theta(2^n) Θ ( 2 n ) 。
随机化算法:如果接受概率错误,可以更高效。但最坏情况下仍然需要指数级查询。
量子复杂度 :仅需 1 次 查询。这是量子计算最早展示指数级加速的算法(尽管针对的是一个人为构造的问题)。
1.2 Oracle(预言机)的构造
量子算法中,函数 f f f 不是作为”黑箱”被动查询的,而是通过一个量子 oracle(量子预言机) 实现的酉算子。oracle 是量子电路的基本组件:它将函数 f f f 编码为可逆的酉变换。
标准的 Deutsch-Jozsa oracle 实现采用相位 oracle(Phase Oracle) 形式:
U f : ∣ x ⟩ ∣ y ⟩ ⟼ ∣ x ⟩ ∣ y ⊕ f ( x ) ⟩ U_f: \lvert x\rangle \lvert y\rangle \;\longmapsto\; \lvert x\rangle \lvert y \oplus f(x)\rangle U f : ∣ x ⟩ ∣ y ⟩ ⟼ ∣ x ⟩ ∣ y ⊕ f ( x )⟩
其中 ∣ x ⟩ \lvert x\rangle ∣ x ⟩ 是 n n n 比特输入寄存器,∣ y ⟩ \lvert y\rangle ∣ y ⟩ 是单比特输出寄存器,⊕ \oplus ⊕ 表示模 2 加法(XOR)。
矩阵表示:U f U_f U f 在计算基 { ∣ x ⟩ ∣ y ⟩ } \{\lvert x\rangle\lvert y\rangle\} {∣ x ⟩ ∣ y ⟩} 下是一个对角矩阵加上交换操作。具体地,对每个 x x x :
若 f ( x ) = 0 f(x)=0 f ( x ) = 0 :U f ∣ x ⟩ ∣ y ⟩ = ∣ x ⟩ ∣ y ⟩ U_f\lvert x\rangle\lvert y\rangle = \lvert x\rangle\lvert y\rangle U f ∣ x ⟩ ∣ y ⟩ = ∣ x ⟩ ∣ y ⟩ (不变)
若 f ( x ) = 1 f(x)=1 f ( x ) = 1 :U f ∣ x ⟩ ∣ 0 ⟩ = ∣ x ⟩ ∣ 1 ⟩ U_f\lvert x\rangle\lvert 0\rangle = \lvert x\rangle\lvert 1\rangle U f ∣ x ⟩ ∣ 0 ⟩ = ∣ x ⟩ ∣ 1 ⟩ ,U f ∣ x ⟩ ∣ 1 ⟩ = ∣ x ⟩ ∣ 0 ⟩ U_f\lvert x\rangle\lvert 1\rangle = \lvert x\rangle\lvert 0\rangle U f ∣ x ⟩ ∣ 1 ⟩ = ∣ x ⟩ ∣ 0 ⟩ (在输出比特上施加 X X X 门)
U f U_f U f 的酉性验证:U f 2 = I U_f^2 = I U f 2 = I ,因为两次 XOR 操作恢复原态。U f U_f U f 也是一个置换矩阵(每行每列恰好一个 1),因此显然是酉矩阵。
1.3 相位反冲(Phase Kickback)机制
Phase Kickback 是 Deutsch-Jozsa 算法乃至许多量子算法的核心技巧。它的关键洞察是:将 oracle 的目标比特制备为 ∣ − ⟩ \lvert-\rangle ∣ − ⟩ 态,可以将函数值 f ( x ) f(x) f ( x ) “反冲”到输入寄存器的相位中 。
推导 :
将输出寄存器初始化为 ∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 并施加 H H H 门,得到:
∣ y ⟩ = H ∣ 1 ⟩ = 1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) = ∣ − ⟩ \lvert y\rangle = H\lvert1\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle - \lvert1\rangle) = \lvert-\rangle ∣ y ⟩ = H ∣ 1 ⟩ = 2 1 (∣ 0 ⟩ − ∣ 1 ⟩) = ∣ − ⟩
现在考察 U f U_f U f 作用在 ∣ x ⟩ ∣ − ⟩ \lvert x\rangle\lvert-\rangle ∣ x ⟩ ∣ − ⟩ 上的效果:
U f ∣ x ⟩ ∣ − ⟩ = ∣ x ⟩ ⋅ 1 2 ( ∣ 0 ⊕ f ( x ) ⟩ − ∣ 1 ⊕ f ( x ) ⟩ ) U_f\lvert x\rangle\lvert-\rangle = \lvert x\rangle \cdot \frac{1}{\sqrt{2}}\big(\lvert0 \oplus f(x)\rangle - \lvert1 \oplus f(x)\rangle\big) U f ∣ x ⟩ ∣ − ⟩ = ∣ x ⟩ ⋅ 2 1 ( ∣ 0 ⊕ f ( x )⟩ − ∣ 1 ⊕ f ( x )⟩ )
分两种情况讨论:
情况 A — f ( x ) = 0 f(x) = 0 f ( x ) = 0 :
1 2 ( ∣ 0 ⊕ 0 ⟩ − ∣ 1 ⊕ 0 ⟩ ) = 1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) = ∣ − ⟩ \frac{1}{\sqrt{2}}(\lvert0 \oplus 0\rangle - \lvert1 \oplus 0\rangle) = \frac{1}{\sqrt{2}}(\lvert0\rangle - \lvert1\rangle) = \lvert-\rangle 2 1 (∣ 0 ⊕ 0 ⟩ − ∣ 1 ⊕ 0 ⟩) = 2 1 (∣ 0 ⟩ − ∣ 1 ⟩) = ∣ − ⟩
情况 B — f ( x ) = 1 f(x) = 1 f ( x ) = 1 :
1 2 ( ∣ 0 ⊕ 1 ⟩ − ∣ 1 ⊕ 1 ⟩ ) = 1 2 ( ∣ 1 ⟩ − ∣ 0 ⟩ ) = − ∣ − ⟩ \frac{1}{\sqrt{2}}(\lvert0 \oplus 1\rangle - \lvert1 \oplus 1\rangle) = \frac{1}{\sqrt{2}}(\lvert1\rangle - \lvert0\rangle) = -\lvert-\rangle 2 1 (∣ 0 ⊕ 1 ⟩ − ∣ 1 ⊕ 1 ⟩) = 2 1 (∣ 1 ⟩ − ∣ 0 ⟩) = − ∣ − ⟩
综合两种情况:
U f ∣ x ⟩ ∣ − ⟩ = ( − 1 ) f ( x ) ∣ x ⟩ ∣ − ⟩ U_f\lvert x\rangle\lvert-\rangle = (-1)^{f(x)}\lvert x\rangle\lvert-\rangle U f ∣ x ⟩ ∣ − ⟩ = ( − 1 ) f ( x ) ∣ x ⟩ ∣ − ⟩
这就是相位反冲 :函数值 f ( x ) f(x) f ( x ) 以 ( − 1 ) f ( x ) (-1)^{f(x)} ( − 1 ) f ( x ) 的形式出现在输入寄存器 ∣ x ⟩ \lvert x\rangle ∣ x ⟩ 的全局相位上,而输出寄存器 ∣ − ⟩ \lvert-\rangle ∣ − ⟩ 完全不变(可以丢弃)。换句话说,oracle 的作用等价于:
U f phase : ∣ x ⟩ ⟼ ( − 1 ) f ( x ) ∣ x ⟩ U_f^{\text{phase}}: \lvert x\rangle \;\longmapsto\; (-1)^{f(x)}\lvert x\rangle U f phase : ∣ x ⟩ ⟼ ( − 1 ) f ( x ) ∣ x ⟩
此时 oracle 已经退化为一个对角酉矩阵 U f phase = diag ( ( − 1 ) f ( 0 ⋯ 0 ) , ( − 1 ) f ( 0 ⋯ 1 ) , … , ( − 1 ) f ( 1 ⋯ 1 ) ) U_f^{\text{phase}} = \text{diag}((-1)^{f(0\cdots0)}, (-1)^{f(0\cdots1)}, \ldots, (-1)^{f(1\cdots1)}) U f phase = diag (( − 1 ) f ( 0 ⋯ 0 ) , ( − 1 ) f ( 0 ⋯ 1 ) , … , ( − 1 ) f ( 1 ⋯ 1 ) ) 。
物理直觉 :输出寄存器 ∣ − ⟩ \lvert-\rangle ∣ − ⟩ 扮演了”相位参考”的角色。当 oracle 试图翻转 ∣ − ⟩ \lvert-\rangle ∣ − ⟩ 时(f ( x ) = 1 f(x)=1 f ( x ) = 1 的情况),由于 ∣ − ⟩ \lvert-\rangle ∣ − ⟩ 的两个分量 ∣ 0 ⟩ \lvert0\rangle ∣ 0 ⟩ 和 ∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 被反相对称地翻转,整体获得 − 1 -1 − 1 全局相位。这种相位因门的可逆性”反冲”到输入寄存器上。
1.4 Deutsch-Jozsa 算法完整描述
电路图(n 比特,标准记法)
|0⟩^⊗n —H^⊗n—•—H^⊗n—[M]
|
|1⟩ —————H—— ⊕ ——————
其中:
上层 n n n 条线是输入寄存器,初始化为 ∣ 0 ⟩ ⊗ n \lvert0\rangle^{\otimes n} ∣ 0 ⟩ ⊗ n
下层是辅助比特(输出寄存器),初始化为 ∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩
∙ \bullet ∙ 和 ⊕ \oplus ⊕ 之间的连线表示 U f U_f U f oracle(受控操作集合)
[ M ] [M] [ M ] 表示计算基测量
H ⊗ n H^{\otimes n} H ⊗ n 表示 n n n 个并行 H H H 门
逐步推导
步骤 0 — 初始化:
∣ ψ 0 ⟩ = ∣ 0 ⟩ ⊗ n ⊗ ∣ 1 ⟩ \lvert\psi_0\rangle = \lvert0\rangle^{\otimes n} \otimes \lvert1\rangle ∣ ψ 0 ⟩ = ∣ 0 ⟩ ⊗ n ⊗ ∣ 1 ⟩
步骤 1 — 对辅助比特施加 H H H 门:
∣ ψ 1 ⟩ = ∣ 0 ⟩ ⊗ n ⊗ ∣ − ⟩ \lvert\psi_1\rangle = \lvert0\rangle^{\otimes n} \otimes \lvert-\rangle ∣ ψ 1 ⟩ = ∣ 0 ⟩ ⊗ n ⊗ ∣ − ⟩
步骤 2 — 对所有 n + 1 n+1 n + 1 个量子比特施加 H ⊗ n ⊗ I H^{\otimes n} \otimes I H ⊗ n ⊗ I (即对输入寄存器做 n n n 个并行 H H H 门):
回顾 H ⊗ n ∣ 0 ⟩ ⊗ n H^{\otimes n}\lvert0\rangle^{\otimes n} H ⊗ n ∣ 0 ⟩ ⊗ n 的作用:
H ⊗ n ∣ 0 ⟩ ⊗ n = 1 2 n ∑ x = 0 2 n − 1 ∣ x ⟩ H^{\otimes n}\lvert0\rangle^{\otimes n} = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}\lvert x\rangle H ⊗ n ∣ 0 ⟩ ⊗ n = 2 n 1 ∑ x = 0 2 n − 1 ∣ x ⟩
这是因为 H ∣ 0 ⟩ = 1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) H\lvert0\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle + \lvert1\rangle) H ∣ 0 ⟩ = 2 1 (∣ 0 ⟩ + ∣ 1 ⟩) ,张量积展开后得到所有 2 n 2^n 2 n 个计算基矢的等幅叠加。因此:
∣ ψ 2 ⟩ = 1 2 n ∑ x = 0 2 n − 1 ∣ x ⟩ ⊗ ∣ − ⟩ \lvert\psi_2\rangle = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}\lvert x\rangle \otimes \lvert-\rangle ∣ ψ 2 ⟩ = 2 n 1 ∑ x = 0 2 n − 1 ∣ x ⟩ ⊗ ∣ − ⟩
步骤 3 — 施加 oracle U f U_f U f :
利用相位反冲:
∣ ψ 3 ⟩ = 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ∣ x ⟩ ⊗ ∣ − ⟩ \lvert\psi_3\rangle = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}(-1)^{f(x)}\lvert x\rangle \otimes \lvert-\rangle ∣ ψ 3 ⟩ = 2 n 1 ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ∣ x ⟩ ⊗ ∣ − ⟩
这是关键步骤:一次 oracle 调用同时标记了所有 2 n 2^n 2 n 个输入的函数值 。
步骤 4 — 对输入寄存器施加第二次 H ⊗ n H^{\otimes n} H ⊗ n :
我们需要计算 H ⊗ n ∣ x ⟩ H^{\otimes n}\lvert x\rangle H ⊗ n ∣ x ⟩ 的显式形式。回忆 H ∣ 0 ⟩ = ∣ + ⟩ H\lvert 0\rangle = \lvert+\rangle H ∣ 0 ⟩ = ∣ + ⟩ ,H ∣ 1 ⟩ = ∣ − ⟩ H\lvert 1\rangle = \lvert-\rangle H ∣ 1 ⟩ = ∣ − ⟩ 。对于 n n n 比特,对单个基矢 ∣ x ⟩ = ∣ x 1 x 2 … x n ⟩ \lvert x\rangle = \lvert x_1x_2\ldots x_n\rangle ∣ x ⟩ = ∣ x 1 x 2 … x n ⟩ :
H ⊗ n ∣ x ⟩ = 1 2 n ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ H^{\otimes n}\lvert x\rangle = \frac{1}{\sqrt{2^n}}\sum_{z=0}^{2^n-1}(-1)^{x \cdot z}\lvert z\rangle H ⊗ n ∣ x ⟩ = 2 n 1 ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩
其中 x ⋅ z = ∑ i = 1 n x i z i ( m o d 2 ) x \cdot z = \sum_{i=1}^n x_i z_i \pmod{2} x ⋅ z = ∑ i = 1 n x i z i ( mod 2 ) 是比特内积(模 2 加法)。
这个公式的证明:H ∣ x i ⟩ = 1 2 ( ∣ 0 ⟩ + ( − 1 ) x i ∣ 1 ⟩ ) H\lvert x_i\rangle = \frac{1}{\sqrt{2}}(\lvert0\rangle + (-1)^{x_i}\lvert1\rangle) H ∣ x i ⟩ = 2 1 (∣ 0 ⟩ + ( − 1 ) x i ∣ 1 ⟩) ,因此:
H ⊗ n ∣ x 1 … x n ⟩ = ⨂ i = 1 n 1 2 ( ∣ 0 ⟩ + ( − 1 ) x i ∣ 1 ⟩ ) = 1 2 n ∑ z 1 , … , z n ∈ { 0 , 1 } ( − 1 ) ∑ i x i z i ∣ z 1 … z n ⟩ = 1 2 n ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ H^{\otimes n}\lvert x_1\ldots x_n\rangle = \bigotimes_{i=1}^n\frac{1}{\sqrt{2}}(\lvert0\rangle + (-1)^{x_i}\lvert1\rangle) = \frac{1}{\sqrt{2^n}}\sum_{z_1,\ldots,z_n\in\{0,1\}}(-1)^{\sum_i x_i z_i}\lvert z_1\ldots z_n\rangle = \frac{1}{\sqrt{2^n}}\sum_{z=0}^{2^n-1}(-1)^{x \cdot z}\lvert z\rangle H ⊗ n ∣ x 1 … x n ⟩ = ⨂ i = 1 n 2 1 (∣ 0 ⟩ + ( − 1 ) x i ∣ 1 ⟩) = 2 n 1 ∑ z 1 , … , z n ∈ { 0 , 1 } ( − 1 ) ∑ i x i z i ∣ z 1 … z n ⟩ = 2 n 1 ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩
现在将第二次 H ⊗ n H^{\otimes n} H ⊗ n 作用在 ∣ ψ 3 ⟩ \lvert\psi_3\rangle ∣ ψ 3 ⟩ 的输入寄存器上:
∣ ψ 4 ⟩ = 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ( H ⊗ n ∣ x ⟩ ) ⊗ ∣ − ⟩ \lvert\psi_4\rangle = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}(-1)^{f(x)}\left(H^{\otimes n}\lvert x\rangle\right) \otimes \lvert-\rangle ∣ ψ 4 ⟩ = 2 n 1 ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ( H ⊗ n ∣ x ⟩ ) ⊗ ∣ − ⟩
= 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ ⊗ ∣ − ⟩ = \frac{1}{2^n}\sum_{x=0}^{2^n-1}(-1)^{f(x)}\sum_{z=0}^{2^n-1}(-1)^{x\cdot z}\lvert z\rangle \otimes \lvert-\rangle = 2 n 1 ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ ⊗ ∣ − ⟩
= ∑ z = 0 2 n − 1 ( 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) + x ⋅ z ) ⏟ 振幅 α z ∣ z ⟩ ⊗ ∣ − ⟩ = \sum_{z=0}^{2^n-1}\underbrace{\left(\frac{1}{2^n}\sum_{x=0}^{2^n-1}(-1)^{f(x)+x\cdot z}\right)}_{\text{振幅 } \alpha_z}\lvert z\rangle \otimes \lvert-\rangle = ∑ z = 0 2 n − 1 振幅 α z ( 2 n 1 x = 0 ∑ 2 n − 1 ( − 1 ) f ( x ) + x ⋅ z ) ∣ z ⟩ ⊗ ∣ − ⟩
步骤 5 — 测量输入寄存器:
测量 ∣ z ⟩ \lvert z\rangle ∣ z ⟩ 得到结果 z ∈ { 0 , 1 } n z \in \{0,1\}^n z ∈ { 0 , 1 } n 。关键问题:我们能否从测量结果判断 f f f 是常数还是平衡?
1.5 正确性证明
定理 :在上述算法中,如果 f f f 是常数函数,则以概率 1 1 1 测得 z = 00 … 0 z = 00\ldots 0 z = 00 … 0 ;如果 f f f 是平衡函数,则测得 z = 00 … 0 z = 00\ldots 0 z = 00 … 0 的概率为 0 0 0 。
证明 :
考虑 ∣ 00 … 0 ⟩ \lvert 00\ldots 0\rangle ∣ 00 … 0 ⟩ 的振幅 α 0 \alpha_0 α 0 (对应 z = 0 z = 0 z = 0 ):
α 0 = 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ( − 1 ) x ⋅ 0 = 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) \alpha_0 = \frac{1}{2^n}\sum_{x=0}^{2^n-1}(-1)^{f(x)}(-1)^{x\cdot 0} = \frac{1}{2^n}\sum_{x=0}^{2^n-1}(-1)^{f(x)} α 0 = 2 n 1 ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ( − 1 ) x ⋅ 0 = 2 n 1 ∑ x = 0 2 n − 1 ( − 1 ) f ( x )
因为 x ⋅ 0 = 0 x \cdot 0 = 0 x ⋅ 0 = 0 对所有 x x x 成立。
情况 1 — f f f 是常数函数:
若对所有 x x x ,f ( x ) = 0 f(x) = 0 f ( x ) = 0 ,则 ( − 1 ) f ( x ) = 1 (-1)^{f(x)} = 1 ( − 1 ) f ( x ) = 1 ,α 0 = 1 2 n ⋅ 2 n = 1 \alpha_0 = \frac{1}{2^n} \cdot 2^n = 1 α 0 = 2 n 1 ⋅ 2 n = 1
若对所有 x x x ,f ( x ) = 1 f(x) = 1 f ( x ) = 1 ,则 ( − 1 ) f ( x ) = − 1 (-1)^{f(x)} = -1 ( − 1 ) f ( x ) = − 1 ,α 0 = 1 2 n ⋅ ( − 2 n ) = − 1 \alpha_0 = \frac{1}{2^n} \cdot (-2^n) = -1 α 0 = 2 n 1 ⋅ ( − 2 n ) = − 1
两种情况下 ∣ α 0 ∣ 2 = 1 |\alpha_0|^2 = 1 ∣ α 0 ∣ 2 = 1 ,因此测量以概率 1 得到 00 … 0 00\ldots 0 00 … 0 。
情况 2 — f f f 是平衡函数:
恰好一半输入的 f ( x ) = 0 f(x)=0 f ( x ) = 0 ,一半输入的 f ( x ) = 1 f(x)=1 f ( x ) = 1 。因此:
∑ x = 0 2 n − 1 ( − 1 ) f ( x ) = 2 n 2 ⋅ ( + 1 ) + 2 n 2 ⋅ ( − 1 ) = 0 \sum_{x=0}^{2^n-1}(-1)^{f(x)} = \frac{2^n}{2} \cdot (+1) + \frac{2^n}{2} \cdot (-1) = 0 ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) = 2 2 n ⋅ ( + 1 ) + 2 2 n ⋅ ( − 1 ) = 0
所以 α 0 = 0 \alpha_0 = 0 α 0 = 0 ,测量得到 00 … 0 00\ldots 0 00 … 0 的概率为零。
推论:若测得 z ≠ 0 z \neq 0 z = 0 ,则 f f f 必为平衡函数;若测得 z = 0 z = 0 z = 0 ,则 f f f 必为常数函数。单次查询、确定性的判定!■ \blacksquare ■
1.6 工作示例:n = 2 n=2 n = 2 (Deutsch 算法)
n = 2 n=2 n = 2 时,输入为 ∣ x 1 x 2 ⟩ \lvert x_1x_2\rangle ∣ x 1 x 2 ⟩ ,x ∈ { 0 , 1 , 2 , 3 } x \in \{0,1,2,3\} x ∈ { 0 , 1 , 2 , 3 } 。
示例 A:常数函数 f ( x ) = 0 f(x) = 0 f ( x ) = 0
x x x f ( x ) f(x) f ( x ) ( − 1 ) f ( x ) (-1)^{f(x)} ( − 1 ) f ( x ) 00 0 +1 01 0 +1 10 0 +1 11 0 +1
步骤 3 后的态:
∣ ψ 3 ⟩ = 1 2 ( + ∣ 00 ⟩ + ∣ 01 ⟩ + ∣ 10 ⟩ + ∣ 11 ⟩ ) ∣ − ⟩ \lvert\psi_3\rangle = \frac{1}{2}\big(+\lvert00\rangle + \lvert01\rangle + \lvert10\rangle + \lvert11\rangle\big)\lvert-\rangle ∣ ψ 3 ⟩ = 2 1 ( + ∣ 00 ⟩ + ∣ 01 ⟩ + ∣ 10 ⟩ + ∣ 11 ⟩ ) ∣ − ⟩
步骤 4(第二次 H ⊗ 2 H^{\otimes 2} H ⊗ 2 ):
H ⊗ 2 ∣ 00 ⟩ = 1 2 ( ∣ 00 ⟩ + ∣ 01 ⟩ + ∣ 10 ⟩ + ∣ 11 ⟩ ) H^{\otimes 2}\lvert00\rangle = \frac{1}{2}(\lvert00\rangle + \lvert01\rangle + \lvert10\rangle + \lvert11\rangle) H ⊗ 2 ∣ 00 ⟩ = 2 1 (∣ 00 ⟩ + ∣ 01 ⟩ + ∣ 10 ⟩ + ∣ 11 ⟩)
H ⊗ 2 ∣ 01 ⟩ = 1 2 ( ∣ 00 ⟩ − ∣ 01 ⟩ + ∣ 10 ⟩ − ∣ 11 ⟩ ) H^{\otimes 2}\lvert01\rangle = \frac{1}{2}(\lvert00\rangle - \lvert01\rangle + \lvert10\rangle - \lvert11\rangle) H ⊗ 2 ∣ 01 ⟩ = 2 1 (∣ 00 ⟩ − ∣ 01 ⟩ + ∣ 10 ⟩ − ∣ 11 ⟩)
H ⊗ 2 ∣ 10 ⟩ = 1 2 ( ∣ 00 ⟩ + ∣ 01 ⟩ − ∣ 10 ⟩ − ∣ 11 ⟩ ) H^{\otimes 2}\lvert10\rangle = \frac{1}{2}(\lvert00\rangle + \lvert01\rangle - \lvert10\rangle - \lvert11\rangle) H ⊗ 2 ∣ 10 ⟩ = 2 1 (∣ 00 ⟩ + ∣ 01 ⟩ − ∣ 10 ⟩ − ∣ 11 ⟩)
H ⊗ 2 ∣ 11 ⟩ = 1 2 ( ∣ 00 ⟩ − ∣ 01 ⟩ − ∣ 10 ⟩ + ∣ 11 ⟩ ) H^{\otimes 2}\lvert11\rangle = \frac{1}{2}(\lvert00\rangle - \lvert01\rangle - \lvert10\rangle + \lvert11\rangle) H ⊗ 2 ∣ 11 ⟩ = 2 1 (∣ 00 ⟩ − ∣ 01 ⟩ − ∣ 10 ⟩ + ∣ 11 ⟩)
∣ ψ 4 ⟩ = 1 2 ( H ⊗ 2 ∣ 00 ⟩ + H ⊗ 2 ∣ 01 ⟩ + H ⊗ 2 ∣ 10 ⟩ + H ⊗ 2 ∣ 11 ⟩ ) ∣ − ⟩ \lvert\psi_4\rangle = \frac{1}{2}\big(H^{\otimes 2}\lvert00\rangle + H^{\otimes 2}\lvert01\rangle + H^{\otimes 2}\lvert10\rangle + H^{\otimes 2}\lvert11\rangle\big)\lvert-\rangle ∣ ψ 4 ⟩ = 2 1 ( H ⊗ 2 ∣ 00 ⟩ + H ⊗ 2 ∣ 01 ⟩ + H ⊗ 2 ∣ 10 ⟩ + H ⊗ 2 ∣ 11 ⟩ ) ∣ − ⟩
合并同类项,∣ 00 ⟩ \lvert00\rangle ∣ 00 ⟩ 的系数为:
1 2 ( 1 2 + 1 2 + 1 2 + 1 2 ) = 1 \frac{1}{2}\left(\frac{1}{2}+\frac{1}{2}+\frac{1}{2}+\frac{1}{2}\right) = 1 2 1 ( 2 1 + 2 1 + 2 1 + 2 1 ) = 1
其他 ∣ z ≠ 0 ⟩ \lvert z \neq 0\rangle ∣ z = 0 ⟩ 的系数为 0。因此 ∣ ψ 4 ⟩ = ∣ 00 ⟩ ∣ − ⟩ \lvert\psi_4\rangle = \lvert00\rangle\lvert-\rangle ∣ ψ 4 ⟩ = ∣ 00 ⟩ ∣ − ⟩ ,测量必然得到 00 00 00 。
示例 B:平衡函数 f ( x ) = x 1 f(x) = x_1 f ( x ) = x 1 (第一个比特的值)
x x x f ( x ) f(x) f ( x ) ( − 1 ) f ( x ) (-1)^{f(x)} ( − 1 ) f ( x ) 00 0 +1 01 0 +1 10 1 -1 11 1 -1
步骤 3 后的态:
∣ ψ 3 ⟩ = 1 2 ( + ∣ 00 ⟩ + ∣ 01 ⟩ − ∣ 10 ⟩ − ∣ 11 ⟩ ) ∣ − ⟩ \lvert\psi_3\rangle = \frac{1}{2}\big(+\lvert00\rangle + \lvert01\rangle - \lvert10\rangle - \lvert11\rangle\big)\lvert-\rangle ∣ ψ 3 ⟩ = 2 1 ( + ∣ 00 ⟩ + ∣ 01 ⟩ − ∣ 10 ⟩ − ∣ 11 ⟩ ) ∣ − ⟩
步骤 4:
∣ ψ 4 ⟩ = 1 2 ( H ⊗ 2 ∣ 00 ⟩ + H ⊗ 2 ∣ 01 ⟩ − H ⊗ 2 ∣ 10 ⟩ − H ⊗ 2 ∣ 11 ⟩ ) ∣ − ⟩ \lvert\psi_4\rangle = \frac{1}{2}\big(H^{\otimes 2}\lvert00\rangle + H^{\otimes 2}\lvert01\rangle - H^{\otimes 2}\lvert10\rangle - H^{\otimes 2}\lvert11\rangle\big)\lvert-\rangle ∣ ψ 4 ⟩ = 2 1 ( H ⊗ 2 ∣ 00 ⟩ + H ⊗ 2 ∣ 01 ⟩ − H ⊗ 2 ∣ 10 ⟩ − H ⊗ 2 ∣ 11 ⟩ ) ∣ − ⟩
∣ 00 ⟩ \lvert00\rangle ∣ 00 ⟩ 的系数:
1 2 ( 1 2 + 1 2 − 1 2 − 1 2 ) = 0 \frac{1}{2}\left(\frac{1}{2}+\frac{1}{2}-\frac{1}{2}-\frac{1}{2}\right) = 0 2 1 ( 2 1 + 2 1 − 2 1 − 2 1 ) = 0
∣ 10 ⟩ \lvert10\rangle ∣ 10 ⟩ 的系数:
1 2 ( 1 2 + 1 2 + 1 2 + 1 2 ) = 1 \frac{1}{2}\left(\frac{1}{2}+\frac{1}{2}+\frac{1}{2}+\frac{1}{2}\right) = 1 2 1 ( 2 1 + 2 1 + 2 1 + 2 1 ) = 1
因此 ∣ ψ 4 ⟩ = ∣ 10 ⟩ ∣ − ⟩ \lvert\psi_4\rangle = \lvert10\rangle\lvert-\rangle ∣ ψ 4 ⟩ = ∣ 10 ⟩ ∣ − ⟩ ,测量得到 10 10 10 (非零),判定 f f f 为平衡函数。正确!
示例 C:平衡函数 f ( x ) = x 1 ⊕ x 2 f(x) = x_1 \oplus x_2 f ( x ) = x 1 ⊕ x 2 (XOR)
x x x f ( x ) f(x) f ( x ) ( − 1 ) f ( x ) (-1)^{f(x)} ( − 1 ) f ( x ) 00 0 +1 01 1 -1 10 1 -1 11 0 +1
步骤 3:
∣ ψ 3 ⟩ = 1 2 ( + ∣ 00 ⟩ − ∣ 01 ⟩ − ∣ 10 ⟩ + ∣ 11 ⟩ ) ∣ − ⟩ \lvert\psi_3\rangle = \frac{1}{2}\big(+\lvert00\rangle - \lvert01\rangle - \lvert10\rangle + \lvert11\rangle\big)\lvert-\rangle ∣ ψ 3 ⟩ = 2 1 ( + ∣ 00 ⟩ − ∣ 01 ⟩ − ∣ 10 ⟩ + ∣ 11 ⟩ ) ∣ − ⟩
步骤 4,∣ 00 ⟩ \lvert00\rangle ∣ 00 ⟩ 的系数:
1 2 ( 1 2 − 1 2 − 1 2 + 1 2 ) = 0 \frac{1}{2}\left(\frac{1}{2}-\frac{1}{2}-\frac{1}{2}+\frac{1}{2}\right) = 0 2 1 ( 2 1 − 2 1 − 2 1 + 2 1 ) = 0
测量必然得到非零结果。注意不同平衡函数会产生不同的 z z z 模式,但算法只需要检查是否全零即可。
1.7 工作示例:n = 3 n=3 n = 3 电路
|0⟩ —H—•—H—[M]—
|0⟩ —H—•—H—[M]—
|0⟩ —H—•—H—[M]—
|
|1⟩ —H—⊕——————
输入空间 { 0 , 1 } 3 \{0,1\}^3 { 0 , 1 } 3 共 8 个元素。
常数函数示例 f ( x ) = 1 f(x)=1 f ( x ) = 1 :
∣ ψ 3 ⟩ = − 1 8 ∑ x = 0 7 ∣ x ⟩ ∣ − ⟩ \lvert\psi_3\rangle = \frac{-1}{\sqrt{8}}\sum_{x=0}^{7}\lvert x\rangle\lvert-\rangle ∣ ψ 3 ⟩ = 8 − 1 ∑ x = 0 7 ∣ x ⟩ ∣ − ⟩
∣ ψ 4 ⟩ = − ∣ 000 ⟩ ∣ − ⟩ \lvert\psi_4\rangle = -\lvert000\rangle\lvert-\rangle ∣ ψ 4 ⟩ = − ∣ 000 ⟩ ∣ − ⟩
测得的概率分布:P ( 000 ) = 1 P(000) = 1 P ( 000 ) = 1 ,P ( 其他 ) = 0 P(\text{其他}) = 0 P ( 其他 ) = 0 。
平衡函数示例 f ( x ) = x 1 ∧ x 2 ∧ x 3 f(x) = x_1 \land x_2 \land x_3 f ( x ) = x 1 ∧ x 2 ∧ x 3 (三个比特的 AND,仅当 x = 111 x=111 x = 111 时 f = 1 f=1 f = 1 ,其他情况 f = 0 f=0 f = 0 ):
这个函数是平衡的 吗?不,AND 函数对 8 个输入中仅 1 个输出 1,对 7 个输出 0——它既不常数也不平衡,因此不在 Deutsch-Jozsa 问题的承诺范围内。Deutsch-Jozsa 算法只对满足”常数或平衡”承诺的函数有效。
合法的平衡函数示例:f ( x ) = x 1 f(x) = x_1 f ( x ) = x 1 (仅取决于第一个比特)。这时 8 个输入中一半(x 1 = 0 x_1=0 x 1 = 0 的 4 个)输出 0,一半(x 1 = 1 x_1=1 x 1 = 1 的 4 个)输出 1。
1.8 复杂度分析
量子复杂度 :
量子门数:O ( n ) O(n) O ( n ) 个单比特门(2 n + 1 2n+1 2 n + 1 个 H H H 门)+ 1 次 oracle 调用
电路深度:O ( n ) O(n) O ( n ) (H H H 门可以并行执行)
总复杂度:O ( n ) O(n) O ( n )
经典复杂度 (确定性):
最坏情况:2 n − 1 + 1 2^{n-1}+1 2 n − 1 + 1 次查询
指数级差距!对 n = 100 n=100 n = 100 ,经典需要 2 99 ≈ 6 × 10 29 ~2^{99} \approx 6 \times 10^{29} 2 99 ≈ 6 × 1 0 29 次查询(不可行),量子只需约 200 个门。
重要说明 :Deutsch-Jozsa 算法解决的问题具有”常数或平衡”的承诺结构,且函数是 promise problem(承诺问题)而非一般的判定问题。它不是一个”实用”的算法,但它是量子算法设计思想的完美教学案例:叠加 → 并行评估 → 干涉 → 提取全局信息。
2. Bernstein-Vazirani 算法
2.1 问题定义
问题 :给定一个函数 f s : { 0 , 1 } n → { 0 , 1 } f_s: \{0,1\}^n \to \{0,1\} f s : { 0 , 1 } n → { 0 , 1 } ,其形式为 f s ( x ) = s ⋅ x ( m o d 2 ) f_s(x) = s \cdot x \pmod{2} f s ( x ) = s ⋅ x ( mod 2 ) ,其中 s ∈ { 0 , 1 } n s \in \{0,1\}^n s ∈ { 0 , 1 } n 是隐藏的比特串,s ⋅ x = ∑ i = 1 n s i x i s \cdot x = \sum_{i=1}^n s_i x_i s ⋅ x = ∑ i = 1 n s i x i 是比特内积。求 s s s 。
经典复杂度 :逐个查询每个比特。设置 x = 100 … 0 x = 100\ldots 0 x = 100 … 0 得到 f s ( x ) = s 1 f_s(x) = s_1 f s ( x ) = s 1 ;设置 x = 010 … 0 x = 010\ldots 0 x = 010 … 0 得到 s 2 s_2 s 2 ;以此类推。总共需要 n n n 次查询。
量子复杂度 :仅需 1 次 查询。
2.2 算法电路
Bernstein-Vazirani 算法与 Deutsch-Jozsa 算法几乎完全相同,唯一区别在于测量结果的解释不同。
|0⟩^⊗n —H^⊗n—•—H^⊗n—[M] → s (直接读出!)
|
|1⟩ —————H—— ⊕ ——————
其中 oracle 实现 U f s : ∣ x ⟩ ∣ y ⟩ → ∣ x ⟩ ∣ y ⊕ ( s ⋅ x ) ⟩ U_{f_s}: \lvert x\rangle\lvert y\rangle \to \lvert x\rangle\lvert y \oplus (s \cdot x)\rangle U f s : ∣ x ⟩ ∣ y ⟩ → ∣ x ⟩ ∣ y ⊕ ( s ⋅ x )⟩ 。
2.3 完整的数学推导
步骤 0–3 与 Deutsch-Jozsa 完全相同。oracle 调用后的态为:
∣ ψ 3 ⟩ = 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) s ⋅ x ∣ x ⟩ ∣ − ⟩ \lvert\psi_3\rangle = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}(-1)^{s \cdot x}\lvert x\rangle\lvert-\rangle ∣ ψ 3 ⟩ = 2 n 1 ∑ x = 0 2 n − 1 ( − 1 ) s ⋅ x ∣ x ⟩ ∣ − ⟩
步骤 4 — 施加第二次 H ⊗ n H^{\otimes n} H ⊗ n :
回忆 H ⊗ n ∣ x ⟩ = 1 2 n ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ H^{\otimes n}\lvert x\rangle = \frac{1}{\sqrt{2^n}}\sum_{z=0}^{2^n-1}(-1)^{x \cdot z}\lvert z\rangle H ⊗ n ∣ x ⟩ = 2 n 1 ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ 。因此:
∣ ψ 4 ⟩ = 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) s ⋅ x 1 2 n ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ ∣ − ⟩ \lvert\psi_4\rangle = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}(-1)^{s\cdot x}\frac{1}{\sqrt{2^n}}\sum_{z=0}^{2^n-1}(-1)^{x \cdot z}\lvert z\rangle\lvert-\rangle ∣ ψ 4 ⟩ = 2 n 1 ∑ x = 0 2 n − 1 ( − 1 ) s ⋅ x 2 n 1 ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ ∣ − ⟩
= 1 2 n ∑ z = 0 2 n − 1 ( ∑ x = 0 2 n − 1 ( − 1 ) ( s ⊕ z ) ⋅ x ) ∣ z ⟩ ∣ − ⟩ = \frac{1}{2^n}\sum_{z=0}^{2^n-1}\left(\sum_{x=0}^{2^n-1}(-1)^{(s\oplus z)\cdot x}\right)\lvert z\rangle\lvert-\rangle = 2 n 1 ∑ z = 0 2 n − 1 ( ∑ x = 0 2 n − 1 ( − 1 ) ( s ⊕ z ) ⋅ x ) ∣ z ⟩ ∣ − ⟩
其中 s ⊕ z s \oplus z s ⊕ z 是逐比特 XOR。注意求和 ∑ x ( − 1 ) t ⋅ x \sum_{x}(-1)^{t\cdot x} ∑ x ( − 1 ) t ⋅ x 当且仅当 t = 0 t = 0 t = 0 时值为 2 n 2^n 2 n (因为 ( − 1 ) 0 + ( − 1 ) 0 + ⋯ = 2 n (-1)^0 + (-1)^0 + \cdots = 2^n ( − 1 ) 0 + ( − 1 ) 0 + ⋯ = 2 n ),否则为 0 0 0 。
因此:
∣ ψ 4 ⟩ = ∣ s ⟩ ∣ − ⟩ \lvert\psi_4\rangle = \lvert s\rangle\lvert-\rangle ∣ ψ 4 ⟩ = ∣ s ⟩ ∣ − ⟩
步骤 5 — 测量输入寄存器,直接得到 s s s 的每一位!
直观解释 :量子并行性一次评估了所有输入 x x x ,通过干涉构造了隐藏比特串 s s s 的傅里叶变换形式,第二次 H ⊗ n H^{\otimes n} H ⊗ n 执行了逆傅里叶变换,将 s s s 的信息聚焦到单一量子态上。
2.4 工作示例
设 n = 3 n=3 n = 3 ,s = 101 s = 101 s = 101 (即 f ( x ) = x 1 + x 3 ( m o d 2 ) f(x) = x_1 + x_3 \pmod{2} f ( x ) = x 1 + x 3 ( mod 2 ) )。
oracle 调用后的态:
∣ ψ 3 ⟩ = 1 8 ∑ x ∈ { 0 , 1 } 3 ( − 1 ) x 1 + x 3 ∣ x ⟩ ∣ − ⟩ \lvert\psi_3\rangle = \frac{1}{\sqrt{8}}\sum_{x\in\{0,1\}^3}(-1)^{x_1 + x_3}\lvert x\rangle\lvert-\rangle ∣ ψ 3 ⟩ = 8 1 ∑ x ∈ { 0 , 1 } 3 ( − 1 ) x 1 + x 3 ∣ x ⟩ ∣ − ⟩
具体展开(仅列出 ( − 1 ) f ( x ) = − 1 (-1)^{f(x)} = -1 ( − 1 ) f ( x ) = − 1 的项,即 x 1 + x 3 x_1+x_3 x 1 + x 3 为奇数的输入):
x x x ( − 1 ) f ( x ) (-1)^{f(x)} ( − 1 ) f ( x ) 001 -1 010 +1 011 -1 100 -1 101 +1 110 -1 111 +1
第二次 H ⊗ 3 H^{\otimes 3} H ⊗ 3 后,所有振幅除了 ∣ 101 ⟩ \lvert101\rangle ∣ 101 ⟩ 外都干涉相消,测量得到 101 101 101 。
2.5 Bernstein-Vazirani 与 Deutsch-Jozsa 的关系
BV 是 DJ 的”参数化”版本:DJ 判断 f f f 是常数还是平衡,BV 找出 f f f 的隐藏参数 s s s
BV 的 oracle 结构更具体(线性函数而不是任意常数/平衡函数)
BV 展示了量子傅里叶采样 的思想:通过傅里叶变换将隐藏结构转化为可测量的尖峰
两种算法共享同一个电路,但 BV 提供了更强的结果(找出 s s s ,而不仅仅是分类)
复杂度对比 :
算法 经典查询 量子查询 加速比 Deutsch-Jozsa 2 n − 1 + 1 2^{n-1}+1 2 n − 1 + 1 1 指数级 Bernstein-Vazirani n n n 1 n n n 倍
BV 的加速是”线性”的(n n n 倍),而不是指数的。但作为量子算法设计模板,它与 DJ 一样具有重要的教学意义。
3. Simon 算法
3.1 问题定义
问题 :给定一个函数 f : { 0 , 1 } n → { 0 , 1 } n f: \{0,1\}^n \to \{0,1\}^{n} f : { 0 , 1 } n → { 0 , 1 } n (输出也是 n n n 比特),承诺存在一个隐藏的非零 比特串 s ∈ { 0 , 1 } n s \in \{0,1\}^n s ∈ { 0 , 1 } n ,使得对于所有 x , y ∈ { 0 , 1 } n x, y \in \{0,1\}^n x , y ∈ { 0 , 1 } n :
f ( x ) = f ( y ) ⟺ y = x ⊕ s f(x) = f(y) \iff y = x \oplus s f ( x ) = f ( y ) ⟺ y = x ⊕ s
即 f f f 是二对一 的,且冲突对恰好相差 s s s 。求 s s s 。
几何理解 :输入空间 { 0 , 1 } n \{0,1\}^n { 0 , 1 } n 被划分为 2 n − 1 2^{n-1} 2 n − 1 个”配对”{ x , x ⊕ s } \{x, x\oplus s\} { x , x ⊕ s } ,每个配对的函数值相同。寻找决定这种配对结构的隐藏周期 s s s 。
经典复杂度 :最坏情况下需要 Θ ( 2 n / 2 ) \Theta(2^{n/2}) Θ ( 2 n /2 ) 次查询(由生日悖论给出)。
量子复杂度 :O ( n ) O(n) O ( n ) 次查询,指数级加速!
3.2 Simon 算法的电路
Simon 算法的核心思想与 DJ/BV 有深刻的相似性:叠加 → oracle → Hadamard → 测量。但 Simon 需要多次 运行来收集线性方程。
单次运行电路 :
|0⟩^⊗n —H^⊗n—•—H^⊗n—[M] → 随机 z
|
|0⟩^⊗n ——————⊕————— → 丢弃(测量用于验证)
其中 oracle U f : ∣ x ⟩ ∣ y ⟩ → ∣ x ⟩ ∣ y ⊕ f ( x ) ⟩ U_f: \lvert x\rangle\lvert y\rangle \to \lvert x\rangle\lvert y \oplus f(x)\rangle U f : ∣ x ⟩ ∣ y ⟩ → ∣ x ⟩ ∣ y ⊕ f ( x )⟩ 。
3.3 逐步推导
步骤 0 :
∣ ψ 0 ⟩ = ∣ 0 ⟩ ⊗ n ⊗ ∣ 0 ⟩ ⊗ n \lvert\psi_0\rangle = \lvert0\rangle^{\otimes n} \otimes \lvert0\rangle^{\otimes n} ∣ ψ 0 ⟩ = ∣ 0 ⟩ ⊗ n ⊗ ∣ 0 ⟩ ⊗ n
步骤 1 — 对第一寄存器施加 H ⊗ n H^{\otimes n} H ⊗ n :
∣ ψ 1 ⟩ = 1 2 n ∑ x = 0 2 n − 1 ∣ x ⟩ ⊗ ∣ 0 ⟩ ⊗ n \lvert\psi_1\rangle = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}\lvert x\rangle \otimes \lvert0\rangle^{\otimes n} ∣ ψ 1 ⟩ = 2 n 1 ∑ x = 0 2 n − 1 ∣ x ⟩ ⊗ ∣ 0 ⟩ ⊗ n
步骤 2 — 施加 oracle:
∣ ψ 2 ⟩ = 1 2 n ∑ x = 0 2 n − 1 ∣ x ⟩ ∣ f ( x ) ⟩ \lvert\psi_2\rangle = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}\lvert x\rangle\lvert f(x)\rangle ∣ ψ 2 ⟩ = 2 n 1 ∑ x = 0 2 n − 1 ∣ x ⟩ ∣ f ( x )⟩
步骤 3 — 对第一寄存器施加第二次 H ⊗ n H^{\otimes n} H ⊗ n :
∣ ψ 3 ⟩ = 1 2 n ∑ x = 0 2 n − 1 ( 1 2 n ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ ) ∣ f ( x ) ⟩ \lvert\psi_3\rangle = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}\left(\frac{1}{\sqrt{2^n}}\sum_{z=0}^{2^n-1}(-1)^{x\cdot z}\lvert z\rangle\right)\lvert f(x)\rangle ∣ ψ 3 ⟩ = 2 n 1 ∑ x = 0 2 n − 1 ( 2 n 1 ∑ z = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ ) ∣ f ( x )⟩
= 1 2 n ∑ z = 0 2 n − 1 ∑ x = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ ∣ f ( x ) ⟩ = \frac{1}{2^n}\sum_{z=0}^{2^n-1}\sum_{x=0}^{2^n-1}(-1)^{x\cdot z}\lvert z\rangle\lvert f(x)\rangle = 2 n 1 ∑ z = 0 2 n − 1 ∑ x = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ z ⟩ ∣ f ( x )⟩
步骤 4 — 测量第一寄存器。测得特定 z z z 的概率为:
P ( z ) = ∥ 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ f ( x ) ⟩ ∥ 2 P(z) = \left\|\frac{1}{2^n}\sum_{x=0}^{2^n-1}(-1)^{x\cdot z}\lvert f(x)\rangle\right\|^2 P ( z ) = 2 n 1 ∑ x = 0 2 n − 1 ( − 1 ) x ⋅ z ∣ f ( x )⟩ 2
由于 f f f 是二对一的,每个 f ( x ) f(x) f ( x ) 对应两个 x x x 值:x 0 x_0 x 0 和 x 0 ⊕ s x_0 \oplus s x 0 ⊕ s 。因此:
P ( z ) = ∥ 1 2 n ∑ 每对 { x , x ⊕ s } ( − 1 ) x ⋅ z ∣ f ( x ) ⟩ ∥ 2 P(z) = \left\|\frac{1}{2^n}\sum_{\text{每对}\{x,x\oplus s\}}(-1)^{x\cdot z}\lvert f(x)\rangle\right\|^2 P ( z ) = 2 n 1 ∑ 每对 { x , x ⊕ s } ( − 1 ) x ⋅ z ∣ f ( x )⟩ 2
对于任意”配对”{ x , x ⊕ s } \{x, x\oplus s\} { x , x ⊕ s } ,其贡献为:
1 2 n [ ( − 1 ) x ⋅ z + ( − 1 ) ( x ⊕ s ) ⋅ z ] ∣ f ( x ) ⟩ = 1 2 n ( − 1 ) x ⋅ z [ 1 + ( − 1 ) s ⋅ z ] ∣ f ( x ) ⟩ \frac{1}{2^n}\left[(-1)^{x\cdot z} + (-1)^{(x\oplus s)\cdot z}\right]\lvert f(x)\rangle = \frac{1}{2^n}(-1)^{x\cdot z}\left[1 + (-1)^{s\cdot z}\right]\lvert f(x)\rangle 2 n 1 [ ( − 1 ) x ⋅ z + ( − 1 ) ( x ⊕ s ) ⋅ z ] ∣ f ( x )⟩ = 2 n 1 ( − 1 ) x ⋅ z [ 1 + ( − 1 ) s ⋅ z ] ∣ f ( x )⟩
关键 :
若 s ⋅ z = 1 s\cdot z = 1 s ⋅ z = 1 ,则 1 + ( − 1 ) = 0 1 + (-1) = 0 1 + ( − 1 ) = 0 ,该配对的贡献为零
若 s ⋅ z = 0 s\cdot z = 0 s ⋅ z = 0 ,则 1 + 1 = 2 1 + 1 = 2 1 + 1 = 2 ,该配对的贡献非零
因此,只有当 s ⋅ z = 0 ( m o d 2 ) s \cdot z = 0 \pmod{2} s ⋅ z = 0 ( mod 2 ) 时,P ( z ) > 0 P(z) > 0 P ( z ) > 0 ;否则 P ( z ) = 0 P(z) = 0 P ( z ) = 0 。
结论:每次运行 Simon 算法,测得一个随机的 z z z 满足 s ⋅ z = 0 s \cdot z = 0 s ⋅ z = 0 。特别地,P ( z = 0 ) = 2 − n + 1 P(z=0) = 2^{-n+1} P ( z = 0 ) = 2 − n + 1 ,P ( z = s ) = 2 − n + 1 P(z=s) = 2^{-n+1} P ( z = s ) = 2 − n + 1 。
3.4 从测量结果恢复 s s s
单次运行给出一个 z z z 满足 s ⋅ z = 0 s \cdot z = 0 s ⋅ z = 0 。这是关于 s s s 的一个线性方程。运行 O ( n ) O(n) O ( n ) 次,收集 n − 1 n-1 n − 1 个线性独立的 z z z 值:
z 1 ⋅ s = 0 z_1 \cdot s = 0 z 1 ⋅ s = 0
z 2 ⋅ s = 0 z_2 \cdot s = 0 z 2 ⋅ s = 0
⋮ \vdots ⋮
z n − 1 ⋅ s = 0 z_{n-1} \cdot s = 0 z n − 1 ⋅ s = 0
这构成一个 G F ( 2 ) GF(2) GF ( 2 ) 上的线性方程组。解出非零解 s s s (以及平凡解 s = 0 s=0 s = 0 )。由于 s ≠ 0 s \neq 0 s = 0 是承诺条件,我们取非零解。
所需运行次数 :在 G F ( 2 ) n GF(2)^n GF ( 2 ) n 中,随机均匀选取 m m m 个 n n n 维向量,它们张成 ( n − 1 ) (n-1) ( n − 1 ) 维子空间(排除 s s s 的正交补)的概率为:
P ( 成功 ) = ∏ k = 1 n − 1 ( 1 − 2 k − 1 − m ) P(\text{成功}) = \prod_{k=1}^{n-1}(1-2^{k-1-m}) P ( 成功 ) = ∏ k = 1 n − 1 ( 1 − 2 k − 1 − m )
取 m = n + O ( 1 ) m = n + O(1) m = n + O ( 1 ) 时成功概率趋近于 1。经典后处理在 O ( n 3 ) O(n^3) O ( n 3 ) 内完成(高斯消元)。
3.5 工作示例:n = 2 n=2 n = 2 ,s = 11 s = 11 s = 11
函数定义(承诺示例):
x x x f ( x ) f(x) f ( x ) 00 01 01 10 10 10 11 01
验证:f ( 00 ) = f ( 11 ) f(00)=f(11) f ( 00 ) = f ( 11 ) ,f ( 01 ) = f ( 10 ) f(01)=f(10) f ( 01 ) = f ( 10 ) ,且 00 ⊕ 11 = 11 00\oplus 11 = 11 00 ⊕ 11 = 11 ,01 ⊕ 10 = 11 01\oplus 10 = 11 01 ⊕ 10 = 11 。所以 s = 11 s=11 s = 11 。
运行 1 :假设测得 z = 11 z = 11 z = 11 。方程:11 ⋅ s = s 1 + s 2 = 0 ( m o d 2 ) 11 \cdot s = s_1 + s_2 = 0 \pmod{2} 11 ⋅ s = s 1 + s 2 = 0 ( mod 2 ) 。
运行 2 :假设测得 z = 10 z = 10 z = 10 。方程:10 ⋅ s = s 1 = 0 ( m o d 2 ) 10 \cdot s = s_1 = 0 \pmod{2} 10 ⋅ s = s 1 = 0 ( mod 2 ) 。
由 s 1 = 0 s_1 = 0 s 1 = 0 和 s 1 + s 2 = 0 s_1 + s_2 = 0 s 1 + s 2 = 0 得 s 2 = 0 s_2 = 0 s 2 = 0 。但这给出 s = 00 s=00 s = 00 ,与承诺矛盾(s ≠ 0 s\neq 0 s = 0 )。怎么回事?我们收集的方程不独立!实际上第二个方程 s 1 = 0 s_1=0 s 1 = 0 已经推出 s 1 = 0 s_1=0 s 1 = 0 ,再由第一个方程得 s 2 = 0 s_2=0 s 2 = 0 ,但我们知道 s = 11 s=11 s = 11 。
这揭示了一个关键点:Simon 算法的测量结果 z z z 的分布是均匀的(在满足 s ⋅ z = 0 s\cdot z=0 s ⋅ z = 0 的 z z z 中)。可能恰好 z z z 都属于 { 00 , 11 } \{00, 11\} { 00 , 11 } 这个 1 维子空间——这种情况我们只能得到 s 1 + s 2 = 0 s_1 + s_2 = 0 s 1 + s 2 = 0 这一个方程,需要更多运行。
运行 3 :测得 z = 01 z = 01 z = 01 。方程:01 ⋅ s = s 2 = 0 01 \cdot s = s_2 = 0 01 ⋅ s = s 2 = 0 。
现在 s 1 = 0 , s 2 = 0 s_1=0, s_2=0 s 1 = 0 , s 2 = 0 还是 00 00 00 。仍然矛盾!这说明测量的 z z z 全部来自 s s s 的正交补空间 { 00 } \{00\} { 00 } ——如果每次测量都得到 00 00 00 (概率虽小但非零),我们需要更多运行。
实际上,我们需要至少 n − 1 = 1 n-1=1 n − 1 = 1 个独立的非零方程来约束 s s s 。s s s 的正交补空间是 n − 1 n-1 n − 1 维的,测量均匀地从中采样。找到 n − 1 n-1 n − 1 个线性独立向量的期望运行次数为 O ( n ) O(n) O ( n ) 。一旦我们找到非零 s s s ,就完成了。
3.6 复杂度分析
量子复杂度 :
每次运行:O ( n ) O(n) O ( n ) 个门 + 1 次 oracle 调用
运行次数:O ( n ) O(n) O ( n ) 次(期望)
总 oracle 调用:O ( n ) O(n) O ( n )
经典复杂度 :
确定性:Θ ( 2 n / 2 ) \Theta(2^{n/2}) Θ ( 2 n /2 ) 次函数求值(通过生日悖论找到冲突对)
随机化:同样需要 Ω ( 2 n / 2 ) \Omega(2^{n/2}) Ω ( 2 n /2 ) 次
指数加速 :
Simon 算法是第一个展示指数级 量子加速的算法(比 Deutsch-Jozsa 的”承诺指数”更令人信服,因为问题更自然)。它直接启发了 Shor 算法——Simon 的”隐藏子群”框架直接推广到有限阿贝尔群,Shor 的周期发现就是 Simon 在群 Z \mathbb{Z} Z 上的推广。
3.7 Simon 问题与隐藏子群问题
Simon 问题是隐藏子群问题 (Hidden Subgroup Problem, HSP) 在群 ( Z 2 ) n (\mathbb{Z}_2)^n ( Z 2 ) n 上的一个实例:
群 G = ( Z 2 ) n G = (\mathbb{Z}_2)^n G = ( Z 2 ) n
隐藏子群 H = { 0 , s } H = \{0, s\} H = { 0 , s } (二阶子群)
函数 f f f 在 H H H 的陪集上为常数
寻找 H H H 的生成元 s s s
Shor 因子分解算法中的周期发现问题对应 HSP 在群 Z \mathbb{Z} Z 上的实例。这一统一框架揭示了 Simon 与 Shor 之间的深刻联系。
4. Grover 搜索算法
4.1 问题定义
问题 :在 N = 2 n N = 2^n N = 2 n 个无结构数据项中,找到满足某个条件的”标记”项。假设存在唯一的标记项 x ∗ x^* x ∗ ,可以通过 oracle 查询来检验。
形式化 :存在 oracle 函数 f : { 0 , 1 } n → { 0 , 1 } f: \{0,1\}^n \to \{0,1\} f : { 0 , 1 } n → { 0 , 1 } ,其中 f ( x ) = 1 f(x) = 1 f ( x ) = 1 当且仅当 x = x ∗ x = x^* x = x ∗ (标记项),否则 f ( x ) = 0 f(x) = 0 f ( x ) = 0 。通过查询 f f f 找到 x ∗ x^* x ∗ 。
经典复杂度 :顺序搜索需要平均 N / 2 N/2 N /2 次查询,最坏 N N N 次。
量子复杂度 :O ( N ) O(\sqrt{N}) O ( N ) 次查询(约 π 4 N \frac{\pi}{4}\sqrt{N} 4 π N 次迭代),二次加速。
4.2 Oracle 构造
与 Deutsch-Jozsa 类似,Grover oracle 通过相位反冲实现:
U f ∣ x ⟩ ∣ − ⟩ = ( − 1 ) f ( x ) ∣ x ⟩ ∣ − ⟩ U_f\lvert x\rangle\lvert-\rangle = (-1)^{f(x)}\lvert x\rangle\lvert-\rangle U f ∣ x ⟩ ∣ − ⟩ = ( − 1 ) f ( x ) ∣ x ⟩ ∣ − ⟩
对于标记项 x ∗ x^* x ∗ ,f ( x ∗ ) = 1 f(x^*) = 1 f ( x ∗ ) = 1 ,因此施加 − 1 -1 − 1 相位;对其他 x x x ,相位保持不变。
在电路层面,可以将 Grover oracle 写作:
U oracle = I − 2 ∣ x ∗ ⟩ ⟨ x ∗ ∣ U_{\text{oracle}} = I - 2\lvert x^*\rangle\langle x^*\rvert U oracle = I − 2 ∣ x ∗ ⟩ ⟨ x ∗ ∣
即对标记态 ∣ x ∗ ⟩ \lvert x^*\rangle ∣ x ∗ ⟩ 施加相位翻转 ( − 1 ) (-1) ( − 1 ) ,而保持所有其他态不变。
验证:( I − 2 ∣ x ∗ ⟩ ⟨ x ∗ ∣ ) ∣ x ∗ ⟩ = ∣ x ∗ ⟩ − 2 ∣ x ∗ ⟩ = − ∣ x ∗ ⟩ (I - 2\lvert x^*\rangle\langle x^*\rvert)\lvert x^*\rangle = \lvert x^*\rangle - 2\lvert x^*\rangle = -\lvert x^*\rangle ( I − 2 ∣ x ∗ ⟩ ⟨ x ∗ ∣) ∣ x ∗ ⟩ = ∣ x ∗ ⟩ − 2 ∣ x ∗ ⟩ = − ∣ x ∗ ⟩ ;而对 ∣ x ≠ x ∗ ⟩ \lvert x \neq x^*\rangle ∣ x = x ∗ ⟩ ,( I − 2 ∣ x ∗ ⟩ ⟨ x ∗ ∣ ) ∣ x ⟩ = ∣ x ⟩ (I - 2\lvert x^*\rangle\langle x^*\rvert)\lvert x\rangle = \lvert x\rangle ( I − 2 ∣ x ∗ ⟩ ⟨ x ∗ ∣) ∣ x ⟩ = ∣ x ⟩ 。
4.3 扩散算子(Diffusion Operator)的数学推导
Grover 算法的第二个关键组件是扩散算子 (也称”反演关于均值的操作”,inversion about the mean):
U diff = 2 ∣ ψ ⟩ ⟨ ψ ∣ − I U_{\text{diff}} = 2\lvert \psi\rangle\langle\psi\rvert - I U diff = 2 ∣ ψ ⟩ ⟨ ψ ∣ − I
其中 ∣ ψ ⟩ = H ⊗ n ∣ 0 ⟩ ⊗ n = 1 N ∑ x = 0 N − 1 ∣ x ⟩ \lvert\psi\rangle = H^{\otimes n}\lvert0\rangle^{\otimes n} = \frac{1}{\sqrt{N}}\sum_{x=0}^{N-1}\lvert x\rangle ∣ ψ ⟩ = H ⊗ n ∣ 0 ⟩ ⊗ n = N 1 ∑ x = 0 N − 1 ∣ x ⟩ 是所有基矢的等幅叠加。
为什么叫”反演关于均值”?
设 a x a_x a x 是 ∣ x ⟩ \lvert x\rangle ∣ x ⟩ 的振幅,U diff U_{\text{diff}} U diff 作用于态 ∑ x a x ∣ x ⟩ \sum_x a_x\lvert x\rangle ∑ x a x ∣ x ⟩ 后:
U diff ∑ x a x ∣ x ⟩ = ( 2 ∣ ψ ⟩ ⟨ ψ ∣ − I ) ∑ x a x ∣ x ⟩ U_{\text{diff}}\sum_x a_x\lvert x\rangle = (2\lvert\psi\rangle\langle\psi\rvert - I)\sum_x a_x\lvert x\rangle U diff ∑ x a x ∣ x ⟩ = ( 2 ∣ ψ ⟩ ⟨ ψ ∣ − I ) ∑ x a x ∣ x ⟩
= 2 ∣ ψ ⟩ ∑ x a x ⟨ ψ ∣ x ⟩ − ∑ x a x ∣ x ⟩ = 2\lvert\psi\rangle\sum_x a_x\langle\psi\rvert x\rangle - \sum_x a_x\lvert x\rangle = 2 ∣ ψ ⟩ ∑ x a x ⟨ ψ ∣ x ⟩ − ∑ x a x ∣ x ⟩
其中 ⟨ ψ ∣ x ⟩ = 1 N \langle\psi\rvert x\rangle = \frac{1}{\sqrt{N}} ⟨ ψ ∣ x ⟩ = N 1 ,所以 ∑ x a x ⟨ ψ ∣ x ⟩ = 1 N ∑ x a x = N ⋅ a ˉ \sum_x a_x\langle\psi\rvert x\rangle = \frac{1}{\sqrt{N}}\sum_x a_x = \sqrt{N}\cdot\bar{a} ∑ x a x ⟨ ψ ∣ x ⟩ = N 1 ∑ x a x = N ⋅ a ˉ ,其中 a ˉ = 1 N ∑ x a x \bar{a} = \frac{1}{N}\sum_x a_x a ˉ = N 1 ∑ x a x 是平均振幅。
因此:
U diff ∑ x a x ∣ x ⟩ = 2 ∣ ψ ⟩ N a ˉ − ∑ x a x ∣ x ⟩ U_{\text{diff}}\sum_x a_x\lvert x\rangle = 2\lvert\psi\rangle\sqrt{N}\bar{a} - \sum_x a_x\lvert x\rangle U diff ∑ x a x ∣ x ⟩ = 2 ∣ ψ ⟩ N a ˉ − ∑ x a x ∣ x ⟩
= 2 ∑ x a ˉ ∣ x ⟩ − ∑ x a x ∣ x ⟩ = 2\sum_x \bar{a}\lvert x\rangle - \sum_x a_x\lvert x\rangle = 2 ∑ x a ˉ ∣ x ⟩ − ∑ x a x ∣ x ⟩
= ∑ x ( 2 a ˉ − a x ) ∣ x ⟩ = \sum_x (2\bar{a} - a_x)\lvert x\rangle = ∑ x ( 2 a ˉ − a x ) ∣ x ⟩
这正是”反演关于均值”:每个振幅 a x a_x a x 被替换为 2 a ˉ − a x 2\bar{a} - a_x 2 a ˉ − a x 。如果 a x a_x a x 低于均值,它会被”抬升”;如果 a x a_x a x 高于均值,会被”压低”。这种操作的效果是:放大高于均值的振幅,缩小低于均值的振幅 。
电路实现 :U diff = H ⊗ n ( 2 ∣ 0 ⟩ ⟨ 0 ∣ − I ) H ⊗ n U_{\text{diff}} = H^{\otimes n} (2\lvert0\rangle\langle0\rvert - I) H^{\otimes n} U diff = H ⊗ n ( 2 ∣ 0 ⟩ ⟨ 0 ∣ − I ) H ⊗ n ,其中 2 ∣ 0 ⟩ ⟨ 0 ∣ − I 2\lvert0\rangle\langle0\rvert - I 2 ∣ 0 ⟩ ⟨ 0 ∣ − I 是”零态相位翻转”:对 ∣ 0 ⟩ ⊗ n \lvert0\rangle^{\otimes n} ∣ 0 ⟩ ⊗ n 施加 − 1 -1 − 1 相位,其他不变。
完整扩散算子的电路 :
|x⟩ —H^⊗n—(·)—H^⊗n—
|
X—•—X
|
X—•—X
|
...
X—•—X (n 个 X 门对)
|
H—⊗n—H
中间的 ( 2 ∣ 0 ⟩ ⟨ 0 ∣ − I ) (2\lvert0\rangle\langle0\rvert - I) ( 2 ∣ 0 ⟩ ⟨ 0 ∣ − I ) 可以进一步分解为:将所有比特翻转(施加 X ⊗ n X^{\otimes n} X ⊗ n ),做多比特受控 Z Z Z 门(∣ 11 … 1 ⟩ \lvert11\ldots1\rangle ∣ 11 … 1 ⟩ 翻转相位),再翻转回来。
4.4 几何解释:二维旋转
Grover 算法最优雅的数学解释是将整个 2 n 2^n 2 n 维空间约化为一个二维子空间 。这是理解 Grover 算法为何如此高效的关键。
定义两个正交态:
∣ α ⟩ = 1 N − 1 ∑ x ≠ x ∗ ∣ x ⟩ (非标记项的均匀叠加) \lvert\alpha\rangle = \frac{1}{\sqrt{N-1}}\sum_{x \neq x^*}\lvert x\rangle \quad \text{(非标记项的均匀叠加)} ∣ α ⟩ = N − 1 1 ∑ x = x ∗ ∣ x ⟩ ( 非标记项的均匀叠加 )
∣ β ⟩ = ∣ x ∗ ⟩ (标记项) \lvert\beta\rangle = \lvert x^*\rangle \quad \text{(标记项)} ∣ β ⟩ = ∣ x ∗ ⟩ ( 标记项 )
注意 ⟨ α ∣ β ⟩ = 0 \langle\alpha\rvert\beta\rangle = 0 ⟨ α ∣ β ⟩ = 0 ,且初始态 ∣ ψ ⟩ = H ⊗ n ∣ 0 ⟩ \lvert\psi\rangle = H^{\otimes n}\lvert0\rangle ∣ ψ ⟩ = H ⊗ n ∣ 0 ⟩ 可以写为:
∣ ψ ⟩ = 1 N ∣ β ⟩ + N − 1 N ∣ α ⟩ = sin θ ∣ β ⟩ + cos θ ∣ α ⟩ \lvert\psi\rangle = \frac{1}{\sqrt{N}}\lvert\beta\rangle + \frac{\sqrt{N-1}}{\sqrt{N}}\lvert\alpha\rangle = \sin\theta\lvert\beta\rangle + \cos\theta\lvert\alpha\rangle ∣ ψ ⟩ = N 1 ∣ β ⟩ + N N − 1 ∣ α ⟩ = sin θ ∣ β ⟩ + cos θ ∣ α ⟩
其中 θ = arcsin ( 1 / N ) \theta = \arcsin(1/\sqrt{N}) θ = arcsin ( 1/ N ) 。对于大 N N N ,θ ≈ 1 / N \theta \approx 1/\sqrt{N} θ ≈ 1/ N 。
Grover 迭代 由两步组成:
Oracle: U oracle = I − 2 ∣ β ⟩ ⟨ β ∣ U_{\text{oracle}} = I - 2\lvert\beta\rangle\langle\beta\rvert U oracle = I − 2 ∣ β ⟩ ⟨ β ∣ — 关于 ∣ β ⟩ \lvert\beta\rangle ∣ β ⟩ 的反射
Diffusion: U diff = 2 ∣ ψ ⟩ ⟨ ψ ∣ − I U_{\text{diff}} = 2\lvert\psi\rangle\langle\psi\rvert - I U diff = 2 ∣ ψ ⟩ ⟨ ψ ∣ − I — 关于 ∣ ψ ⟩ \lvert\psi\rangle ∣ ψ ⟩ 的反射
Grover 迭代 G = U diff ⋅ U oracle G = U_{\text{diff}} \cdot U_{\text{oracle}} G = U diff ⋅ U oracle 是一个旋转 :
在 { ∣ α ⟩ , ∣ β ⟩ } \{\lvert\alpha\rangle, \lvert\beta\rangle\} {∣ α ⟩ , ∣ β ⟩} 平面中,G G G 将态旋转 2 θ 2\theta 2 θ 弧度:
G k ∣ ψ ⟩ = sin ( ( 2 k + 1 ) θ ) ∣ β ⟩ + cos ( ( 2 k + 1 ) θ ) ∣ α ⟩ G^k\lvert\psi\rangle = \sin((2k+1)\theta)\lvert\beta\rangle + \cos((2k+1)\theta)\lvert\alpha\rangle G k ∣ ψ ⟩ = sin (( 2 k + 1 ) θ ) ∣ β ⟩ + cos (( 2 k + 1 ) θ ) ∣ α ⟩
证明 (归纳法或直接几何论证):
U oracle U_{\text{oracle}} U oracle 是关于 ∣ β ⟩ \lvert\beta\rangle ∣ β ⟩ 轴的反射(保持 ∣ β ⟩ \lvert\beta\rangle ∣ β ⟩ 不变,翻转其垂直分量)。
U diff U_{\text{diff}} U diff 是关于 ∣ ψ ⟩ \lvert\psi\rangle ∣ ψ ⟩ 轴的反射。
两次反射的组合是一个旋转,旋转角为两反射轴夹角的 2 倍。
初始态 ∣ ψ ⟩ \lvert\psi\rangle ∣ ψ ⟩ 与 ∣ α ⟩ \lvert\alpha\rangle ∣ α ⟩ 的夹角为 θ \theta θ (因为 ⟨ ψ ∣ α ⟩ = cos θ \langle\psi\rvert\alpha\rangle = \cos\theta ⟨ ψ ∣ α ⟩ = cos θ )。
U oracle U_{\text{oracle}} U oracle 将 ∣ ψ ⟩ \lvert\psi\rangle ∣ ψ ⟩ 反射为与 ∣ β ⟩ \lvert\beta\rangle ∣ β ⟩ 夹角为 θ \theta θ 的对称点。
U diff U_{\text{diff}} U diff 再将结果反射,相对于 ∣ ψ ⟩ \lvert\psi\rangle ∣ ψ ⟩ 轴。
两次反射的净效果:旋转 2 θ 2\theta 2 θ 弧度。
因此 k k k 次迭代后,态的角度为 ( 2 k + 1 ) θ (2k+1)\theta ( 2 k + 1 ) θ 。
4.5 最优迭代次数的推导
我们希望在经过 k k k 次迭代后,∣ β ⟩ \lvert\beta\rangle ∣ β ⟩ (标记项)的振幅尽可能大。
⟨ β ∣ G k ∣ ψ ⟩ = sin ( ( 2 k + 1 ) θ ) \langle\beta\rvert G^k\lvert\psi\rangle = \sin((2k+1)\theta) ⟨ β ∣ G k ∣ ψ ⟩ = sin (( 2 k + 1 ) θ )
最大化该振幅的条件:
sin ( ( 2 k + 1 ) θ ) ≈ 1 ⟹ ( 2 k + 1 ) θ ≈ π 2 \sin((2k+1)\theta) \approx 1 \;\Longrightarrow\; (2k+1)\theta \approx \frac{\pi}{2} sin (( 2 k + 1 ) θ ) ≈ 1 ⟹ ( 2 k + 1 ) θ ≈ 2 π
因此最优迭代次数:
k opt = ⌊ π 4 θ − 1 2 ⌋ k_{\text{opt}} = \left\lfloor\frac{\pi}{4\theta} - \frac{1}{2}\right\rfloor k opt = ⌊ 4 θ π − 2 1 ⌋
由于 θ = arcsin ( 1 / N ) ≈ 1 / N \theta = \arcsin(1/\sqrt{N}) \approx 1/\sqrt{N} θ = arcsin ( 1/ N ) ≈ 1/ N (对 N ≫ 1 N \gg 1 N ≫ 1 ):
k opt ≈ ⌊ π 4 N ⌋ k_{\text{opt}} \approx \left\lfloor\frac{\pi}{4}\sqrt{N}\right\rfloor k opt ≈ ⌊ 4 π N ⌋
最终振幅 :
∣ ⟨ β ∣ G k opt ∣ ψ ⟩ ∣ 2 = sin 2 ( ( 2 k opt + 1 ) arcsin 1 N ) |\langle\beta\rvert G^{k_{\text{opt}}}\lvert\psi\rangle|^2 = \sin^2\left((2k_{\text{opt}}+1)\arcsin\frac{1}{\sqrt{N}}\right) ∣ ⟨ β ∣ G k opt ∣ ψ ⟩ ∣ 2 = sin 2 ( ( 2 k opt + 1 ) arcsin N 1 )
当 k = k opt k = k_{\text{opt}} k = k opt 时,这个值接近 1。更精确地,最小失败概率:
P fail = cos 2 ( ( 2 k opt + 1 ) arcsin 1 N ) ≤ 1 N P_{\text{fail}} = \cos^2\left((2k_{\text{opt}}+1)\arcsin\frac{1}{\sqrt{N}}\right) \leq \frac{1}{N} P fail = cos 2 ( ( 2 k opt + 1 ) arcsin N 1 ) ≤ N 1
示例 :N = 4 N=4 N = 4 ,θ = arcsin ( 1 / 2 ) = π / 6 \theta = \arcsin(1/2) = \pi/6 θ = arcsin ( 1/2 ) = π /6 。k opt = ⌊ π / ( 4 ⋅ π / 6 ) − 1 / 2 ⌋ = ⌊ 1.5 − 0.5 ⌋ = 1 k_{\text{opt}} = \lfloor \pi/(4\cdot\pi/6) - 1/2 \rfloor = \lfloor 1.5 - 0.5 \rfloor = 1 k opt = ⌊ π / ( 4 ⋅ π /6 ) − 1/2 ⌋ = ⌊ 1.5 − 0.5 ⌋ = 1 。经过 1 次迭代,sin ( 3 θ ) = sin ( π / 2 ) = 1 \sin(3\theta) = \sin(\pi/2) = 1 sin ( 3 θ ) = sin ( π /2 ) = 1 ,以概率 1 找到标记项。
示例 :N = 8 N=8 N = 8 ,θ = arcsin ( 1 / 8 ) ≈ 0.3614 \theta = \arcsin(1/\sqrt{8}) \approx 0.3614 θ = arcsin ( 1/ 8 ) ≈ 0.3614 rad。k opt = ⌊ π / ( 4 ⋅ 0.3614 ) − 0.5 ⌋ = ⌊ 2.17 − 0.5 ⌋ = 1 k_{\text{opt}} = \lfloor \pi/(4\cdot 0.3614) - 0.5 \rfloor = \lfloor 2.17 - 0.5 \rfloor = 1 k opt = ⌊ π / ( 4 ⋅ 0.3614 ) − 0.5 ⌋ = ⌊ 2.17 − 0.5 ⌋ = 1 。经过 1 次迭代,sin ( 3 θ ) = sin ( 1.0842 ) ≈ 0.882 \sin(3\theta) = \sin(1.0842) \approx 0.882 sin ( 3 θ ) = sin ( 1.0842 ) ≈ 0.882 ,成功概率约 0.778 0.778 0.778 。如果做 2 次迭代,sin ( 5 θ ) = sin ( 1.807 ) ≈ 0.971 \sin(5\theta) = \sin(1.807) \approx 0.971 sin ( 5 θ ) = sin ( 1.807 ) ≈ 0.971 ,概率约 0.943 0.943 0.943 。
4.6 完整工作示例:N = 4 N=4 N = 4
N = 4 N=4 N = 4 (n = 2 n=2 n = 2 量子比特),标记项设为 x ∗ = 10 x^* = 10 x ∗ = 10 (二进制,即十进制 2)。
初始化 :
∣ ψ 0 ⟩ = ∣ 00 ⟩ \lvert\psi_0\rangle = \lvert00\rangle ∣ ψ 0 ⟩ = ∣ 00 ⟩
第一次 H ⊗ 2 H^{\otimes 2} H ⊗ 2 :
∣ ψ 1 ⟩ = 1 2 ( ∣ 00 ⟩ + ∣ 01 ⟩ + ∣ 10 ⟩ + ∣ 11 ⟩ ) \lvert\psi_1\rangle = \frac{1}{2}(\lvert00\rangle + \lvert01\rangle + \lvert10\rangle + \lvert11\rangle) ∣ ψ 1 ⟩ = 2 1 (∣ 00 ⟩ + ∣ 01 ⟩ + ∣ 10 ⟩ + ∣ 11 ⟩)
Grover 迭代 1 (也是唯一需要的迭代):
Step A — Oracle(标记 10 10 10 ):
U oracle = I − 2 ∣ 10 ⟩ ⟨ 10 ∣ U_{\text{oracle}} = I - 2\lvert10\rangle\langle10\rvert U oracle = I − 2 ∣ 10 ⟩ ⟨ 10 ∣
∣ ψ 2 ⟩ = 1 2 ( ∣ 00 ⟩ + ∣ 01 ⟩ − ∣ 10 ⟩ + ∣ 11 ⟩ ) \lvert\psi_2\rangle = \frac{1}{2}(\lvert00\rangle + \lvert01\rangle - \lvert10\rangle + \lvert11\rangle) ∣ ψ 2 ⟩ = 2 1 (∣ 00 ⟩ + ∣ 01 ⟩ − ∣ 10 ⟩ + ∣ 11 ⟩)
Step B — Diffusion:
先计算均值 a ˉ = 1 4 ( 1 + 1 − 1 + 1 ) = 1 2 \bar{a} = \frac{1}{4}(1+1-1+1) = \frac{1}{2} a ˉ = 4 1 ( 1 + 1 − 1 + 1 ) = 2 1
反演关于均值:a x ′ = 2 a ˉ − a x = 1 − a x a_x' = 2\bar{a} - a_x = 1 - a_x a x ′ = 2 a ˉ − a x = 1 − a x
x x x a x a_x a x (Oracle后)a x ′ a_x' a x ′ (Diffusion后)00 1 / 2 1/2 1/2 1 − 1 / 2 = 1 / 2 1 - 1/2 = 1/2 1 − 1/2 = 1/2 01 1 / 2 1/2 1/2 1 − 1 / 2 = 1 / 2 1 - 1/2 = 1/2 1 − 1/2 = 1/2 10 − 1 / 2 -1/2 − 1/2 1 − ( − 1 / 2 ) = 3 / 2 1 - (-1/2) = 3/2 1 − ( − 1/2 ) = 3/2 11 1 / 2 1/2 1/2 1 − 1 / 2 = 1 / 2 1 - 1/2 = 1/2 1 − 1/2 = 1/2
∣ ψ 3 ⟩ = 1 2 ( ∣ 00 ⟩ + ∣ 01 ⟩ + 3 ∣ 10 ⟩ + ∣ 11 ⟩ ) \lvert\psi_3\rangle = \frac{1}{2}(\lvert00\rangle + \lvert01\rangle + 3\lvert10\rangle + \lvert11\rangle) ∣ ψ 3 ⟩ = 2 1 (∣ 00 ⟩ + ∣ 01 ⟩ + 3 ∣ 10 ⟩ + ∣ 11 ⟩)
归一化后(注意 1 4 + 1 4 + 9 4 + 1 4 = 3 \frac{1}{4} + \frac{1}{4} + \frac{9}{4} + \frac{1}{4} = 3 4 1 + 4 1 + 4 9 + 4 1 = 3 ):
∣ ψ 3 ⟩ = 1 12 ( ∣ 00 ⟩ + ∣ 01 ⟩ + 3 ∣ 10 ⟩ + ∣ 11 ⟩ ) \lvert\psi_3\rangle = \frac{1}{\sqrt{12}}(\lvert00\rangle + \lvert01\rangle + 3\lvert10\rangle + \lvert11\rangle) ∣ ψ 3 ⟩ = 12 1 (∣ 00 ⟩ + ∣ 01 ⟩ + 3 ∣ 10 ⟩ + ∣ 11 ⟩)
测量 :
P ( x ∗ = 10 ) = ( 3 12 ) 2 = 9 12 = 3 4 P(x^* = 10) = \left(\frac{3}{\sqrt{12}}\right)^2 = \frac{9}{12} = \frac{3}{4} P ( x ∗ = 10 ) = ( 12 3 ) 2 = 12 9 = 4 3
以 75 % 75\% 75% 概率找到标记项。注意对于 N = 4 N=4 N = 4 ,单次迭代的成功概率已经很高。如果再做第二次迭代(不必要),成功概率还会上升。
事实上,N = 4 N=4 N = 4 是最特殊的例子,因为 θ = π / 6 \theta = \pi/6 θ = π /6 ,( 2 ⋅ 1 + 1 ) ⋅ π / 6 = π / 2 (2\cdot 1 + 1)\cdot\pi/6 = \pi/2 ( 2 ⋅ 1 + 1 ) ⋅ π /6 = π /2 ,完美旋转到 ∣ β ⟩ \lvert\beta\rangle ∣ β ⟩ ,成功概率应该是 100% 。上面的 75 % 75\% 75% 差异来自我使用了 a x ′ a_x' a x ′ 的表达式,但让我们更精确地计算 U diff U_{\text{diff}} U diff :
U diff = H ⊗ 2 ( 2 ∣ 00 ⟩ ⟨ 00 ∣ − I ) H ⊗ 2 U_{\text{diff}} = H^{\otimes 2}(2\lvert00\rangle\langle00\rvert - I)H^{\otimes 2} U diff = H ⊗ 2 ( 2 ∣ 00 ⟩ ⟨ 00 ∣ − I ) H ⊗ 2
让我们一步步算:
H ⊗ 2 ∣ ψ 2 ⟩ H^{\otimes 2}\lvert\psi_2\rangle H ⊗ 2 ∣ ψ 2 ⟩ :先计算 H ⊗ 2 H^{\otimes 2} H ⊗ 2 对 ∣ ψ 2 ⟩ \lvert\psi_2\rangle ∣ ψ 2 ⟩ 的作用。
∣ ψ 2 ⟩ = 1 2 ( 1 1 − 1 1 ) \lvert\psi_2\rangle = \frac{1}{2}\begin{pmatrix}1\\1\\-1\\1\end{pmatrix} ∣ ψ 2 ⟩ = 2 1 1 1 − 1 1
H ⊗ 2 = 1 2 ( 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1 ) H^{\otimes 2} = \frac{1}{2}\begin{pmatrix}1&1&1&1\\1&-1&1&-1\\1&1&-1&-1\\1&-1&-1&1\end{pmatrix} H ⊗ 2 = 2 1 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1
H ⊗ 2 ∣ ψ 2 ⟩ = 1 4 ( 1 + 1 − 1 + 1 1 − 1 − 1 − 1 1 + 1 + 1 − 1 1 − 1 + 1 + 1 ) = 1 4 ( 2 − 2 2 2 ) H^{\otimes 2}\lvert\psi_2\rangle = \frac{1}{4}\begin{pmatrix}1+1-1+1\\1-1-1-1\\1+1+1-1\\1-1+1+1\end{pmatrix} = \frac{1}{4}\begin{pmatrix}2\\-2\\2\\2\end{pmatrix} H ⊗ 2 ∣ ψ 2 ⟩ = 4 1 1 + 1 − 1 + 1 1 − 1 − 1 − 1 1 + 1 + 1 − 1 1 − 1 + 1 + 1 = 4 1 2 − 2 2 2
应用 ( 2 ∣ 00 ⟩ ⟨ 00 ∣ − I ) (2\lvert00\rangle\langle00\rvert - I) ( 2 ∣ 00 ⟩ ⟨ 00 ∣ − I ) :将 ∣ 00 ⟩ \lvert00\rangle ∣ 00 ⟩ 分量的相位翻转(2 − 1 = 1 2-1=1 2 − 1 = 1 变成 2 ⋅ 2 4 − 2 4 = 2 4 − 2 4 = 0 2\cdot\frac{2}{4} - \frac{2}{4} = \frac{2}{4} - \frac{2}{4} = 0 2 ⋅ 4 2 − 4 2 = 4 2 − 4 2 = 0 ,等等——实际上 ( 2 ∣ 00 ⟩ ⟨ 00 ∣ − I ) (2\lvert00\rangle\langle00\rvert - I) ( 2 ∣ 00 ⟩ ⟨ 00 ∣ − I ) 将 ∣ 00 ⟩ \lvert00\rangle ∣ 00 ⟩ 的系数从 2 / 4 2/4 2/4 变成 − 2 / 4 -2/4 − 2/4 ,不对!)
更直接的方法:2 ∣ 00 ⟩ ⟨ 00 ∣ − I = diag ( 1 , − 1 , − 1 , − 1 ) 2\lvert00\rangle\langle00\rvert - I = \text{diag}(1, -1, -1, -1) 2 ∣ 00 ⟩ ⟨ 00 ∣ − I = diag ( 1 , − 1 , − 1 , − 1 )
所以:1 4 ( 2 − 2 2 2 ) → 2 ∣ 00 ⟩ ⟨ 00 ∣ − I 1 4 ( 2 2 − 2 − 2 ) \frac{1}{4}\begin{pmatrix}2\\-2\\2\\2\end{pmatrix} \xrightarrow{2\lvert00\rangle\langle00\rvert - I} \frac{1}{4}\begin{pmatrix}2\\2\\-2\\-2\end{pmatrix} 4 1 2 − 2 2 2 2 ∣ 00 ⟩ ⟨ 00 ∣ − I 4 1 2 2 − 2 − 2
最后施加 H ⊗ 2 H^{\otimes 2} H ⊗ 2 :
∣ ψ 3 ⟩ = 1 8 ( 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1 ) ( 2 2 − 2 − 2 ) = 1 8 ( 2 + 2 − 2 − 2 2 − 2 − 2 + 2 2 + 2 + 2 + 2 2 − 2 + 2 − 2 ) = ( 0 0 1 0 ) \lvert\psi_3\rangle = \frac{1}{8}\begin{pmatrix}1&1&1&1\\1&-1&1&-1\\1&1&-1&-1\\1&-1&-1&1\end{pmatrix}\begin{pmatrix}2\\2\\-2\\-2\end{pmatrix} = \frac{1}{8}\begin{pmatrix}2+2-2-2\\2-2-2+2\\2+2+2+2\\2-2+2-2\end{pmatrix} = \begin{pmatrix}0\\0\\1\\0\end{pmatrix} ∣ ψ 3 ⟩ = 8 1 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1 2 2 − 2 − 2 = 8 1 2 + 2 − 2 − 2 2 − 2 − 2 + 2 2 + 2 + 2 + 2 2 − 2 + 2 − 2 = 0 0 1 0
完美!∣ ψ 3 ⟩ = ∣ 10 ⟩ \lvert\psi_3\rangle = \lvert10\rangle ∣ ψ 3 ⟩ = ∣ 10 ⟩ ,概率 1 找到标记项。N = 4 N=4 N = 4 只需要 1 次 Grover 迭代就能以概率 1 找到标记项。
4.7 工作示例:N = 8 N=8 N = 8 (n = 3 n=3 n = 3 )
标记项设为 x ∗ = 110 x^* = 110 x ∗ = 110 (十进制 6)。
初始化 :
∣ ψ 0 ⟩ = 1 8 ∑ x = 0 7 ∣ x ⟩ \lvert\psi_0\rangle = \frac{1}{\sqrt{8}}\sum_{x=0}^{7}\lvert x\rangle ∣ ψ 0 ⟩ = 8 1 ∑ x = 0 7 ∣ x ⟩
第 1 次迭代 :
Oracle 将 ∣ 110 ⟩ \lvert110\rangle ∣ 110 ⟩ 振幅从 1 / 8 1/\sqrt{8} 1/ 8 翻转为 − 1 / 8 -1/\sqrt{8} − 1/ 8 。
均值 a ˉ = ( 7 ⋅ 1 + ( − 1 ) ) / 8 8 = 6 / ( 8 8 ) = 3 / ( 4 8 ) \bar{a} = (7\cdot 1 + (-1))/8\sqrt{8} = 6/(8\sqrt{8}) = 3/(4\sqrt{8}) a ˉ = ( 7 ⋅ 1 + ( − 1 )) /8 8 = 6/ ( 8 8 ) = 3/ ( 4 8 ) 。
反演后,∣ 110 ⟩ \lvert110\rangle ∣ 110 ⟩ 振幅变为 2 ⋅ 3 / ( 4 8 ) − ( − 1 / 8 ) = ( 6 / 4 + 1 ) / 8 = ( 5 / 2 ) / 8 = 5 / ( 2 8 ) 2\cdot 3/(4\sqrt{8}) - (-1/\sqrt{8}) = (6/4 + 1)/\sqrt{8} = (5/2)/\sqrt{8} = 5/(2\sqrt{8}) 2 ⋅ 3/ ( 4 8 ) − ( − 1/ 8 ) = ( 6/4 + 1 ) / 8 = ( 5/2 ) / 8 = 5/ ( 2 8 ) 。
其他项振幅变为 2 ⋅ 3 / ( 4 8 ) − 1 / 8 = ( 3 / 2 − 1 ) / 8 = 1 / ( 2 8 ) 2\cdot 3/(4\sqrt{8}) - 1/\sqrt{8} = (3/2 - 1)/\sqrt{8} = 1/(2\sqrt{8}) 2 ⋅ 3/ ( 4 8 ) − 1/ 8 = ( 3/2 − 1 ) / 8 = 1/ ( 2 8 ) 。
成功概率 P = ( 5 / ( 2 8 ) ) 2 = 25 / 32 ≈ 0.781 P = (5/(2\sqrt{8}))^2 = 25/32 \approx 0.781 P = ( 5/ ( 2 8 ) ) 2 = 25/32 ≈ 0.781 。
第 2 次迭代 :
从 ∣ ψ ⟩ = 1 2 8 ( 1 , 1 , 1 , 1 , 1 , 1 , 5 , 1 ) T \lvert\psi\rangle = \frac{1}{2\sqrt{8}}(1,1,1,1,1,1,5,1)^T ∣ ψ ⟩ = 2 8 1 ( 1 , 1 , 1 , 1 , 1 , 1 , 5 , 1 ) T 开始(归一化前的振幅向量)。
Oracle:将 ∣ 110 ⟩ \lvert110\rangle ∣ 110 ⟩ 振幅翻转为 − 5 -5 − 5 (保持其他不变)。
新均值 a ˉ ′ = ( 7 ⋅ 1 + ( − 5 ) ) / ( 8 ⋅ 2 8 ) = 2 / ( 16 8 ) = 1 / ( 8 8 ) \bar{a}' = (7\cdot 1 + (-5))/(8\cdot 2\sqrt{8}) = 2/(16\sqrt{8}) = 1/(8\sqrt{8}) a ˉ ′ = ( 7 ⋅ 1 + ( − 5 )) / ( 8 ⋅ 2 8 ) = 2/ ( 16 8 ) = 1/ ( 8 8 ) 。
反演后,∣ 110 ⟩ \lvert110\rangle ∣ 110 ⟩ 振幅变为 2 a ˉ ′ − ( − 5 / ( 2 8 ) ) = 1 / ( 4 8 ) + 5 / ( 2 8 ) = 11 / ( 4 8 ) 2\bar{a}' - (-5/(2\sqrt{8})) = 1/(4\sqrt{8}) + 5/(2\sqrt{8}) = 11/(4\sqrt{8}) 2 a ˉ ′ − ( − 5/ ( 2 8 )) = 1/ ( 4 8 ) + 5/ ( 2 8 ) = 11/ ( 4 8 ) 。
其他项振幅变为 2 a ˉ ′ − 1 / ( 2 8 ) = 1 / ( 4 8 ) − 1 / ( 2 8 ) = − 1 / ( 4 8 ) 2\bar{a}' - 1/(2\sqrt{8}) = 1/(4\sqrt{8}) - 1/(2\sqrt{8}) = -1/(4\sqrt{8}) 2 a ˉ ′ − 1/ ( 2 8 ) = 1/ ( 4 8 ) − 1/ ( 2 8 ) = − 1/ ( 4 8 ) 。
成功概率 P = ( 11 / ( 4 8 ) ) 2 = 121 / 128 ≈ 0.945 P = (11/(4\sqrt{8}))^2 = 121/128 \approx 0.945 P = ( 11/ ( 4 8 ) ) 2 = 121/128 ≈ 0.945 。
因此 N = 8 N=8 N = 8 做 2 次迭代即可达到约 94.5% 的成功概率。与理论值 k opt = ⌊ π 8 / 4 ⌋ = ⌊ 2.22 ⌋ = 2 k_{\text{opt}} = \lfloor \pi\sqrt{8}/4 \rfloor = \lfloor 2.22 \rfloor = 2 k opt = ⌊ π 8 /4 ⌋ = ⌊ 2.22 ⌋ = 2 一致。
4.8 最优性证明:BBBV 定理
问题 :是否存在比 O ( N ) O(\sqrt{N}) O ( N ) 更快的量子搜索算法?
BBBV 定理 (Bennett, Bernstein, Brassard & Vazirani, 1997):任何解决无结构搜索问题的量子算法必须调用 oracle 至少 Ω ( N ) \Omega(\sqrt{N}) Ω ( N ) 次。
证明思路 (高维几何论证):
考虑一个量子算法的状态演化过程。初始态为 ∣ ψ 0 ⟩ \lvert\psi_0\rangle ∣ ψ 0 ⟩ ,经过 T T T 次 oracle 调用 U f U_f U f 和 T + 1 T+1 T + 1 次非 oracle 酉变换 U 0 , U 1 , … , U T U_0, U_1, \ldots, U_T U 0 , U 1 , … , U T :
∣ ψ T ⟩ = U T U f U T − 1 U f ⋯ U 1 U f U 0 ∣ ψ 0 ⟩ \lvert\psi_T\rangle = U_T U_f U_{T-1} U_f \cdots U_1 U_f U_0\lvert\psi_0\rangle ∣ ψ T ⟩ = U T U f U T − 1 U f ⋯ U 1 U f U 0 ∣ ψ 0 ⟩
定义”查询状态”序列:∣ ψ t ⟩ \lvert\psi^t\rangle ∣ ψ t ⟩ 为第 t t t 次 oracle 调用后的状态。关键想法是跟踪标记项的振幅如何随查询次数增长。
引入”无标记”oracle U 0 U_0 U 0 (对所有 x x x 都不翻转相位),定义 ∣ ϕ t ⟩ \lvert\phi^t\rangle ∣ ϕ t ⟩ 为使用 U 0 U_0 U 0 代替 U f U_f U f 时的状态序列。引理:∣ ⟨ ψ t ∣ ϕ t ⟩ ∣ ≥ 1 − 2 t 2 / N |\langle\psi^t\rvert\phi^t\rangle| \geq 1 - 2t^2/N ∣ ⟨ ψ t ∣ ϕ t ⟩ ∣ ≥ 1 − 2 t 2 / N 的某种形式——即很难区分搜索空间是否包含标记项。
更严格的论证如下:
定义 ∣ ψ k ⟩ \lvert\psi_k\rangle ∣ ψ k ⟩ 为 k k k 次 oracle 查询后的态。定义 oracle 操作 O = I − 2 ∣ x ∗ ⟩ ⟨ x ∗ ∣ O = I - 2\lvert x^*\rangle\langle x^*\rvert O = I − 2 ∣ x ∗ ⟩ ⟨ x ∗ ∣ 和参考 oracle O 0 = I O_0 = I O 0 = I (无标记)。
考虑差异向量 Δ k = ∥ ∣ ψ k ⟩ − ∣ ϕ k ⟩ ∥ \Delta_k = \lVert\lvert\psi_k\rangle - \lvert\phi_k\rangle\rVert Δ k = ∥∣ ψ k ⟩ − ∣ ϕ k ⟩∥ ,其中 ∣ ϕ k ⟩ \lvert\phi_k\rangle ∣ ϕ k ⟩ 使用 O 0 O_0 O 0 。
可以证明每次 oracle 调用最多能将 Δ k \Delta_k Δ k 增加 2 / N 2/\sqrt{N} 2/ N (因为每次 oracle 调用最多影响 O ( 1 / N ) O(1/\sqrt{N}) O ( 1/ N ) 的振幅)。经过 T T T 次查询后:
Δ T ≤ 2 T N \Delta_T \leq \frac{2T}{\sqrt{N}} Δ T ≤ N 2 T
另一方面,要成功区分有标记和无标记的情况(即找到标记项),需要 Δ T = Ω ( 1 ) \Delta_T = \Omega(1) Δ T = Ω ( 1 ) 。因此 T = Ω ( N ) T = \Omega(\sqrt{N}) T = Ω ( N ) 。
直观理解 :每次 oracle 查询只能”小幅”改变量子态,需要 N \sqrt{N} N 次查询才能积累足够的改变以可靠地定位标记项。这就是 Grover 算法二次加速的最优性证明。
4.9 多标记项的推广
如果存在 M M M 个标记项(而非 1 个),Grover 算法仍然有效。
定义 N ′ = N / M N' = N/M N ′ = N / M ,旋转角 θ ′ = arcsin ( M / N ) \theta' = \arcsin(\sqrt{M/N}) θ ′ = arcsin ( M / N ) 。最优迭代次数为:
k opt ′ ≈ π 4 N M − 1 2 k'_{\text{opt}} \approx \frac{\pi}{4}\sqrt{\frac{N}{M}} - \frac{1}{2} k opt ′ ≈ 4 π M N − 2 1
成功概率接近 1。当 M = N / 4 M = N/4 M = N /4 时,k opt ′ = 1 k'_{\text{opt}} = 1 k opt ′ = 1 ,一次迭代即可找到某个标记项。
特殊情形 :
若 M > N / 2 M > N/2 M > N /2 ,可以随机猜测的经典方法已经很快,量子加速减弱
若 M M M 未知,需要量子计数 (Quantum Counting) 先估计 M M M ,再运行 Grover
量子计数本身是 Grover 迭代和 QPE 的结合
5. Shor 因子分解算法
5.1 问题定义与经典复杂度
问题 :给定一个 L L L 比特的合数 N = p q N = pq N = pq (p , q p,q p , q 为素数),求 p p p 和 q q q 。
经典复杂度 (已知最优算法):
一般数域筛法 (GNFS):O ( exp ( ( log N ) 1 / 3 ( log log N ) 2 / 3 ) ) O\left(\exp\left((\log N)^{1/3}(\log\log N)^{2/3}\right)\right) O ( exp ( ( log N ) 1/3 ( log log N ) 2/3 ) ) ,亚指数但超多项式
对大 N N N (如 RSA-2048,L = 2048 L=2048 L = 2048 ),经典算法完全不可行
量子复杂度 :O ( ( log N ) 3 ) O((\log N)^3) O (( log N ) 3 ) ,多项式时间!这是 RSA 加密安全性的根本威胁。
5.2 从因子分解到周期发现:详细归约
Shor 算法的核心洞察是将因子分解转化为周期发现问题 。归约分为以下几步:
步骤 1:琐碎情况排除
如果 N N N 是偶数,直接输出因子 2。如果 N = a b N = a^b N = a b 对某些 a ≥ 1 , b ≥ 2 a \geq 1, b \geq 2 a ≥ 1 , b ≥ 2 ,直接分解。这些情况可以在多项式时间内判定。
步骤 2:随机选择 a a a
随机选择 a ∈ { 2 , 3 , … , N − 1 } a \in \{2, 3, \ldots, N-1\} a ∈ { 2 , 3 , … , N − 1 } 。计算 gcd ( a , N ) \gcd(a, N) g cd( a , N ) 。若 gcd ( a , N ) > 1 \gcd(a, N) > 1 g cd( a , N ) > 1 ,则已找到因子。否则 a a a 与 N N N 互素。
步骤 3:周期发现问题
考虑模指数函数:
f a , N ( x ) = a x m o d N f_{a,N}(x) = a^x \bmod N f a , N ( x ) = a x mod N
这个函数是周期性的 ,因为模运算的有限性保证存在最小的 r > 0 r > 0 r > 0 使得 a r ≡ 1 ( m o d N ) a^r \equiv 1 \pmod{N} a r ≡ 1 ( mod N ) (费马小定理的推广,r r r 是 a a a 在乘法群 Z N ∗ \mathbb{Z}_N^* Z N ∗ 中的阶)。周期 r r r 就是函数 f a , N f_{a,N} f a , N 的周期。
步骤 4:周期 r r r 到因子的转化
定理 :若 r r r 是偶函数且 a r / 2 ≢ − 1 ( m o d N ) a^{r/2} \not\equiv -1 \pmod{N} a r /2 ≡ − 1 ( mod N ) ,则 gcd ( a r / 2 − 1 , N ) \gcd(a^{r/2} - 1, N) g cd( a r /2 − 1 , N ) 和 gcd ( a r / 2 + 1 , N ) \gcd(a^{r/2} + 1, N) g cd( a r /2 + 1 , N ) 都是 N N N 的非平凡因子。
证明 :
由 a r ≡ 1 ( m o d N ) a^r \equiv 1 \pmod{N} a r ≡ 1 ( mod N ) 得 a r − 1 ≡ 0 ( m o d N ) a^r - 1 \equiv 0 \pmod{N} a r − 1 ≡ 0 ( mod N ) 。
若 r r r 是偶数,a r / 2 − 1 a^{r/2} - 1 a r /2 − 1 和 a r / 2 + 1 a^{r/2} + 1 a r /2 + 1 的乘积被 N N N 整除:
( a r / 2 − 1 ) ( a r / 2 + 1 ) = a r − 1 ≡ 0 ( m o d N ) (a^{r/2} - 1)(a^{r/2} + 1) = a^r - 1 \equiv 0 \pmod{N} ( a r /2 − 1 ) ( a r /2 + 1 ) = a r − 1 ≡ 0 ( mod N )
如果 a r / 2 ≢ ± 1 ( m o d N ) a^{r/2} \not\equiv \pm 1 \pmod{N} a r /2 ≡ ± 1 ( mod N ) ,则 N N N 有公共因子与 a r / 2 ± 1 a^{r/2} \pm 1 a r /2 ± 1 共享——这些因子就是 p p p 和 q q q 。■ \blacksquare ■
步骤 5:失败处理
如果 r r r 是奇数,或 a r / 2 ≡ − 1 ( m o d N ) a^{r/2} \equiv -1 \pmod{N} a r /2 ≡ − 1 ( mod N ) ,选择另一个 a a a 重复。
成功概率 :对于随机选择的 a a a ,成功找到因子的概率至少 1 − 1 / 2 k − 1 1 - 1/2^{k-1} 1 − 1/ 2 k − 1 (其中 k k k 是 N N N 的不同素因子个数)。对 RSA 密钥(两个不同奇素数),k = 2 k=2 k = 2 ,成功概率至少 1 / 2 1/2 1/2 。因此期望在 O ( 1 ) O(1) O ( 1 ) 次尝试内成功。
完整归约示例
N = 15 N = 15 N = 15 :随机选 a = 7 a = 7 a = 7 。gcd ( 7 , 15 ) = 1 \gcd(7,15)=1 g cd( 7 , 15 ) = 1 。计算 f ( x ) = 7 x m o d 15 f(x) = 7^x \bmod 15 f ( x ) = 7 x mod 15 :
x x x 7 x 7^x 7 x 7 x m o d 15 7^x \bmod 15 7 x mod 15 0 1 1 1 7 7 2 49 4 3 343 13 4 2401 1
周期 r = 4 r = 4 r = 4 (偶数)。a r / 2 = 7 2 = 49 ≡ 4 ( m o d 15 ) a^{r/2} = 7^2 = 49 \equiv 4 \pmod{15} a r /2 = 7 2 = 49 ≡ 4 ( mod 15 ) ,4 ≢ ± 1 ( m o d 15 ) 4 \not\equiv \pm 1 \pmod{15} 4 ≡ ± 1 ( mod 15 ) 。因此:
gcd ( 7 2 − 1 , 15 ) = gcd ( 48 , 15 ) = 3 \gcd(7^2 - 1, 15) = \gcd(48, 15) = 3 g cd( 7 2 − 1 , 15 ) = g cd( 48 , 15 ) = 3
gcd ( 7 2 + 1 , 15 ) = gcd ( 50 , 15 ) = 5 \gcd(7^2 + 1, 15) = \gcd(50, 15) = 5 g cd( 7 2 + 1 , 15 ) = g cd( 50 , 15 ) = 5
得到因子 3 和 5。✓
5.3 量子周期发现:电路设计
周期发现是 Shor 算法的”量子引擎”,它用量子相位估计 (QPE) 来找到 f ( x ) = a x m o d N f(x) = a^x \bmod N f ( x ) = a x mod N 的周期。
总电路图 (两层寄存器):
|0⟩^⊗m —H^⊗m—•—•—•—•—•—•—•—•—H^⊗m—QFT†—[M]
| | | | | | | |
|0⟩^⊗L ——————U U U U U U U U—————————[M] (验证)
a² a a¹ a⁸
⁸ ⁴ ²
上层:m = 2 L m = 2L m = 2 L 个量子比特的”计数”寄存器(L = ⌈ log 2 N ⌉ L = \lceil \log_2 N \rceil L = ⌈ log 2 N ⌉ )
下层:L L L 个量子比特的”工作”寄存器
U a U_a U a 是模乘算子:U a ∣ y ⟩ = ∣ a y m o d N ⟩ U_a\lvert y\rangle = \lvert ay \bmod N\rangle U a ∣ y ⟩ = ∣ a y mod N ⟩
受控 U a 2 j U_{a^{2^j}} U a 2 j 是模指数运算的构建块
模块化指数运算(Modular Exponentiation)
模指数运算 a x m o d N a^x \bmod N a x mod N 是 Shor 算法中最昂贵的部分。它通过”平方-乘”法 (square-and-multiply) 分解为一系列受控模乘:
a x m o d N = a ∑ j = 0 m − 1 x j 2 j m o d N = ∏ j : x j = 1 ( a 2 j m o d N ) m o d N a^x \bmod N = a^{\sum_{j=0}^{m-1} x_j 2^j} \bmod N = \prod_{j: x_j=1} \left(a^{2^j} \bmod N\right) \bmod N a x mod N = a ∑ j = 0 m − 1 x j 2 j mod N = ∏ j : x j = 1 ( a 2 j mod N ) mod N
电路实现需要:
预计算 a 2 j m o d N a^{2^j} \bmod N a 2 j mod N 对于 j = 0 , 1 , … , m − 1 j = 0, 1, \ldots, m-1 j = 0 , 1 , … , m − 1 (可以在经典计算机上预处理)
使用受控模乘器 C - U a 2 j C\text{-}U_{a^{2^j}} C - U a 2 j :当控制比特为 ∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 时,施加 U a 2 j U_{a^{2^j}} U a 2 j
将这些受控操作级联起来
量子资源 :模块化指数运算需要 O ( L 3 ) O(L^3) O ( L 3 ) 个基本门(使用经典辅助的模乘算法),占用 O ( L ) O(L) O ( L ) 个辅助量子比特。
量子相位估计(QPE)用于周期发现
QPE 的详细电路实现在教程 Part 5.2 中。这里概述其在 Shor 算法中的应用:
输入寄存器 :初始化为 ∣ + ⟩ ⊗ m = H ⊗ m ∣ 0 ⟩ ⊗ m \lvert+\rangle^{\otimes m} = H^{\otimes m}\lvert0\rangle^{\otimes m} ∣ + ⟩ ⊗ m = H ⊗ m ∣ 0 ⟩ ⊗ m (叠加态)。
工作寄存器 :初始化为 ∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 。
对每个比特 j j j (0 ≤ j < m 0 \leq j < m 0 ≤ j < m ),施加受控 U a 2 j U_{a^{2^j}} U a 2 j 操作:
U a 2 j ∣ y ⟩ = ∣ a 2 j y m o d N ⟩ U_{a^{2^j}}\lvert y\rangle = \lvert a^{2^j} y \bmod N\rangle U a 2 j ∣ y ⟩ = ∣ a 2 j y mod N ⟩
QPE 的核心结果是:在计数寄存器上运行逆 QFT(Q F T † QFT^\dagger QF T † )后,测量得到周期 r r r 的近似值 φ ~ \tilde{\varphi} φ ~ :
φ ~ ≈ k r \tilde{\varphi} \approx \frac{k}{r} φ ~ ≈ r k
其中 k k k 是 0 0 0 到 r − 1 r-1 r − 1 之间的随机整数。
关键数学推导 :U a U_a U a 的本征态包含:
U a ∣ u s ⟩ = e 2 π i s / r ∣ u s ⟩ U_a\lvert u_s\rangle = e^{2\pi i s/r}\lvert u_s\rangle U a ∣ u s ⟩ = e 2 π i s / r ∣ u s ⟩
其中 ∣ u s ⟩ = 1 r ∑ j = 0 r − 1 e − 2 π i s j / r ∣ a j m o d N ⟩ \lvert u_s\rangle = \frac{1}{\sqrt{r}}\sum_{j=0}^{r-1} e^{-2\pi i s j/r}\lvert a^j \bmod N\rangle ∣ u s ⟩ = r 1 ∑ j = 0 r − 1 e − 2 π i s j / r ∣ a j mod N ⟩ 。
初始态 ∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 可以展开为这些本征态的叠加:
∣ 1 ⟩ = 1 r ∑ s = 0 r − 1 ∣ u s ⟩ \lvert1\rangle = \frac{1}{\sqrt{r}}\sum_{s=0}^{r-1}\lvert u_s\rangle ∣ 1 ⟩ = r 1 ∑ s = 0 r − 1 ∣ u s ⟩
因此 QPE 测量得到相位 s / r s/r s / r 的概率为 1 / r 1/r 1/ r 。从 φ ~ \tilde{\varphi} φ ~ 提取 r r r 需要连分数展开。
5.4 连分数算法(Continued Fractions Algorithm)
QPE 输出的是 φ = k / r \varphi = k/r φ = k / r 的 m m m 比特近似值 φ ~ \tilde{\varphi} φ ~ (一个 m m m 位二进制小数)。我们需要从 φ ~ \tilde{\varphi} φ ~ 还原出分母 r r r 。
连分数展开 :任何有理数 φ \varphi φ 都可以唯一地表示为:
φ = a 0 + 1 a 1 + 1 a 2 + 1 ⋱ + 1 a n \varphi = a_0 + \cfrac{1}{a_1 + \cfrac{1}{a_2 + \cfrac{1}{\ddots + \cfrac{1}{a_n}}}} φ = a 0 + a 1 + a 2 + ⋱ + a n 1 1 1 1
简记为 [ a 0 ; a 1 , a 2 , … , a n ] [a_0; a_1, a_2, \ldots, a_n] [ a 0 ; a 1 , a 2 , … , a n ] 。
算法 :
从 φ 0 = φ ~ \varphi_0 = \tilde{\varphi} φ 0 = φ ~ 开始,迭代:
a j = ⌊ φ j ⌋ a_j = \lfloor \varphi_j \rfloor a j = ⌊ φ j ⌋ (取整数部分)
φ j + 1 = 1 / ( φ j − a j ) \varphi_{j+1} = 1/(\varphi_j - a_j) φ j + 1 = 1/ ( φ j − a j ) (取倒数的小数部分)
在第 j j j 步,收敛分数 p j / q j p_j/q_j p j / q j (Q F T QFT QF T 测量值 φ ~ \tilde{\varphi} φ ~ 的第 j j j 个收敛)给出 k / r k/r k / r 的近似:
[ a 0 ; a 1 , … , a j ] = p j q j [a_0; a_1, \ldots, a_j] = \frac{p_j}{q_j} [ a 0 ; a 1 , … , a j ] = q j p j
其中递推关系为:
p − 2 = 0 , p − 1 = 1 , p j = a j p j − 1 + p j − 2 p_{-2} = 0,\; p_{-1} = 1,\; p_j = a_j p_{j-1} + p_{j-2} p − 2 = 0 , p − 1 = 1 , p j = a j p j − 1 + p j − 2
q − 2 = 1 , q − 1 = 0 , q j = a j q j − 1 + q j − 2 q_{-2} = 1,\; q_{-1} = 0,\; q_j = a_j q_{j-1} + q_{j-2} q − 2 = 1 , q − 1 = 0 , q j = a j q j − 1 + q j − 2
收敛定理 :若 ∣ p q − φ ∣ < 1 2 q 2 \left|\frac{p}{q} - \varphi\right| < \frac{1}{2q^2} q p − φ < 2 q 2 1 ,则 p / q p/q p / q 是 φ \varphi φ 的一个收敛分数。
应用于 Shor 算法 :选择 m = 2 L m = 2L m = 2 L (即 2 ⌈ log 2 N ⌉ 2\lceil\log_2 N\rceil 2 ⌈ log 2 N ⌉ ),QPE 的精度保证:
∣ k r − φ ~ ∣ < 1 2 m < 1 2 r 2 \left|\frac{k}{r} - \tilde{\varphi}\right| < \frac{1}{2^{m}} < \frac{1}{2r^2} r k − φ ~ < 2 m 1 < 2 r 2 1
因此 φ ~ \tilde{\varphi} φ ~ 的收敛分数之一就是 k / r k/r k / r 。检查分母 q j q_j q j :若 a q j ≡ 1 ( m o d N ) a^{q_j} \equiv 1 \pmod{N} a q j ≡ 1 ( mod N ) (或找到了正确的因式分解),则 r = q j r = q_j r = q j 。
完整示例:从 φ ~ \tilde{\varphi} φ ~ 提取周期
设 N = 15 N=15 N = 15 ,实际周期 r = 4 r=4 r = 4 ,k = 1 k=1 k = 1 ,所以 φ = 1 / 4 = 0.25 \varphi = 1/4 = 0.25 φ = 1/4 = 0.25 。
假定 QPE 输出 φ ~ = 0.2501 \tilde{\varphi} = 0.2501 φ ~ = 0.2501 (微小误差)。连分数展开:
φ 0 = 0.2501 \varphi_0 = 0.2501 φ 0 = 0.2501 ,a 0 = 0 a_0 = 0 a 0 = 0
φ 1 = 1 / 0.2501 ≈ 3.9984 \varphi_1 = 1/0.2501 \approx 3.9984 φ 1 = 1/0.2501 ≈ 3.9984 ,a 1 = 3 a_1 = 3 a 1 = 3
φ 2 = 1 / 0.9984 ≈ 1.0016 \varphi_2 = 1/0.9984 \approx 1.0016 φ 2 = 1/0.9984 ≈ 1.0016 ,a 2 = 1 a_2 = 1 a 2 = 1
φ 3 = 1 / 0.0016 = 625 \varphi_3 = 1/0.0016 = 625 φ 3 = 1/0.0016 = 625 ,a 3 = 625 a_3 = 625 a 3 = 625
收敛分数:
[ 0 ; 3 ] = 0 + 1 / 3 = 1 / 3 [0; 3] = 0 + 1/3 = 1/3 [ 0 ; 3 ] = 0 + 1/3 = 1/3 → r = 3 r=3 r = 3 (检查:7 3 m o d 15 = 13 ≠ 1 7^3 \bmod 15 = 13 \neq 1 7 3 mod 15 = 13 = 1 ,不是周期)
[ 0 ; 3 , 1 ] = 1 / ( 3 + 1 / 1 ) = 1 / 4 [0; 3, 1] = 1/(3 + 1/1) = 1/4 [ 0 ; 3 , 1 ] = 1/ ( 3 + 1/1 ) = 1/4 → r = 4 r=4 r = 4 (检查:7 4 m o d 15 = 1 7^4 \bmod 15 = 1 7 4 mod 15 = 1 ,正确!)
因此 r = 4 r=4 r = 4 。
5.5 完整工作示例:分解 15
这是 Shor 算法最经典的教学示例。
参数 :
N = 15 N = 15 N = 15 ,L = 4 L = 4 L = 4 (因为 15 < 2 4 = 16 15 < 2^4 = 16 15 < 2 4 = 16 )
m = 2 L = 8 m = 2L = 8 m = 2 L = 8 个计数比特
随机选择 a = 7 a = 7 a = 7 (gcd ( 7 , 15 ) = 1 \gcd(7,15)=1 g cd( 7 , 15 ) = 1 )
步骤 1 :排除琐碎情况。15 是奇数,不是完全幂。
步骤 2 :预计算 7 2 j m o d 15 7^{2^j} \bmod 15 7 2 j mod 15 :
j j j 2 j 2^j 2 j 7 2 j m o d 15 7^{2^j} \bmod 15 7 2 j mod 15 0 1 7 1 m o d 15 = 7 7^1 \bmod 15 = 7 7 1 mod 15 = 7 1 2 7 2 m o d 15 = 4 7^2 \bmod 15 = 4 7 2 mod 15 = 4 2 4 7 4 m o d 15 = 1 7^4 \bmod 15 = 1 7 4 mod 15 = 1 3 8 7 8 m o d 15 = 1 7^8 \bmod 15 = 1 7 8 mod 15 = 1 4 16 7 16 m o d 15 = 1 7^{16} \bmod 15 = 1 7 16 mod 15 = 1 ⋮ \vdots ⋮ ⋮ \vdots ⋮ ⋮ \vdots ⋮
注意 j ≥ 2 j \geq 2 j ≥ 2 时 7 2 j ≡ 1 ( m o d 15 ) 7^{2^j} \equiv 1 \pmod{15} 7 2 j ≡ 1 ( mod 15 ) 。
步骤 3 :制备计数寄存器叠加态。
∣ ψ count ⟩ = 1 256 ∑ x = 0 255 ∣ x ⟩ \lvert\psi_{\text{count}}\rangle = \frac{1}{\sqrt{256}}\sum_{x=0}^{255}\lvert x\rangle ∣ ψ count ⟩ = 256 1 ∑ x = 0 255 ∣ x ⟩
工作寄存器为 ∣ 1 ⟩ \lvert1\rangle ∣ 1 ⟩ 。
步骤 4 :施加受控模乘。
由于 j ≥ 2 j\geq2 j ≥ 2 时 7 2 j m o d 15 = 1 7^{2^j} \bmod 15 = 1 7 2 j mod 15 = 1 ,只有 j = 0 , 1 j=0,1 j = 0 , 1 的受控模乘有实际效果。因此:
∣ ψ ⟩ = 1 256 ∑ x = 0 255 ∣ x ⟩ ∣ 7 x m o d 15 ⟩ \lvert\psi\rangle = \frac{1}{\sqrt{256}}\sum_{x=0}^{255}\lvert x\rangle \lvert 7^x \bmod 15\rangle ∣ ψ ⟩ = 256 1 ∑ x = 0 255 ∣ x ⟩ ∣ 7 x mod 15 ⟩
步骤 5 :施加逆 QFT 并测量。
假设测得 φ ~ = 64 / 256 = 0.25 \tilde{\varphi} = 64/256 = 0.25 φ ~ = 64/256 = 0.25 (即二进制 0.01 0.01 0.01 )。
步骤 6 :连分数展开。
0.25 = [ 0 ; 4 ] 0.25 = [0; 4] 0.25 = [ 0 ; 4 ] → r = 4 r = 4 r = 4 。
步骤 7 :验证与分解。
a r / 2 m o d N = 7 2 m o d 15 = 49 m o d 15 = 4 a^{r/2} \bmod N = 7^2 \bmod 15 = 49 \bmod 15 = 4 a r /2 mod N = 7 2 mod 15 = 49 mod 15 = 4 。
gcd ( 7 2 − 1 , 15 ) = gcd ( 48 , 15 ) = 3 \gcd(7^2 - 1, 15) = \gcd(48, 15) = 3 g cd( 7 2 − 1 , 15 ) = g cd( 48 , 15 ) = 3 ✓
gcd ( 7 2 + 1 , 15 ) = gcd ( 50 , 15 ) = 5 \gcd(7^2 + 1, 15) = \gcd(50, 15) = 5 g cd( 7 2 + 1 , 15 ) = g cd( 50 , 15 ) = 5 ✓
可能的历史差异 :注意这里用 a = 7 a=7 a = 7 。在实际的量子实验中(如 Martin-López et al. 2012 的光量子实现),通常使用更简单的 a = 11 a=11 a = 11 (因为 11 2 m o d 15 = 121 m o d 15 = 1 11^2 \bmod 15 = 121 \bmod 15 = 1 1 1 2 mod 15 = 121 mod 15 = 1 ,周期 r = 2 r=2 r = 2 ),或 a = 4 a=4 a = 4 (周期 r = 2 r=2 r = 2 )。周期 r = 2 r=2 r = 2 的情况更简单,因为只需要受控模乘 j = 0 j=0 j = 0 的一层操作。
5.6 复杂度分析与资源估算
量子门复杂度
子程序 门复杂度 说明 模指数运算 O ( L 3 ) O(L^3) O ( L 3 ) L 为比特数,使用经典模乘+量子受控操作 QFT / QFT† O ( L 2 ) O(L^2) O ( L 2 ) m = 2L 比特的 QFT 总复杂度 O ( L 3 ) O(L^3) O ( L 3 ) = O ( ( log N ) 3 ) O((\log N)^3) O (( log N ) 3 )
总量子门数估算 (以 RSA-2048 为例,L = 2048 L=2048 L = 2048 ):
模指数运算:约 2048 3 ≈ 8.6 × 10 9 2048^3 \approx 8.6 \times 10^9 204 8 3 ≈ 8.6 × 1 0 9 个基本门
辅助比特:约 4000 4000 4000 个
所需物理量子比特(考虑纠错):数百万个
经典 vs 量子复杂度总表
操作 经典复杂度 量子复杂度 加速 整数因子分解 exp ( O ( ( log N ) 1 / 3 ( log log N ) 2 / 3 ) ) \exp(O((\log N)^{1/3}(\log\log N)^{2/3})) exp ( O (( log N ) 1/3 ( log log N ) 2/3 )) O ( ( log N ) 3 ) O((\log N)^3) O (( log N ) 3 ) 指数 离散对数 exp ( O ( ( log p ) 1 / 3 ( log log p ) 2 / 3 ) ) \exp(O((\log p)^{1/3}(\log\log p)^{2/3})) exp ( O (( log p ) 1/3 ( log log p ) 2/3 )) O ( ( log p ) 3 ) O((\log p)^3) O (( log p ) 3 ) 指数 椭圆曲线离散对数 O ( exp ( log p ) 1 / 3 ( log log p ) 2 / 3 ) O(\exp(\log p)^{1/3}(\log\log p)^{2/3}) O ( exp ( log p ) 1/3 ( log log p ) 2/3 ) O ( ( log p ) 3 ) O((\log p)^3) O (( log p ) 3 ) 指数(打破 ECC)
资源估算参考 :
要分解的数 比特数 经典 GNFS 时间 量子门数 量子时间估测* 15 4 即时 ~10³ 微秒 21 5 即时 ~10⁴ 微秒 143 8 微秒 ~10⁶ 毫秒 RSA-512 512 ~10⁴ 年 ~10¹⁰ 小时 RSA-1024 1024 ~10⁶ 年 ~10¹¹ 天 RSA-2048 2048 ~10¹¹ 年 ~10¹² 年
*量子时间估测基于 1 MHz 的物理门率,非常理想化。实际工程中还需考虑纠错开销(约 10³–10⁴ 倍资源增加)。
5.7 Shor 算法对 RSA 的威胁分析
短期(<10 年) :不构成威胁。需要数百万高质量物理量子比特,远超当前水平。
中期(10-20 年) :可能威胁 RSA-1024。需要约 100 万物理量子比特,纠错门保真度 > 99.9%。
长期(20-30 年) :威胁所有 RSA 密钥长度。NIST 已经推进 PQC(后量子密码)标准化,FIPS 203/204/205 已于 2024 年发布。
量子比特资源 :Gidney & Ekerå (2021) 的优化方案表明,分解 RSA-2048 需要约 2,000 个逻辑量子比特和约 2,000 万个物理量子比特门,运行时间约 8 小时。这比之前的估算(需要 10-100 倍资源)要乐观得多,但工程实现仍然面临巨大挑战。
6. 算法复杂度对比总表
算法 问题 经典复杂度 量子复杂度 加速类型 实际应用 Deutsch-Jozsa 常数/平衡判定 Θ ( 2 n ) \Theta(2^n) Θ ( 2 n ) O ( n ) O(n) O ( n ) 指数 教学 Bernstein-Vazirani 隐藏比特串 Θ ( n ) \Theta(n) Θ ( n ) O ( 1 ) O(1) O ( 1 ) 线性 教学 Simon 隐藏周期(Z 2 n \mathbb{Z}_2^n Z 2 n ) Θ ( 2 n / 2 ) \Theta(2^{n/2}) Θ ( 2 n /2 ) O ( n ) O(n) O ( n ) 指数 教学,启发了 Shor Grover 无结构搜索 Θ ( N ) \Theta(N) Θ ( N ) O ( N ) O(\sqrt{N}) O ( N ) 二次 数据库搜索、优化 Shor 整数因子分解 亚指数 O ( ( log N ) 3 ) O((\log N)^3) O (( log N ) 3 ) 指数 破解 RSA
加速类型说明 :
指数加速 :量子比经典快指数级(问题规模翻倍时优势远超常数倍)
二次加速 :量子比经典快平方根级别
线性加速 :量子比经典快常数倍
7. 参考文献与延伸阅读
原始论文
Deutsch, D. & Jozsa, R. (1992). “Rapid solution of problems by quantum computation”. Proceedings of the Royal Society A , 439(1907), 553–558.
Bernstein, E. & Vazirani, U. (1997). “Quantum complexity theory”. SIAM Journal on Computing , 26(5), 1411–1473.
Simon, D. R. (1997). “On the power of quantum computation”. SIAM Journal on Computing , 26(5), 1474–1483.
Grover, L. K. (1996). “A fast quantum mechanical algorithm for database search”. Proceedings of STOC 1996 , 212–219.
Shor, P. W. (1997). “Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer”. SIAM Journal on Computing , 26(5), 1484–1509.
Bennett, C. H., Bernstein, E., Brassard, G., & Vazirani, U. (1997). “Strengths and weaknesses of quantum computing”. SIAM Journal on Computing , 26(5), 1510–1523. (BBBV 最优性证明)
教材与综述
Nielsen, M. A. & Chuang, I. L. (2010). Quantum Computation and Quantum Information: 10th Anniversary Edition . Cambridge University Press. (第 6 章: 量子搜索算法; 第 5 章: QFT 与 Shor 算法)
Kaye, P., Laflamme, R., & Mosca, M. (2007). An Introduction to Quantum Computing . Oxford University Press.
Mermin, N. D. (2007). Quantum Computer Science: An Introduction . Cambridge University Press.
Jozsa, R. (1997). “Quantum algorithms and the Fourier transform”. Proceedings of the Royal Society A , 454(1969), 323–337.
专题深入
Grover, L. K. (1998). “Quantum computers can search arbitrarily large databases by a single query”. Physical Review Letters , 79(23), 4709.
Boyer, M., Brassard, G., Høyer, P., & Tapp, A. (1998). “Tight bounds on quantum searching”. Fortschritte der Physik , 46(4-5), 493–506.
Brassard, G., Høyer, P., Mosca, M., & Tapp, A. (2002). “Quantum amplitude amplification and estimation”. Contemporary Mathematics , 305, 53–74. (Grover 的推广)
Kitaev, A. Y. (1995). “Quantum measurements and the Abelian stabilizer problem”. arXiv:quant-ph/9511026. (HSP 框架)
Gidney, C. & Ekerå, M. (2021). “How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits”. Quantum , 5, 433. (资源优化里程碑)
Beauregard, S. (2003). “Circuit for Shor’s algorithm using 2n+3 qubits”. Quantum Information and Computation , 3(2), 175–185.
Martin-López, E. et al. (2012). “Experimental realization of Shor’s quantum factoring algorithm using qubit recycling”. Nature Photonics , 6, 773–776. (首次完整演示 Shor 分解 15)
本教程内部参考
Part 1.8: 离散傅里叶变换(DFT)的数学形式
Part 5.1: QFT 电路的详细构造(受控相位门、级联结构)
Part 5.2: 量子相位估计(QPE)算法——Shor 算法的量子引擎
文档版本 :v1.0
最后更新 :2026-06-03
关联教程 :量子计算前置教程——从第一性原理出发 (Part 3.6, Part 5.1, Part 5.2)
编写原则 :标准量子计算记法,与教程 Part 1–3 的数学物理基础一致