阅读 486 次 , 阅读 1 次
QAOA算法
在本教程中,我们将使用DeepQuantum实现量子近似优化算法(QAOA),以求解最大割问题。该算法最初由Farhi等人在2014年提出[1]。首先,我们用一个简单的例子——一个有4个顶点和4条边的图,来概述最大割问题。然后,我们展示如何通过运行QAOA算法,利用DeepQuantum找到最大割。
背景知识
最大割问题
最大割问题的目标是最大化图中被划分的顶点(圆圈)分成两部分时所”割断”的边数(线段)。如下图所示:
考虑一个有 条边和 个顶点的图。我们寻求将顶点划分为两个集合 和 的最优划分方案 ,使得下式最大化:
其中 统计割断的边数。如果 将第 条边的一个顶点放在集合 中,另一个顶点放在集合 中,则 ;否则 。寻找一个使 达到最大值的割是一个典型的NP完全问题,因此我们只能依赖多项式时间内的近似算法来进行优化。在最大割问题中,我们需要找到一个顶点分配 ,使得 的值尽可能接近最大可能值。
顶点到集合 或 的分配可以通过一个二进制字符串 来表示,其中 代表第 个顶点位于集合 内,而 则代表其位于集合 内。例如,在之前提到的图中,二进制字符串可以表示成 ,这意味着第 和第 个顶点位于集合 ,而第 和第 个顶点位于集合 ,这样的分配使得割断的边的数量 达到了4,这也恰好是该图的最大割。在后续的内容中,我们将探讨如何利用DeepQuantum来计算基态,从而找出这样的最大割配置。
最大割问题的量子近似优化算法线路设计
这里介绍如何使用基本的量子门构建求解最大割问题的量子近似优化算法(QAOA)线路,以找到近似最优解。首先,我们用计算基态 表示图的划分,目标函数中的每一项可以表示为作用在这些态上的算符:
其中第 条边连接顶点 。当且仅当第 个和第 个量子比特的 z 轴测量值不同时,表示它们属于不同的子集,此时 的本征值为1。目标函数 可以看作一个具有整数本征值的对角算符。
QAOA 从 个计算基态的均匀叠加态开始:
我们的目标是探索比特串态空间,寻找一个在计算基测量下能够得到较大 值的叠加态。利用 个角度参数 ,,对初态进行一系列操作:
其中算符的具体形式为:
换言之,我们构建了 层参数化的 门。它们可以用下图所示的量子门来实现,忽略一个与参数无关的常数项。
令 为目标算符的期望值。下一节中,我们将使用DeepQuantum对线路参数 进行经典优化,以确定一个态 ,使得在计算基上测量时有较大概率得到近似最优划分 。对于上图所示的图,我们希望从优化后的量子态测量到 或 ,因为它们对应着最优划分。
从直观上讲,QAOA 试图将初态演化到 , 构成的平面内(如上图所示)。
在 DeepQuantum 中实现 QAOA
首先,我们导入 DeepQuantum 和其他相关的库。
用 qubit_num
指定量子比特(顶点)数,并根据上面的定义构造酉算符。 算符作用在单个量子线路上,而 算符作用在图中有边相连的顶点对应的量子线路上。我们还用元组列表 graph
定义图,其中每个元组表示图中的一条边。
接下来,我们创建一个有 4 个量子比特的量子设备。
我们还需要一个量子节点,根据角度参数施加算符,并返回可观测量 的期望值,用于后面目标函数中的每一项。参数 edge
指定目标函数中选择的边项 。一旦优化完成,将 edge
设为 None
,就可以用同一个量子节点对线路进行采样,得到近似最优比特串。我们用 n_layers
指定电路层数( 的重复次数)。
最后,我们在角度参数 (gamma[k]
) 和 (beta[k]
) 上优化目标函数,然后对优化后的电路进行多次采样,得到比特串分布。其中一个最优划分( 或 )应当是采样频率最高的比特串。我们通过最小化 来最大化 ,以遵循 DeepQuantum 中把优化问题统一表述为最小化问题的约定。
定义了一个名为 trainer
的函数,用于训练一个QAOA模型。函数接受三个参数:model
(要训练的模型对象),epoch
(训练的轮数),以及 learning_rate
(学习率)。
Epoch: 1/10, Loss: 0.0818
Epoch: 2/10, Loss: -0.0817
Epoch: 3/10, Loss: -0.2469
Epoch: 4/10, Loss: -0.4114
Epoch: 5/10, Loss: -0.5727
Epoch: 6/10, Loss: -0.7287
Epoch: 7/10, Loss: -0.8769
Epoch: 8/10, Loss: -1.0154
Epoch: 9/10, Loss: -1.1423
Epoch: 10/10, Loss: -1.2561
画出量子线路图
当我们设置 n_layers=2
时,可以得到最优目标函数值 。绘制结果
{'0101': 176, '0010': 45, '1100': 61, '1010': 172, '1101': 47, '0110': 58, '0011': 63, '1000': 44, '1111': 20, '1110': 60, '1011': 34, '1001': 59, '0111': 55, '0000': 24, '0100': 60, '0001': 46}
最佳分割方案0101
我们可以绘制优化后电路的测量分布。正如对这个图的预期,划分 0101 和 1010 的测量频率最高。
参考文献
[1] Farhi E, Goldstone J, Gutmann S. A quantum approximate optimization algorithm[J]. arXiv preprint arXiv:1411.4028, 2014.