1. 状态向量模拟的工程定位

在量子程序的实际执行链路中,状态向量并不是一个抽象的数学符号,而是贯穿编译、调度、执行与结果读取全过程的核心数据结构。理解它的工程定位,需要先回答三个问题:它表示什么、它适合表示什么规模的系统、以及它在线路执行中如何被逐步改写。

一个 n 量子比特的纯态可以写成 2ⁿ 个复数振幅的线性组合:

|ψ⟩ = Σ α_i |i⟩,  i = 0 … 2ⁿ−1
约束:Σ |α_i|² = 1

在模拟器中,这个式子落地为一个长度为 2ⁿ 的复数数组 state[],下标 i 对应计算基态 |i⟩,元素值对应振幅 α_i。例如 3 量子比特系统,state 长度为 8,初始态 |000⟩ 对应 state[0] = 1+0j,其余为 0。所有单比特门、受控门、测量都表现为对这个数组的读写与线性组合,这就是状态向量模拟的本质。

与密度矩阵、稳定子模拟的适用边界

状态向量模拟只描述纯态,规模上限由内存决定:每个振幅占 16 字节(双精度复数),n 比特需要 2ⁿ × 16 字节。30 比特约 16 GB,32 比特约 64 GB,因此工程上通常把 30 比特左右视为单机状态向量模拟的实用边界。

密度矩阵模拟用 ρ = Σ p_k |ψ_k⟩⟨ψ_k| 描述混合态,维度为 2ⁿ × 2ⁿ,内存是状态向量的 2ⁿ 倍。它适合需要噪声建模、退相干、部分迹或非纯态初态的场景,但规模通常只能到十几比特。

稳定子模拟(Clifford 模拟)利用 Gottesman–Knill 定理,用多项式规模的生成元表描述 Clifford 群作用下的态,可轻松处理上千比特,但只能精确模拟 Clifford 门(H、S、CNOT 等)。一旦引入 T 门、任意旋转门或一般测量,就需要魔态注入或稳定子分解,代价迅速上升。

模拟方式可表示状态内存量级典型适用场景
状态向量纯态O(2ⁿ)通用门线路、算法验证、小中规模精确模拟
密度矩阵混合态O(4ⁿ)噪声建模、退相干、开放量子系统
稳定子Clifford 态O(n²)大比特数 Clifford 线路、纠错码验证

选择依据可以归纳为:需要通用门且比特数在 30 以内,选状态向量;需要噪声或混合态且比特数在 15 以内,选密度矩阵;线路以 Clifford 门为主且比特数很大,选稳定子。三者不是互斥的,工程中常在同一框架内按线路片段切换后端。

从量子线路到状态向量演化的工程链路

一条量子线路进入模拟器后,会经历一条清晰的工程链路。以 3 比特线路 H(0); CNOT(0,1); RY(2, π/4); MeasureAll 为例:

  1. 线路解析:把门序列解析为带比特索引和参数的操作列表,如 [H, q0], [CNOT, q0, q1], [RY, q2, 0.785], [MEASURE, all]。
  2. 状态初始化:分配长度 8 的复数数组,置 state[0]=1,其余为 0,对应 |000⟩。
  3. 门作用:单比特门只改写与目标比特相关的振幅对;受控门按控制位为 1 的条件改写目标位振幅。例如 H(0) 把 state[0] 与 state[1] 变为 (α₀+α₁)/√2 与 (α₀−α₁)/√2。
  4. 测量与采样:按 |α_i|² 得到概率分布,采样得到经典比特串,并把状态坍缩到对应基态。
  5. 结果读取:输出概率分布、采样计数或期望值,供上层算法判断。

这条链路中,状态向量是唯一被反复读写的核心对象,门是变换,测量是投影与采样,线路是变换序列的声明。工程实现的关键在于:振幅索引与比特顺序的映射必须全局一致,否则 CNOT 的控制位与目标位会错位;归一化必须在每步后保持,否则概率解释失效。

量子线路 → 状态向量演化的工程链路 线路声明 H(0); CNOT(0,1) RY(2, π/4) 解析为操作表 [H,q0] [CNOT,q0,q1] [RY,q2,0.785] 状态初始化 state[0]=1+0j 其余 0,长度 2³=8 门作用改写 振幅对线性组合 受控条件分支 测量 采样 坍缩 状态向量数组(3 比特示例,演化中间态) 索引 i: 0 1 2 3 4 5 6 7 基态 |i⟩:|000⟩ |001⟩ |010⟩ |011⟩ |100⟩ |101⟩ |110⟩ |111⟩ 振幅 αᵢ:0.500 0.500 0.354 0.354 0.354 0.354 0.354 0.354 状态向量模拟 纯态 · 通用门 · O(2ⁿ) 适用 ≤ 30 比特 密度矩阵模拟 混合态 · 噪声 · O(4ⁿ) 适用 ≤ 15 比特 稳定子模拟 Clifford 态 · O(n²) 适用上千比特

工程实现中的关键约定

比特顺序是最容易出错的地方。常见约定有两种:小端序把 q0 放在最低位,索引 i 的二进制第 0 位对应 q0;大端序则相反。无论选哪种,线路解析、门作用、测量采样和结果输出必须使用同一约定。例如 CNOT(0,1) 在小端序下,控制位是索引的第 0 位,目标位是第 1 位,只有当 (i & 1) != 0 时才翻转第 1 位。

归一化检查应作为调试手段:每执行若干门后计算 Σ|α_i|²,若偏离 1 超过 1e−10,说明门实现或索引映射有误。概率读取时,prob[i] = |state[i]|²,采样可用累积分布加随机数实现,也可用别名法加速。

状态向量模拟的工程价值在于:它把量子程序的语义直接映射为可读写的复数数组,使门、测量、采样都能用经典循环和线性代数实现,是理解量子程序执行过程最直接的载体。