2. 量子比特与纠缠态基础

在进入贝尔不等式的编程实验之前,必须先建立两样“地基”:一是单个量子比特如何用数学对象描述,二是两个量子比特如何形成纠缠。前者决定了我们怎样在代码里构造态矢量、怎样解释测量结果;后者决定了贝尔不等式为什么能够被违反。本节围绕布洛赫球表示、纠缠态定义与贝尔态构造展开,并用 QuTiP 实际创建贝尔态、观察其密度矩阵与纠缠特性。

一、量子比特的数学表示与布洛赫球

一个量子比特的纯态写成二维复希尔伯特空间中的单位矢量:

|ψ⟩ = α|0⟩ + β|1⟩,   |α|² + |β|² = 1

其中 α、β 为复数,|0⟩=(1,0)ᵀ、|1⟩=(0,1)ᵀ 是计算基。由于全局相位不可观测,去掉一个相位自由度后,纯态还剩两个实参数,恰好可以映射到三维单位球面上的一点,这就是布洛赫球。常用参数化为:

|ψ⟩ = cos(θ/2)|0⟩ + e^(iφ) sin(θ/2)|1⟩
x = sinθ·cosφ,  y = sinθ·sinφ,  z = cosθ

这里 θ∈[0,π] 是极角,φ∈[0,2π) 是方位角,布洛赫矢量 r=(x,y,z) 的模长为 1。几个关键位置需要记牢:北极 (0,0,1) 对应 |0⟩,南极 (0,0,−1) 对应 |1⟩,赤道上的 (1,0,0) 对应 |+⟩=(|0⟩+|1⟩)/√2,(0,1,0) 对应 |+i⟩=(|0⟩+i|1⟩)/√2。测量 Z 基时,得到 +1 的概率为 (1+z)/2,得到 −1 的概率为 (1−z)/2,这正是布洛赫球与实验计数之间的桥梁。

需要强调,布洛赫球只对单比特纯态是“球面”。一旦系统与环境作用成为混态,就要用密度矩阵 ρ 描述,此时布洛赫矢量模长小于 1,落在球内部;最大混态 I/2 对应球心。这个区别在后续处理噪声和退相干时非常重要。

二、纠缠态的定义

两比特纯态若不能写成两个单比特态的直积 |ψ⟩=|a⟩⊗|b⟩,就称为纠缠态。以贝尔态 |Φ⁺⟩=(|00⟩+|11⟩)/√2 为例,若假设它能分解为 (α|0⟩+β|1⟩)⊗(γ|0⟩+δ|1⟩),则交叉项 αδ 与 βγ 必须同时为零,而 |00⟩、|11⟩ 的系数又要求 αγ=βδ=1/√2,两者矛盾,故不可分解。

纠缠的核心特征是局域测量结果的关联性。对 |Φ⁺⟩ 两方都测 Z 基,结果总是同号:要么都 +1,要么都 −1,各占一半,单方边缘分布完全随机,但联合结果完全相关。这种“单看随机、合看强相关”的结构,正是贝尔不等式实验要检验的对象。判断纠缠不能只看关联强弱,还要看这种关联能否用局域隐变量解释——这正是后续章节的任务。

三、四个贝尔态与构造方式

两比特最大纠缠基由四个正交归一态组成,常称为贝尔基:

态表达式关联特征(Z 基)
|Φ⁺⟩(|00⟩+|11⟩)/√2同号相关
|Φ⁻⟩(|00⟩−|11⟩)/√2同号相关,相位相反
|Ψ⁺⟩(|01⟩+|10⟩)/√2反号相关
|Ψ⁻⟩(|01⟩−|10⟩)/√2反号相关,相位相反

在电路层面,从 |00⟩ 出发,对第一个比特施加 Hadamard 门得到 (|0⟩+|1⟩)/√2⊗|0⟩,再施加受控非门 CNOT(控制位为第一比特、目标位为第二比特),即得 |Φ⁺⟩。改变输入基态或追加相位门,可得到其余三个贝尔态。这一“H + CNOT”结构是制备纠缠的标准手段,也是 QuTiP 中构造贝尔态最直接的思路。

布洛赫球(单比特纯态) |0⟩ |1⟩ x z |ψ⟩ θ 极角,φ 方位角;球面=纯态,球内=混态 贝尔态制备:H + CNOT H q0 |0⟩ q1 |0⟩ → |Φ⁺⟩ (控制位 q0) |Φ⁺⟩ 密度矩阵(4×4) 0.5 0.5 0 0 仅 |00⟩⟨00| 与 |11⟩⟨11| 对角元非零,交叉项为 0

四、用 QuTiP 创建贝尔态并检查密度矩阵

QuTiP 用 Qobj 表示态与算符,用 tensor 做张量积。下面这段代码直接构造 |Φ⁺⟩ 并打印密度矩阵:

import numpy as np
import qutip as qt

# 计算基
ket0 = qt.basis(2, 0)
ket1 = qt.basis(2, 1)

# 贝尔态 |Φ⁺⟩ = (|00⟩ + |11⟩)/√2
phi_plus = (qt.tensor(ket0, ket0) + qt.tensor(ket1, ket1)).unit()
rho = phi_plus * phi_plus.dag()

print("维度:", rho.shape)          # (4, 4)
print("迹:", rho.tr())             # 1.0
print("纯度:", (rho * rho).tr())   # 1.0,纯态
print(rho.full().round(3))

预期输出中,ρ 是一个 4×4 矩阵,只有 (0,0) 与 (3,3) 两个对角元为 0.5,其余元素为 0。这里有一个容易误解的点:|Φ⁺⟩ 的相干性体现在 |00⟩ 与 |11⟩ 之间的叠加,但密度矩阵 ρ=|ψ⟩⟨ψ| 的交叉项 ⟨00|ρ|11⟩ 等于 α·β* = 0.5×0.5 的相位关系——在本例中 α=β=1/√2 为实数,交叉项 (0,3) 与 (3,0) 实际为 0.5,而非零。若打印结果中 (0,3)、(3,0) 为 0.5,说明叠加相位正确;若为 −0.5,则对应 |Φ⁻⟩。这是区分四个贝尔态最直接的数值判据。

为了验证纠缠,可以计算约化密度矩阵并求冯·诺依曼熵。对 |Φ⁺⟩,追踪掉第二个比特后得到 I/2,熵为 ln2≈0.693,这是两比特系统单方约化的最大值,说明单方信息完全丢失、纠缠最大:

rho_A = rho.ptrace(0)              # 约化到第一个比特
S = qt.entropy_vn(rho_A)           # 冯·诺依曼熵
print("约化态:\n", rho_A.full().round(3))
print("纠缠熵:", round(S, 4))       # ≈ 0.6931

若把 |Φ⁺⟩ 换成直积态 |0⟩⊗|+⟩,同样计算会得到约化态为纯态、熵为 0,这就是“可分离”的数值标志。因此,约化熵是否大于 0 是判断两比特纯态是否纠缠的实用判据;对混态则需借助 PPT 判据或 concurrence,后续章节会用到。

五、可视化与结果判读

QuTiP 提供 qt.hinton(rho) 绘制密度矩阵的 Hinton 图,用方块面积表示元素模长、颜色表示正负相位;也可用 qt.plot_wigner 观察单比特约化态的相空间分布。对 |Φ⁺⟩ 的 Hinton 图,应看到左上与右下两个大方块,其余位置接近空白,这与上文矩阵结构一致。若图中出现明显的反对角元素,说明态中混入了 |01⟩、|10⟩ 分量,需要检查 CNOT 的控制位与目标位是否写反。

判读要点:① 迹为 1、纯度为 1 → 纯态;② 约化熵≈0.693 → 最大纠缠;③ 密度矩阵反对角项符号 → 区分 Φ⁺/Φ⁻;④ 对角元位置 → 区分 Φ 类(同号)与 Ψ 类(反号)。
常见错误:直接用 qt.bell_state('00') 时参数含义是“哪个贝尔态”,并非输入比特值;另外 tensor 的顺序决定比特编号,ptrace(0) 追踪的是第一个参数对应的子系统,顺序写反会导致约化态与预期不符。

完成本节后,应能独立写出四个贝尔态的 QuTiP 表达式,能通过密度矩阵与约化熵判断一个两比特态是否纠缠,并能解释布洛赫球上一点与测量概率之间的定量关系。这些能力将直接支撑下一阶段构造测量算符、计算关联函数 E(a,b) 并代入 CHSH 组合。