Tackling the Qubit Mapping Problem for NISQ-Era Quantum Devices

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

问题描述

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

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

解决方案

符号约定

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

简要思路

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

在这里插入图片描述

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

在这里插入图片描述


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

预处理

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

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

SWAP操作枚举方法

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

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

评估函数 H H H

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

假设执行SWAP之后的映射为 π t \pi_t πt,评价函数可表示为
H ( SWAP ( q x , q y ) ) = max ⁡ ( decay ( q x ) , decay ( q y ) ) ⋅ 1 ∣ F ∣ ∑ CNOT ( q i , q j ) ∈ F D ( π t ( q i ) , π t ( q j ) ) + W ⋅ 1 ∣ E ∣ ∑ CNOT ( q i , q j ) ∈ E D ( π t ( q i ) , π t ( q j ) ) 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)) H(SWAP(qx,qy))=max(decay(qx),decay(qy))F1CNOT(qi,qj)FD(πt(qi),πt(qj))+WE1CNOT(qi,qj)ED(πt(qi),πt(qj))
总体来看, H H H 体现了执行SWAP操作后参与运算的量子位之间的靠近程度。 decay ( q i ) \text{decay}(q_i) decay(qi) 初始化为 1 1 1,当 q i q_i qi 参与一次SWAP操作,则 decay ( q i ) \text{decay}(q_i) decay(qi) 增加 δ \delta δ,这使得算法趋向于选择多个量子位运算不冲突的SWAP操作,使得多个SWAP操作可以并行执行。 E \mathbb E EExtended Set,即 F \mathbb F F 的一部分后继;为了使得算法有较好的预见性,因此将 E \mathbb E E 中的量子门也纳入评估。

初始映射 π \pi π 优化

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

在这里插入图片描述

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

思考

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340