4. MaxCut的哈密顿量建模

要理解量子算法如何求解 MaxCut,核心一步是把“图上怎么切”这个组合优化问题,翻译成量子硬件能够操作的能量函数。这一步的产物就是伊辛哈密顿量(Ising Hamiltonian)。本节围绕三个问题展开:割目标如何写成求和式、自旋变量如何与图的顶点一一对应、以及最终得到的哈密顿量中每一项到底代表什么。

一、先固定约定:自旋与割的对应关系

给定无向图 G=(V,E),每个顶点 i 分配一个自旋变量。我们采用计算中最常用的约定:自旋取值为 si ∈ {+1, −1},其中 si=+1 表示顶点 i 被划入集合 A,si=−1 表示划入集合 B。一条边 (i,j) 被“割断”,当且仅当两个端点落在不同集合,即 si ≠ sj,等价于乘积 sisj = −1。反之,若两端同侧,则 sisj = +1。

这个约定非常关键:它把“是否被割”这一离散判断,变成了一个只取 ±1 的乘积量。于是“割断的边数”就可以用乘积的求和来表达。需要强调的是,正负号约定必须在全文和图示中保持一致;若改用 si ∈ {0,1},则表达式形式会变化,容易在实现时引入符号错误。

二、割目标函数的构造

对每条边 (i,j),定义指示量 (1 − sisj)/2:当两端异侧时它等于 1,同侧时等于 0。把所有边加起来,就得到割大小的表达式:

C(s) = Σ_(i,j)∈E (1 − s_i·s_j) / 2
     = |E|/2 − (1/2)·Σ_(i,j)∈E s_i·s_j

MaxCut 的目标是最大化 C(s)。由于 |E|/2 是常数,最大化 C(s) 等价于最小化 Σ sisj。这正是伊辛模型的标准形式:能量越低,割越大。因此我们定义哈密顿量

H_C = Σ_(i,j)∈E s_i·s_j   (等价地写作 Σ J_ij·Z_i·Z_j,J_ij = 1)

其中 Zi 是作用在第 i 个量子比特上的泡利 Z 算符,其本征值为 +1 和 −1,恰好对应两个自旋方向。这样,一个图割问题就被完整地编码进了一个对角哈密顿量:它的每一个本征态对应一种割方案,本征值对应这种方案的“负割大小”(差一个常数)。

记忆要点:HC 的本征值越小,对应割越大。求 MaxCut 就是求 HC 的基态。常数项 |E|/2 不影响最优解的位置,只影响能量数值的平移。

三、用一个具体小图走一遍

取一个 4 顶点、4 条边的环图 C4,顶点 0–1–2–3–0 依次相连。边集为 {(0,1),(1,2),(2,3),(3,0)},|E|=4。哈密顿量为:

H_C = Z0Z1 + Z1Z2 + Z2Z3 + Z3Z0

考虑割方案 s=(+1,−1,+1,−1),即顶点 0、2 在 A,1、3 在 B。逐边计算乘积:Z0Z1=−1,Z1Z2=−1,Z2Z3=−1,Z3Z0=−1,求和得 HC=−4。代入割公式 C = 4/2 − (−4)/2 = 2 + 2 = 4,四条边全部被割断,这是 C4 的最优解。

再考虑 s=(+1,+1,−1,−1):Z0Z1=+1,Z1Z2=−1,Z2Z3=+1,Z3Z0=−1,求和得 HC=0,对应 C = 2 − 0 = 2,只割断两条边。可见能量从 0 降到 −4,割从 2 升到 4,能量与割大小呈严格的负相关。这个例子也说明:哈密顿量的每一项只涉及一条边的两个端点,图的结构直接决定了算符之间的耦合关系。

图结构 → 自旋变量 → 伊辛哈密顿量 环图 C₄(顶点标号与自旋取值) 0 s=+1 1 s=−1 2 s=+1 3 s=−1 蓝=A 集合(+1),紫=B 集合(−1) 橙色边:两端异侧,全部被割断 映射 哈密顿量逐项展开 H = Z₀Z₁ + Z₁Z₂ + Z₂Z₃ + Z₃Z₀ Z₀Z₁ = (+1)(−1) = −1 Z₁Z₂ = (−1)(+1) = −1 Z₂Z₃ = (+1)(−1) = −1 Z₃Z₀ = (−1)(+1) = −1 H = −4 ⇒ C = 4/2 − (−4)/2 = 4

四、从伊辛模型到量子哈密顿量

上面的 HC 是经典伊辛能量,写成算符形式后它就是一个对角量子哈密顿量。但量子算法(如 QAOA)并不直接对 HC 做演化,而是引入一个混合哈密顿量 HB = Σ Xi,其中 Xi 是泡利 X 算符。HB 负责在解空间中进行翻转(单比特翻转),HC 负责施加问题结构的相位。两者交替演化,就构成了 QAOA 的核心线路。

这里有一个容易混淆的点:HC 中的 ZiZj 项是对角的,它只改变相位、不改变计算基下的比特值;而 HB 中的 Xi 是非对角的,它才会真正翻转比特。理解这一分工,是理解后续 QAOA 线路设计的前提。

五、建模时的几个实操要点

  • 边权处理:若图带权 wij,则 HC = Σ wijZiZj,割目标相应变为 Σ wij(1−sisj)/2。权重直接进入耦合系数 Jij。
  • 常数项:|E|/2 或 Σwij/2 是能量平移,不影响最优解,但在比较不同规模图的能量值时必须保留,否则读数会系统性偏移。
  • 比特编号:顶点编号必须与量子比特索引严格一致,边表 (i,j) 决定了两两耦合的连线,编号错位会导致哈密顿量对应错误的图。
  • 符号自检:用全 +1 态(所有顶点同侧)验证,此时 HC 应等于 +|E|(无权情形),割为 0;若符号相反,说明约定写反了。
常见错误:把 HC 写成 −Σ ZiZj 却仍按“最小化能量”求解,结果会得到最大割的反面(即最小割)。建模完成后务必用一两个已知答案的小图做符号校验。