Tldr

文章链接

通过绝热定理,我们可以写出哈密顿量的一个形式:

又根据含时哈密顿量在薛定谔方程中的解,我们可以得出

根据 Trotter-Suzuki decomposition

我们可以将系统最终演化酉变换写为:

而 QAOA 就是在这个基础上,让哈密顿量在基态与问题哈密顿量之间切换,通过优化时间的参数,来达到优化最终损失函数的目的

A Quantum Approximate Optimization Algorithm

组合优化问题的编码

任意一个组合优化问题都可以被编码为 MAX-SAT 的形式( 个变量, 条子句),并使用这 个 0-1 变量定义一个目标函数:

其中,,为一个比特串, 表示第 条子句是否满足

对于一个量子计算机,其运行在一个 维的希尔伯特空间内,我们需要求得的比特串为 ,使得 最大

我们通过 量子计算原理 中的内容,将目标改写为通过构造一个参数 ,使我们能够求得哈密顿量的基态 ,也就是使得损失函数最小的量子态

在介绍如何构造哈密顿量之前,我们引入一个理论基础

绝热量子计算

Quote

绝热定理

对于一个含时但演化足够慢()的物理系统,若系统的初始时刻处于一能量本征态 ,那么在 时刻将处于 相应的瞬时本征态

那么,我们构建一个 含时的哈密顿量演化过程 如下,其中 ,其对应的本征态为 ,注意这里的 表示张量积

其中,

我们期望演化足够缓慢,于是 ,换而言之,我们对 这个区间进行细分,得到:

本质上,我们相当于演化了 次,每次的时间为 ,我们可以通过以下等式求得经过 次演化的本征态

其中 是一个酉变化,根据上面提到的哈密顿量演化过程,我们可以将其写为如下形式:

进一步的,为了方便电路的实现,对每次的演化,我们规定如下:

也就是来回演化 ,那么我们可以写出 的表达如下:

Question

乍看这种交替作用的演化并不是一条连续的演化路径(绝热定理要求是连续的,因为我们需要对其做积分), 甚至路径两端并不是从 ,不符合绝热定理的要求

但实际上,这相当于在某一条连续的路径上进一步做了 Trotter 分解

我们令 ,即可得到:

其中,

根据 量子计算理论基础 可以知道,我们现在就得到了一个可以使用经典优化器优化的模型:

通过测量得到 后,调用传统优化器更新 (梯度下降,牛顿法,单纯形法等),不断重复这个过程,如下图所示:

最后,我们在基态中测量 ,测得概率最大的一个作为问题的解

Important

根据我们之前所说,这里的酉变换 本质上都是量子门,但我们期望所有量子门都通过基础的门来生成(泡利门等),于是这要求我们需要将问题的哈密顿量编码为能够写为泡利门组合的形式

最小顶点覆盖示例

考虑 上的 MVC 问题,我们的目标是选取最少的顶点,使得所有的边均覆盖

于是,对于每个顶点,我们使用 这个量子比特来表示,其为 的叠加态,那么对这个图而言,我们需要求得一个比特串 ,这个比特串的第 位表示顶点 是否被选择,那么对于整个量子系统,我们可以写出 的表示为 个量子比特的张量积:

问题的哈密顿量为:

其中

于是,我们的目的就是求得当哈密顿量最小时的基态 的值

考虑一个简单的图,如下所示,显然其最小顶点覆盖的解为:{2, 1},需要求得的量子比特位 (当然也有其他解)

我们考虑两层的 QAOA 算法,线路如下所示:

随后,我们使用梯度下降优化器来优化参数 ,使得 取得最小值,我们运行 70 轮:

最终,我们测量出现概率最高的基态:

概率最高的也同样是 ,但我们发现其实还有错误的解 ,如果我们扩大 ,那么可以测量得到如下结果:

可以发现现在概率高的都已经是正确解了

Info

QAOA 中的近似,本质上是在绝热过程中的近似,因为绝热演变要求时间缓慢(也就是趋向于无穷),那么也就要求 ,因此近似的 gap 有很大一部分在这里