3. 多量子比特与纠缠实战
单量子比特只能描述一个量子位的状态,而量子计算真正的威力来自多个量子比特之间的纠缠。本节以 Bell 态和 GHZ 态为对象,使用 CNOT、CZ 门构造纠缠,并通过多次测量统计关联结果,最后用直方图观察纠缠特征。所有示例参数均为教学示例,实际运行结果会因随机采样而波动。
一、多量子比特态与纠缠的基本约定
本节统一采用计算基 |0⟩、|1⟩,多比特态按 q0q1…qn-1 的顺序书写,例如两比特基态 |00⟩ 表示 q0=0、q1=0。CNOT 门以第一个比特为控制位、第二个比特为目标位,作用规则是:控制位为 |1⟩ 时翻转目标位,否则保持不变。CZ 门以第一个比特为控制位、第二个比特为目标位,当两者都为 |1⟩ 时对目标位施加 Z 门,等价于在 |11⟩ 分量上产生 -1 相位。
纠缠的核心特征是:整个系统不能写成两个子系统状态的直积。以 Bell 态 |Φ+⟩=(|00⟩+|11⟩)/√2 为例,测量 q0 得到 0 或 1 的概率各为 50%,但一旦 q0 测得 0,q1 必然为 0;测得 1 时 q1 必然为 1。这种“单看随机、合看确定”的关联,就是纠缠最直观的体现。
二、用 CNOT 构造 Bell 态
Bell 态的标准制备线路是:对 q0 施加 H 门,再以 q0 为控制、q1 为目标施加 CNOT 门。初始态 |00⟩ 经过 H 门后变为 (|0⟩+|1⟩)/√2 ⊗ |0⟩,再经 CNOT 得到 (|00⟩+|11⟩)/√2,即 |Φ+⟩。
from qiskit import QuantumCircuit, Aer, execute
qc = QuantumCircuit(2, 2)
qc.h(0) # q0 叠加
qc.cx(0, 1) # CNOT: 控制 q0, 目标 q1
qc.measure([0, 1], [0, 1])
backend = Aer.get_backend('qasm_simulator')
result = execute(qc, backend, shots=1024).result()
counts = result.get_counts()
print(counts) # 示例: {'00': 512, '11': 512} 附近
运行 1024 次后,理想情况下只会出现 00 和 11 两种结果,各约 512 次。若出现 01 或 10,说明线路或测量映射有误。这里的关键判断依据是:只出现关联结果,不出现反关联结果。
三、用 CZ 门构造纠缠并观察相位
CZ 门不改变测量概率分布,但会改变相位。若在 H 门后先加 CZ 再加 H 门,可把相位差转化为概率差。例如:
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.h(1)
qc.cz(0, 1) # CZ: 控制 q0, 目标 q1
qc.h(0)
qc.h(1)
qc.measure([0, 1], [0, 1])
该线路等价于把 |11⟩ 的相位翻转后再做基变换,最终测量会得到 00 与 11 的关联分布。CZ 门常用于需要保持测量基不变、只调整相位的场景,例如量子相位估计和变分线路。
四、GHZ 态:三比特及以上纠缠
GHZ 态是 Bell 态向多比特的推广,三比特形式为 (|000⟩+|111⟩)/√2。制备方法是:对 q0 施加 H 门,然后依次以 q0 为控制、q1 和 q2 为目标施加 CNOT 门。
qc = QuantumCircuit(3, 3)
qc.h(0)
qc.cx(0, 1)
qc.cx(0, 2)
qc.measure([0, 1, 2], [0, 1, 2])
理想情况下,测量结果只出现 000 和 111,各约 50%。若出现 001、010 等,说明 CNOT 连接顺序或控制位设置有问题。GHZ 态对退相干非常敏感,任何一位发生翻转都会破坏整体关联,因此也常被用作量子纠错和纠缠检测的测试态。
五、测量纠缠关联并绘制统计直方图
测量纠缠关联时,需要关注的是联合概率分布,而不是单个比特的边缘分布。以 Bell 态为例,统计 1024 次后,00 和 11 的计数应接近相等,01 和 10 应接近 0。可以用如下方式绘制直方图:
import matplotlib.pyplot as plt
labels = list(counts.keys())
values = list(counts.values())
plt.bar(labels, values, color=['#4C9AFF', '#36B37E'])
plt.xlabel('测量结果')
plt.ylabel('出现次数')
plt.title('Bell 态测量统计直方图 (shots=1024)')
plt.show()
判断纠缠是否成功,可以看两个指标:一是关联结果(00/11 或 000/111)的计数是否占绝对多数;二是反关联结果是否接近 0。若反关联结果明显偏高,应检查 CNOT 的控制位与目标位是否写反、测量映射是否与比特顺序一致。
六、结果判读与常见问题
判读纠缠是否成功,可以按以下顺序检查:第一,看关联结果是否占绝对多数;第二,看反关联结果是否接近 0;第三,若使用真实硬件,还要考虑噪声导致的少量错误。常见问题包括:CNOT 控制位与目标位写反、测量映射与比特顺序不一致、H 门遗漏或重复、CZ 门后未做基变换导致相位不可观测。对于 GHZ 态,还要注意 CNOT 的连接顺序,通常应让 q0 同时控制 q1 和 q2,而不是链式连接,否则会得到不同的纠缠结构。
通过本节实战,应能独立完成 Bell 态和 GHZ 态的制备、测量与统计,并能根据直方图判断纠缠是否成功。下一阶段可以在此基础上加入相位门和参数化门,构造更复杂的纠缠线路。