块编码详解:量子线性代数的基础设施

块编码(Block Encoding)是量子计算中实现矩阵操作的基础原语。它的核心思想是:将一个(可能非酉的)矩阵 \(A\) 嵌入一个更大的酉算符 \(U_A\) 的"子块"中,从而在量子电路上实现对 \(A\) 的操作。块编码是 QSVT、Qubitization、量子线性代数等现代量子算法的基石。

问题背景

量子计算机只能执行酉操作(量子门),但科学计算中需要处理的矩阵往往不是酉的:它们可能不是方阵、不满足 \(U^\dagger U = I\)、甚至不是 Hermitian 的。如何在量子电路上"执行"一个非酉矩阵?

朴素方案的失败

  • 直接将 \(A\) 编码为量子门:\(A\) 不是酉算符,不能作为量子门;

  • 先计算 \(A\) 再酉化:计算 \(A\) 本身就需要 \(O(N^2)\) 经典资源;

  • 用 QPE 提取特征值再构造:仅限可对角化且只需谱信息的场景。

块编码方案:构造一个更大的酉算符 \(U_A\),使其"子块"恰好等于 \(A\)(乘以某个缩放因子)。

数学定义

块编码的定义

定义:矩阵 \(A \in \mathbb{C}^{N \times N}\)\(N = 2^n\))的 \((\alpha, m, \varepsilon)\)-块编码\((m+n)\)-量子比特酉算符 \(U_A\),满足:

\[\left\| A - \alpha \left( \langle 0|^{\otimes m} \otimes I_{2^n} \right) U_A \left( |0\rangle^{\otimes m} \otimes I_{2^n} \right) \right\| \le \varepsilon\]

其中:

  • \(\alpha > 0\)归一化常数。由三角不等式与 \(\|(\langle 0|^{\otimes m} \otimes I)U_A(|0\rangle^{\otimes m} \otimes I)\| \le \|U_A\| = 1\) 可得 \(\|A\| \le \alpha + \varepsilon\),因此 \(\alpha\) 必须至少与 \(\|A\|\) 同阶;

  • \(m\)辅助量子比特数

  • \(\varepsilon\)近似误差

  • \(\langle 0|^{\otimes m}\) 表示在辅助寄存器上投影到 \(|0\rangle^{\otimes m}\)

几何直觉\(U_A\)\((m+n)\)-量子比特空间上的酉矩阵。将 Hilbert 空间按辅助寄存器是否处于 \(|0\rangle^{\otimes m}\) 分块,则 \(U_A\) 的分块矩阵形式为

\[\begin{split}U_A = \begin{pmatrix} A/\alpha + O(\varepsilon) & * \\ * & * \end{pmatrix},\end{split}\]

即左上角的 \(N \times N\) 块近似等于 \(A/\alpha\),其余块(记作 \(*\))无约束,只要求整体酉性。

广义块编码

对非方阵 \(A \in \mathbb{C}^{M \times N}\)\(M = 2^m\)\(N = 2^n\)\(m \ne n\)),我们先将其零填充为方阵

\[\begin{split}\bar{A} = \begin{pmatrix} A & 0 \\ 0 & 0 \end{pmatrix} \in \mathbb{C}^{2^{\max(m,n)} \times 2^{\max(m,n)}},\end{split}\]

再按方阵定义构造 \(\bar A\) 的块编码,它作用在 \(m_a + \max(m, n)\) 个量子比特上;在其"左上块"处取到的就是 \(A/\alpha\)。等价地,也可以把块编码定义为连接两个同维数 Hilbert 空间的酉算子,本文一律采用方阵零填充的写法。

块编码的构造方法

方法一:LCU(线性组合酉操作)

适用场景\(A\) 可表示为酉矩阵的线性组合 \(A = \sum_{k=1}^{L} \alpha_k U_k\)

这是最通用的块编码构造方法。

构造

  1. PREP 操作:在辅助寄存器上制备振幅态 $\(\text{PREP}\,|0\rangle^{\otimes m_a} = |\mathcal{A}\rangle = \frac{1}{\sqrt{\lambda}} \sum_{k=1}^{L} \sqrt{|\alpha_k|}\, |k\rangle,\)\( 其中 \)\lambda := |\vec{\alpha}|_1 = \sum_k |\alpha_k|\(,\)m_a = \lceil\log_2 L\rceil\(。该态是归一化的,因为平方振幅之和 \)\sum_k |\alpha_k| / \lambda = 1$。

  2. SELECT 操作:受控酉选择 $\(\text{SELECT} = \sum_{k=1}^{L} |k\rangle\langle k| \otimes \text{sgn}(\alpha_k)\, U_k,\)\( 其中符号 \)\mathrm{sgn}(\alpha_k) = \alpha_k/|\alpha_k|$ 已吸收进受控酉中。

  3. 组合\(U_A = \text{PREP}^\dagger \cdot \text{SELECT} \cdot \text{PREP}\)

验证:我们需要计算 \((\langle 0|^{\otimes m_a} \otimes I)\, U_A\, (|0\rangle^{\otimes m_a} \otimes I)\)。由于 \(\mathrm{PREP}|0\rangle^{\otimes m_a} = |\mathcal A\rangle\)\(\langle 0|^{\otimes m_a}\mathrm{PREP}^\dagger = \langle\mathcal A|\),插入 \(\mathrm{PREP}\mathrm{PREP}^\dagger = I\)

\[(\langle 0|^{\otimes m_a} \otimes I)\, U_A\, (|0\rangle^{\otimes m_a} \otimes I) = (\langle\mathcal A| \otimes I)\, \text{SELECT}\, (|\mathcal A\rangle \otimes I).\]

再利用 \(\langle\mathcal A|k\rangle = \sqrt{|\alpha_k|/\lambda}\),把 SELECT 的谱分解逐项代入:

\[(\langle\mathcal A| \otimes I)\, \text{SELECT}\, (|\mathcal A\rangle \otimes I) = \sum_{k=1}^{L} \sqrt{\frac{|\alpha_k|}{\lambda}}\cdot\text{sgn}(\alpha_k)\cdot\sqrt{\frac{|\alpha_k|}{\lambda}}\; U_k = \frac{1}{\lambda}\sum_{k=1}^{L} \alpha_k U_k = \frac{A}{\lambda}.\]

因此 \(U_A\)\(A\)\((\lambda, m_a, 0)\)-块编码,即 \(\alpha = \lambda = \|\vec{\alpha}\|_1\)\(m = \lceil\log_2 L\rceil\)

门复杂度

操作

门数

PREP

\(O(\text{poly}(m_a))\)(取决于 \(\vec{\alpha}\) 的结构)

SELECT

\(O(L \cdot C_U)\)\(C_U\) 为单个 \(U_k\) 的门数)

\(U_A\) 总计

\(O(L \cdot C_U + \text{poly}(m_a))\)

方法二:Pauli 分解

适用场景\(A = \sum_{P \in \mathcal{P}} \alpha_P P\)(泡利字符串线性组合)。

泡利字符串是幺模酉算符,因此这是 LCU 的特例:\(\lambda = \sum_P |\alpha_P|\)

SELECT 的实现

\[\text{SELECT} = \sum_{P} |P\rangle\langle P| \otimes P\]

每个泡利字符串 \(P = \sigma_1 \otimes \sigma_2 \otimes \cdots \otimes \sigma_n\) 可由 \(O(n)\) 个单比特门与 CNOT 实现(受控版本只需常数因子额外开销)。

PREP 的实现:制备 \(|\mathcal{A}\rangle = \frac{1}{\sqrt{\lambda}} \sum_P \sqrt{|\alpha_P|} |P\rangle\),通常用均匀叠加态加受控相位旋转实现。

复杂度

\[C_{U_A} = O(L \cdot n + \text{poly}(m_a))\]

其中 \(L\) 为非零泡利字符串项数,\(m_a = \lceil \log_2 L\rceil\)

方法三:直接构造(对角矩阵)

对某些结构化矩阵,可以找到更高效的块编码。

例子\(A = D\)(对角矩阵),\(D = \text{diag}(d_1, \ldots, d_N)\),且 \(|d_j| \le \alpha\)

\(m_a = 1\) 个辅助比特,取

\[U_A = \sum_j |j\rangle\langle j| \otimes R_y(2\arccos(d_j/\alpha)),\]

其中 \(R_y(2\theta) = \begin{pmatrix}\cos\theta & -\sin\theta\\ \sin\theta & \cos\theta\end{pmatrix}\)。验证左上块:由于 \(\langle 0|R_y(2\theta)|0\rangle = \cos\theta\),代入 \(\theta = \arccos(d_j/\alpha)\)

\[(\langle 0| \otimes I)\, U_A\, (|0\rangle \otimes I) = \sum_j |j\rangle\langle j| \cdot \frac{d_j}{\alpha} = \frac{D}{\alpha}.\]

门数为 \(O(N)\),但 \(N = 2^n\)\(n\) 指数增长,因此该方法仅对小系统或具有结构(如稀疏、平滑)的对角矩阵实用。

方法四:量子随机存取存储器(QRAM)

对任意 \(A\),若有 QRAM 可以高效访问矩阵元素,则可构造 \(O(\text{poly}(n))\) 复杂度的块编码。但 QRAM 本身的物理实现是重大技术挑战(详见 QRAM 教程)。

块编码的基本性质

性质一:缩放

\(U_A\)\(A\)\((\alpha, m, \varepsilon)\)-块编码,则同一个酉算符 \(U_A\) 可以视为 \(\beta A\)\((\beta\alpha, m, \beta\varepsilon)\)-块编码(\(\beta > 0\))。

验证:\((\beta A)/(\beta\alpha) = A/\alpha\),左上块不变;误差按范数放大 \(\beta\) 倍,即 \(\|\beta A - \beta\alpha\,(\langle0|\otimes I)U_A(|0\rangle\otimes I)\| = \beta\,\|A - \alpha(\langle0|\otimes I)U_A(|0\rangle\otimes I)\| \le \beta\varepsilon\)。注意我们不能把块编码乘以 \(\beta\),因为 \(\beta U_A\)\(\beta \ne 1\))不是酉算符;改变的是"归一化常数"这一标注方式,而非电路本身。

性质二:乘积

\(U_A\)\(A\)\((\alpha_A, m_A, \varepsilon_A)\)-块编码,\(U_B\)\(B\)\((\alpha_B, m_B, \varepsilon_B)\)-块编码,且两者使用互不重叠的辅助寄存器,则 \(U_B \cdot U_A\)\(BA\)\((\alpha_A \alpha_B,\ m_A + m_B,\ \alpha_B \varepsilon_A + \alpha_A \varepsilon_B + \varepsilon_A \varepsilon_B)\)-块编码。

证明:记 \(\Pi_A = |0\rangle\langle0|^{\otimes m_A}\)\(\Pi_B = |0\rangle\langle0|^{\otimes m_B}\)(分别作用于两个辅助寄存器),\(\Pi = \Pi_B\Pi_A\),并记 \(\tilde A = (\langle0|^{\otimes m_A}\otimes I)U_A(|0\rangle^{\otimes m_A}\otimes I)\)\(\tilde B\) 同理。由于 \(U_A\) 不触碰 B-辅助寄存器,\(\Pi_B\)\(U_A\) 对易,且 \(\Pi_B |0\rangle^{\otimes m_B} = |0\rangle^{\otimes m_B}\)\(\langle0|^{\otimes m_B}\Pi_B = \langle0|^{\otimes m_B}\)。于是辅助投影可以"穿过"互不触碰的酉算符逐层剥离:

\[(\langle 0_B 0_A| \otimes I)\, U_B U_A\, (|0_B 0_A\rangle \otimes I) = \tilde B \cdot \tilde A,\]

其中交叉项(例如 \(\Pi_0^B U_B (I - \Pi_0^B)\)\((I-\Pi_0^B)U_A\Pi_0^B\) 型乘积)恒为零,因为右端因子中 \(\Pi_B\) 与非投影部分正交。接着估计误差:由 \(\|\tilde B\| \le 1\)\(\|A\| \le \alpha_A + \varepsilon_A\) 与分解

\[\alpha_B\tilde B \cdot \alpha_A\tilde A - BA = \alpha_B\tilde B\,(\alpha_A \tilde A - A) + (\alpha_B\tilde B - B)\,A,\]

取范数得 \(\|\alpha_A\alpha_B\, \tilde B\tilde A - BA\| \le \alpha_B\varepsilon_A + \varepsilon_B(\alpha_A + \varepsilon_A)\)\(\blacksquare\)

注意:若 \(U_A, U_B\) 共用同一个辅助寄存器,则上述交叉项一般不为零,\(U_BU_A\) 的左上块是 \(\tilde B\tilde A\) 加上一个无法控制的 \(*\)-块乘积,结论不成立。这正是需要独立辅助寄存器的原因。

性质三:线性组合

\(U_A\)\(U_B\) 分别是 \(A\)\(B\) 的块编码,则 \(cU_A + dU_B\)\(c,d\in\mathbb C\))一般不是酉算符,因此不能直接作为块编码。正确的做法是再引入一个辅助比特做受控选择:

引理(线性组合):在性质二的记号下,对任意 \(c, d \in \mathbb{C}\),存在 \(cA + dB\)\(\big(|c|\alpha_A + |d|\alpha_B,\ 1 + m_A + m_B,\ |c|\varepsilon_A + |d|\varepsilon_B\big)\)-块编码。

验证:新增一个辅助比特并制备叠加态 \(a_0|0\rangle + a_1|1\rangle\),其中取

\[a_0 = \frac{c\,\alpha_A}{|c|\alpha_A + |d|\alpha_B},\qquad a_1 = \frac{d\,\alpha_B}{|c|\alpha_A + |d|\alpha_B}\]

(注意 \(|a_0| + |a_1| = 1\),故该两分量叠加态可以用一个单比特旋转制备)。以该比特为控制执行"控 0 施加 \(U_A\)、控 1 施加 \(U_B\)"的受控酉 \(\mathcal U = |0\rangle\langle0|\otimes U_A + |1\rangle\langle1|\otimes U_B\)。把辅助投影 \(\langle 0|\otimes\langle0_{m_A}0_{m_B}|\) 作用到 \(\mathcal U\) 上,受控结构使两个分支分别贡献 \(a_0\tilde A\)\(a_1\tilde B\),于是左上块为

\[a_0\tilde A + a_1\tilde B = \frac{cA + dB}{|c|\alpha_A + |d|\alpha_B} + \frac{c\,O(\varepsilon_A) + d\,O(\varepsilon_B)}{|c|\alpha_A + |d|\alpha_B},\]

误差项按三角不等式不超过 \((|c|\varepsilon_A + |d|\varepsilon_B)/(|c|\alpha_A + |d|\alpha_B)\),换算回矩阵范数即得所证。\(\blacksquare\)

性质四:伴随

\(U_A^\dagger\)\(A^\dagger\)\((\alpha, m, \varepsilon)\)-块编码。

验证:对块编码不等式取伴随,注意 \((\langle0|\otimes I)U_A^\dagger(|0\rangle\otimes I) = \big[(\langle0|\otimes I)U_A(|0\rangle\otimes I)\big]^\dagger\),范数在取伴随下不变。

块编码与量子线性代数

块编码的真正威力在于它为量子线性代数提供了统一接口。

矩阵函数:QSVT

给定 \(A\) 的块编码 \(U_A\),QSVT 可以实现 \(f(A)\) 的块编码,深度 \(O(\deg(f_{\text{approx}}))\),其中 \(f_{\text{approx}}\)\(f\) 的多项式逼近。可实现的 \(f_{\text{approx}}\) 需满足幅值约束 \(|f_{\text{approx}}(x)| \le 1\)\(x \in [-1,1]\),必要时先做归一化缩放)并具有确定的奇偶性;一般函数可拆为奇部与偶部分别实现后再线性组合。

常用矩阵函数(设已归一化到 \([-1,1]\) 上):

函数

多项式次数 \(d\)

应用

\(A^{-1}\)

\(O(\kappa \log(\kappa/\varepsilon))\)

线性方程组

\(e^{-iAt}\)

\(O(t + \log(1/\varepsilon))\)

时间演化

\(\text{sign}(A)\)

\(O(\kappa \log(1/\varepsilon))\)

奇异值变换

\(\Pi_{\le 0}(A)\)

\(O(\kappa \log(1/\varepsilon))\)

投影

\(e^{-\beta A}\)

\(O(\beta + \log(1/\varepsilon))\)

Gibbs 态

其中 \(\kappa\) 为条件数。各次数的来源见 QSP 教程的"逼近精度"一节。

量子行走:Qubitization

由 LCU 块编码可以构造量子行走酉算符

\[W = \text{SELECT}\cdot\big(2|\mathcal{A}\rangle\langle\mathcal{A}|\otimes I - I\big),\]

其特征相位编码了 \(A\) 的奇异值信息,详见 Qubitization 教程。

量子相位估计(QPE)

对块编码或行走算符执行 QPE,可以读出 \(A\) 的奇异值或特征值(精度 \(\delta\) 需要 \(O(1/\delta)\) 次调用)。

块编码在具体算法中的应用

应用一:HHL 线性方程组求解

给定方程 \(Ax = b\)\(A\) 的块编码 \(U_A\)(归一化常数 \(\alpha\)、条件数 \(\kappa\))。

步骤

  1. 用 QSVT 构造多项式 \(P\)\(|P(x)| \le 1\)\(P(x) \approx 1/(\kappa x)\)\(x \in [1/\kappa, 1]\),次数 \(d = O(\kappa \log(\kappa/\varepsilon))\)),将 QSP 相位插入量子行走,得到 \(P(A/\alpha)\) 的块编码,也就是缩放后 \(A^{-1}\) 的块编码;

  2. 作用到 \(|b\rangle\) 上,得到近似 \(\propto A^{-1}|b\rangle = |x\rangle\) 的态(成功幅度由归一化因子决定,可用振幅放大补足);

  3. 测量提取 \(\langle x|M|x\rangle\) 等汇总信息。

门数\(O(\kappa \log(\kappa/\varepsilon) \cdot C_{U_A})\)——对 \(\kappa\) 线性依赖,优于原始 HHL 的 \(O(\kappa^2)\)

应用二:哈密顿量模拟

\(H = \sum_k \alpha_k H_k\) 的 LCU 块编码归一化常数为 \(\lambda = \|\vec{\alpha}\|_1\),单次调用代价 \(O(L \cdot n + C_{\text{PREP}})\)

\(e^{-iHt}\) 的 QSVT 实现需要逼近整函数 \(x \mapsto e^{-i(\lambda t)x}\),次数 \(d = O(\lambda t + \log(1/\varepsilon))\);当存在归一化常数更紧的块编码(\(\alpha\) 接近 \(\|H\|\))时,相应地有 \(d = O(\alpha t + \log(1/\varepsilon))\)

应用三:量子 Gibbs 态制备

目标:制备 \(\rho_\beta = e^{-\beta H}/Z\)\(Z = \mathrm{tr}(e^{-\beta H})\)

  1. 构造 \(H\) 的块编码 \(U_H\)(归一化 \(\alpha \ge \|H\|\));

  2. 用 QSVT 实现 \(e^{-\beta H/2}\) 的块编码,所需次数为 \(O(\beta\alpha + \log(1/\varepsilon))\)

  3. 作用到最大混合态或均匀叠加态上并做后选择,得到温度 \(\beta\) 的 Gibbs 态。

应用四:奇异值阈值

给定 \(A\),保留奇异值大于阈值 \(\tau\) 的分量,将其余置零:

\[A_\tau = \sum_{\sigma_j \ge \tau} \sigma_j |u_j\rangle\langle v_j|\]

QSVT 实现阈值函数 \(f(x) = x \cdot \mathbb{1}(x \ge \tau)\) 的多项式逼近(在 \(x = \tau\) 附近做 \(O(\tau)\) 宽度的平滑过渡),所需次数 \(d = O\big(\tfrac{1}{\tau}\log(\tfrac{1}{\varepsilon})\big)\);若记 \(\kappa = 1/\tau\),即 \(d = O(\kappa\log(1/\varepsilon))\)

块编码的资源估计

量子比特开销

矩阵结构

\(L\)(项数)

辅助比特 \(m_a\)

总量子比特

稀疏矩阵(\(s\)-稀疏)

\(O(ns)\)

\(O(n + \log s)\)

\(O(n + \log s)\)

泡利分解(\(L\) 项)

\(L\)

\(O(\log L)\)

\(n + O(\log L)\)

稠密矩阵

\(O(N)\)

\(O(n)\)

\(O(2n)\)

局部哈密顿量

\(O(\text{poly}(n))\)

\(O(\text{poly}\log n)\)

\(O(n + \text{poly}\log n)\)

门开销

对泡利分解的 \(L\) 项哈密顿量:

\[C_{U_A} = O(L \cdot n + \text{poly}(\log L))\]

\(O(L \cdot n)\) 来自 SELECT(\(L\) 个泡利字符串,每个 \(O(n)\) 门),\(\text{poly}(\log L)\) 来自 PREP。

当前进展与挑战

理论进展

年份

贡献

2016

Low & Chuang:块编码 + Qubitization

2019

Gilyén et al.:QSVT 统一块编码上的多项式变换

2022

Camps & Van Beeumen:FABLE,稠密矩阵的快速近似块编码

2023

多项工作:高效块编码的构造优化

实现挑战

  1. PREP 电路深度:对一般系数 \(\vec{\alpha}\),制备 \(|\mathcal{A}\rangle\) 需要 \(O(L)\) 门——可能成为瓶颈;

  2. SELECT 的串行性\(L\) 个受控酉操作串行执行,总深度 \(O(L)\)

  3. 辅助比特数\(m_a = O(\log L)\) 对大 \(L\) 可能较高;

  4. 数值精度:PREP 中的旋转角度需高精度,门错误会累积。

总结

块编码是量子线性代数的基石原语。它将"在量子电路上执行非酉矩阵"这一困难问题,归约为"构造更大的酉操作"的可模块化问题:LCU 给出最通用的构造,乘积与线性组合性质保证块编码在代数运算下封闭,QSVT 与 Qubitization 则在块编码之上实现任意多项式的矩阵函数。块编码由此为矩阵求逆、哈密顿量模拟、Gibbs 态制备等核心量子算法提供了统一的接口。


参考文献:

  1. Low, G. H., & Chuang, I. L. (2016). Hamiltonian simulation by qubitization. arXiv:1610.06546.

  2. Gilyén, A., Su, Y., Low, G. H., & Wiebe, N. (2019). Quantum singular value transformation and beyond. STOC 2019.

  3. Camps, D., & Van Beeumen, R. (2022). FABLE: Fast Approximate BLock Encodings. arXiv:2205.00099.

  4. Childs, A. M., Kothari, R., & Somma, R. D. (2017). Quantum algorithm for systems of linear equations with exponentially improved dependence on precision. SIAM Journal on Computing, 46(6), 1920-1950.