1. 课程导入与仿真环境搭建
Shor九比特纠错码是量子纠错理论中一个里程碑式的构造。它由Peter Shor于1995年提出,核心思想是把一个逻辑量子比特编码进九个物理量子比特中,从而同时抵御比特翻转(X错误)和相位翻转(Z错误)。理解这个编码,是理解容错量子计算的第一道门槛:它告诉我们,量子信息并非只能脆弱地存在,而是可以通过冗余编码被保护起来。
本课程的目标不是停留在公式推导,而是把Shor码从抽象定义一路推进到可运行的电路仿真。学完整个课程后,你应当能够独立搭建九比特编码电路、注入并定位错误、执行综合征测量与恢复,并用仿真数据验证纠错是否真正生效。整体学习路径可以概括为四个阶段:先建立编码与稳定子的概念基础,再搭建仿真环境并跑通最小电路,随后逐步构造编码、错误注入与解码恢复的完整链路,最后通过对比实验与数据分析评估纠错性能。
为什么选择Qiskit作为仿真框架
量子纠错电路涉及大量受控门、辅助比特和测量,手工推导容易出错,必须借助仿真器验证。Qiskit是目前生态最成熟的开源框架之一,它提供了电路构建(QuantumCircuit)、状态向量仿真(StatevectorSampler)、含噪声仿真(AerSimulator)以及结果可视化等完整工具链。对Shor码这类需要观察多比特纠缠结构和测量结果分布的课题,Qiskit的中间态状态向量与测量计数统计尤其有用。
安装方式很直接。建议使用Python 3.10以上版本,创建独立虚拟环境后执行:
python -m venv qec-env
source qec-env/bin/activate # Windows下用 qec-env\Scripts\activate
pip install qiskit qiskit-aer matplotlib
其中qiskit提供电路与基础仿真原语,qiskit-aer提供高性能含噪声后端,matplotlib用于绘制测量统计图。安装完成后可用qiskit.__version__确认版本,避免不同版本间API差异带来的困扰。
第一个量子电路:验证环境可用
在进入纠错码之前,先用一个三比特GHZ态电路确认环境工作正常。GHZ态是(|000⟩+|111⟩)/√2,它同时体现了叠加与纠缠,是后续理解九比特编码结构的良好热身。示例代码如下:
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector
qc = QuantumCircuit(3)
qc.h(0)
qc.cx(0, 1)
qc.cx(0, 2)
sv = Statevector(qc)
print(sv.probabilities_dict())
预期输出中只有'000'与'111'两个基态概率各约0.5,其余六项为0。如果结果符合这一分布,说明电路构建与状态向量仿真均正常。这一步看似简单,却是后续所有实验的基线:Shor码的编码电路同样依赖H门与CNOT门构造纠缠结构,只是规模更大、层次更分明。
从GHZ到Shor码:先看清结构再动手
Shor九比特码的编码可以拆成两个嵌套层次:先用三个物理比特构成一个相位保护块,再把三个这样的块组合起来抵御比特翻转。下图展示了这一结构关系,以及本节所处的环境搭建位置——它是整条学习链路的起点。
图中三个相位保护块各自内部用H门把单比特变成|+⟩叠加态,再通过块内CNOT形成三比特纠缠,用于抵御相位翻转;块与块之间再用CNOT耦合,使三个块整体对单个比特翻转也具备冗余。九个物理比特因此同时获得两类保护,这正是Shor码“9=3×3”的直观来源。理解这张结构图,后续写电路时就不会把门序列当成一串无意义的符号。
本节实践要点与常见问题
环境搭建阶段最容易踩的坑有三类。第一是版本混用:旧教程中的execute()函数在新版Qiskit中已被原语(Sampler/Estimator)取代,直接照抄会报错,建议以官方当前文档为准。第二是比特索引方向:Qiskit默认q0为最低位,测量结果字符串从左到右对应q2 q1 q0,初学时容易把'001'误读成q0=0,实际它表示q0=1。第三是仿真后端选择:状态向量仿真适合观察纯态演化,但比特数增长后内存开销呈指数上升,九比特尚可承受,后续若扩展到更多辅助比特应改用采样型仿真。
建议在本节结束时完成一个小交付:把GHZ自检脚本保存为env_check.py,并在其中加入断言,验证'000'与'111'的概率之和接近1、其余基态概率接近0。这样每次修改环境或升级依赖后,都能用一条命令确认仿真链路仍然可靠。这个习惯会在后续调试编码电路时反复派上用场——当纠错结果不符合预期时,你首先需要排除的就是环境本身。
pip freeze > requirements.txt记录当前依赖,避免几周后因Qiskit升级导致示例代码无法复现。至此,仿真环境已经就绪,你也已经通过GHZ电路确认了电路构建、状态演化与概率读取这条链路是通的,并对Shor码的九比特分层结构有了整体印象。接下来要做的,就是把这幅结构图逐块翻译成真正的门序列。