留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于交换门的前瞻启发式量子线路映射算法

张辰逸 尚涛 刘建伟

张辰逸, 尚涛, 刘建伟. 基于交换门的前瞻启发式量子线路映射算法[J]. 电子科技大学学报, 2023, 52(4): 489-497. doi: 10.12178/1001-0548.2022339
引用本文: 张辰逸, 尚涛, 刘建伟. 基于交换门的前瞻启发式量子线路映射算法[J]. 电子科技大学学报, 2023, 52(4): 489-497. doi: 10.12178/1001-0548.2022339
ZHANG Chenyi, SHANG Tao, LIU Jianwei. SWAP-Based Prospective Heuristic Quantum Circuit Mapping Algorithm[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(4): 489-497. doi: 10.12178/1001-0548.2022339
Citation: ZHANG Chenyi, SHANG Tao, LIU Jianwei. SWAP-Based Prospective Heuristic Quantum Circuit Mapping Algorithm[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(4): 489-497. doi: 10.12178/1001-0548.2022339

基于交换门的前瞻启发式量子线路映射算法

doi: 10.12178/1001-0548.2022339
基金项目: 国家自然科学基金(61971021);河北省重点研发计划(22340701D);航空科学基金(2018ZC51016)
详细信息
    作者简介:

    张辰逸(2000 – ),博士生,主要从事网络安全、量子计算方面的研究

    通讯作者: 尚涛,E-mail:shangtao@buaa.edu.cn
  • 中图分类号: O413; TP38

SWAP-Based Prospective Heuristic Quantum Circuit Mapping Algorithm

  • 摘要: 含噪声中规模量子硬件的耦合约束使得大多数量子算法通过插入附加量子门改变量子位映射,令量子算法直接运行在硬件上。为了降低量子线路的运行时间及提高量子线路的保真度,设计了一种基于交换门的前瞻双向启发式映射算法。首先,利用前瞻机制考虑前端层信息,提高了附加门数结果的稳定性。其次,设计搜索策略评估物理上近邻的候选交换门,降低交换门搜索空间的复杂度。最后,采用双向遍历全局考虑量子线路的门信息,得到更高质量的初始映射。此外,该算法适用于任意耦合量子硬件架构,同时具有线路深度和附加门数的选择能力。实验结果表明,相较于主流算法A*-based算法和SABRE算法,该文提出的SPBHA算法可减少约68%与34%的附加门数,线路执行时间缩短,保证了量子程序结果的可靠性。
  • 图  1  更改映射关系的量子操作

    图  2  更新前的量子线路及其硬件架构

    图  3  更新硬件映射后的量子线路

    图  4  原始线路生成DAG的示例以及前端层初始化

    图  5  利用前瞻机制初始化量子位映射

    图  6  双向遍历更新量子位映射

    图  7  量子线路深度与附加门数的选择

    表  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$扩展集
    下载: 导出CSV

    表  2  在不同规模量子线路下的附加量子门数实验结果

    量子线路名称量子位数/bit原始量子门数A*-based算法量子门数SABRE算法量子门数SPBHA算法量子门数
    4mod5-v1_22521330
    mod5mils_655351860
    alu-v0_275362703
    decod24-v2_434521833
    4gt13_925663033
    mini_alu_30510173694236
    qft_1010200605442
    rd84_142153439310551
    qft_13134121569357
    ising_model_10104803000
    cnt3-5_1801648522016690
    qft_161651217118645
    ising_model_13136333000
    ising_model_161678610800
    wim_26611986390237136
    cm152a_2121212214622320
    cm42a_207141776870453300
    adr4_1971334391212780771
    misex1_2411548131869152169
    cycle10_2_11012605019119126
    square_root_7157630195317011419
    sqn_2581010223399027992079
    rd84_25312136584656161496
    co14_21515179366357892231
    max46_2401027126959779387305
    9symml_19511348811005388928037
    下载: 导出CSV

    表  3  使用不同遍历方式的SPBHA算法实验结果

    量子线路名称量子位数/bit原始量子门数单次遍历量子门数双向遍历量子门数
    4mod5-v1_2252130
    mod5mils_65535120
    alu-v0_27536163
    decod24-v2_4345293
    4gt13_92566153
    mini_alu_305101736336
    qft_10 102006042
    rd84_142153436651
    qft_131341210257
    ising_model_101048090
    cnt3-5_1801648512390
    qft_16165128345
    ising_model_131363360
    ising_model_1616786210
    wim_26611 986198136
    cm152a_21212122160
    cm42a_207141776354300
    adr4_197133439886771
    misex1_2411548139369
    cycle10_2_110126050156
    square_root_715763017311419
    sqn_258101022328142079
    rd84_253121365812696
    co14_2151517936261231
    max46_240102712682407305
    下载: 导出CSV
  • [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.
  • [1] 陈欣, 李闯, 金凡.  量子自注意力神经网络的时间序列预测 . 电子科技大学学报, 2024, 53(1): 110-118. doi: 10.12178/1001-0548.2022340
    [2] 张仕斌, 黄晨猗, 李晓瑜, 郑方聪, 李闯, 刘兆林, 杨咏熹.  量子模糊信息管理数学模型研究 . 电子科技大学学报, 2024, 53(2): 284-290. doi: 10.12178/1001-0548.2022355
    [3] 侯敏, 张仕斌, 黄曦.  量子模糊朴素贝叶斯分类算法 . 电子科技大学学报, 2024, 53(1): 149-154. doi: 10.12178/1001-0548.2022344
    [4] 刘建美, 王洪, 马智, 段乾恒, 费洋扬, 孟祥栋.  AES-128中S盒变换的量子线路优化 . 电子科技大学学报, 2024, 53(1): 144-148. doi: 10.12178/1001-0548.2022346
    [5] 吴涵卿, 袁淏木, 陈柄任, 吴磊, 李鑫, 李晓瑜.  量子近似优化算法在投资组合优化中的应用 . 电子科技大学学报, 2023, 52(5): 642-648. doi: 10.12178/1001-0548.2022019
    [6] 储贻达, 徐维, 周彦桦, 张学锋.  基于变分量子虚时演化和UCC Ansatz的基态求解器 . 电子科技大学学报, 2023, 52(1): 8-13. doi: 10.12178/1001-0548.2022429
    [7] 闫丽丽, 颜金歌, 张仕斌.  基于自适应网络的量子模糊推理系统 . 电子科技大学学报, 2023, 52(4): 482-488. doi: 10.12178/1001-0548.2022220
    [8] 陈柄任, 袁淏木, 吴涵卿, 吴磊, 李鑫, 李晓瑜.  基于量子判别分析法的量子连续投资组合优化算法 . 电子科技大学学报, 2023, 52(6): 802-808. doi: 10.12178/1001-0548.2022109
    [9] 侯晓凯, 吴热冰, 王子竹, 王晓霆.  基于变分量子分类器的量子对抗攻击生成算法 . 电子科技大学学报, 2023, 52(2): 162-167. doi: 10.12178/1001-0548.2023006
    [10] 柯祉衡, 宋佳宝, 王一诺, 王浩文, 王淑梅, 马鸿洋.  基于交替量子随机行走的高维量子图像加密模型 . 电子科技大学学报, 2023, 52(6): 809-817. doi: 10.12178/1001-0548.2022303
    [11] 范兴奎, 刘广哲, 王浩文, 马鸿洋, 李伟, 王淑梅.  基于量子卷积神经网络的图像识别新模型 . 电子科技大学学报, 2022, 51(5): 642-650. doi: 10.12178/1001-0548.2022279
    [12] 朱献超, 侯晓凯, 吴绍君, 祝峰.  基于情景记忆的量子深度强化学习 . 电子科技大学学报, 2022, 51(2): 170-175. doi: 10.12178/1001-0548.2022043
    [13] 颜世露, 相里朋, 崔巍.  区块链在量子时代的机遇和挑战 . 电子科技大学学报, 2022, 51(2): 162-169. doi: 10.12178/1001-0548.2021374
    [14] 李冠中, 李绿周.  精确Grover量子搜索算法概述 . 电子科技大学学报, 2022, 51(3): 342-346. doi: 10.12178/1001-0548.2022100
    [15] 张仕斌, 黄曦, 昌燕, 闫丽丽, 程稳.  大数据环境下量子机器学习的研究进展及发展趋势 . 电子科技大学学报, 2021, 50(6): 802-819. doi: 10.12178/1001-0548.2021332
    [16] 王缓缓, 胡爱娜.  RSSI和距离区间映射的测距方法 . 电子科技大学学报, 2012, 41(4): 522-526. doi: 10.3969/j.issn.1001-0548.2012.04.008
    [17] 常政威, 桑楠, 熊光泽.  树拓扑片上网络的低能耗映射 . 电子科技大学学报, 2010, 39(4): 607-611. doi: 10.3969/j.issn.1001-0548.2010.04.029
    [18] 岳培培, 刘建, SHEIKH Anjum, 陈杰.  NoC映射问题中的列举路径分配算法 . 电子科技大学学报, 2008, 37(1): 54-57.
    [19] 廖进昆, 侯文婷, 刘永智, 廖翊韬, 代志勇.  量子比特的门操作与共形映照 . 电子科技大学学报, 2007, 36(1): 132-133,149.
    [20] 陈文宇.  面向对象的关系数据库设计 . 电子科技大学学报, 2002, 31(1): 53-56,75.
  • 加载中
图(7) / 表(3)
计量
  • 文章访问数:  3695
  • HTML全文浏览量:  1257
  • PDF下载量:  60
  • 被引次数: 0
出版历程
  • 收稿日期:  2022-09-30
  • 修回日期:  2022-10-15
  • 网络出版日期:  2023-09-06
  • 刊出日期:  2023-07-07

基于交换门的前瞻启发式量子线路映射算法

doi: 10.12178/1001-0548.2022339
    基金项目:  国家自然科学基金(61971021);河北省重点研发计划(22340701D);航空科学基金(2018ZC51016)
    作者简介:

    张辰逸(2000 – ),博士生,主要从事网络安全、量子计算方面的研究

    通讯作者: 尚涛,E-mail:shangtao@buaa.edu.cn
  • 中图分类号: O413; TP38

摘要: 含噪声中规模量子硬件的耦合约束使得大多数量子算法通过插入附加量子门改变量子位映射,令量子算法直接运行在硬件上。为了降低量子线路的运行时间及提高量子线路的保真度,设计了一种基于交换门的前瞻双向启发式映射算法。首先,利用前瞻机制考虑前端层信息,提高了附加门数结果的稳定性。其次,设计搜索策略评估物理上近邻的候选交换门,降低交换门搜索空间的复杂度。最后,采用双向遍历全局考虑量子线路的门信息,得到更高质量的初始映射。此外,该算法适用于任意耦合量子硬件架构,同时具有线路深度和附加门数的选择能力。实验结果表明,相较于主流算法A*-based算法和SABRE算法,该文提出的SPBHA算法可减少约68%与34%的附加门数,线路执行时间缩短,保证了量子程序结果的可靠性。

English Abstract

张辰逸, 尚涛, 刘建伟. 基于交换门的前瞻启发式量子线路映射算法[J]. 电子科技大学学报, 2023, 52(4): 489-497. doi: 10.12178/1001-0548.2022339
引用本文: 张辰逸, 尚涛, 刘建伟. 基于交换门的前瞻启发式量子线路映射算法[J]. 电子科技大学学报, 2023, 52(4): 489-497. doi: 10.12178/1001-0548.2022339
ZHANG Chenyi, SHANG Tao, LIU Jianwei. SWAP-Based Prospective Heuristic Quantum Circuit Mapping Algorithm[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(4): 489-497. doi: 10.12178/1001-0548.2022339
Citation: ZHANG Chenyi, SHANG Tao, LIU Jianwei. SWAP-Based Prospective Heuristic Quantum Circuit Mapping Algorithm[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(4): 489-497. doi: 10.12178/1001-0548.2022339
  • 量子计算强大的并行计算加速能力使其在量子模拟、整数分解、数据库搜索以及机器学习等领域具有巨大潜力[14]。未来量子计算将进入有噪声的中规模量子计算机(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],在中间映射变换之前利用已知量子线路信息提前对量子位映射初始化是一种行之有效的优化方式。本文致力于设计高效的量子线路映射算法,利用前端层信息初始化量子位映射,采用耦合图节点近邻化代替全局搜索,有助于降低量子程序执行时间,提高量子线路保真度。

    • 由于量子位具有连接脆弱、串扰和状态不稳定等特性[14],因而量子线路运行在实际量子硬件中可能会遇到以下3种错误类型:相干时间[15]、量子位保真度[16]与量子位耦合约束[17]。相干时间与量子位保真度需要量子硬件的技术进步来改善,量子位的耦合约束则可以通过软件层面的量子线路映射算法解决。

      结合一个小规模量子线路示例进一步解释量子线路映射问题,如图1图2所示。4量子位硬件模的硬件架构采用图2a所示的硬件耦合图。该硬件模型允许在以下量子位对上使用双量子位门:$ \left\{ Q_1,Q_2 \right \} $,$ \left\{ Q_2,Q_4 \right \} $,$ \left\{ Q_4,Q_3 \right \} $,$ \left\{ Q_3,Q_1 \right \} $,不允许在$ \left\{ Q_1,Q_4 \right \} $$ \left\{ Q_2,Q_3 \right \} $上使用双量子位门。假设有一个小规模量子线路要在图2所示的4量子位设备上执行。该量子线路由6个CNOT门组成(如图2b所示),假设初始的逻辑量子位到物理量子线路映射为$ \left\{ q_1\rightarrow Q_1,q_2\rightarrow Q_2,q_3\rightarrow Q_3,q_4\rightarrow Q_4\right \} $

      图  1  更改映射关系的量子操作

      图  2  更新前的量子线路及其硬件架构

      图2a可见,6个CNOT门中有4个可以直接执行,第3个和第4个CNOT门无法执行,因为相应的量子位对没有连接到硬件上。图2的量子线路示例中不存在满足所有双量子位门依赖关系的完美初始映射,需要在程序执行期间更改量子位映射,使所有CNOT门都可执行。

      主流的更改映射方法为使用SWAP门(即交换门),通过在两个量子位之间交换状态来改变量子线路映射(如图1a所示)。SWAP门由3个CNOT门组成。如果两个量子位在量子器件上并不相邻,可以使用多个SWAP门将1个逻辑量子位移动到任意物理量子位的位置,然后在线路中应用双量子位门。如图3所示,在第2个CNOT门之后的$ q_1 $$ q_2 $之间插入1个SWAP门,更新后量子线路是可以执行的。前两个CNOT门可以在初始映射下执行。插入SWAP门后,映射更新为$\left\{ q_1\rightarrow Q_2,q_2\rightarrow Q_1,\right. \left. q_3\rightarrow Q_3,q_4\rightarrow Q_4\right \}$,所有剩余的4个CNOT门都可在此映射下执行。

      当量子线路应用在非对称硬件模型时,即只允许运行方向符合连通关系的双量子位门时,可使用基变换技术,添加4个Hadamard门,将$ |01\rangle $基转换为$ |+-\rangle $,从而实现CNOT门换向操作,如图1b所示。

      图  3  更新硬件映射后的量子线路

      在量子线路中引入额外的SWAP门可以解决所有双量子位门的依赖性,并在不改变原有功能的情况下生成硬件兼容线路。由于NISQ硬件设备的限制,在量子线路中插入SWAP门会导致以下问题。1) 量子线路中的操作次数增加,由于操作不完美,会引入噪声,导致总体错误率会增加。2) 量子线路深度会增加,导致执行时间将增加,且量子线路的退相干可能会累积许多错误。

      比较图2b和图3中的原始线路和更新线路,量子门的数量从6增加到9,线路深度从5增加到8。额外的SWAP门将在保真度和执行时间方面带来巨大的开销,需要量子线路映射算法来尽量减少额外SWAP门的数量,降低总体错误率和总执行时间。

    • 本文在量子线路映射算法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。

      图  4  原始线路生成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算法可以进一步减少附加门的数量,提高算法效率。由于前端层的量子门之间没有依赖性,因此必然可以找到一个使得满足前端层量子门均可以直接在硬件上运行的初始量子位映射。

      图  5  利用前瞻机制初始化量子位映射

    • 算法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}} $ do

         if 量子门可直接在硬件上运行 then

          ${{\rm{Execute}}\_{\rm{gate}}\_{\rm{list}}.{\rm{add}}({\rm{gate}})}$/*添加可执行门*/;

         end

        end

        if $ \mathrm{{Execute\_gate\_list}\neq\varnothing} $ then

         for $ \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算法进行预处理初始化量子位映射,并使用单次遍历算法正向遍历原始线路。从正向遍历中获得的量子位映射将作为反向遍历中的初始映射。利用量子计算的可逆性,原始线路可生成对应的反向线路。反向线路中的两个量子位门完全相同,只有顺序相反。之后,再次使用单次遍历算法遍历反向量子线路,最终将经过反向遍历得到的映射作为最终映射。

      图  6  双向遍历更新量子位映射

      使用双向遍历的方式获得量子位映射可以全局考虑量子线路上所有量子位门的信息。由于在同一量子硬件模型上正反向运行同一线路,考虑了所有的量子位门信息,更新后的初始映射较单次遍历的初始映射使用的附加门更少。尽管位于量子线路中间的量子门对映射的影响小于两端的量子门,双向遍历对减少附加门数的效果依然明显。

    • 启发式成本函数是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算法用FE的大小来规范化FE的总和,添加权重参数$ 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_22521330
      mod5mils_655351860
      alu-v0_275362703
      decod24-v2_434521833
      4gt13_925663033
      mini_alu_30510173694236
      qft_1010200605442
      rd84_142153439310551
      qft_13134121569357
      ising_model_10104803000
      cnt3-5_1801648522016690
      qft_161651217118645
      ising_model_13136333000
      ising_model_161678610800
      wim_26611986390237136
      cm152a_2121212214622320
      cm42a_207141776870453300
      adr4_1971334391212780771
      misex1_2411548131869152169
      cycle10_2_11012605019119126
      square_root_7157630195317011419
      sqn_2581010223399027992079
      rd84_25312136584656161496
      co14_21515179366357892231
      max46_2401027126959779387305
      9symml_19511348811005388928037

      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_2252130
      mod5mils_65535120
      alu-v0_27536163
      decod24-v2_4345293
      4gt13_92566153
      mini_alu_305101736336
      qft_10 102006042
      rd84_142153436651
      qft_131341210257
      ising_model_101048090
      cnt3-5_1801648512390
      qft_16165128345
      ising_model_131363360
      ising_model_1616786210
      wim_26611 986198136
      cm152a_21212122160
      cm42a_207141776354300
      adr4_197133439886771
      misex1_2411548139369
      cycle10_2_110126050156
      square_root_715763017311419
      sqn_258101022328142079
      rd84_253121365812696
      co14_2151517936261231
      max46_240102712682407305
    • 图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门的依赖性,这将带来冗余的附加门数,提高算法执行时间。

      图  7  量子线路深度与附加门数的选择

    • 本文提出了基于交换门的前瞻双向启发式算法,实现了量子线路的高效映射。为减少附加门的使用,降低算法复杂度,SPBHA算法利用前瞻的量子门信息进行量子位映射的初始化,采用就近寻找候选SWAP门的原则大幅缩小了交换门的搜索空间。为进一步优化量子位映射,SPBHA算法考虑全局量子门信息,利用量子计算的可逆性进行双向遍历。通过实验证明了SPBHA算法的可行性,为量子线路映射算法的设计提供了新思路。在量子编译过程中,量子线路映射与调度往往紧密相关,从时序与跨平台调度的角度优化用户的量子程序是未来量子线路映射算法一个可行的研究方向。此外,量子线路映射问题可进行更精准地建模,考虑量子位错误率及量子程序保真度,将在后续工作中进行深入地探索。

参考文献 (22)

目录

    /

    返回文章
    返回