量子测量与退相干------从量子态到经典信息的桥梁
在量子世界里,看与被看,是两个截然不同的故事。
在前三篇文章中,我们学习了量子比特、量子门,亲手搭建了量子电路,见证了叠加和纠缠的神奇。但细心的读者可能已经注意到一个关键问题:我们如何知道量子计算机内部发生了什么?
答案是:测量。测量是连接量子世界与经典世界的唯一桥梁。没有测量,所有的叠加、干涉、纠缠都只是数学上的抽象,无法被我们感知。但这座桥梁是单行道------一旦测量发生,量子态就会不可逆地坍缩。
更棘手的是,即使你不去主动测量,量子系统也会与环境不可避免地发生相互作用,导致量子信息悄悄流失------这就是退相干。它是量子计算的头号敌人,也是NISQ时代一切工程挑战的根源。
今天,我们就来深入探讨这两个密不可分的主题:测量如何从量子态中提取信息?退相干如何摧毁这些信息?以及我们如何在Qiskit中模拟这些现实世界的效应。
1. 量子测量:从概率到事实
1.1 测量的本质:坍缩
在经典世界中,测量是一个被动的过程------看一块石头,并不会改变石头的状态。但在量子世界,测量是主动的、破坏性的。
当一个量子比特处于叠加态 |ψ⟩ = α|0⟩ + β|1⟩ 时,它同时"是"0和"是"1。但当我们测量它时,会发生两件事:
- 随机选择:量子态以概率 |α|² 坍缩到 |0⟩,以概率 |β|² 坍缩到 |1⟩
- 永久改变:测量后,量子态不再是原来的叠加态,而是变成了确定的本征态
这就是著名的波函数坍缩------一个让爱因斯坦终身难以接受,却被无数实验证实的事实。
💡 直观类比:旋转的硬币在被拍停之前,同时是正面和反面的叠加。拍停的那一刻(测量),它随机地变成正面或反面------这就是坍缩。
1.2 测量的数学描述:投影测量
在数学上,标准(投影)测量可以用投影算符描述。对于单量子比特在计算基下的测量,有两个投影算符:
- P₀ = |0⟩⟨0|,对应结果0
- P₁ = |1⟩⟨1|,对应结果1
它们满足 P₀ + P₁ = I(完备性)且 P₀P₁ = 0(正交性)。
对于一般量子态 ρ,测量得到结果 n 的概率为 pₙ = Tr(Pₙρ),测量后状态变为 ρₙ = PₙρPₙ / pₙ。
在Qiskit中,我们之前使用的 qc.measure 实现的就是这种投影测量。
1.3 测量的可视化:布洛赫球上的坍缩
在布洛赫球上,量子态是球面上的一个点。测量(在Z轴上)会将这个点垂直投影到Z轴:
- 如果点在北半球,有更高概率坍缩到|0⟩(北极)
- 如果点在赤道上(如H门创造的叠加态),坍缩到两极的概率相等
这正是为什么我们在第二篇中运行H门电路时,测量结果总是50/50。
1.4 测量误差:现实并不完美
理想测量假设我们能完美区分|0⟩和|1⟩。但在真实硬件上,测量本身也会出错------将|0⟩误判为|1⟩,或将|1⟩误判为|0⟩。这就是测量误差(readout error)。
典型超导量子比特的测量误差率在1%~3%左右。这意味着每100次测量,就有1-3次结果是错的------在需要高精度的量子算法中,这是不可忽视的。
2. 退相干:量子计算的隐形杀手
如果说测量是我们主动从量子世界提取信息的方式,那么退相干就是环境被动地从量子世界窃取信息的过程。
2.1 什么是退相干?
量子退相干是量子系统与环境发生纠缠,导致量子相干性逐渐丧失的过程。它解释了为什么宏观物体(比如你手里的手机)不表现出量子效应------它们与环境相互作用太强烈,相干性在瞬间就消失了。
退相干不改变系统的能量(不一定是向|0⟩衰减),但它会破坏叠加态中各分量之间的相位关系,使量子行为退化为经典行为。
2.2 两个关键时间:T₁ 和 T₂
量子比特的寿命由两个关键参数描述:
| 参数 | 名称 | 描述 | 典型值(超导) |
|---|---|---|---|
| T₁ | 能量弛豫时间 | 1⟩态衰变到 | |
| T₂ | 退相干时间 | 相位信息丧失的时间常数 | 20~80 μs |
T₁过程:量子比特从激发态|1⟩向基态|0⟩的指数衰减,伴随能量释放到环境。
T₂过程:量子叠加态的相位信息因环境扰动而随机化,破坏相干性。注意 T₂ ≤ 2T₁ ------相位信息不可能比能量存活更久。
这两个参数共同决定了量子比特的"保质期"------在这段时间内,我们必须完成所有量子操作,否则信息就丢失了。
2.3 退相干的物理机制
退相干的核心机制是纠缠:
当量子系统与环境相互作用时,系统与环境会形成纠缠态。例如,系统初始处于叠加态 (|0⟩ + |1⟩)/√2,环境初始为|E₀⟩,相互作用后演化为:
(\|0⟩\|E₀⟩ + \|1⟩\|E₁⟩)/√2
现在,系统的状态不再是纯的叠加态------如果我们只关心系统而忽略环境(取部分迹),系统的约化密度矩阵非对角元会衰减。这就是退相干在数学上的表现。
环境就像一个巨大的"信息黑洞"------系统的相位信息被稀释到环境的无数自由度中,再也无法恢复。
2.4 退相干 vs. 测量
有趣的是,退相干和测量在效果上有相似之处:都使量子态失去相干性。但它们的本质不同:
- 测量:主动、有目的,结果是确定的坍缩到一个本征态
- 退相干:被动、不可避免,结果是退化为经典混合态(概率分布)
退相干可以看作环境对系统的"无意识测量"。
3. Qiskit实战:模拟测量与噪声
理论讲够了,让我们动手在Qiskit中模拟这些效应。
3.1 基础回顾:理想测量
首先回顾理想的量子测量------这是我们之前一直在做的:
python
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram
# 创建电路
qc = QuantumCircuit(1, 1)
qc.h(0) # 创造叠加态
qc.measure(0, 0) # 测量
# 理想模拟(无噪声)
sim_ideal = AerSimulator()
job_ideal = sim_ideal.run(qc, shots=1000)
counts_ideal = job_ideal.result().get_counts()
print("理想测量结果:", counts_ideal)
# 输出: 约 {'0': 500, '1': 500}
3.2 模拟测量误差
现在,我们引入测量误差------模拟真实硬件中读取结果时可能出错的情况:
python
from qiskit_aer.noise import NoiseModel, ReadoutError
# 创建噪声模型
noise_model = NoiseModel()
# 定义测量误差:以5%的概率将0读成1,将1读成0
readout_error = ReadoutError([[0.95, 0.05], # P(0→0)=0.95, P(0→1)=0.05
[0.05, 0.95]]) # P(1→0)=0.05, P(1→1)=0.95
# 将测量误差添加到所有量子比特
noise_model.add_all_qubit_readout_error(readout_error)
# 运行带噪声的模拟
sim_noisy = AerSimulator(noise_model=noise_model)
job_noisy = sim_noisy.run(qc, shots=1000)
counts_noisy = job_noisy.result().get_counts()
print("含测量误差的结果:", counts_noisy)
# 输出: 不再是完美的500/500,而是略微偏离
你会发现,原本应该在|1⟩状态出现的计数,有一部分"泄漏"到了|0⟩,反之亦然。
3.3 模拟退相干:T₁和T₂效应
更重要的噪声来源是退相干。Qiskit提供了thermal_relaxation_error来模拟T₁和T₂效应:
python
import numpy as np
from qiskit_aer.noise import NoiseModel, thermal_relaxation_error
# 定义量子比特的弛豫参数(单位:纳秒)
T1 = 50_000 # 50 μs
T2 = 30_000 # 30 μs
gate_time = 100 # 每个门操作耗时100 ns
# 创建噪声模型
noise_model = NoiseModel()
# 为id门(等待时间)添加退相干噪声
# 注意:在实际电路中,每个门都会消耗时间,这里简化为id门代表时间流逝
error_id = thermal_relaxation_error(T1, T2, gate_time)
noise_model.add_all_qubit_quantum_error(error_id, ['id'])
# 创建一个测试电路:准备叠加态,等待一段时间(通过一系列id门),然后测量
qc_test = QuantumCircuit(1, 1)
qc_test.h(0)
# 添加10个id门,模拟时间流逝
for _ in range(10):
qc_test.id(0)
qc_test.measure(0, 0)
# 运行模拟
sim = AerSimulator(noise_model=noise_model)
job = sim.run(qc_test, shots=1000)
counts = job.result().get_counts()
print("退相干影响下的结果:", counts)
# 输出: |1⟩的计数会减少(部分弛豫到|0⟩),且叠加态的相位也会被破坏
3.4 对比不同噪声强度的影响
让我们做一个更系统的实验,观察T₁时间对结果的影响:
python
import matplotlib.pyplot as plt
def run_with_T1(T1_value, shots=1000):
"""在不同T1下运行电路"""
T2 = T1_value * 0.6 # 假设T2 = 0.6 * T1
gate_time = 100
noise_model = NoiseModel()
error_id = thermal_relaxation_error(T1_value, T2, gate_time)
noise_model.add_all_qubit_quantum_error(error_id, ['id'])
# 创建电路:H门 + 100个id门 + 测量
qc = QuantumCircuit(1, 1)
qc.h(0)
for _ in range(100):
qc.id(0)
qc.measure(0, 0)
sim = AerSimulator(noise_model=noise_model)
result = sim.run(qc, shots=shots).result()
return result.get_counts()
# 测试不同T1值
T1_values = [10_000, 20_000, 50_000, 100_000, 500_000] # 10μs 到 500μs
results = []
for T1 in T1_values:
counts = run_with_T1(T1)
p1 = counts.get('1', 0) / 1000 # 测量到|1⟩的概率
results.append(p1)
print(f"T1 = {T1/1000:.0f} μs, P(1) = {p1:.3f}")
# 绘制结果
plt.figure(figsize=(10, 6))
plt.plot([t/1000 for t in T1_values], results, 'o-')
plt.xlabel('T1 (μs)')
plt.ylabel('测量到|1⟩的概率')
plt.title('T1弛豫时间对叠加态的影响')
plt.grid(True)
plt.show()
你会发现,T₁越短,|1⟩的概率越低------因为部分|1⟩态在等待过程中弛豫到了|0⟩。
4. 对抗退相干:量子纠错的曙光
既然退相干不可避免,我们如何应对?主要有三个方向:
4.1 物理隔离
- 超低温:稀释制冷机将量子芯片冷却到10毫开尔文以下
- 真空:离子阱量子计算机在超高真空中囚禁离子
- 电磁屏蔽:多层磁屏蔽隔绝外界电磁干扰
这些措施只能减缓退相干,无法完全消除。
4.2 动态解耦
通过快速交替施加脉冲序列(如Carr-Purcell-Meiboom-Gill序列),平均掉低频噪声的影响,延长有效相干时间。
4.3 量子纠错
真正的希望在于量子纠错码------用多个物理比特编码一个逻辑比特,实时检测并纠正错误。著名的Surface Code(表面码)是目前最有前景的方案,但它需要数千个物理比特才能实现一个可靠的逻辑比特。
5. 从真机获取真实噪声参数
如果你想模拟特定IBM量子计算机的真实噪声特性,可以直接从设备获取校准数据:
python
from qiskit_ibm_runtime import QiskitRuntimeService
# 加载账户(需要先保存token)
service = QiskitRuntimeService()
# 获取特定后端
backend = service.backend('ibm_brisbane')
# 查看该后端的噪声属性
props = backend.properties()
for qubit in range(min(3, backend.num_qubits)):
t1 = props.qubit_property(qubit, 'T1')
t2 = props.qubit_property(qubit, 'T2')
print(f"Qubit {qubit}: T1={t1[0]:.1f} μs, T2={t2[0]:.1f} μs")
# 从后端直接构建噪声模型
from qiskit_aer.noise import NoiseModel
noise_model = NoiseModel.from_backend(backend)
这样,你的模拟就能尽可能接近真实硬件的表现。
6. 小结:从理论到实践
今天我们学习了量子计算的"黑暗面":
| 概念 | 本质 | 影响 | 应对 |
|---|---|---|---|
| 测量 | 主动坍缩量子态 | 获得经典结果,但破坏叠加 | 统计重复运行 |
| 测量误差 | 状态误判 | 结果失真 | 误差 mitigation |
| 退相干 | 环境窃取信息 | 量子信息随时间流失 | 物理隔离、纠错码 |
| T₁弛豫 | 能量衰减 | 1⟩→ | |
| T₂退相干 | 相位随机化 | 破坏干涉效应 | 动态解耦 |
关键洞察 :退相干不是测量的替代品,而是测量的泛化------环境在对系统进行无时无刻的"测量"。理解这一点,就理解了为什么量子计算机必须被严密保护,为什么算法必须在退相干发生前完成。
结语与预告
从旋转的硬币到坍缩的波函数,从理想的测量到残酷的噪声,我们已经走完了量子计算从"纸上谈兵"到"直面现实"的完整路径。量子态是脆弱的,但正是这种脆弱,让每一次成功的量子计算都显得弥足珍贵。
下一篇文章 ,我们将迈出从基础到算法的第一步------学习Deutsch-Jozsa算法,这是第一个证明量子计算机可以超越经典的算法。它虽然简单,却包含了量子算法最核心的思想:叠加、干涉、并行。
思考题:
- 如果T₂ < T₁,意味着什么?(提示:相位信息比能量消失更快)
- 为什么测量误差无法通过增加shots来消除?
- 在退相干模拟中,如果增加id门的数量,|1⟩的测量概率会如何变化?为什么?
欢迎在评论区分享你的答案和实验发现!
参考资料:
-
1\] 开放量子系统中的退相干与噪声:测量、范数及主方程解读
-
3\] Qiskit官方文档:Relaxation and Decoherence
-
5\] 在噪声影响下可控量子隐形传态的理论研究
-
7\] 波函数塌缩
-
9\] 量子退相干(搜狐科普)