第4章 量子纠缠:Bell态的制备与测量

量子纠缠,说白了就是两个粒子之间那种「心有灵犀」的状态。你测量其中一个,另一个的状态瞬间就确定了——哪怕它们相隔几光年。我第一次接触这个概念时,觉得这简直像魔法。后来在实验室里真正看到纠缠态的数据,才明白这确实是量子世界最硬核的特性之一。

这一章,我们就来亲手制备Bell态,然后测量它。用Python模拟整个过程,看看纠缠到底是怎么工作的。

4.1 Bell态是什么?

Bell态是两量子比特系统中最基本的纠缠态。一共有四种,它们构成了纠缠态的一组正交基。我个人习惯把它们记成下面这样:

名称 量子态表达式 备注
Φ⁺ |00⟩ + |11⟩ 最常用的Bell态
Φ⁻ |00⟩ - |11⟩ 相位相反
Ψ⁺ |01⟩ + |10⟩ 两个比特不同
Ψ⁻ |01⟩ - |10⟩ 反对称态

注意,这里我故意省略了归一化系数1/√2。为什么?因为写代码时我们通常用向量表示,归一化会在计算中自动处理。嗯,这里要提醒一下:实际物理态必须归一化,但模拟时可以先不管,最后再归一。

4.2 制备Bell态的电路

制备Bell态的标准电路很简单:先对第一个比特做Hadamard门,然后做CNOT门。你想想看,这个电路其实就两步:

  1. H门把|0⟩变成叠加态 (|0⟩ + |1⟩)/√2
  2. CNOT门把叠加态「扩散」到第二个比特上

结果就是|00⟩ + |11⟩,也就是Φ⁺态。我在项目中遇到过有人把H门和CNOT的顺序搞反,结果得到的是可分离态,根本不是纠缠。这个坑我踩过,所以特别提醒你。

核心要点:Bell态制备的关键是H门在前,CNOT在后。顺序不能错。

4.3 Python模拟Bell态制备

我们用NumPy来模拟这个过程。为什么不用Qiskit?因为我想让你看到最底层的数学运算,而不是黑盒调用。

import numpy as np

# 定义量子门
H = 1/np.sqrt(2) * np.array([[1, 1], [1, -1]])
CNOT = np.array([[1,0,0,0],
                 [0,1,0,0],
                 [0,0,0,1],
                 [0,0,1,0]])

# 初始态 |00⟩
psi0 = np.array([1, 0, 0, 0])

# 第一步:对第一个比特做H门
# 注意:H门作用在第一个比特上,需要用张量积扩展
H_on_first = np.kron(H, np.eye(2))
psi1 = H_on_first @ psi0

# 第二步:CNOT门
psi_bell = CNOT @ psi1

print("Bell态 Φ⁺ 的向量表示:")
print(psi_bell)
print("\n概率幅:")
print(np.abs(psi_bell)**2)

运行这段代码,你会看到输出是[0.707, 0, 0, 0.707],对应|00⟩和|11⟩各占50%概率。这就是纠缠态——两个比特要么都是0,要么都是1,没有中间状态。

小技巧:如果你想要其他三种Bell态,只需要在H门之前或之后加上X门或Z门。比如在第一个比特上加Z门,就能得到Φ⁻态。

4.4 测量Bell态

测量纠缠态时,有趣的事情发生了。你测量第一个比特,得到0或1的概率各50%。但一旦你知道了第一个比特的结果,第二个比特的结果就完全确定了。

我建议用下面的代码来模拟测量过程:

def measure(psi, qubit_index):
    """
    测量指定量子比特
    返回测量结果和坍缩后的态
    """
    n_qubits = int(np.log2(len(psi)))
    
    # 计算测量概率
    if qubit_index == 0:
        prob_0 = np.sum(np.abs(psi[0:2])**2)
    else:
        prob_0 = np.sum(np.abs(psi[0::2])**2)
    
    # 随机选择测量结果
    result = 0 if np.random.random() < prob_0 else 1
    
    # 坍缩到对应子空间
    if result == 0:
        if qubit_index == 0:
            collapsed = psi[0:2] / np.sqrt(prob_0)
        else:
            collapsed = psi[0::2] / np.sqrt(prob_0)
    else:
        if qubit_index == 0:
            collapsed = psi[2:4] / np.sqrt(1 - prob_0)
        else:
            collapsed = psi[1::2] / np.sqrt(1 - prob_0)
    
    return result, collapsed

# 测试测量
result1, psi_after = measure(psi_bell, 0)
print(f"第一个比特测量结果: {result1}")
print(f"坍缩后的态: {psi_after}")

# 测量第二个比特
result2, _ = measure(psi_after, 1)
print(f"第二个比特测量结果: {result2}")

运行多次,你会发现两个结果总是相同。这就是纠缠的威力——不是概率上的相关,而是确定性的一致。

曾经踩过的坑:我曾经在测量后忘记归一化坍缩态,导致后续计算概率总和不为1。记得每次测量后都要重新归一化,否则会得到荒谬的结果。

4.5 纠缠的验证:Bell不等式

怎么证明你制备的确实是纠缠态?用Bell不等式。简单来说,如果两个比特是纠缠的,在某些测量角度下,它们之间的相关性会超过经典物理的极限。

我这里给出一个简化的验证方法:

def check_entanglement(psi, num_trials=1000):
    """
    通过测量不同基下的相关性来验证纠缠
    """
    # 在Z基下测量
    results_z = []
    for _ in range(num_trials):
        r1, _ = measure(psi, 0)
        r2, _ = measure(psi, 1)
        results_z.append(r1 == r2)
    
    # 在X基下测量(需要先做H门变换)
    H_on_both = np.kron(H, H)
    psi_x = H_on_both @ psi
    results_x = []
    for _ in range(num_trials):
        r1, _ = measure(psi_x, 0)
        r2, _ = measure(psi_x, 1)
        results_x.append(r1 == r2)
    
    print(f"Z基下相关性: {np.mean(results_z):.3f}")
    print(f"X基下相关性: {np.mean(results_x):.3f}")
    
    # 纠缠态应该在两个基下都表现出强相关性
    if np.mean(results_z) > 0.9 and np.mean(results_x) > 0.9:
        print("✅ 确认:这是纠缠态")
    else:
        print("❌ 不是纠缠态,或者测量有误")

check_entanglement(psi_bell)

你会发现,Bell态在Z基和X基下的相关性都接近100%。而经典关联最多只能在一个基下达到100%,另一个基下会降低。这就是量子纠缠超越经典的地方。

4.6 知识体系总览

下面这张图展示了本章的核心逻辑:从量子门出发,经过Bell态制备电路,再到测量验证,最后用Bell不等式确认纠缠。

Bell态制备与测量知识体系 初始态 |00⟩ H门 CNOT门 Bell态 Z基测量 X基测量 相关性分析 Bell不等式验证 → 确认纠缠

从这张图你可以看到,整个流程是线性的:初始态经过H门和CNOT门变成Bell态,然后分别在Z基和X基下测量,最后通过相关性分析验证纠缠。每一步都有明确的数学对应,这也是为什么我坚持用NumPy模拟——你能看到每个门的作用,而不是把一切交给黑盒。

4.7 实际应用中的注意事项

在实际的量子计算中,制备Bell态看起来简单,但真正做起来有很多坑。我总结了几点:

  • 退相干问题:纠缠态非常脆弱,环境噪声会迅速破坏纠缠。在超导量子计算机上,Bell态的保真度通常只能维持几十微秒。
  • 门保真度:H门和CNOT门本身有误差。如果门保真度只有99%,那么制备100次Bell态,可能只有90次是真正的纠缠态。
  • 测量误差:测量过程本身也会引入错误。有时候你测到|00⟩,但实际态可能是|11⟩。
我的建议:在模拟中,你可以假设完美门和完美测量。但真正做实验时,一定要做误差分析。我曾经在IBM Q上跑Bell态制备,结果保真度只有85%,排查了半天才发现是校准没做好。

好了,这一章的内容就到这里。你学会了如何用Python模拟Bell态的制备和测量,也理解了纠缠的本质。下一章我们会继续深入,看看纠缠在量子隐形传态中是怎么发挥作用的。


公众号:蓝海资料掘金营,微信deep3321