1. 课程导入与全景认知

在真正动手写第一行量子电路代码之前,有一个问题值得先想清楚:我们写的量子程序,最终到底跑在哪里?答案通常有两种——真实量子硬件,或者经典计算机上的量子模拟器。前者受限于比特数量、相干时间、门保真度和排队时间,后者则可以在普通服务器甚至笔记本上运行,代价是内存与计算时间随比特数指数增长。本课程聚焦的正是后者:量子电路模拟后端,以及如何为一段具体的量子电路挑选、配置并验证合适的模拟后端。

所谓“后端”(backend),在主流量子计算框架中指的是一个可被电路提交、执行并返回结果的目标对象。它可能是真实设备,也可能是模拟器。模拟后端内部又分成多种实现策略:有的直接对状态向量做矩阵运算,有的用稀疏结构压缩存储,有的沿电路逐个采样轨迹,还有的专门针对含噪声场景做密度矩阵演化。这些策略在可支持的比特数、内存占用、是否支持噪声、是否支持中间测量等维度上差异巨大。选错后端,轻则跑得慢,重则直接内存溢出或得到与预期语义不符的结果。

量子电路开发流程中的后端选型位置 ① 问题建模 比特数 / 目标态 ② 电路构建 门序列 / 测量 ③ 后端选型 模拟器 or 真机 策略 / 噪声 / 内存 ④ 提交执行 shots / 参数绑定 ⑤ 结果分析 计数 / 期望值 ⑥ 迭代 调参 结果不达标时回退到选型或电路层 模拟后端的四种典型实现策略 状态向量模拟 存储 2ⁿ 个复数振幅 内存 ≈ 16 B × 2ⁿ 支持全纠缠、精确概率 n≈30 时约 16 GB 默认首选,无噪声 稀疏 / 张量网络 利用电路稀疏结构 按纠缠度切分张量 浅层大比特更省内存 深层纠缠时退化明显 适合低纠缠宽电路 轨迹 / 采样模拟 逐 shot 采样测量结果 支持中间测量与重置 内存随 shot 数增长 适合动态电路 含测量反馈时选用 密度矩阵模拟 存储 4ⁿ 个矩阵元 可叠加噪声信道 内存 ≈ 16 B × 4ⁿ n≈12 即接近 4 TB 小比特噪声研究 选型三问(按顺序判断) Q1 电路是否含噪声或退相干?→ 是:密度矩阵(小比特)或带噪声的轨迹模拟;否:进入 Q2 Q2 是否含中间测量 / 条件门 / 重置?→ 是:轨迹模拟;否:进入 Q3 Q3 比特数与纠缠深度?→ 低纠缠宽电路:张量网络;一般情形:状态向量模拟

把后端选型放回开发流程来看,它处在“电路构建”与“提交执行”之间,是一个承上启下的决策点。上游的比特数、门深度、是否含测量决定了候选后端的集合;下游的 shots 数、参数绑定方式和结果统计方式又反过来影响选型是否合理。上图把这条链路和四种典型模拟策略放在一起,便于建立整体印象:状态向量模拟存储 2ⁿ 个复数振幅,是大多数无噪声场景的默认选择;稀疏或张量网络模拟利用电路的低纠缠结构,在浅层大比特电路上更省内存;轨迹模拟逐 shot 采样,天然支持中间测量与条件门;密度矩阵模拟存储 4ⁿ 个矩阵元,能叠加噪声信道,但比特数稍大就难以为继。

这里需要强调一个容易被忽视的量级感。状态向量每个振幅用双精度复数表示约占 16 字节,n 个比特需要 16×2ⁿ 字节:20 比特约 16 MB,25 比特约 512 MB,30 比特约 16 GB,32 比特约 64 GB。密度矩阵则是 16×4ⁿ 字节,12 比特就接近 4 TB。也就是说,模拟后端的能力边界主要由内存决定,而不是由 CPU 主频决定。理解这一点,才能在写代码之前就预判“这段电路能不能在本机跑”。

本课程的目标可以概括为三层。第一层是认知层:能说清模拟后端与真实后端的差别,能区分状态向量、张量网络、轨迹、密度矩阵四类策略的适用条件。第二层是操作层:能在主流框架中列出可用后端、读取其属性(比特数上限、是否支持噪声、是否支持条件门)、完成参数配置并提交一段带 shots 的电路。第三层是判断层:能根据电路特征和资源约束做出选型决策,并在结果异常时判断问题出在电路、后端还是统计方式上。

学习路径按“先全景、再分类、后实战”组织。前半程建立概念地图与选型判据,把四类模拟策略的内存模型、支持能力和典型失败模式讲透;中段进入具体框架的后端枚举与配置,包括如何查询后端列表、如何读取后端属性、如何设置 shots 与随机种子;后段用若干递进案例串联,从 5 比特的 Bell 态验证,到含中间测量的动态电路,再到带噪声信道的密度矩阵对比,最后落到一次完整的“选型—执行—判读—回退”闭环。每个案例都会给出可运行的参数与预期观察点,便于边学边验证。