叠加学堂superposition

HHL:解线性方程组,但读出很贵

解在振幅里,读出来可能比算更贵

深入9 分钟第 51 / 80 节更新于 2026-10-18

科学计算里最常见的动作是解 Ax=bAx=b:结构分析、流体、电路,最后都落成一个线性方程组。HHL 在 2009 年给出一个量子做法,门数只随比特数多项式增长——但它交回来的不是一个能抄进文件的向量,而是一个量子态。

拆开 b,读出 λ,按 1/λ 缩放

假设 A 是厄米的、稀疏的,∣b⟩|b\rangle 已经制备好。先把 ∣b⟩|b\rangle 在 A 的本征基里展开:∣b⟩=∑jβj∣uj⟩|b\rangle=\sum_j\beta_j|u_j\rangle。用 U=eiAtU=e^{iAt} 做相位估计,把每个本征值 λj\lambda_j 写进辅助寄存器;再用一个受控旋转,给这一支的振幅乘上 C/λjC/\lambda_j;最后把相位估计逆回去。三步合起来:

∑jβj∣uj⟩ ⟼ ∑jβjλj∣uj⟩ ∝ A−1∣b⟩\sum_j\beta_j|u_j\rangle\ \longmapsto\ \sum_j\frac{\beta_j}{\lambda_j}|u_j\rangle\ \propto\ A^{-1}|b\rangle

常数 C 是为了让振幅不超过 1,所以结果只是正比于解,归一化要另算。代价的量级是 O~(log⁡N⋅κ2/ϵ)\tilde O(\log N\cdot\kappa^2/\epsilon):κ 是条件数,描述本征值跨了多少个数量级;ε 是目标精度。κ 越大,相位估计要越细,代价按 κ² 涨;ε 越小,采样与相位读数也要越细。2017 年的改进把对 1/ϵ1/\epsilon 的依赖压到了多项式对数(polylog),但对 κ 的依赖仍然在。

贵的不是算,是读

量子态里确实编码着 N 个振幅,可你只能测量。想要一个期望值 ⟨x∣M∣x⟩\langle x|M|x\rangle,重复约 1/ϵ21/\epsilon^2 次就能估到 ε 精度,这时账是划算的;要把每个分量都写成经典数字,就得做层析或大量采样,至少 N 次,优势基本消失。

这就是读出瓶颈:解在振幅里,读出来可能比算更贵。它决定了适用场景——答案是泛函、期望值、判别量,而不是一整条向量。

前提也常被忽略:A 要稀疏或能做成块编码,κ 不能太大,∣b⟩|b\rangle 要能高效制备,你还得知道 ∥x∥\lVert x\rVert 才能把结果归一化。哪一条不满足,加速就没了。所以它不是「量子加速解一切方程」,而是「在特定结构下,估计解的某个性质」。

HHL 用 log N 的时间解出 Ax=b,所以线性代数都能指数加速。
它交回的是量子态,读全部 N 个分量要 N 次量级的测量;只有当你只要一个期望值,且 A 稀疏、κ 小、b 易制备时,优势才真实存在。
「解出来了」和「读得出来」是两件事,HHL 的账要在读出这一步结清。
一句话结论

HHL 用相位估计加受控旋转,把 A−1bA^{-1}b 写进振幅:门数对 N 只按 log N 增长,代价则与条件数 κ 的平方挂钩。瓶颈在读出:要完整向量就得付出 N 次量级,指数优势消失。它加速的是「估计解的某个性质」,不是「解一切方程」。

本节自测 · 3 题
未作答
01用 HHL 解出一个 100 万维的 x 之后,想把它存成经典数组,最直接的障碍是什么?
02条件数 κ 从 10 涨到 1000,HHL 的代价大致怎样变化?
03下面哪一种任务最适合交给 HHL?