4. 经典问题到量子线路的编码流程
把经典组合优化问题交给量子线路求解,并不是“把公式抄进量子门”这么简单。中间要经历一条完整的转换链:先把自然语言描述的问题形式化为数学模型,再选定用哪些量子比特承载哪些变量,然后把约束和目标函数翻译成量子线路能够识别的形式,最后构造线路并验证其行为是否符合预期。本节以一个小规模的背包问题为例,把这条链路走一遍,重点说明每一步的输入、输出和容易出错的地方。
一、问题形式化:从文字到数学模型
设有一个容量为 5 的背包,候选物品 3 件,重量分别为 2、3、4,价值分别为 3、4、5。目标是选择若干物品装入背包,使总重量不超过容量且总价值最大。形式化后得到:
变量:x_i ∈ {0,1},i = 1,2,3,表示是否选择第 i 件物品
约束:2x_1 + 3x_2 + 4x_3 ≤ 5
目标:max 3x_1 + 4x_2 + 5x_3
这一步的产出是一个明确的 0-1 整数规划模型。形式化的质量直接决定后续编码的复杂度:如果约束写得含糊,后面就要靠额外的惩罚项去“补救”,线路会变深、变难验证。
二、变量选择:决定量子比特的分配
量子线路中的每个量子比特最终对应一个可观测量,因此变量选择要回答两个问题:哪些经典变量需要映射为量子比特,以及是否需要辅助比特。对本例,三个决策变量 x_1、x_2、x_3 各占一个比特,共 3 个工作比特。约束 2x_1+3x_2+4x_3 ≤ 5 的左侧最大值为 9,需要额外表示“超出容量多少”的信息,通常引入辅助比特或松弛变量。若采用二进制展开表示松弛量 s ∈ {0,…,4},需要 3 个比特;若采用逐位比较的线路实现,则辅助比特数可以更少但门数更多。这是一个典型的资源与深度权衡点,应在变量选择阶段就明确记录。
三、约束表达与目标函数量子化
量子优化算法(如 QAOA 或量子退火)处理的是无约束的伊辛型能量函数,因此需要把约束“折叠”进目标函数,形成惩罚形式:
H = -(3x_1 + 4x_2 + 5x_3) + λ·max(0, 2x_1 + 3x_2 + 4x_3 - 5)²
其中 λ 是惩罚系数,取值要足够大,使任何违反约束的赋值在能量上都不占优;但也不能过大,否则能量尺度失衡,影响参数优化。对本例,可行解的最大价值为 7(选物品 1 和 2,重量 5),因此 λ 取 8 以上即可保证违反约束的解不会成为最优。目标函数量子化的实质,是把每个 x_i 替换为 (I - Z_i)/2 形式的泡利算符组合,从而把经典能量函数写成量子哈密顿量。代入后,线性项对应单比特 Z 算符,平方惩罚项会展开出 ZZ 形式的耦合项,这些耦合项决定了线路中需要哪些双比特门。
四、线路构造:从哈密顿量到门序列
以 QAOA 的 p=1 层为例,线路由三部分组成:对每个工作比特施加 Hadamard 门制备均匀叠加态;施加代价哈密顿量对应的相位分离层,其中单比特 Z 项用 RZ 门实现,ZZ 耦合项用“CNOT—RZ—CNOT”结构实现;再施加混合层,用 RX 门实现。上图给出了这一骨架:三个 H 门之后是三个 RZ 门,随后按耦合关系依次排布三组 ZZ 结构,最后是三个 RX 门与测量。需要注意,ZZ 项的旋转角度与惩罚系数 λ 和物品重量乘积相关,若 λ 取 8,则 x_1 与 x_2 的耦合项角度会明显大于线性项,这正是惩罚在能量景观上的体现。
构造线路时有两个工程细节值得留意。第一,耦合项的排布顺序会影响双比特门的连通性要求,若硬件只支持线性邻接,需要插入 SWAP 或选择与拓扑匹配的比特映射。第二,RZ 与 RX 的角度是变分参数,初值通常取小角度,避免初始能量景观过于平坦。
五、验证:怎么判断编码是对的
验证分两层。第一层是数学验证:把线路对应的哈密顿量在计算基下展开,检查每个基态的能量是否与经典目标函数一致。对本例,基态 |110⟩ 对应选物品 1 和 2,重量 5、价值 7,应得到最低能量;基态 |111⟩ 重量 9、超重 4,惩罚项为 8×16=128,能量应显著偏高。第二层是线路验证:在小规模下用态矢量模拟器直接计算最终态,检查高概率比特串是否落在可行解集合内;若使用采样,则统计 1024 次采样的频率分布,观察 |110⟩ 与 |101⟩ 等可行解是否占据主要概率质量。
把五步串起来看,形式化决定模型边界,变量选择决定比特预算,约束与目标量子化决定哈密顿量结构,线路构造决定门序与连通性,验证则把整条链路的正确性钉死。任何一步的疏漏都会在后一步被放大:约束漏写会让惩罚项缺失,变量少选会让可行解无法表示,耦合项排错会让能量景观失真。小实例的价值正在于每一步都能手工核对,从而在放大到几十个比特之前建立可靠的编码直觉。