量子态制备详解:从门电路到 Shadow 态制备


量子态制备(Quantum State Preparation, QSP)是量子计算中最基础的原语之一:将经典数据 $\mathbf{p} = (p_0, p_1, \ldots, p_{N-1})$($N = 2^n$)编码为量子态 $|\psi\rangle = \sum_{j=0}^{N-1} \sqrt{p_j} |j\rangle$。它是 HHL、量子机器学习、量子化学等几乎所有量子算法的”输入端”。本文系统介绍通用态制备、稀疏态制备、特定分布态制备、基于 QRAM 的方案,以及近年来 PRL 上的最优深度方案。

问题定义

量子态制备问题:给定经典描述的向量 $\mathbf{v} = (v_0, v_1, \ldots, v_{N-1}) \in \mathbb{C}^N$($N = 2^n$),构造量子电路 $U$ 使得:

$$U|0\rangle^{\otimes n} = |\psi\rangle = \frac{1}{\|\mathbf{v}\|} \sum_{j=0}^{N-1} v_j |j\rangle$$

核心挑战

  • 经典数据有 $N$ 个分量,量子电路只有 $O(\text{poly}(n))$ 参数——信息压缩必须在门结构中实现
  • 任意态制备需要 $\Omega(N)$ 门(信息论下界)
  • 对特定结构的态(稀疏、可分解、低秩),可以显著降低代价

方法一:通用量子态制备(基于门)

1.1 递归方法(Recursive Binary Splitting)

思想:反复将振幅二等分,用受控旋转实现”按比例分配”。

算法

  1. 对量子比特 1,施加 $R_y(\theta_1)$ 使得 $|0\rangle \to \sqrt{p_0 + p_1 + \cdots + p_{N/2-1}} |0\rangle + \sqrt{p_{N/2} + \cdots + p_{N-1}} |1\rangle$
  2. 对量子比特 2(受控于量子比特 1 的状态),在”左半”和”右半”子空间中分别施加 $R_y$,进一步二分
  3. 递归直到所有 $n$ 个量子比特都被处理

门数:$O(N)$ 个 CNOT + 单比特旋转($N = 2^n$)。

深度:$O(n \cdot N / 2)$(并行化后)。

优点:构造直观,易于实现。

缺点:$O(N)$ 门数对大 $N$ 不可行。

1.2 基于多控旋转的方案

Shende, Bullock, Markov (2006) 给出了更紧的门数分析:

定理:任意 $n$-量子比特纯态可用 $O(2^n)$ 个 CNOT 门制备,且此界是紧的。

构造:用 Gray 码序遍历基态,每步只改变一个比特,交替施加多控 $R_y$ 和多控相位旋转。

门数:$2^n - 2$ 个 CNOT(下界),加上 $2^{n+1} - 2$ 个单比特旋转。

1.3 基于 QR 分解的方案

Plesch & Brukner (2011)

将 $|\psi\rangle$ 的系数向量做 QR 分解,将酉变换 $U$ 分解为一系列 Givens 旋转——每个 Givens 旋转对应一个两量子比特门。

门数:$O(2^n)$ 个两量子比特门(理论最优)。

1.4 代码示例(uniqc 实现)

类型:完整算法演示。下面用 uniqc 实现 §1.1 描述的递归二分方案,为 3 量子比特任意概率分布($N = 8$ 个非零振幅)构造制备电路,并验证 $|\langle\psi_{\text{target}} | \psi_{\text{prepared}}\rangle|^2 = 1$。

import numpy as np
from uniqc import Circuit

def prepare_state_circuit(probs):
    """递归二分:从最高位向最低位逐层施加(多控)RY,让每层概率质量按比例分裂。"""
    n = int(np.log2(len(probs)))
    probs = probs / probs.sum()
    circ = Circuit()
    circ.identity(n - 1)  # 强制 n 个 qubit register

    for layer in range(n):
        target_q = n - 1 - layer
        n_controls = layer
        control_qubits = list(range(n - 1, n - 1 - n_controls, -1))
        for prefix in range(pow(2, n_controls)):
            mass_zero = mass_one = 0.0
            for full_j in range(pow(2, n)):
                if (full_j >> (target_q + 1)) != prefix:
                    continue
                if (full_j >> target_q) & 1:
                    mass_one += probs[full_j]
                else:
                    mass_zero += probs[full_j]
            total = mass_zero + mass_one
            if total < 1e-15:
                continue
            theta = 2 * np.arcsin(np.sqrt(min(mass_one / total, 1.0)))
            # 反向控制:用 X 包夹将"控制=0"翻成"控制=1"
            flip = [control_qubits[i] for i in range(n_controls)
                    if not ((prefix >> (n_controls - 1 - i)) & 1)]
            for q in flip:
                circ.x(q)
            if n_controls == 0:
                circ.ry(target_q, theta)
            elif n_controls == 1:
                circ.cry(control_qubits[0], target_q, theta)
            else:
                circ.set_control(control_qubits)
                circ.ry(target_q, theta)
                circ.unset_control()
            for q in flip:
                circ.x(q)
    return circ, n

# 目标:8 振幅非平凡分布
p = np.array([0.08, 0.12, 0.05, 0.20, 0.15, 0.10, 0.18, 0.12])
p = p / p.sum()
target_amp = np.sqrt(p).astype(complex)

circ, n = prepare_state_circuit(p)
U = circ.get_matrix()
psi0 = np.zeros(pow(2, n), dtype=complex); psi0[0] = 1.0
psi = U @ psi0

fidelity = abs(target_amp.conj() @ psi) ** 2
print(f'|⟨ψ_target | ψ_prepared⟩|² ={fidelity:.10f}')

print('\n|⟨j|ψ_prepared⟩|² vs 目标 p_j:')
for j in range(pow(2, n)):
    print(f'  j={j}:{pow(abs(psi[j]), 2):.6f}vs{p[j]:.6f}')

运行结果:

|⟨ψ_target | ψ_prepared⟩|² = 1.0000000000

|⟨j|ψ_prepared⟩|² vs 目标 p_j:
  j=0: 0.080000 vs 0.080000
  j=1: 0.120000 vs 0.120000
  j=2: 0.050000 vs 0.050000
  j=3: 0.200000 vs 0.200000
  j=4: 0.150000 vs 0.150000
  j=5: 0.100000 vs 0.100000
  j=6: 0.180000 vs 0.180000
  j=7: 0.120000 vs 0.120000

电路总指令数: 18(n=3,N=8)

观察

  1. 验证了递归二分方法可以精确(机器精度内)地制备任意离散概率分布对应的量子态;
  2. $n = 3$、$N = 8$ 时电路约 $18$ 条指令——正好处于 $\Theta(N)$ 复杂度区间,与文中”通用态需要 $\Omega(N)$ 门”的下界一致;
  3. 若把 $n$ 推到 $20$($N = 10^6$),通用方法所需的门数将超过百万——这正是 Zhang-Li-Yuan PRL 2022 等”最优深度方案”以及 §2 稀疏态制备所要解决的核心痛点。

复杂度总结

方法 CNOT 门数 深度 辅助比特
递归二分 $O(N)$ $O(nN)$ 0
Shende-Bullock-Mov $O(N)$ $O(N)$ 0
QR 分解(Givens) $O(N)$ $O(N)$ 0
理论下界 $\Omega(N)$ $\Omega(N)$ 0

关键结论:通用态制备的门数下界是 $\Omega(N)$——无法避免。以下方法针对特定结构降低代价。

方法二:稀疏量子态制备

2.1 定义

$s$-稀疏量子态 $|\psi\rangle = \sum_{j \in S} \alpha_j |j\rangle$,$|S| = s \ll N$。即只有 $s$ 个非零振幅。

目标:以 $O(s \cdot \text{poly}(n))$ 门制备 $|\psi\rangle$。

2.2 Grover-Rudolph 方法(2002)

Grover 和 Rudolph (2002) 提出了用于概率分布制备的递归方法,是稀疏态制备的经典方案。

思想:利用 $|\psi\rangle$ 的结构,递归地将概率质量分配到各子空间。

算法(对 $s$-稀疏态):

  1. 计算 $S$ 中各元素在二进制表示下的前缀结构
  2. 对每个”分支点”(前缀决定进入左/右子空间的位置),计算条件概率
  3. 用受控 $R_y$ 旋转实现按比例分配
  4. 递归处理各子空间

门数:$O(s \cdot n)$(每个非零项贡献 $O(n)$ 个门)。

辅助比特:0。

优点:不需要辅助比特,构造简单。

缺点:需要经典预处理(计算条件概率),对动态更新不友好。

2.3 基于 Oracle 的稀疏态制备

思想:假设存在量子预言机 $O_S$ 能高效识别稀疏支撑 $S$,用 Grover 搜索找到 $S$ 中的元素。

算法

  1. 用 $O_S$ 在均匀叠加态中搜索 $S$ 中的元素
  2. 对每个找到的 $|j\rangle \in S$,用受控旋转设定振幅 $\alpha_j$
  3. 组合所有分支

门数:$O(s \cdot \sqrt{N/s} \cdot n)$(Grover 搜索),加上 $O(s \cdot n)$(振幅设定)。

2.4 最新进展:PRL 上的最优稀疏态制备

Zhang, Li, Yuan (PRL 129, 230504, 2022)

提出了最优电路深度的量子态制备方案,对任意 $n$-量子比特态实现了 $O(n)$ 深度(最优)。

核心思想:将态制备问题转化为”并行多控门”的调度问题,通过 Gray 码遍历和门合并技术,将深度从 $O(N)$ 压缩到 $O(n)$。

门数:$O(N)$(信息论下界),但深度最优 $O(n)$。

对稀疏态:若 $|\psi\rangle$ 有 $s$ 个非零振幅,深度为 $O(\log s \cdot n)$,门数 $O(s \cdot n)$。

应用

  • HHL 算法中 $\vec{b}$ 的制备:$O(n)$ 深度
  • 量子化学初态制备:$O(s \cdot n)$ 门

2.5 PRA 2024:简化稀疏态制备

Ramacciotti, Lefterovici & Rotundo (PRA 110, 032609, 2024)

改进了 Grover-Rudolph 方法,针对稀疏态提出更简单的量子算法:

  • 不需要辅助比特
  • 门数 $O(s \cdot n)$
  • 利用稀疏支撑的树形结构实现高效条件概率计算

方法三:特定分布的量子态制备

3.1 均匀分布态

$|U_N\rangle = \frac{1}{\sqrt{N}} \sum_{j=0}^{N-1} |j\rangle = |+\rangle^{\otimes n}$

门数:$n$ 个 Hadamard 门。

3.2 正态分布态

$|\mathcal{N}\rangle \propto \sum_j e^{-(j - \mu)^2 / 2\sigma^2} |j\rangle$

方法:利用 $e^{-x^2} \approx \cos(x/\sqrt{M})^M$(对大 $M$),可用 $O(M \cdot n)$ 个受控旋转近似。

改进方法(PRL 2022 思路):对离散化后的高斯函数,用稀疏态制备方法处理,门数 $O(n^2)$(利用高斯函数的指数衰减,有效稀疏度为 $O(n \log n)$)。

3.3 幂律分布态

$|\text{pow}\rangle \propto \sum_j j^{-\alpha} |j\rangle$

方法:用 Grover-Rudolph 递归,每一层计算条件概率 $p_{\text{left}}/p_{\text{right}}$。

门数:$O(n^2)$(每层 $O(n)$ 门,共 $n$ 层)。

3.4 Qiskit/MPS 方法

对低纠缠态(矩阵乘积态,MPS),利用 MPS 分解将 $n$-量子比特态分解为 $O(n \cdot \chi^2)$ 个两比特门($\chi$ 为键维度)。

门数:$O(n \cdot \chi^2)$,对低纠缠态 $\chi = O(1)$,门数 $O(n)$——指数改进。

方法四:基于 QRAM 的量子态制备

4.1 标准 QRAM 方案

若经典数据 $\mathbf{v}$ 存储在 QRAM 中,查询操作实现:

$$|j\rangle|0\rangle \to |j\rangle|v_j\rangle$$

态制备

  1. 制备均匀叠加 $\frac{1}{\sqrt{N}} \sum_j |j\rangle|0\rangle$
  2. 查询 QRAM:$\frac{1}{\sqrt{N}} \sum_j |j\rangle|v_j\rangle$
  3. 后选择(辅助量子比特投影到 $|v_j\rangle$ 的某个子空间)

代价:$O(\log N)$ 深度(QRAM 查询),但需要 $O(N)$ 存储量子比特。

4.2 CVO-QRAM(Conditional Value Oracle)

思想:不存储完整数据,只存储”值是否非零”的标志位,结合受控旋转实现振幅设定。

算法

  1. 用 CVO(条件值预言机)标识非零振幅的位置 $j \in S$
  2. 对每个 $j \in S$,用受控旋转将振幅设为 $\alpha_j = v_j / \|\mathbf{v}\|$
  3. 用幅度放大(Grover-like)放大所有非零分量

门数:$O(s \cdot n)$,$s$ 为非零分量数。

优点:避免了 QRAM 的 $O(N)$ 存储要求,只需 $O(s \cdot n)$ 量子比特和门。

4.3 QRAM 在量子化学中的应用

Sparse Quantum State Preparation for Strongly Correlated Systems (J. Phys. Chem. Lett., 2024)

将 CVO-QRAM 方法应用于强关联化学体系的基态制备,实验验证到 28 量子比特:

  • 使用 Efficient Symmetry-Preserving (ESP) Ansatz
  • 通过 CVO-QRAM 加速初态制备
  • 在 GPU 上模拟 $O(10^6)$ 参数的量子电路

方法五:PRL 2022 的最优深度方案(Zhang, Li, Yuan)

核心结果

定理(Zhang, Li, Yuan, PRL 129, 230504, 2022)

任意 $n$-量子比特纯态 $|\psi\rangle = \sum_{j=0}^{2^n-1} \alpha_j |j\rangle$ 可用深度 $O(n)$ 的量子电路制备。

门数:$O(2^n)$(信息论下界)。

深度:$O(n)$(理论最优)。

技术要点

1. Gray 码并行化

传统方法按 Gray 码序逐个处理基态,深度 $O(N)$。Zhang 等人发现:多个”独立的”多控门可以并行执行。

2. 门合并

相邻的两个多控门,若控制条件只差一个比特,可以合并为一个更深的门——但不增加总深度。

3. 分层调度

将所有门按”作用的量子比特层”分组,每组内的门并行执行。总深度等于层数 $= O(n)$。

对稀疏态的改进

对 $s$-稀疏态($s$ 个非零振幅),Zhang 的方法退化为:

  • 深度 $O(s + n)$
  • 门数 $O(s \cdot n)$
  • 辅助比特 0

这在 $s \ll N$ 时是指数级改进。

方法六:变分量子态制备(VQSP)

思想

将态制备问题转化为变分优化问题:

$$\min_{\vec{\theta}} \left\| |\psi(\vec{\theta})\rangle - |\psi_{\text{target}}\rangle \right\|^2$$

用参数化量子电路 $U(\vec{\theta})$ 近似目标态。

优势

  • 门数由参数化电路结构决定,不依赖于 $N$
  • 适用于 NISQ 设备

局限

  • 优化可能陷入局部最小值
  • Barren Plateaus 问题
  • 不保证精确制备

方法七:基于 QSVT 的态制备

思想

若 $|\psi\rangle = f(A)|0\rangle$($A$ 为某矩阵,$f$ 为某函数),用 QSVT 实现 $f(A)$ 的块编码,作用于 $|0\rangle$。

应用

  • Gibbs 态制备:$|\psi_\beta\rangle \propto e^{-\beta H/2} |0\rangle$
  • 基态制备:$|\psi_0\rangle \propto (I - H/E_0)^{-1} |0\rangle$

门数

$O(\text{deg}(f_{\text{approx}}) \cdot C_{U_A})$,其中 $C_{U_A}$ 为块编码代价。

复杂度总结

方法 门数 深度 辅助比特 适用场景
递归二分 $O(N)$ $O(nN)$ 0 通用
Shende-Bullock $O(N)$ $O(N)$ 0 通用
Zhang (PRL 2022) $O(N)$ $O(n)$ 0 通用(最优深度)
Grover-Rudolph $O(s \cdot n)$ $O(s \cdot n)$ 0 稀疏态
Ramacciotti et al. (PRA 2024) $O(s \cdot n)$ $O(s \cdot n)$ 0 稀疏态(简化)
CVO-QRAM $O(s \cdot n)$ $O(s \cdot n)$ $O(\log s)$ 稀疏态 + QRAM
MPS 分解 $O(n \cdot \chi^2)$ $O(n)$ 0 低纠缠态
变分方法 $O(p \cdot n)$ $O(D \cdot n)$ 0 近似制备

实验实现

年份 平台 规模 方法
2020 IBM 5 量子比特 递归二分
2022 超导 12 量子比特 Zhang 最优深度方案
2023 光量子 100+ 模式 压缩态制备
2024 GPU 模拟 28 量子比特 CVO-QRAM + ESP Ansatz

局限性

  1. 通用态制备不可避免 $O(N)$ 门:信息论下界,任何方案都无法突破
  2. 稀疏态需要已知支撑:若不知道哪些振幅非零,需要额外的搜索代价
  3. QRAM 的物理可行性存疑:参见 QRAM 教程
  4. 变分方法无法保证精确:对需要高精度的算法(如 QPE)不适用
  5. 噪声累积:$O(N)$ 门的噪声累积可能使结果不可用

总结

量子态制备的代价高度依赖于目标态的结构:通用态需要 $O(N)$ 门(不可避免),稀疏态只需 $O(s \cdot n)$ 门,低纠缠态可用 $O(n)$ 门。Zhang 等人 (PRL 2022) 的最优深度方案将任意态制备的深度压缩到 $O(n)$,是近年来理论上的重要突破。在实际应用中,应根据目标态的结构选择合适的制备方案。


参考文献:

  1. Grover, L., & Rudolph, T. (2002). Creating superpositions that correspond to efficiently integrable probability distributions. arXiv:quant-ph/0208112.
  2. Sanders, Y. R., et al. (2019). Black-box quantum state preparation without arithmetic. Physical Review Letters, 122(2), 020502.
  3. Zhang, X.-M., Li, T., & Yuan, X. (2022). Quantum state preparation with optimal circuit depth: Implementations and applications. Physical Review Letters, 129(23), 230504.
  4. Ramacciotti, D., Lefterovici, A.-I., & Rotundo, A. F. (2024). Simple quantum algorithm to efficiently prepare sparse states. Physical Review A, 110, 032609.
  5. Shende, V. V., Bullock, S. S., & Markov, I. L. (2006). Synthesis of quantum-logic circuits. IEEE TCAD, 25(6), 1000-1010.

返回目录:量子计算算法教程系列

声明:Zhaoyun's Quantum Lab|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 量子态制备详解:从门电路到 Shadow 态制备


With code, we create everything