论文阅读-量子计算-DAC-QURE

QURE: Qubit Re-allocation in Noisy Intermediate-Scale Quantum Computers

不理解

  • 蒙特卡洛方法
  • 密度矩阵和kraus算子
  • 线形排布的映射种数有:$(^NC_W)$

名词定义

DOQA

前提知识

量子操作

量子操作(又称量子动态映射量子过程)是对量子系统所能经历的一系列变换的数学表述。这一概念是由乔治·苏德尔辛(英语:George Sudarshan)在讨论密度矩阵的广义随机变换时首度引入。[1]量子操作的表述需要系统采用密度矩阵描述。严格而言,量子操作是一个密度算符集到其自身的线性完全正映射。在量子运算领域,量子操作通常称作**量子通道**(英语:quantum channel)。“量子操作”有时会被一些学者用来描述密度矩阵空间的完全正(英语:completely positive)或非增映射,而“量子通道”则特指其中严格的保迹映射。[2]量子操作不仅仅涉及孤立系统的幺正(英语:Unitary transformation)时间演化及对称变换,同时还涉及测量效应以及系统与环境间的暂态相互作用。

量子系统所能经历的一些过程并不能用量子操作描述[3]。原则上,量子系统的密度矩阵可以经过任意的时间演化。量子操作可以通过“量子仪器(英语:quantum instrument)”这一概念进行推广。量子仪器可以捕捉测量过程中量子信息外的经典信息。

定义

密度算符是带有单位迹的希尔伯特空间上的非负算符。

摘要

NISQ发展,量子位状态不稳定,易受影响。量子位和连接的错误率在空间上具有变化性。如果不考虑这些可变性,会导致可靠性差。在文章中,我们分析了一台实际NISQ的不同噪音源对总体可靠性的影响,提出了创新的优化技术:QURE来最大化可靠性。在模拟中提升1.54X,在实际中提升1.7X,不会产生物理开销。

简介

多种技术被用于构建量子计算机。量子计算机有如下错误

  • 保持性错误
  • 操作性错误

解决noisy的方法有:

  • 建造更好的量子位
  • QEC
  • 概率性,多次执行取最可能结果

验证了错误的变化性。提出了模拟框架。

提出了以下贡献:

  1. 构建量子程序模拟框架
  2. 启发式量子位分配
  3. 模拟和在量子计算机上实际操作的实验

建模和模拟

状态向量、模拟矩阵和可信度

  • 使用复数系统表示,ket符号表示一个列矩阵的状态向量。
  • 密度矩阵可以描述混合态,包含了不同纯态出现的概率。
  • Fidelity,保真度,度量两个量子态的相似度,对于相同态,为1。偏离程度越大,其值越低。

$$ F=\operatorname{tr} \operatorname{ace}\left(\sqrt{\rho^{1 / 2} \sigma \rho^{1 / 2}}\right) $$

模拟噪声量子系统

门错误

  • 1-p是经过X、Y和Z Pauli门之后系统维持正常状态的概率。经过一个门产生错误的概率为p/3。
  • 门保真率:单量子位门为$1-\frac{p}{2}$,双量子位门为$1-\frac{3p}{4}$

T1错误

  • T1错误用振幅阻尼模型来模拟,也就是量子位从1衰变到0的模型。
  • 出错概率记为$exp(\frac{-t}{T_1})$

T2错误

  • T2错误用相阻尼模型来模拟。
  • 经过退相位,纠缠态可能变为混合态。
  • 出错概率记为$exp(\frac{-t}{T_2})$

Kraus算子和表示

  • 量子操作$\mathcal{E}( )$可以映射输入态到输出态。其中$E_k$被认为是操作元素,通过合适的选择操作元素,可以表示量子门对一个量子位的操作。

$$ \rho_{i n} \mapsto \mathcal{E}\left(\rho_{i n}\right)=\rho_{o u t}=\sum_{k} E_{k} \rho_{i n} E_{k}^{\dagger} $$

  • 如果选择合适的Kraus操作符作为操作元素,则可以使用操作符和表示来模拟不同错误对量子位状态的影响。本文在适当的Kraus算子下,模拟了含噪声量子处理单元在门误差、T1弛豫和T2去相位条件下的行为。

模拟流

创建了基于Python的量子模拟平台。使用了QuTip中的模块来进行量子计算相关的矩阵操作。

输入为:

  • 用密度矩阵格式表示量子位元的输入状态
  • 1量子位门的错误率
  • 对每对允许的操作的2量子位门的错误率
  • T1驰豫时间
  • T2退相位时间
  • 1量子位和2量子位门时间
  • 一个用特定硬件的门集编译的量子程序

采用Rigetti提供的数据进行模拟。对于第二项以后,不同机器的数据输入后,可以模拟不同的量子计算机。

采用Rigetti QuilC 编译器编译电路到指定的门集合。当时的QuilC编译器不能编译8Q架构,因此假设出了9Q,并对9Q提出了以下假设:

  • 1-qubit gate error, T1 time and T2 time是其他8个量子位的平均数。
  • 在Q4和其中一个最近的门之间的2-qubit gate-error and gate-time是任意两个相邻比特位的2-qubit gate-error and gate-time的平均值

模拟器读取程序并执行,执行后,对一份结果按概率注入错误,最终对比正确结果和错误结果,得到可信度。

噪声源的相对影响

采用蒙特卡洛方法,对于每一种噪声,都生成了置信度的分布。置信度分布的均值等于各个错误发生概率的均值,标准差是均值的10%。

对于QF3,2比特位门置信度最低,其次:1比特位门,T2,T1。

对其他的也做了实验,Hamming - 3, QFT - 5, Graycode 6, and QFT - 7,找出了对应的平均置信度。

  • 二比特位门错误对所有的样例造成的错误都最多。
  • 层次越深的样例,去相关造成的影响更大。

应该:

  • 减少深度
  • 选择具有更好平均门置信度的量子位

在硬件上实施量子电路

硬件无关的量子电路

Hardware Agnostic Quantum Circuits (HAQC),采用高级量子门,对人类友好。

线路编译

量子计算机都有可用的门集,因此高层HAQC被首先编译为考虑量子计算机可用门集的量子程序。

量子位分配映射

逻辑程序被映射到物理量子计算机上。不相邻的可以用SWAP操作使其挨在一块。

depth optimal qubit allocation (DOQA)。之前的方法强调使SWAP数最少,使深度最小。但现在有了VQA。但是VQA没有考虑到SWAP层数增加而导致的decoherence errors,因此文章提出了一种深度优化的量子位分配策略。

QURE

同构子图可以帮助减少搜索空间

子图搜索

步骤有:

  • 找到所有IM的同构子图
  • 提供保真性最大的子图

找同构子图

coupling graph 是无向图。但是近期的量子计算机都是grid型的物理架构,因此,其内部节点有一个特性,即相邻节点数都相同。这个发现可以减少搜索同构子图的时间空间复杂度。

步骤:

  1. 在使用DOQA方法获取到初始化应设置后,从coupling graph提取一个方形的格子架构,这个格子架构足够实施给定的工作负载,将其称为V-Grid。将其旋转90度,称为H-Grid。如果提出来的格子是一个正方形,那么V和H代表同样的架构。在每个V和H中,给定的工作负载至少能以四种方式(沿X和Y轴做镜像映射)被映射。
  2. 我们计算QC中的V-Grids和H-Grids。让QC中的量子位在横竖方向的数目为QH和QV。V-Grid中的量子位在横竖方向的数目为VQH和VQV。H-Grid中的量子位在横竖方向的数目为HQH和HQV。那么有:the number of uniquely fitted V-Grid (NVG) and H-Grid (NHG) within the QC

$$ NVG=(QH-VQH+1)(QV-VQV+1)\ NHG=(QH-HQH+1)(QV-HQV+1) $$

  1. total number of unique mapping (NISG) 代表总的映射种类数。

$$ NISQ=\left{\begin{matrix}4(NVG+NHG),&VQV,VQH,HQH,HQV>1且VQH!=HQH\ 4NVG,&VQV,VQH,HQH,HQV>1且VQH=HQH \end{matrix}\right. $$

如果VQV,VQH,HQH,HQV中任意一个等于1,则是线性的,这样子最多的映射种数有:$(^NC_W)$

找近似全局最优解

暴力方法全部搜索。成功率为: $$ S P=\prod_{i=1}^{N}\left(1-\eta_{i}\right) $$ $\eta_{i}$是第i个门操作的错误率,根据模拟出的错误率p来计算。

单比特位门: $$ \eta=3 p / 4 $$ 双比特位门: $$ \eta=15 p / 16 $$ 两种评估方式的峰谷都相同,因此可以作为评价标准,在大图中可以使用模拟退火算法来实现寻找最大可信度。

贪婪算法

  • 将所有的物理量子位按照它们的平均二量子位门可信度来进行排序。
  • 将所有程序中的量子位按照二量子位门操作个数进行排序。

During the allocation process, we need to maintain the lists of Assigned_Physical_Qubits, andAllocated_Loдical_Qubits with two ancillary lists unallocated (logical) neighbors and unallocated physical neighbors. Initially, these lists are empty. At the start ofeach iteration, we find the unallocated neighbors of the Allocated_Loдical_Qubits. IfAllocated_Loдical_Qubits is empty, we select all the logical qubits in the workload (q0, q1, q2, q3) as the unallocated neighbors. We pick the logical qubit from the list of unallocated neighbors with the highest rank. We find the logical neighbors of the selected qubit (for LNN it can be at most 2) and check whether they are already allocated or not. If one of them is allocated, we find its unallocated physical neighbors (UPN), if both are allocated, we set UPN to their common unallocated physical neighbors, otherwise, we set UPN to all the currently unallocated physical qubits. We pick the physical qubit from UPN with the highest rank and assign it to the selected logical qubit. Then we add the selected logical qubit to Allocated_Loдical_Qubits and the physical qubit to Assiдned_Physical_Qubits before moving on to the next iteration. We stop when the length ofAllocated_Loдical_Qubits is equal to the number of logical qubits.