# 噪声、退相干与 NISQ · 真机为什么这么难

> 模拟器上完美的量子程序，到真机上却错误一堆。这一章讲清元凶：退相干（qubit 撑不住量子态）、门误差（每步都可能出错、还会累积）。带你用含噪模拟器复现误差，认识我们所处的 NISQ 时代，以及量子纠错为什么是通往实用的必经之路。

- 作者：David（道雾轩）
- 专栏：写给程序员的量子计算（https://daiw.org/manual/quantum-computing.md）
- 最后更新：2026-07-14
- 原文：https://daiw.org/manual/quantum-computing/noise-nisq
- 转载与引用：请注明出处并附原文链接（https://daiw.org/about/copyright）

# 噪声、退相干与 NISQ · 真机为什么这么难

前面所有代码都在**理想模拟器**上跑，结果干干净净。可你把同样的程序拿到**真实量子计算机**上，会发现结果错误一堆——本该只出现 `00`/`11` 的 [Bell 态](https://daiw.org/manual/quantum-computing/entanglement)，真机上却混进了一堆 `01`、`10`。这一章直面现实：**为什么造一台能用的量子计算机这么难。**

## 元凶一：退相干

qubit 的量子态**极其脆弱**。它靠精密调控的物理系统（超导环路、离子、光子……）承载，而周围环境——热、电磁波、振动——无时无刻不在「偷看」它，一偷看就相当于[测量](https://daiw.org/manual/quantum-computing/measurement)，把叠加和相位破坏掉。这个「量子态随时间流失」的过程叫**退相干(decoherence)**。

<Callout type="warn">
  **qubit 只能维持量子态极短的时间——微秒量级。** 两个关键指标：$T_1$（能量弛豫，$\ket1$ 自己塌回 $\ket0$）和 $T_2$（相位退相干，那个宝贵的[相位](https://daiw.org/manual/quantum-computing/single-gates)糊掉）。它们通常只有几十到几百**微秒**。这直接限制了**线路深度**：门操作要时间，你的线路必须在退相干之前跑完，否则算到一半状态就烂了。**「qubit 数量多」还不够，得「qubit 活得久 + 门够快」，才跑得动深线路**——而 [Shor](https://daiw.org/manual/quantum-computing/qft-shor) 这类算法的线路又深又长，对相干时间的要求极高。
</Callout>

## 元凶二：门误差，而且会累积

经典晶体管的出错率低到可以忽略；量子门却**每一步都可能出错**。当前单比特门错误率约 $0.1\%$，双比特门（如 [CNOT](https://daiw.org/manual/quantum-computing/entanglement)）更差，约 $1\%$ 甚至更高。更糟的是**误差会累积**：

$$
\text{整体成功率} \approx (1-\varepsilon)^{d}
$$

$\varepsilon$ 是单门错误率，$d$ 是线路里门的总数（深度）。哪怕 $\varepsilon=0.5\%$，一条有 1000 个门的线路，成功率也只剩 $(0.995)^{1000}\approx 0.7\%$——**几乎必错**。这就是为什么现在的量子计算机只能跑**浅**线路。

## 用含噪模拟器复现

不用等真机——Aer 能加**噪声模型**，在你的电脑上复现误差。给 Bell 态注入一点噪声看看：

```python
from qiskit import QuantumCircuit, transpile
from qiskit_aer import AerSimulator
from qiskit_aer.noise import NoiseModel, depolarizing_error

# 造一个噪声模型:每个门以一定概率「去极化」(随机出错)
noise = NoiseModel()
noise.add_all_qubit_quantum_error(depolarizing_error(0.02, 1), ['h', 'x'])
noise.add_all_qubit_quantum_error(depolarizing_error(0.05, 2), ['cx'])

qc = QuantumCircuit(2)
qc.h(0); qc.cx(0, 1)          # Bell 态
qc.measure_all()

sim = AerSimulator(noise_model=noise)
print(sim.run(transpile(qc, sim), shots=1000).result().get_counts())
```

```text
{'00': 470, '11': 455, '01': 39, '10': 36}
```

**注意那些本不该出现的 `01`、`10`**——它们就是噪声。理想 Bell 态永远只有 `00`/`11`，含噪时冒出了约 7% 的错误结果。**含噪模拟器是上真机前的必备一环**：它让你在自己电脑上，就预估到「这个算法在当前噪声水平下还能不能用」。

## 我们在哪：NISQ 时代

<Callout type="info">
  **当下这个阶段有个名字：NISQ（Noisy Intermediate-Scale Quantum，含噪中等规模量子），由物理学家 John Preskill 在 2018 年提出。** 「含噪」——没有纠错，误差裸奔；「中等规模」——几十到上千个物理 qubit，不多不少。NISQ 机器**能做**一些事（量子模拟、变分算法、随机采样类的「量子优越性」演示），但**做不了**需要深线路的大杀器——[Shor](https://daiw.org/manual/quantum-computing/qft-shor) 分解 RSA、大规模 [Grover](https://daiw.org/manual/quantum-computing/grover)，因为它们的线路深度远超 NISQ 的噪声耐受。**我们能造出量子计算机，但还造不出「能纠错的、能跑深线路的」量子计算机**——这中间的鸿沟，就是当前所有努力的焦点。
</Callout>

## 出路：量子纠错

跨过 NISQ 鸿沟的钥匙，是**量子纠错(Quantum Error Correction，QEC)**。思路和经典纠错码相通，但难得多：

- **用许多物理 qubit，编码出一个「逻辑 qubit」。** 把量子信息**冗余**地摊在一堆物理 qubit 上，即便个别物理 qubit 出错，也能**检测并纠正**，保住那个逻辑 qubit 的信息。最主流的方案叫**表面码(surface code)**。
- **代价极其昂贵**：当前估计，**一个逻辑 qubit 要上千个物理 qubit** 来供养。这就是为什么 [Shor 破 RSA 需要数百万物理 qubit](https://daiw.org/manual/quantum-computing/qft-shor)——几千个逻辑 qubit，每个乘以上千的开销。
- **有希望的底气——阈值定理**：只要**物理**门错误率压到某个**阈值**以下，纠错就能让**逻辑**错误率随着编码规模任意降低。也就是说，只要单门够好（接近这个阈值），「越纠越对」就成立。当前工程的核心目标之一，正是把物理错误率压到阈值之下——**跨过它，「容错量子计算」的大门就打开了。**

## 小结与下一章

真机难，难在**退相干**（qubit 只活几微秒，限制线路深度）和**门误差**（每步都可能错，还随深度累积）。含噪模拟器能在本地复现这些误差、预估算法可用性。我们身处 **NISQ 时代**：有含噪的中等规模机器，但没有纠错、跑不了深线路。出路是**量子纠错**——用上千物理 qubit 供养一个逻辑 qubit，靠阈值定理「越纠越对」，但开销巨大，通往实用尚需时日。

现实讲完了，不悲观也不吹捧。最后一章，给你一份继续深入的**学习路线、资源**，并把全专栏戳破过的**常见误解**收拢成一张清单。👉 [收尾：学习路线与常见误区](https://daiw.org/manual/quantum-computing/recap)。

## 参考文献

- [1] John Preskill.「Quantum Computing in the NISQ era and beyond.」2018. arXiv:1801.00862 —— NISQ 概念的提出。
- [2] Qiskit 官方文档.「Build noise models / error mitigation.」https://docs.quantum.ibm.com/guides —— 含噪模拟与误差缓解。
- [3] Nielsen & Chuang.《Quantum Computation and Quantum Information》， ch. 10 —— 量子纠错与阈值定理。
