4. 硬件高效Ansatz(HEA)原理与结构
硬件高效 Ansatz(Hardware-Efficient Ansatz,HEA)是变分量子算法中最贴近真实量子处理器约束的一类参数化线路设计思路。它的出发点非常直接:与其先设计一个理论上表达能力很强的线路、再费力把它编译到硬件上,不如反过来,直接采用硬件原生支持的量子门和连接关系来搭建线路,让线路“天生”就能高效执行。代价是线路的物理含义不再像化学启发式 Ansatz 那样清晰,但换来的是更浅的深度、更少的编译开销和更好的抗噪表现。
理解 HEA 的关键在于把握它的两层交替结构:旋转层负责引入可训练参数,纠缠层负责在量子比特之间建立关联。这两层反复交替堆叠,就构成了典型的 HEA 骨架。
旋转层:参数从哪里来
旋转层由作用在单个量子比特上的参数化旋转门组成,常见选择是 RX(θ)、RY(θ)、RZ(θ) 或它们的组合。每个旋转门携带一个可训练参数 θ,变分优化器调整的正是这些角度。旋转层的作用是把参数空间映射到量子态空间:如果只有旋转层而没有纠缠层,整个线路就退化为各个量子比特上独立旋转的张量积,无论堆叠多少层,都无法产生纠缠,表达能力被严格限制在乘积态范围内。因此旋转层单独存在时表达能力有限,必须与纠缠层配合。
一个常见的实现细节是:旋转层通常对每个量子比特都施加一个旋转门,参数按比特和层编号索引,例如第 l 层第 i 个比特的参数记为 θl,i。这种“每比特每层一个参数”的配置方式参数数量最多、灵活性最高,也是后面讨论参数共享策略的基准。
纠缠层:关联如何建立
纠缠层由双比特门构成,最常用的是 CNOT,在超导硬件上也常用 CZ 或 iSWAP。纠缠层的作用是把旋转层产生的局部相位信息“混合”到多比特关联中,从而扩展线路可触及的态空间。纠缠层的连接方式必须尊重硬件的物理耦合图:只有存在物理连接(或可通过 SWAP 网络路由)的两个比特之间才能直接放双比特门。这正是 HEA “硬件高效”的核心含义——纠缠层的拓扑直接取自硬件的连接拓扑,而不是任意指定的。
下面这张图展示了一个 4 比特 HEA 的典型结构:旋转层与纠缠层交替堆叠,纠缠层采用线性拓扑,参数按层与比特索引。
常见拓扑:线性、环形、全连接
纠缠层的连接方式决定了信息在比特之间传播的路径,也直接影响线路深度和表达能力。三种最常见的拓扑各有取舍。
线性拓扑把比特排成一条链,只在相邻比特间放双比特门(q0–q1、q1–q2、q2–q3……)。它的优点是深度最浅、对硬件最友好,几乎所有超导芯片都能直接实现;缺点是两端比特之间的信息必须经过中间比特“中转”,一层纠缠只能让相邻比特关联,要让 q0 与 q3 产生有效关联需要多层堆叠,因此表达能力增长较慢。
环形拓扑在线性链的基础上把首尾相连(增加 q3–q0 或 qn-1–q0),使每个比特都有两个邻居,信息可以沿两个方向传播,关联建立更快。代价是需要硬件上存在这条“回边”连接,否则要额外路由,反而增加深度。
全连接拓扑在每一对比特之间都放双比特门,一层纠缠即可让任意两比特直接关联,表达能力最强、所需层数最少。但双比特门数量随比特数平方增长,深度和噪声累积都显著上升,且绝大多数硬件并不支持全连接,必须靠 SWAP 网络模拟,实际开销往往得不偿失。工程上更常见的折中是“硬件原生拓扑 + 少量额外连接”的混合方案。
| 拓扑 | 每层双比特门数(n 比特) | 关联传播 | 硬件友好度 | 适用场景 |
|---|---|---|---|---|
| 线性 | n−1 | 慢,需多层中转 | 最高 | 近邻耦合芯片、深度受限 |
| 环形 | n | 较快,双向传播 | 较高(需回边) | 环形耦合、中等规模 |
| 全连接 | n(n−1)/2 | 最快,一层直达 | 低(需路由) | 小规模、强关联问题 |
参数共享策略
HEA 的参数数量随层数和比特数线性增长,在含噪中等规模量子设备上,参数越多优化越困难,容易出现贫瘠高原(barren plateau)。参数共享是控制参数规模、改善可训练性的重要手段,常见有三种粒度。
不共享(逐门独立参数):每个旋转门一个独立参数,灵活性最高,但参数最多,优化 landscape 最复杂。适合比特数较少、层数较浅的场景。
层内共享:同一旋转层内所有比特共用同一个参数,即 θl,i = θl。参数数降为层数,线路具有类似“全局旋转”的对称性,优化更稳定,但表达能力有所下降,可能无法区分某些需要比特间差异的态。
跨层共享(周期性共享):每隔 k 层重复使用同一组参数,形成周期结构。这在层数较多时能显著压缩参数空间,同时保留一定的层间差异。选择 k 时需要在表达能力和参数规模之间权衡,常见做法是先取 k=2 或 3 做小规模试验,观察损失收敛情况再调整。
一个可执行的搭建示例
以 4 比特、2 层、线性拓扑、层内共享参数为例,线路结构可写成如下伪代码(参数为示例假设值,非实测结果):
for layer in range(2):
for q in range(4):
RY(theta[layer]) on q # 层内共享:同层所有比特用同一参数
CNOT(0,1); CNOT(1,2); CNOT(2,3) # 线性纠缠层
measure all qubits
此时可训练参数只有 θ₀、θ₁ 两个。若把共享改为逐门独立,则参数变为 8 个。搭建完成后,先用一个简单的目标哈密顿量(例如横场伊辛模型的 4 比特链)跑一次前向,观察期望值是否随 θ 变化而单调或非单调地改变:如果改变 θ 后期望值几乎不动,说明共享过度或纠缠不足;如果期望值剧烈震荡且梯度噪声很大,说明参数过多或层数过深。这个“先看响应、再调结构”的检查,比直接进入完整优化更能快速定位结构问题。
需要强调的是,HEA 的表达能力与可训练性之间存在天然张力:拓扑越密、参数越独立,表达能力越强,但优化越难、噪声越敏感。选型的实质是在具体硬件约束下寻找这个平衡点,而不是追求理论上的最大表达能力。