-
量子计算强大的并行计算加速能力使其在量子模拟、整数分解、数据库搜索以及机器学习等领域具有巨大潜力[1–4]。未来量子计算将进入有噪声的中规模量子计算机(noisy intermediate-scale quantum computer, NISQ)时代[5]。谷歌、IBM、华为等公司相继提供了72、50、42个量子位的量子计算模拟器[6-7],量子计算的加速潜力正在逐步实现。
由于NISQ时代技术限制,只有在量子硬件耦合架构上允许相连的量子位上可以发生交互。通过量子线路映射算法,量子程序才能高效地编译并运行在量子硬件上。在量子程序编译的过程中如何高效地进行量子线路映射至关重要。研究成果表明,优秀的量子线路映射算法[8]可以将量子线路中的附加量子门数降低80%,甚至无需附加量子门,缩短量子线路运行时间,保证运行结果的可靠性。
量子线路映射问题已经被证明是NP完全问题[9],在量子线路规模日益增大、架构日益复杂的今天,更为灵活、扩展性更佳的启发式算法是量子线路映射算法的主要研究方向[10]。目前,国内外学者对量子线路启发式映射算法已开展了许多研究。文献[11]令初始映射优先满足物理上相邻的CNOT门,每次量子位移动,只解析一个双量子位门,根据它们之间的双量子位门数量决定是否移动量子位。虽然算法速度很快,但过于简单,效果一般。文献[12]尝试将A*-based (algorithm based on A* search)算法引入启发式成本函数,将双量子位门划分为独立的层,最小化层中耦合量子位之间的距离之和,同时减少最终输出线路的深度。不足在于搜索所有可能的并发SWAP门组合仍然需要指数时间,初始映射只由线路开始时的两个量子位门决定,不考虑全局性。文献[8]提出了SABRE (SWAP-based BidiREctional heuristic search algorithm)算法,对量子映射进行更加精准的建模,通过优化每次搜索尝试,将指数复杂度的搜索空间缩小至线性复杂度,但存在附加门数不稳定的问题。文献[13]使用动态分配并回收量子位来对占用的计算资源进行优化。
现有的量子线路映射算法相关研究主要关注量子位映射的中间变换策略,对量子位映射的初始化方式关注较少。研究表明初始量子位映射对量子线路映射算法的结果有很大影响[8],在中间映射变换之前利用已知量子线路信息提前对量子位映射初始化是一种行之有效的优化方式。本文致力于设计高效的量子线路映射算法,利用前端层信息初始化量子位映射,采用耦合图节点近邻化代替全局搜索,有助于降低量子程序执行时间,提高量子线路保真度。
-
本文在量子线路映射算法SABRE算法[8]的基础上,保留SABRE算法双向遍历和就近搜索候选SWAP门空间的特点,使用前端层信息初始化量子线路映射代替随机初始化量子位映射,并对遍历流程和启发式代价函数进行改进,设计了基于交换门的前瞻双向启发式算法(SWAP-based prospective bidirectional heuristic algorithm, SPBHA)。SPBHA算法包含4个部分:预处理、单次遍历、双向遍历更新映射与启发式代价函数,表1定义了SPBHA算法使用的数学符号。
-
SPBHA算法预处理的具体步骤如下。
计算距离矩阵:给定量子器件的耦合图,通过Floyd-Warshall[18]算法计算所有点对最短路径(all pairs shortest path, APSP),以获得距离矩阵D,耦合图每条边距离为1。
$D_{[i][j]}$ 表示将逻辑量子位从物理量子位$ Q_i $ 移动到$ Q_j $ 所需的最小SWAP数。表 1 SPBHA算法数学符号定义
数学符号 定义 $n$ 逻辑量子位数 $q_{\{1,2,\cdots,n\}}$ 量子线路中的逻辑量子位 $Q_{\{1,2,\cdots,n\}}$ 量子设备中的物理量子位 $d$ 量子线路的深度 $g$ 量子线路的量子门序号 $N$ 物理量子位数 $G(V,E)$ 量子硬件的耦合图 ${\boldsymbol{D}}$ 物理量子位的距离矩阵,$D_{[i][j]}$表示$Q_i$到$Q_j$的距离 π $q_{\{1,2,\cdots,n\}}$到$Q_{\{1,2,\cdots,n\}}$的映射关系 π−1 $Q_{\{1,2,\cdots,n\}}$到$q_{\{1,2,\cdots,n\}}$的映射关系 $F$ 前端层 $E$ 扩展集 生成量子线路有向无环图(directed acylic graph, DAG):使用DAG表示量子线路中受控非门CNOT门的依赖顺序。单量子位门只在一个量子位上执行,不会对其他量子位产生依赖,因而量子线路映射算法不考虑单量子位门。当CNOT门的两个量子位
$ q_i $ 或$ q_j $ 上所有之前的CNOT门都已执行时,才能执行${\rm{CNOT}}(q_i,q_j)$ 。遍历整个量子线路,并构造一个DAG。图4b的DAG是由图4a的量子线路生成的。如由于量子位$ q_2 $ 同时存在于量子门$ g_1 $ 和量子门$ g_3 $ 中,而在$ g_1 $ 之前不能执行$ g_3 $ ,所以量子门$ g_3 $ 依赖于量子门$ g_1 $ 。以此类推,根据量子门之间的依赖关系生成DAG。初始化前端层:前端层(F)被定义为DAG中没有未执行前导的所有CNOT门的集合,意味着对应的双量子位门没有依赖性,可以立即在硬件上执行。对于
${\rm{CNOT}}(q_i,q_j)$ ,当CNOT门的两个量子位$ q_i $ 或$ q_j $ 上所有之前的量子门都被执行时,它可以被放置在集合F中。遍历第二步得到DAG,并找到图中入度为0的所有顶点(量子门),将这些量子门放入F,以初始化F。图4中,初始化的前端层包含$ g_1 $ 和$ g_2 $ ,因为它们没有前导。利用前瞻机制初始化量子位映射:SPBHA算法使用前端层量子门的信息,在进行单次遍历算法之前利用前瞻机制对量子位映射进行出初始化。图5c线路使用图5a量子硬件架构,并根据定义(见表1)划分出前端层、前端层的后继门组成的短期层和远离前端层的长期层。在前端层的
${\rm{CNOT}}(q_1,q_3)$ 中,将$ q_1 $ 映射到$ Q_1 $ ,并根据$ Q_1 $ 相邻的物理量子位情况,将$ q_3 $ 映射到$ Q_2 $ ,使得$ q_1 $ 和$ q_3 $ 的物理量子位相邻,该CNOT门无需插入任何SWAP门可以直接在硬件上运行。同理,${\rm{CNOT}}(q_2,q_6)$ 中,$ q_6 $ 映射到$ Q_6 $ ,$ q_2 $ 映射到$ Q_3 $ 。在满足前端层的量子门均可以直接在硬件上运行后,剩余未映射的量子位进行随机分配。图5b中虚线框的映射为利用前瞻信息初始化的映射,实线框映射为随机初始化映射。由于量子程序具有与经典程序类似的局部性原理,作用在相同量子位对上的量子门可能在短时间内再次运行。利用局部性原理,SPBHA算法可以进一步减少附加门的数量,提高算法效率。由于前端层的量子门之间没有依赖性,因此必然可以找到一个使得满足前端层量子门均可以直接在硬件上运行的初始量子位映射。 -
算法1 单次遍历算法
Input:距离矩阵D、线路DAG、初始F和初始映射
$ \pi $ Output:更新的量子映射
$ \pi_u $ ,插入SWAP门的信息while
$ {{{F}}=\varnothing} $ do${{\rm{Execute}}\_{\rm{gate}}\_{\rm{list}}}\leftarrow\varnothing$ /*初始化可执行门集合*/;for
$ \mathrm{gate} \in {{F}} $ doif 量子门可直接在硬件上运行 then
${{\rm{Execute}}\_{\rm{gate}}\_{\rm{list}}.{\rm{add}}({\rm{gate}})}$ /*添加可执行门*/;end
end
if
$ \mathrm{{Execute\_gate\_list}\neq\varnothing} $ thenfor
$ \mathrm{gate\in {Execute\_gate\_list}} $ do$F.{\rm{remove}}({\rm{gate}})$ ;从DAG中获得F的后继门successor_gate;
$F.{\rm{add}}({\rm{successor}}\_{\rm{gate}})$ ; /*添加后继门*/;end
end
else
${\rm{score}}\leftarrow\varnothing$ /*初始化评分数组*/;${\rm{SWAP}}\_{\rm{Candidate}}\_{\rm{list}}\leftarrow\ {\rm{GetSWAP}}(F.G)$ /*根据前端层和耦合图得到候选插入的SWAP门*/;for
$ \mathrm{SWAP\in {SWAP\_Candidate\_list}} $ do$\pi_{{\rm{temp}}}\leftarrow \pi.{\rm{update}}({\rm{SWAP}})$ /*用当前SWAP门暂时更新映射*/;${\rm{score}}[{\rm{SWAP}}]\leftarrow H(\pi_{{\rm{temp}}},F,{\boldsymbol{D}}, {\rm{DAG}},$ ${\rm{SWAP}})$ ; /*根据启发式代价函数获得SWAP门的评分*/;F.add(successor_gate);
end
找到最佳评分的SWAP门;
$\pi \leftarrow \pi .{\rm{update}}({\rm{SWAP}}))$ /*用当前SWAP门更新映射*/;end
end
算法1描述了SPBHA的单次遍历算法流程,算法扫描整个DAG并插入SWAP门,以使所有CNOT门都可执行。
在单次遍历算法的每次迭代中,检查F中是否有任何可以直接在硬件上执行的量子门。若存在可直接执行的量子门,算法将执行这些量子门并将其从F中移除,然后向F添加新的后继门。如果F中所有量子门都不能直接在硬件上执行,算法将尝试搜索可能插入的SWAP门集合并进行评估,在量子线路中插入当前最适合的SWAP门更新映射。该算法将不断迭代,当前端层F为空时,说明量子线路中的所有量子门都已执行,算法停止。
-
双向遍历的过程如图6所示,SPBHA算法进行预处理初始化量子位映射,并使用单次遍历算法正向遍历原始线路。从正向遍历中获得的量子位映射将作为反向遍历中的初始映射。利用量子计算的可逆性,原始线路可生成对应的反向线路。反向线路中的两个量子位门完全相同,只有顺序相反。之后,再次使用单次遍历算法遍历反向量子线路,最终将经过反向遍历得到的映射作为最终映射。
使用双向遍历的方式获得量子位映射可以全局考虑量子线路上所有量子位门的信息。由于在同一量子硬件模型上正反向运行同一线路,考虑了所有的量子位门信息,更新后的初始映射较单次遍历的初始映射使用的附加门更少。尽管位于量子线路中间的量子门对映射的影响小于两端的量子门,双向遍历对减少附加门数的效果依然明显。
-
启发式成本函数是SPBHA算法的核心,用来评估每个候选插入的SWAP门的分数,从而帮助SPBHA算法找到当前线路最适合插入的SWAP门。
基于最近邻代价(nearest neighbor cost, NNC)的启发式代价函数是最普遍与基本的启发式代价函数[19]。评估时暂时改变量子位映射
$ \pi $ ,然后对F中所有量子位对之间距离求和(量子位间的距离可通过预处理阶段计算的距离矩阵D求得)得到启发式代价函数的函数值。若函数值很小,意味着F中两个量子位对之间的距离很短,此SWAP门更可能使F中的量子门可执行,最终将选择具有最小函数值的SWAP门改变映射。基于NNC的启发式代价函数的形式为:$$ H_{{\rm{basic}}} = \sum\limits_{{\rm{gate}}\in_F}{\boldsymbol{D}}[\pi {({\rm{gate}}.q_1)}][\pi {({\rm{gate}}.q_2)]} $$ (1) SABRE算法的启发式代价函数在式(1)的基础上考虑后续的量子门,引入了扩展集E,它包含了F中部分门的后继门。SABRE算法用F和E的大小来规范化F与E的总和,添加权重参数
$ W(0\leq W<1) $ 以减少E的影响。为了选择可以并行执行的SWAP门,在函数中引入了衰减效应。如果一个量子位$ q_i $ 最近参与了SWAP门,那么它的衰变参数将增加$\delta({\rm{decay}}(q_i) = 1+\delta)$ 。该衰减参数将使启发式搜索倾向于选择不重叠的SWAP门,增加生成线路中的并行性。SABRE算法的启发式代价函数形式为:$$ \begin{split} & H_{{\rm{SABRE}}} = {\rm{max}}({\rm{decay}}({\rm{SWAP}}.q_1),{\rm{decay}}({\rm{SWAP}}.q_2))\times\\ & \ \ \ \ \ \ \ \ \left\{ \frac{1}{|F|}\sum\limits_{{\rm{gate}}\in F}{\boldsymbol{D}}[\pi{({\rm{gate}}.q_1)}][\pi{({\rm{gate}}.q_2)}] +\right.\\ & \ \ \ \ \ \left.W \frac{1}{|E|}\sum\limits_{{\rm{gate}}\in E}{\boldsymbol{D}}[\pi{({\rm{gate}}.q_1)}][\pi{({\rm{gate}}.q_2)}]\right\} \end{split}$$ (2) 然而,式(2)有可以继续改进的地方。式(2)只将部分F中量子门的后继门放入扩展集E,以体现前瞻能力的灵活性,实际上E设置为灵活大小并无必要,通常来说考虑F的全部后继门将更充分地考虑后续量子门的位置信息,从而插入更高效的SWAP门。因此SPBHA算法的启发式函数改为将F中所有量子门的后继门放入E中,得到具有最大前瞻能力的扩展集
$E_{{\rm{max}}}$ 。在SPBHA算法的启发式代价函数中,衰减函数定义为:
$$ {\rm{decay}}({q_i}) = \left\{ {\begin{array}{*{20}{c}} {1 + n\delta - m\varepsilon }&{{\rm{decay}} \ge 1}\\ 1&{{\rm{decay}} < 1} \end{array}} \right. $$ (3) 式中,
$ n $ 为$ q_i $ 参与的SWAP门数;$ m $ 为当前已执行门数;$ \delta $ 为衰变参数;$ \varepsilon $ 为执行参数,且$ \delta = 4\varepsilon $ 。式(3)的设计目的是将衰变函数变得更加连续,相较于式(2)采用每5个搜索步骤或在执行CNOT门后重置函数,式(3)不重置函数,转而全局考虑$ q_i $ 参与过的所有SWAP门,结合已执行量子门数确定衰减函数值。当衰减函数值小于1时,说明最近插入的SWAP门距离当前量子门过远,因此衰减函数值设为1,不影响当前的并行选择,而且能够综合考虑量子位参与过的全部SWAP门以及到当前门的距离。此外,将取衰变函值中最大值改为求和,从而同时考虑
$ q_i $ 和$ q_j $ 的情况。最终SPBHA算法的启发式代价函数形式为:$$ \begin{split} &\;\;\;\;\;\;\;\; H = ({\rm{decay}}({\rm{SWAP}}.q_1)+{\rm{decay}}({\rm{SWAP}}.q_2))\times \\ & \;\;\;\;\;\;\;\;\;\; \left\{\frac{1}{|F|}\sum\limits _{{\rm{gate}}\in F}{\boldsymbol{D}}[\pi{({\rm{gate}}.q_1)}][\pi{({\rm{gate}}.q_2)}]+\right.\\ & \left. W \frac{1}{|E_{{\rm{max}}}|}\sum\limits _{{\rm{gate}} \in E_{{\rm{max}}}}{\boldsymbol{D}}[\pi{({\rm{gate}}.q_1)}][\pi{({\rm{gate}}.q_2)}]\right\} \end{split} $$ (4) -
在量子线路映射问题中,量子位映射
$ \pi $ 具有指数级可能性:$\dfrac{N!}{(N-n)!}$ 。因此,精确求解最优解并不可行,往往使用启发式方法和其他优化方式降低计算复杂度并得到次优解。现有启发式算法[12]使用穷举搜索,每个CNOT的候选SWAP门搜索空间与时间复杂度是$O({\rm{e}}^N)$ ,其中包括冗余的搜索空间,可以继续改进。设$ q_i $ 是F中CNOT门的一个逻辑量子位,SPBHA算法不搜索全部可能的逻辑量子位,而是通过量子位映射$ \pi $ 和耦合图G得到$ j $ 个近邻的物理量子位:$$ Q_{i_1},Q_{i_2},\cdots,Q_{i_j} = G(\pi(q_i)) $$ (5) 通过逆映射
$ \pi^{-1} $ 获得$ q_i $ 在硬件上近邻的全部逻辑量子位:$$ q_{i_1},q_{i_2},\cdots,q_{i_j} = \pi^{-1}(Q_{i_1}),\pi^{-1}(Q_{i_2}),\cdots,\pi^{-1}(Q_{i_j}) $$ 将
$q_{i_1},q_{i_2},\cdots,q_{i_j}$ 与$ q_i $ 构成候选SWAP门的量子位对,通过启发式代价函数评估候选SWAP门,得到当前最优的SWAP门并更改映射:$$ \begin{array}{c} {\rm{SWAP}}(q_i,q_j) = \nonumber\\ {\rm{min}}\{H[{\rm{SWAP}}(q_i,q_{i_1}),{\rm{SWAP}}(q_i,q_{i_2}),\cdots,{\rm{SWAP}}(q_i,q_{i_j})]\} \end{array}$$ 式(5)不考虑远离前端层的长期层中的量子门(见图4b),因为
$ \pi $ 在执行期间可能显著变化,在无法穷举搜索的情况下很难准确地估计当前映射对长期层的影响。由于SPBHA算法只搜索能帮助解决前端层中依赖关系的候选SWAP门(即物理上近邻的逻辑量子位),因此搜索候选SWAP门的空间复杂度由$O({\rm{e}}^N)$ 降至$ O(N) $ ,大幅提升了算法执行速度。SPBHA算法在最坏情况下,每个双量子位门都需要改变映射满足耦合约束。为方便分析,设CNOT门数量为
$ m $ ;CNOT门的搜索空间中评估一个候选SWAP门的时间为$ t $ ;最大可能的SWAP门搜索空间大小为$ s $ ;每个CNOT门的最大搜索步数为$ k $ 。SPBHA算法预处理阶段的4个步骤中,Floyd算法时间复杂度是
$ O(N^3) $ ,生成量子线路DAG的时间复杂度为$ O(m) $ ,初始化前端层即在量子线路DAG中搜索入度为零的顶点,时间复杂度是$ O(m) $ 。利用前瞻机制初始化量子位映射的时间复杂度为$ O(N) $ (最坏情况下前端层涉及所有物理量子位),因此预处理阶段的时间复杂度可表示为$T_1(N,m) = O(N^3+m)$ 。SPBHA算法中的单次遍历算法的时间复杂度可表示为
$t \times s \times k \times m$ ,根据式(4),最坏情况下所有量子位都出现在前端层和扩展集,则$ t $ 的时间复杂度为$ O(N) $ 。最坏情况下,CNOT门的两个逻辑量子位在物理上与其余全部的量子位近邻,故最大可能SWAP门搜索空间大小$ s $ 为$ O(N) $ 。单次遍历算法至多需要量子芯片耦合图直径数量的SWAP门为每个CNOT门移动两个量子位,对于2D网格布局来说最大搜索步数$ k $ 为$ O(\sqrt{N}) $ 。因此,单次遍历算法的时间复杂度$T_2(N,m) = O(N^{2.5} m)$ 。SPBHA算法的总时间复杂度为:
$$ \begin{split} & T(N,m) = T_1(N,m)+T_2(N,m)= \\ &\;\; {\rm{max}}(O(N^3+m),O(N^{2.5} m))= \\ &\;\;\;\;\;\;\;\;\;\; O(N^{2.5} m) \end{split}$$ 主要计算开销来自3次运行单次遍历算法,而对于运行在NISQ设备上的量子程序,当量子位数处于100以内,量子线路中CNOT门数在10000以内时,时间复杂度是可以接受的。
-
量子线路运行平台使用IBM Quantum Experience平台,测试数据选自IBM的QisKit中的量子线路、RevLib[20]中的函数以及Quipper[21]和ScaffCC[22]中编译的算法。实验在英特尔Core i7-8750H 2.2 GHz和16 GB内存的计算机上进行,操作系统为Windows 10。
所有实验均使用IBM Q20 Tokyo芯片的耦合图。该芯片为对称量子硬件模型,每对相连的物理量子位之间的两个方向上都允许使用CNOT门。实验进行了A*-based算法、SABRE算法和SPBHA算法的对比分析。由于SPBHA算法和SABRE均存在随机初始化量子线路映射过程,所以结果存在波动。实验将每种算法运行5次,取平均结果。
SPBHA算法经过多次测试,最终选取效果最佳的一组参数,具体如下:权重参数
$ W = 0.5 $ 固定不变,执行参数$ \varepsilon = 0.000\;5 $ ,衰变参数$ \delta = 0.002 $ ,每次增加0.001。SABRE算法参数选择如下:权重参数$ W = 0.5 $ 固定不变,衰减参数$ \delta = 0.001 $ 。 -
表2列出了A*-based算法、SABRE算法和SPBHA算法在不同规模量子线路下的附加门添加数量。由表2可知SPBHA算法减少附加门数的效果远好于A*-based算法。小规模量子线路(量子规模小于1000)的附加门数降低百分比可以达到76%,中规模量子线路为71%,大规模量子线路则为57%。部分测试中SPBHA算法可通过双向遍历找到完美初始映射,无需额外附加门(如ising_model_10等)。
表 2 在不同规模量子线路下的附加量子门数实验结果
量子线路名称 量子位数/bit 原始量子门数 A*-based算法量子门数 SABRE算法量子门数 SPBHA算法量子门数 4mod5-v1_22 5 21 3 3 0 mod5mils_65 5 35 18 6 0 alu-v0_27 5 36 27 0 3 decod24-v2_43 4 52 18 3 3 4gt13_92 5 66 30 3 3 mini_alu_305 10 173 69 42 36 qft_10 10 200 60 54 42 rd84_142 15 343 93 105 51 qft_13 13 412 156 93 57 ising_model_10 10 480 30 0 0 cnt3-5_180 16 485 220 166 90 qft_16 16 512 171 186 45 ising_model_13 13 633 30 0 0 ising_model_16 16 786 108 0 0 wim_266 11 986 390 237 136 cm152a_212 12 1221 462 232 0 cm42a_207 14 1776 870 453 300 adr4_197 13 3439 1212 780 771 misex1_241 15 4813 1869 1521 69 cycle10_2_110 12 6050 1911 912 6 square_root_7 15 7630 1953 1701 1419 sqn_258 10 10223 3990 2799 2079 rd84_253 12 13658 4656 1614 96 co14_215 15 17936 6357 892 231 max46_240 10 27126 9597 7938 7305 9symml_195 11 34881 10053 8892 8037 A*-based算法的附加门数多于SPBHA算法的原因是A*-based算法只考虑量子线路开头的两个量子位门,没有继续改进初始映射。对于ising_model基准,最优解的意义不大,因为量子力学中的ising_model只考虑附近的耦合能量。SPBHA算法和SABRE算法都可以找到完美初始映射,而A*-based不行,这从一个侧面反映了算法的性能。
与SABRE算法相比,SPBHA算法在小规模量子线路的附加门数降低百分比可以达到38%,中规模量子线路为48%,大规模量子线路则为16%。上述两个算法都有随机因素,因此进行5次实验取平均结果可以一定程度上反映算法的真实情况。如表2所示,在大多数测试中,SPBHA算法都有更低的附加门数量,仅在少数测试时略高于SABRE算法,其中一些测试结果显著低于SABRE算法。SPBHA算法的附加门数少于SABRE算法的原因是表2的部分测试中存在大量运行在相同量子位对上的CNOT门。根据局部性原理,SPBHA算法具有满足前端层CNOT门耦合的初始映射,在部分测试上(如cycle10_2_110)可大幅减少附加门数,符合算法分析。
-
SPBHA算法使用了双向遍历,即正向遍历线路得到初步的量子位初始映射,利用量子线路的可逆性反转线路并将正向遍历得到的映射作为输入反向遍历线路,最终得到更新的初始映射。
表3列出了使用不同遍历方式的SPBHA算法附加门数的影响。实验结果显示双向遍历得到的量子位映射相较单次遍历普遍具有更好的性能,更新的初始映射使得算法添加了更少的附加门。随着量子线路规模增大,双向遍历与单次遍历的附加门数差距逐渐减小,最差情况可以减少7%的CNOT门数。原因是量子线路规模增大,两端量子门的情况不足以代表全部量子门的情况,因此对附加门数的影响减小,较单次遍历的降幅不够明显。使用双向遍历方式的算法在附加门数上总体少于单次遍历方式的附加门数,与算法分析是一致的。
表 3 使用不同遍历方式的SPBHA算法实验结果
量子线路名称 量子位数/bit 原始量子门数 单次遍历量子门数 双向遍历量子门数 4mod5-v1_22 5 21 3 0 mod5mils_65 5 35 12 0 alu-v0_27 5 36 16 3 decod24-v2_43 4 52 9 3 4gt13_92 5 66 15 3 mini_alu_305 10 173 63 36 qft_10 10 200 60 42 rd84_142 15 343 66 51 qft_13 13 412 102 57 ising_model_10 10 480 9 0 cnt3-5_180 16 485 123 90 qft_16 16 512 83 45 ising_model_13 13 633 6 0 ising_model_16 16 786 21 0 wim_266 11 986 198 136 cm152a_212 12 1221 6 0 cm42a_207 14 1776 354 300 adr4_197 13 3439 886 771 misex1_241 15 4813 93 69 cycle10_2_110 12 6050 15 6 square_root_7 15 7630 1731 1419 sqn_258 10 10223 2814 2079 rd84_253 12 13658 126 96 co14_215 15 17936 261 231 max46_240 10 27126 8240 7305 -
图7展示了6组测试在不同衰变参数
$ \delta $ 值下产生的量子线路深度变化。每组测试的数据分别在$\delta = 0.002\text{,}\delta = 0.004\text{,}\delta = 0.006$ 的情况得到。由于映射算法的改变,SABRE算法和SPBHA算法的选择能力难以比较。如图7所示,SPBHA算法可通过改变附加门的数量使得生成线路深度变化平均达到10.6%。根据文献[8]的实验,SABRE算法可提供约8%的生成量子线路深度变化,从量子线路深度变化的指标对比,可以反映出SPBHA算法可以根据量子位相干时间和门保真度数据来改变
$ \delta $ 的值,因而具有相对更好的深度与量子门数的选择能力。实验结果表明,如果继续增大
$ \delta $ 值,量子线路深度和门的数量都可能增加,原因是$ \delta $ 过大导致启发式代价函数将过多地考虑未移动的量子位,而不是去满足当前与后继CNOT门的依赖性,这将带来冗余的附加门数,提高算法执行时间。
SWAP-Based Prospective Heuristic Quantum Circuit Mapping Algorithm
-
摘要: 含噪声中规模量子硬件的耦合约束使得大多数量子算法通过插入附加量子门改变量子位映射,令量子算法直接运行在硬件上。为了降低量子线路的运行时间及提高量子线路的保真度,设计了一种基于交换门的前瞻双向启发式映射算法。首先,利用前瞻机制考虑前端层信息,提高了附加门数结果的稳定性。其次,设计搜索策略评估物理上近邻的候选交换门,降低交换门搜索空间的复杂度。最后,采用双向遍历全局考虑量子线路的门信息,得到更高质量的初始映射。此外,该算法适用于任意耦合量子硬件架构,同时具有线路深度和附加门数的选择能力。实验结果表明,相较于主流算法A*-based算法和SABRE算法,该文提出的SPBHA算法可减少约68%与34%的附加门数,线路执行时间缩短,保证了量子程序结果的可靠性。Abstract: The coupling constraint of noisy intermediate-scale quantum hardware makes most quantum algorithms change quantum bit mapping by inserting additional quantum gates, so that quantum algorithms run directly on the hardware. In order to reduce the quantum circuit running time and improve the quantum circuit fidelity, this paper designs a SWAP-based prospective heuristic quantum circuit mapping algorithm. First, the prospective mechanism is used to consider the front layer information, which improves the stability of the additional gate count results. Secondly, the search strategy is designed to evaluate the physically close candidate SWAP gates to reduce the search space complexity of SWAP gates. Finally, a bidirectional traversal is used to globally consider the gate information of quantum circuits to obtain higher quality initial mappings. The proposed algorithm is suitable for arbitrary coupled quantum hardware architecture, and has the ability to select circuit depth and additional gate number. The experimental results show that compared with the mainstream algorithms A*-based algorithm (Algorithm based on A* search) and SABRE algorithm (SWAP-based BidiREctional heuristic search algorithm), the SPBHA (SWAP-based Prospective Bidirectional Heuristic) algorithm proposed in this paper can reduce the number of additional gates by about 68% and 34%, shorten the circuit execution time, and ensure the reliability of the quantum program results.
-
Key words:
- coupling constraint /
- mapping /
- prospective bidirectional /
- quantum computing /
- quantum circuit
-
表 1 SPBHA算法数学符号定义
数学符号 定义 $n$ 逻辑量子位数 $q_{\{1,2,\cdots,n\}}$ 量子线路中的逻辑量子位 $Q_{\{1,2,\cdots,n\}}$ 量子设备中的物理量子位 $d$ 量子线路的深度 $g$ 量子线路的量子门序号 $N$ 物理量子位数 $G(V,E)$ 量子硬件的耦合图 ${\boldsymbol{D}}$ 物理量子位的距离矩阵, $D_{[i][j]}$ 表示$Q_i$ 到$Q_j$ 的距离π $q_{\{1,2,\cdots,n\}}$ 到$Q_{\{1,2,\cdots,n\}}$ 的映射关系π−1 $Q_{\{1,2,\cdots,n\}}$ 到$q_{\{1,2,\cdots,n\}}$ 的映射关系$F$ 前端层 $E$ 扩展集 表 2 在不同规模量子线路下的附加量子门数实验结果
量子线路名称 量子位数/bit 原始量子门数 A*-based算法量子门数 SABRE算法量子门数 SPBHA算法量子门数 4mod5-v1_22 5 21 3 3 0 mod5mils_65 5 35 18 6 0 alu-v0_27 5 36 27 0 3 decod24-v2_43 4 52 18 3 3 4gt13_92 5 66 30 3 3 mini_alu_305 10 173 69 42 36 qft_10 10 200 60 54 42 rd84_142 15 343 93 105 51 qft_13 13 412 156 93 57 ising_model_10 10 480 30 0 0 cnt3-5_180 16 485 220 166 90 qft_16 16 512 171 186 45 ising_model_13 13 633 30 0 0 ising_model_16 16 786 108 0 0 wim_266 11 986 390 237 136 cm152a_212 12 1221 462 232 0 cm42a_207 14 1776 870 453 300 adr4_197 13 3439 1212 780 771 misex1_241 15 4813 1869 1521 69 cycle10_2_110 12 6050 1911 912 6 square_root_7 15 7630 1953 1701 1419 sqn_258 10 10223 3990 2799 2079 rd84_253 12 13658 4656 1614 96 co14_215 15 17936 6357 892 231 max46_240 10 27126 9597 7938 7305 9symml_195 11 34881 10053 8892 8037 表 3 使用不同遍历方式的SPBHA算法实验结果
量子线路名称 量子位数/bit 原始量子门数 单次遍历量子门数 双向遍历量子门数 4mod5-v1_22 5 21 3 0 mod5mils_65 5 35 12 0 alu-v0_27 5 36 16 3 decod24-v2_43 4 52 9 3 4gt13_92 5 66 15 3 mini_alu_305 10 173 63 36 qft_10 10 200 60 42 rd84_142 15 343 66 51 qft_13 13 412 102 57 ising_model_10 10 480 9 0 cnt3-5_180 16 485 123 90 qft_16 16 512 83 45 ising_model_13 13 633 6 0 ising_model_16 16 786 21 0 wim_266 11 986 198 136 cm152a_212 12 1221 6 0 cm42a_207 14 1776 354 300 adr4_197 13 3439 886 771 misex1_241 15 4813 93 69 cycle10_2_110 12 6050 15 6 square_root_7 15 7630 1731 1419 sqn_258 10 10223 2814 2079 rd84_253 12 13658 126 96 co14_215 15 17936 261 231 max46_240 10 27126 8240 7305 -
[1] SHOR P W. Polynomial-Time algorithms for prime factorization and discrete logarithms on a quantum computer[J]. SIAM Review, 1999, 41(2): 303-332. doi: 10.1137/S0036144598347011 [2] GROVER L K. A fast quantum mechanical algorithm for database search[C]//Proceedings of the 28th annual ACM symposium on Theory of computing. New York: ACM, 1996: 212-219. [3] 黄一鸣, 雷航, 李晓瑜. 量子机器学习算法综述[J]. 计算机学报, 2018, 41(1): 145-163. HUANG Y M, LEI H, LI X Y. A survey on quantum machine learning[J]. Chinese Journal of Computer, 2018, 41(1): 145-163. [4] 张焕国, 毛少武, 吴万青, 等. 量子计算复杂性理论综述[J]. 计算机学报, 2016, 39(12): 2403-2428. ZHANG H G, MAO S W, WU W Q, et al. Overview of quantum computation complexity theory[J]. Chinese Journal of Computer, 2016, 39(12): 2403-2428. [5] PRESKILL J. Quantum computing in the NISQ era and beyond[J]. Quantum, 2018, 2: 79. doi: 10.22331/q-2018-08-06-79 [6] HUAWEI. HiQ quantum computing cloud platform [EB/OL]. (2022-09-30). https://hiq.huaweicloud.com/en/. [7] IBM. IBM Q experience device[EB/OL]. (2022-09-30). https://quantum-computing.ibm.com/qx/devices. [8] LI G, DING Y, XIE Y. Tackling the qubit mapping problem for NISQ-era quantum devices[C]//Proceedings of the 24th International Conference on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2019: 1001-1014. [9] CHAKRABARTI A, SUR-KOLAY S, CHAUDHURY A. Linear nearest neighbor synthesis of reversible circuits by graph partitioning[EB/OL]. (2012-12-27). https://arxiv.org/pdf/1112.0564.pdf. [10] 窦星磊, 刘磊, 陈岳涛. 面向超导量子计算机的程序映射技术研究[J]. 计算机研究与发展, 2021, 58(9): 1856-1874. DOU X L, LIU L, CHEN Y T. An investigation into quantum program mapping on superconducting quantum computers[J]. Journal of Computer Research and Development, 2021, 58(9): 1856-1874. [11] SIRAICHI M Y, SANTOS V F, COLLANGE C, et al. Qubit allocation[C]//Proceedings of the 2018 International Symposium on Code Generation and Optimization. New York: ACM, 2018: 113-125. [12] ZULEHNER A, PALER A, WILLE R. An efficient methodology for mapping quantum circuits to the IBM QX architectures[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018, 38(7): 1226-1236. [13] DING Y, WU X C, HOLMES A, et al. Square: Strategic quantum ancilla reuse for modular quantum programs via cost-effective uncomputation[C]//2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA). [S.l.]: IEEE, 2020: 570-583. [14] NIELSEN M A, CHUANG I. Quantum computation and quantum information[J]. American Journal of Physics, 2002, 70: 558-559. [15] 王吉林, 刘建设, 陈培毅. 量子计算与超导量子计算机[J]. 微纳电子技术, 2009, 46(6): 321-326. WANG J L, LIU J S, CHEN P Y. Quantum computation and superconducting quantum computer[J]. Micronano- Electronic Technology, 2009, 46(6): 321-326. [16] 喻志超, 李扬中, 刘磊, 等. 量子计算模拟及优化方法综述[J]. 计算机工程, 2022, 48(1): 1-11. YU Z C, LI Y Z, LIU L, et al. Survey of quantum computing simulation and optimization methods[J] Computer Engineering, 2022, 48(1): 1-11. [17] 付祥, 郑宇真, 苏醒, 等. 一种面向含噪中尺度量子技术的量子-经典异构计算系统[J]. 计算机研究与发展, 2021, 58(9): 1875-1896. FU X, ZHENG Y Z, SU X, et al. A heterogeneous quantum-classical computing system targeting noisy intermediate-scale quantum technology[J]. Journal of Computer Research and Development, 2021, 58(9): 1875-1896. [18] FLOYD R W. Algorithm 97: Shortest path[J]. Communications of the ACM, 1962, 5(6): 345. [19] 徐海. 线性最近邻量子线路构建与优化研究[D]. 南通: 南通大学信息科学技术学院, 2016 XU H. Construction and optimization for linear nearest neighbor quantum circuits[D]. Nantong: School of Information Science and Technology Nantong University, 2016. [20] WILLE R, GROBE D, TEUBER L, et al. RevLib: An online resource for reversible functions and reversible circuits[C]//38th International Symposium on Multiple Valued Logic. Washington DC: IEEE, 2008: 220-225. [21] GREEN A S, LUMSDAINE P L F, ROSS N J, et al. Quipper: A scalable quantum programming language[C]//Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation. New York: ACM, 2013: 333-342. [22] ABHARI A J, FARUQUE A, DOUSTI M J, et al. Scaffold: Quantum programming language[R]. [S.l.]: Princeton Univ NJ Dept of Computer Science, 2012.