文中所有图片引用自原文 Tackling the Qubit Mapping Problem for NISQ-Era Quantum Devices

问题描述

文章介绍了将编写的量子电路映射为运行在真实设备上的方法。

在真实设备上,一个量子位只能与物理上相连的量子位进行运算。单量子门并不受这一限制的影响,而对于多量子门,如CNOT门,参与运算的量子位必须直接相连。由于任意多量子门都可拆分为多个单量子门和CNOT门的运算,因此我们只需研究如何处理CNOT门。

解决方案

符号约定

符号 定义
nn 逻辑量子位数量
{qi}i=1n\{q_i\}_{i=1}^{n} 逻辑量子位
gg 电路量子门数量
dd 电路深度
NN 物理量子位数量
{Qi}i=1n\{Q_i\}_{i=1}^n 物理量子位
G(V,E)G(V,E) 物理设备芯片抽象得到的图结构
D(Qi,Qj)D(Q_i,Q_j) QiQ_iQjQ_j 间距离
π(qi)\pi(q_i) qiq_i 当前对应的物理量子位
π1(Qi)\pi^{-1}(Q_i) QiQ_i 当前对应的逻辑量子位
F\mathbb F Front Layer
E\mathbb E Extended Set

简要思路

文中给出的方法是:对于逻辑上参与CNOT门的两个量子位 qiq_iqjq_j,若两者在物理上的映射并不相邻,则通过一系列SWAP操作,使得两者在物理上的映射相邻,即在电路中额外引入若干SWAP操作,使得电路在真实设备上可运行。

量子映射举例

文中使用一个DAG表示CNOT门之间的依赖关系,用拓扑排序的方式依次处理各个CNOT门。图中的结点表示一个CNOT门,边表示后继结点表示的CNOT门需要等待的量子位。

DAG生成

拓扑排序的队列为 F\mathbb F,文中称为 Front Layer。在拓扑排序的循环中,从 F\mathbb F 中挑出可直接在物理设备上执行的CNOT门,放入集合 Sg\mathbb S_g;若 Sg\mathbb S_g\neq\varnothing,则执 Sg\mathbb S_g 中的CNOT门,并更新 F\mathbb F;若 Sg=\mathbb S_g=\varnothing,则枚举所有可行的SWAP操作,执行评估函数值最优秀的SWAP操作,更新 π\piπ1\pi^{-1}

预处理

预处理阶段主要干四件事情:

  • 计算距离矩阵 DD,可简单认为芯片上的边都是双向的,边权都为 11,可用Floyd或者Johnson算法求全源最短路;
  • 根据逻辑电路生成DAG;
  • 初始化 F\mathbb F
  • 初始化 π\piπ1\pi^{-1}

SWAP操作枚举方法

显然,只有使得 FF 中的CNOT门可执行的SWAP操作才能使得拓扑排序不断进行下去,因此枚举SWAP操作时仅考虑 F\mathbb F 中的门电路。

枚举 FF 中的CNOT门,设参与某一CNOT门运算的两比特为 qiq_iqjq_j,取其中一个比特的物理映射 Qx=π(qi)Q_x=\pi(q_i),找到 QxQ_x 的邻接点集合 Qx\mathbb Q_{x\cdot}qiq_i 可与 π1(Qx)\pi^{-1}\left(\mathbb Q_{x\cdot}\right) 进行SWAP操作。

评估函数 HH

一个SWAP操作使用评估函数 HH 计算得分,HH 越小则SWAP操作越优秀。

假设执行SWAP之后的映射为 πt\pi_t,评价函数可表示为

H(SWAP(qx,qy))=max(decay(qx),decay(qy))1FCNOT(qi,qj)FD(πt(qi),πt(qj))+W1ECNOT(qi,qj)ED(πt(qi),πt(qj))H(\text{SWAP}(q_x,q_y))=\max(\text{decay}(q_x),\text{decay}(q_y))\cdot\frac{1}{|\mathbb F|}\sum\limits_{\text{CNOT}(q_i,q_j)\in\mathbb F}D(\pi_t(q_i),\pi_t(q_j))+W\cdot\frac{1}{|\mathbb{E}|}\sum\limits_{\text{CNOT}(q_i,q_j)\in\mathbb E}D(\pi_t(q_i),\pi_t(q_j))

总体来看,HH 体现了执行SWAP操作后参与运算的量子位之间的靠近程度。decay(qi)\text{decay}(q_i) 初始化为 11,当 qiq_i 参与一次SWAP操作,则 decay(qi)\text{decay}(q_i) 增加 δ\delta,这使得算法趋向于选择多个量子位运算不冲突的SWAP操作,使得多个SWAP操作可以并行执行。E\mathbb EExtended Set,即 F\mathbb F 的一部分后继;为了使得算法有较好的预见性,因此将 E\mathbb E 中的量子门也纳入评估。

初始映射 π\pi 优化

量子电路正向与反向等价

π\pi 的初始化对最终结果有很大影响,因此需要优秀的 π\pi 值。

文中运用了一个 trick:量子电路的正向执行与反向执行是等价的,因此首先随机初始化 π=πs\pi=\pi_s,用正向电路执行一遍上述算法得到 π=πf\pi=\pi_fπf\pi_f 对于反向电路来说是一个优秀的初始化映射;再用 πf\pi_f 作为初始化映射,用反向电路运行上述算法得到 π=πu\pi=\pi_u 得到优秀的正向电路初始化映射。

思考

  • 注意到DAG上的结点的出度和入度至多为2,这可能是可以进一步改进算法的地方。
  • 文中是基于IBM的量子芯片设计的算法,对于一些非对称的芯片(边是单向的),需要考虑新的优化算法。