CN111902828A - 执行么正迭代和索引运算 - Google Patents

执行么正迭代和索引运算 Download PDF

Info

Publication number
CN111902828A
CN111902828A CN201980020442.3A CN201980020442A CN111902828A CN 111902828 A CN111902828 A CN 111902828A CN 201980020442 A CN201980020442 A CN 201980020442A CN 111902828 A CN111902828 A CN 111902828A
Authority
CN
China
Prior art keywords
control
qubit
index
logical
qubits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980020442.3A
Other languages
English (en)
Inventor
C.吉德尼
R.巴布什
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN111902828A publication Critical patent/CN111902828A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Logic Circuits (AREA)
  • Complex Calculations (AREA)
  • Feedback Control In General (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了用于使用一元迭代量子电路执行索引运算的方法、系统和装置。在一方面,一种方法包括:在包括索引量子位的索引寄存器中对索引值进行编码;在包括多个控制量子位的控制寄存器中对所述索引值进行编码;以及重复地计算和撤销计算所述控制量子位,以根据所述控制量子位的状态对与所述索引值相对应的一个或多个目标量子位执行所述运算,其中在所述编码、所述计算和所述撤销计算期间:使所述多个控制量子位依次可用,并且所述多个控制量子位对应于所编码索引值的独热编码。

Description

执行么正迭代和索引运算
背景技术
量子电路是用于量子计算的模型,在所述量子电路中,计算是一系列量子逻辑门——对n-量子位(n-qubit)寄存器的可逆变换。
发明内容
本说明书的主题涉及用于产生量子电路的技术,诸如用于执行索引运算的量子电路,在本文中被称为么正迭代(unitary iteration)量子电路。
通常,本说明书中所描述的主题的一个创新方面可以通过一种用于执行一元迭代以使用一元迭代量子电路来实现索引运算的方法来实现,所述方法包括:在包括索引量子位的索引寄存器中对索引值进行编码;在包括多个控制量子位的控制寄存器中对索引值进行编码;以及重复地计算和撤销计算控制量子位,以根据控制量子位的状态对与索引值相对应的一个或多个目标量子位执行运算,其中在编码、计算和撤销计算期间:多个控制量子位依次可用,并且多个控制量子位对应于所编码索引值的独热(one-hot)编码。
该方面的其他实现方式包括对应的经典或量子计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,每个都配置为执行方法的动作。一个或多个经典或量子计算机的系统可以被配置为通过在系统上安装软件、固件、硬件或其组合来执行特定操作或动作,所述软件、固件、硬件或其组合在操作中致使系统执行这些动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定操作或动作,所述指令在由数据处理装置执行时致使所述装置执行动作。
前述和其他实现方式可各自可选地包括单独或组合的以下特征中的一个或多个。在一些实现方式中,在包括多个控制量子位的控制寄存器中对索引值进行编码包括:迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算(AND operation),以将最低有效索引量子位的逆与存储前一逻辑与运算的结果的倒数第二控制量子位之间的逻辑与运算的结果存储在最后控制量子位中。
在一些实现方式中,迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以存储最低有效索引量子位的逆与存储前一逻辑与运算的结果的控制量子位之间的逻辑与运算的结果包括:对于第一迭代,在第一控制量子位与最高有效索引量子位的逆之间执行逻辑与运算,并且将逻辑与运算的结果存储在第二控制量子位中;以及对于随后的迭代,在存储前一迭代的逻辑与运算的结果的控制量子位与所述迭代的索引量子位的逆之间执行逻辑与运算,并且将逻辑与运算的结果存储在随后的控制量子位中。
在一些实现方式中,第一控制量子位最初被设置成接通状态。
在一些实现方式中,重复地计算和撤销计算所述控制量子位包括:对于每个目标量子位依次重复地:确定最后控制量子位是否处于接通状态,并且响应于确定最后控制量子位处于接通状态而对目标量子位执行运算;确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量;迭代地执行所确定数量的撤销计算;在与最后一个撤销计算的逻辑与运算相对应的控制量子位与下一个最高控制量子位之间执行受控非(CNOT)运算,其中下一个最高控制量子位用作针对受控非运算的控件(control);迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以重新计算最后控制量子位。
在一些实现方式中,确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在将与最后控制量子位相对应的索引值的二进制表示改变为下一个时翻转了多少位;以及将撤销计算的数量确定为所确定的位翻转数量减一。
在一些实现方式中,确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在获得非整数之前可以将以10为底的索引值除以2的次数。
在一些实现方式中,所述方法还包括:撤销计算成对的相应控制量子位和索引量子位之间的迭代地计算的多个逻辑与运算,以重置索引寄存器以便对索引值进行编码。
在一些实现方式中,多个逻辑与包括根据Toffoli门和Clifford+T门定义的临时与运算。
在一些实现方式中,每个逻辑与运算需要4个T门。
在一些实现方式中,一元迭代电路中所包括的与运算的总数等于目标量子位的总数N减1。
在一些实现方式中,执行索引运算的T计数为4(L-1)。
在一些实现方式中,所述方法还包括:
合并受控非运算以产生经优化的一元迭代电路以用于执行索引运算。在一些实现方式中,索引运算包括范围索引运算,并且其中一元迭代量子电路还包括累加器量子位。
在一些实现方式中,执行范围索引运算包括:在累加器量子位与每个迭代的最后控制量子位之间应用受控非运算,迭代的最后控制量子位用作控件。
在一些实现方式中,一元迭代电路通过以下来构造:定义用于实现索引运算的总控制电路;将一组变换应用于所述总控制电路以产生第一经变换电路,包括:对于每个可能的索引,当应用于索引和2b的按位或算符的结果大于或等于L并且应用于L-1和2b的按位与算符的结果等于2b时,去除表示2b的索引量子位上的控件,其中b表示二进制索引;以及将其余控件扩展到嵌套与运算中;将一组优化应用于第一经变换电路以产生一元迭代电路,包括:如果控件类型匹配,则去除与运算的相邻撤销计算和重新计算;如果控件类型不匹配,则用受控非和非运算代替与运算的相邻撤销计算和重新计算。
在一些实现方式中,嵌套与运算被嵌套成使得较低控件在较高控件内侧。
在一些实现方式中,在其余控件的扩展期间,同与运算相关联的控制量子位被直接放置在其最低输入量子位下方。
通常,本说明书中所描述的主题的另一个创新方面可以通过一种用于操作量子只读存储器的方法来实现,所述方法包括:在包括一个或多个索引量子位的索引寄存器中对索引值进行编码;在包括多个控制量子位的控制寄存器中对索引值进行编码;以及重复地计算和撤销计算控制量子位,以根据控制量子位的状态将与索引值相对应的数据项加载到数据量子位的数据寄存器,其中在编码、计算和撤销计算期间:使多个控制量子位依次可用,并且多个控制量子位对应于存储的索引的独热编码。
该方面的其他实现方式包括记录在一个或多个计算机存储设备上的对应的经典或量子计算机系统、装置和计算机程序,每个计算机存储设备被配置为执行方法的动作。一个或多个经典或量子计算机的系统可以被配置为通过在系统上安装软件、固件、硬件或其组合来执行特定操作或动作,所述软件、固件、硬件或其组合在操作中致使系统执行这些动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定操作或动作,所述指令在由数据处理装置执行时致使所述装置执行动作。
前述和其他实现方式可各自可选地包括单独或组合的以下特征中的一个或多个。在一些实现方式中,包括多个控制量子位的控制寄存器中的索引值包括:迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以将最低有效索引量子位的逆与存储前一逻辑与运算的结果的倒数第二控制量子位之间的逻辑与运算的结果存储在最后控制量子位中。
在一些实现方式中,迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以存储最低有效索引量子位的逆与存储前一逻辑与运算的结果的控制量子位之间的逻辑与运算的结果包括:对于第一迭代,在第一控制量子位与最高有效索引量子位的逆之间执行逻辑与运算,并且将逻辑与运算的结果存储在第二控制量子位中;以及对于随后的迭代,在存储前一迭代的逻辑与运算的结果的控制量子位与所述迭代的索引量子位的逆之间执行逻辑与运算,并且将逻辑与运算的结果存储在随后的控制量子位中。
在一些实现方式中,第一控制量子位最初被设置成接通状态。
在一些实现方式中,重复地计算和撤销计算所述控制量子位包括:对于每次重复:确定最后控制量子位是否处于接通状态;响应于确定最后控制量子位处于接通状态而对数据寄存器量子位执行多目标受控非运算,其中多目标受控非运算取决于数据项的二进制编码并且由最后控制量子位控制;确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量;迭代地执行所确定数量的撤销计算;在与最后一个撤销计算的逻辑与运算相对应的控制量子位与下一个最高控制量子位之间执行受控非运算,其中下一个最高控制量子位用作针对受控非运算的控件;迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以重新计算最后控制量子位。
在一些实现方式中,确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在将与最后控制量子位相对应的索引值的二进制表示改变为下一个时翻转了多少位;以及将撤销计算的数量确定为所确定的位翻转数量减一。
在一些实现方式中,确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在获得非整数之前可以将以10为底的索引值除以2的次数。
在一些实现方式中,所述方法还包括:撤销计算成对的相应控制量子位和索引量子位之间的迭代地计算的多个逻辑与运算,以重置索引寄存器以便对索引值进行编码。
在一些实现方式中,多个逻辑与包括根据Toffoli门和Clifford+T门定义的临时与运算。
在一些实现方式中,每个逻辑与运算需要4个T门。
在一些实现方式中,量子只读存储器电路中所包括的与运算的总数等于数据寄存器量子位的总数L减1。
在一些实现方式中,加载数据项的T计数为4(L-1)。
可以特定方式实现本说明书中所描述的主题,从而实现以下优点中的一个或多个优点。
当前描述的公开内容代表了对现有技术水平的重大且广泛适用的改进,以执行具有低T门计数的索引运算。
例如,用于执行索引运算的先前已知的量子电路构造通常转换具有以L个量子位的空间开销在区间[0,L)中存储索引的索引寄存器。相比之下,目前描述的一元迭代构造和技术在空间上成倍地提高了效率,而无需增加T门复杂度,从而仅需要log L个控制量子位。另外,通过利用临时与构造执行逻辑与运算,与执行索引运算的其他量子电路相比,目前描述的一元迭代量子电路所需的T门数量更少——仅需要4(L-1)个T门并且在不增大T计数的情况下需要时可以并行。由于众所周知,T门的制造成本很高,因此,目前描述的一元迭代构造可提供对现有技术的明显改进。
目前描述的一元迭代构造可以容易地变换或优化,并且可以应用于多种设置。例如,一元迭代构造可以用于执行特定类型的索引运算,诸如范围索引运算。
作为另一示例,一元迭代构造可以形成改进的只读QRAM(本文称为QROM)的基础。由于QROM中的字或数据项的数量为L,并且位中的字或数据项的大小为D,因此,目前描述的一元迭代构造可用于构造T计数为4(L-1)并且辅助(控制量子位)计数为logL的QROM。另外,可以对QROM构造进行参数化处理,以实现O(N/k+kD)的改进的T计数和O(kD)的辅助计数,其中k表示控制量子位计数与T计数权衡的任意数字。
目前描述的QROM的另一个有利特性是,QROM不必存储在量子位中。实际上,使用QROM的量子算法可以将相关的经典数据直接编码到执行所述算法的量子电路中。这使得具有一百个纠错量子位的数量级的近期纠错量子计算机可以使用QROM。
目前描述的QROM可以对包括量子模拟、用于量子机器学习算法的数据查找的构造、以及通常包括在叠加下将数据加载到量子计算机中的任何算法的多种应用提供改进。
在附图和以下描述中阐述了本说明书的主题的一个或多个实现方式的细节。从说明书、附图和权利要求书中,本主题的其它特征、方面和优点将变得显而易见。
附图说明
图1示出了用于执行受控索引运算的示例性总控制电路。
图2示出了用于执行逻辑与运算的示例性电路。
图3示出了示例性经变换的总控制电路。
图4是如何优化相邻与运算的图示。
图5示出了示例性一元迭代量子电路。
图6示出了示例性经优化的一元迭代量子电路。
图7示出了另一示例性一元迭代量子电路。
图8A示出了用于执行范围索引运算(ranged indexed operation)的示例性一元迭代量子电路。
图8B示出了用于执行范围索引运算和索引运算两者的示例性一元迭代量子电路。
图9是用于使用一元迭代量子电路来执行索引运算的示例性过程的流程图。
图10示出了示例性数据加载电路。
图11是用于使用一元迭代技术来加载数据的示例性过程的流程图。
图12示出了示例性系统。
具体实施方式
如果有效地实现,则使用量子计算设备执行的计算将保证特定类别问题的计算加速超过在经典计算机上能够执行的任何计算。量子计算的有效实现取决于量子计算设备体系结构的设计,例如,量子计算机的底层量子电路的设计。例如,量子计算设备中所包括的量子电路应当是空间有效的。作为另一示例,由于T门是用于构建容错量子电路的重要组件,但是其固有地昂贵,因此量子计算设备应具有低的T计数。事实上,构造以减少的或甚至最佳数量的T门来执行某些计算的量子电路是量子计算设备近期实现的一项重要任务。
本说明书描述了用于执行索引运算的称为一元迭代量子电路的量子电路构造。索引运算(包括范围索引运算或从索引运算派生的其他复杂变体)是用于执行宽范围的计算任务(例如,数据加载或对量子电路中的电子结构谱进行编码)的重要构建块。
执行索引运算涉及对以索引寄存器中的位值为条件的一个或多个目标量子位执行运算。所执行运算可以是例如任何单量子位么正。例如,本说明书描述了一种量子电路构造和方法,用于实现如下的等式(1)给出的索引运算。
|l>|ψ>→|l>Gl|ψ> (1)
在等式(1)中,G表示任何单量子位么正算符,例如,泡利算符,|l>表示对索引值l进行编码的量子位的索引寄存器,|ψ>表示目标量子位的目标寄存器,并且|l>Gl|ψ>表示将算符G应用于第l个目标量子位(目标寄存器|ψ>中偏移l处的量子位)。算符G在量子位的整个目标寄存器中不必相同。例如,索引运算G可以被定义为针对小于某个固定值的索引寄存器值的一种特定类型的运算,以及针对大于或等于同一固定值的索引寄存器值的另一特定类型的运算。
如下文更详细描述的,在本说明书中描述的一元迭代量子电路是空间有效且T计数有效的。空间和T门计数效率是通过一元迭代技术来实现的,在所述技术中,使量子位一个接一个(迭代)可用,并且所产生的值对应于索引寄存器的值的独热(一元)比特。独热编码意味着索引寄存器正在存储特定值的条件对应于在电路中的特定时间设置或未设置的具体量子位。对于以区间[0,L)存储索引的索引寄存器,使用当前已知的技术将索引寄存器转换成一元寄存器的空间开销为L个量子位。相比之下,本说明书中所描述的一元迭代量子电路和技术是以指数形式更加空间有效的而没有任何增加的T复杂度,从而仅需log L个控制量子位。另外,本说明书中所描述的一元迭代量子电路和技术具有至多4L-4的T计数,并且可以在不增加T计数的情况下被并行化。
用于实现索引运算的常规技术
一种用于实现索引运算(例如,索引非门Xl)的周知的次优方式包括完全控制Xl对在索引寄存器|l>中可能发生的所有可能二进制值的应用。例如,为了在|l>=|158>时应用X158,总控制方法包括将针对量子位的非门放置在偏移158处,但每个索引量子位有一个控件。控件的类型(接通或关闭)将由158的二进制表示(15810=100111102)来确定,因此对索引寄存器的低位(最低有效位)将存在必须关闭(must-be-OFF)控件(因为158的二进制的低位为0),对下一个位将存在必须接通(must-be-ON)控件(因为158的二进制的下一个位为1),其余的索引位(以最高有效位终止)依此类推。为了涵盖所有情况,将对从0直至L-1的每个整数重复此过程。这将产生L个不同的非运算(NOT operation),每个非运算针对目标寄存器中的不同量子位,并且每个非运算具有与索引寄存器的大小相等的控件数量(即,logL)。因此,使用此方法需要O(L logL)个T门来应用等式(1)。如下所述,一元迭代将此T计数渐近地提高到4L-4。
本说明书中所描述的一元迭代构造可以通过将一组具体构造的固定变换和优化应用于常规的总控制电路来定义,如下文参考图1至图5所描述。
图1示出了用于执行索引运算的示例性总控制电路100。为了方便起见,示例性总控制电路100被描述为执行受控索引非运算Xl,其中0≤l≤L=11,但是总控制电路可以用于执行其他索引运算,并且可以用于执行具有更少或更多索引的索引运算。
示例性总控制电路100包括索引寄存器102。在该示例中,索引寄存器102包括四个量子位l0,l1,l2,l3,其中量子位l3存储最低有效位,即20,而量子位l0存储最高有效位,即23。示例性总控制电路100还包括控制寄存器104。在该示例中,控制寄存器204包括一个量子位|c>=(control)。示例性总控制电路100还包括系统或目标寄存器106。在该示例中,目标寄存器106包括至少11个目标量子位,为了方便起见,将所述目标量子位表示为|ψ>=(ψ01,…,ψ10)T
为了使用总控制电路100对第l个目标量子位执行受控非运算,将针对第l个目标量子位ψl的非门Xl放置在目标寄存器中。然后,将与值l相对应的控件放置在索引寄存器中的每个索引量子位上。在示例性总控制电路100中,黑点(例如,点108)表示必须接通控件,而空圆圈(例如,空圆圈110)表示与输入索引量子位的逻辑逆相对应的必须关闭控件。
例如,为了对目标量子位ψ5执行索引运算X5,将索引寄存器量子位设置为l0=0,l1=1,l2=0,l3=1,因为四位寄存器中5的二进制表示为0101。因此,仅总控制电路中用于索引运算X5的控件都具有对应于接通的真值,使得仅对对应的目标量子位ψ5执行非运算。
应用于总控制电路100的第一组具体变换包括使用索引寄存器从不对超出范围的值l≥L进行编码的条件来去除总控制电路控件中的一些。为了说明,如果图1所示的X10运算不是以索引寄存器的最低位(最低有效位)为条件的,则在l=11时也将X10应用于目标量子位。然而,在l<L的条件下,这没有问题,并且在这种条件下可以从电路中省略若干控件。对于每个可能的l,如果以下条件为真,则考虑对应的Xl并去除第b个索引量子位上的控件:(i)未设置L-1的第b位,并且(ii)设置l的第b位将使l更改成大于L-1的值。从视觉上看,只要游程(run)到达电路的右侧,就可以去除必须关闭控件的“游程”。
在去除上述控件之后,可以将其余控件小心地扩展到嵌套与运算中,其中嵌套被嵌套成使得较低控件位于较高控件内侧,并且同与运算相关联的控制量子位恰好位于其最低输入量子位下方。下文参考图2描述根据Toffoli门和Clifford+T门定义的示例性与运算。图3示出了通过去除上述总控制电路控件并将其余控件扩展到嵌套与运算中而实现的变换电路。通过使用下文图4所示的关系迭代地优化相邻与运算,将图3所示的电路优化成一元迭代电路,如下文参考图5所描述。
图2示出了用于计算和撤销计算(uncomputing)与运算的示例性电路200和250。在图2中,计算两个控制量子位204和206之间的逻辑与运算202被表示为从控制量子位204和206上的两个控件垂直出现然后向右前进的量子位线208。撤销计算逻辑与运算被表示为从左侧进入、然后垂直合并到创建它的两个控制量子位204和206中的量子位线258。
为了计算逻辑与运算202,获得处于T状态的辅助量子位210。在控制量子位206与辅助量子位210之间应用受控非门(CNOT gate)212。将T门214的厄米共轭应用于辅助量子位210。在控制量子位204与辅助量子位210之间应用受控非门216。将T门218应用于辅助量子位210。在控制量子位206与辅助量子位210之间应用受控非门220。依次将T门222、阿达马门(Hadamard gate)224和可选的互换门(SWAP gate)S 226的厄米共轭应用于辅助量子位210。因此,运算202的T计数为4(包括准备辅助量子位210的T状态所需的T门)。
撤销计算逻辑与运算202包括执行测量和校正过程。将阿达马门260应用于辅助量子位210。测量262辅助量子位210。如果从测量操作262产生的测量结果指示两个控制量子位204、206都为接通(ON),则将CZ门264应用于控制量子位204、206。撤销计算的T计数为零。
图3示出了通过从参考图1描述的总控制电路100去除具体的总控制电路控件并将其余控件扩展到嵌套的与运算中而实现的示例性变换电路300。
经变换的电路300示出了锯齿图案302,其中每个齿(例如,齿304)与以上参考图1描述的索引非运算Xl中的一者相关联。每个齿包括相应的嵌套与计算(例如,嵌套与运算306)以及随后的相同与运算的相应撤销计算(例如,撤销计算308),这些计算和撤销计算在上文参考图2进行描述。
例如,第一齿304对应于索引运算X0,并且以计算第一控制量子位与表示最高有效索引寄存器位的第一索引寄存器量子位l0的逻辑逆之间的第一逻辑与开始。将该运算的结果存储在第二控制量子位中。计算存储前一与运算结果的第二控制量子位与表示第二高有效索引寄存器位的第二索引寄存器量子位l1的逻辑逆之间的第二逻辑与。将该计算的结果存储在第三控制量子位中。计算存储前一与运算结果的第三控制量子位与表示第三高有效索引寄存器位的第三索引寄存器量子位l2的逻辑逆之间的第三逻辑与。将该计算的结果存储在第四控制量子位中。计算存储前一与运算结果的第四控制量子位与表示第四高(或在该示例中为最低)有效索引寄存器位的第四索引寄存器量子位l3的逻辑逆的第四逻辑与,并且将结果存储在第五(或在该示例中为最后)控制量子位中。如果第五控制量子位的真值对应于接通,则对目标量子位ψ0执行由第五控制量子位控制的对应索引运算X0。然后,以与计算的次序相反的次序来撤销计算先前描述的控制量子位。注意,在计算阶段306和撤销计算阶段308期间,使控制量子位依次可用。
图4是针对三种示例性情况如何优化相邻与运算的图示400。总共存在十六种可能的情况,其中与撤销计算同与计算相邻,并且可以将它们全部以类似方式优化成非或受控非门。如子图示402所示,对于具有必须接通控件的与运算的相邻撤销计算402a和重新计算402b,可以去除402c这些控件。如子图示404所示,与运算的相邻撤销计算404a和重新计算404b(其中与重新计算404b中的第二量子位是必须关闭控件)可以由第三量子位上具有用作控件的第一量子位的受控非运算404c代替。如子图示406所示,与运算的相邻撤销计算406a和重新计算406b(其中与重新计算中的第一量子位和第二量子位都是必须关闭控件)可以由第三量子位上具有用作控件的第一量子位的受控非运算406c代替,之后是第三量子位上具有用作控件的第二量子位的受控非运算406d,之后是第三量子位上的非运算406e。每次合并402、404和406节省4个T门。
示例性一元迭代量子电路
图5示出了用于对对应的目标量子位执行索引运算的示例性一元迭代量子电路500。为了方便起见并与上面的图1一致,示例性一元迭代量子电路500被示出为执行受控索引运算Xl,其中0≤l≤L=11,但是一元迭代量子电路可以用于执行其他索引运算,并且可以用于执行具有更少或更多索引的索引运算,如下文参考图7A和图7B所示。
示例性一元迭代量子电路500包括索引寄存器,所述索引寄存器包括四个索引量子位502a-d。索引寄存器被配置为对索引值进行编码。在一些实现方式中,索引寄存器可被配置为仅对范围内索引值(即,小于L的索引值)进行编码。
示例性一元迭代量子电路500包括控制寄存器,所述控制寄存器包括五个控制量子位504a-e。控制量子位与索引量子位交错以形成组合寄存器,其中第一控制量子位504a在组合寄存器的顶部,之后是表示最高有效位的索引量子位502a,之后是第二控制量子位504b,之后是表示第二高有效位的第二索引量子位502b等,直到倒数第二控制量子位504d之后是表示最低有效位的索引量子位502d,然后是最后控制量子位504e。
示例性一元迭代量子电路500包括目标寄存器506,所述目标寄存器包括多个目标量子位。为了方便起见,目标寄存器506在图5中被绘制为单线。
控制寄存器经由在成对的相应控制量子位和索引量子位之间执行的多个逻辑与运算的迭代级联508来对在索引寄存器中编码的索引值进行编码,其中每个控制量子位504a-e依次可供运算的级联使用并且不是并行的(与以上参考图1描述的总控制电路100相反)。在迭代级联508结束时,将表示最低有效位的索引量子位502d的逆与存储前一逻辑与运算的结果的倒数第二控制量子位504d之间的逻辑与运算510的结果存储在最后控制量子位504e中。可以使用以上参考图2描述的电路来实现每个逻辑与运算。
示例性一元迭代量子电路500重复计算和撤销计算控制量子位504b-e,以对目标寄存器506中的对应目标量子位执行运算。一元迭代量子电路中所包括的重复次数取决于可以应用于目标寄存器的不同运算的数量和/或索引寄存器中的索引量子位的数量。例如,示例性一元迭代量子电路500包括四个索引量子位502a-d和十一个不同运算(因为对寄存器中的不同目标的受控X运算的数量为十一)。因此,在这种情况下,计算/撤销计算重复的次数等于11-1=10(直觉上,这是因为如果辨别出数字1至10,则可以无条件地执行数字11,然后将1至10部分的一部分撤消)。
计算和撤销计算控制量子位的重复包括:如果最后控制量子位处于接通状态,则对目标量子位执行运算以进行重复,迭代地撤销计算多个逻辑与运算(如下文参考图9更详细地描述),在与最后一个撤销计算的逻辑与运算相对应的控制量子位与下一个最高控制量子位之间执行受控非运算,其中下一个最高控制量子位用作针对受控非运算的控件,并且迭代地计算多个逻辑与运算以重新计算最后控制量子位(如下文参考图9更详细地描述)。
例如,在第一重复中,如果最后控制量子位504e处于接通状态,则对与索引值0相对应的目标量子位执行运算X。然后不对逻辑与运算执行撤销计算(如下文参考图9所解释)。然后在最后控制量子位504e与下一个最高控制量子位504d之间执行受控非运算。由于没有执行撤销计算,因此不执行逻辑与运算的计算。
在第二重复中,如果最后控制量子位504e处于接通状态,则对与索引值1相对应的目标量子位执行运算X。然后对逻辑与运算执行一次撤销计算(如下文参考图9所解释)。然后在控制量子位504d与下一个最高控制量子位504c之间执行受控非运算。然后计算一次逻辑与运算。
电路通过使用撤销计算的第二级联512撤销计算逻辑与运算的迭代计算的级联508来结束。使每个控制量子位504a-e依次而不是并行地可用于撤销计算的级联512。
示例性一元迭代量子电路500使用10个逻辑与运算。由于每个与运算都需要4个T门(上文参见图3),并且没有要撤销计算的T门,并且电路中没有其他消耗T的运算,因此电路500的T计数为40=4(L-1),在这种情况下,L=11。
示例性电路500是一元迭代量子电路的具体示例,并且存在电路500的各种扩展或变型。例如,可以针对任意数量的目标量子位构造一元迭代量子电路,其两个示例在下文的图7A和图7B中给出。
作为另一示例,一元迭代量子电路可以用于对成组的量子位进行泡利运算,这些量子位是索引寄存器的任何功能(通常是预先计算的)。作为另一变体,可以容易地改变每个单独受控运算的目标,并且因此对其应用运算的量子位不需要与索引寄存器的值匹配。应用于目标寄存器的索引运算在整个目标寄存器中不必相同。例如,索引运算Gl在l<10时可以被定义为Gl=Xl并且在l≥10时可以被定义为Gl=Yl,Xl表示泡利X或非运算并且Yl表示泡利Y运算。另外,如下文参考图8A和图8B所描述,索引运算可以包括范围运算。
在某些情况下,如下文参考图6所示,可以优化一元迭代量子电路以减小电路深度。在某些情况下,可以对一元迭代量子电路进行映射、滤波、压缩、聚合、批处理、展平或分组。一元迭代量子电路可以应用于各种设置,诸如数据加载,如下文参考图10和图11所描述。
图6示出了示例性优化的一元迭代量子电路600。示例性优化的一元迭代量子电路600是图5所示的示例性一元迭代量子电路500的优化版本。通过合并受控非运算来优化示例性一元迭代量子电路500,从而减小了电路深度。合并策略如下。受控非相邻且具有相同的控件时,可以合并。为了创建这种可能的情况,受控非必须在其他受控非周围移动、尤其是在其他受控非之上移动。当(i)从量子位B到量子位C上的受控非和(ii)从量子位A到量子位B上的受控非的次序互换时,必须引入从量子位A到量子位C上的第三受控非以补偿以下事实:互换运算不通勤。但是,如果此新运算可以与现有受控非合并,并且互换原始运算的次序允许将其中一者与又一个受控非运算合并,则可以实现少量的深度节省,因为虽然引入了一个运算,但是执行了两次合并。在上文图5的具体情况下,可以互换Xl受控非和其左侧的受控非的次序。这将引入由in2h控制的X1,但是可以将其合并到已经由in2h控制的受控非中。然后,原始受控X1可以合并到受控X0中。一般的策略是依次考虑每个运算,将其尽可能左移,然后重复直到电路达到稳定状态。然后检查是否存在可以通过向右移动来合并,而不会造成将引入新受控非并利用这些机会的任何运算。
在图7中示出了具有比图5所示的示例更少的目标量子位的一元迭代量子电路的另一示例。图7示出了具有四个目标量子位、两个索引量子位和三个控制量子位的第二示例性一元迭代量子电路700。
图8示出了用于执行范围索引运算的示例性一元迭代量子电路800。尽管电路800分开示出了索引寄存器和控制寄存器(并且未如图5中交错),但是由电路800执行的一元迭代技术等同于由图5的电路500执行的一元迭代技术。
在范围索引运算中,将运算G应用于多个目标量子位,而不仅仅是单个目标量子位。下面的等式(2)中给出了示例性范围运算。
Figure BDA0002689640000000151
在等式(2)中,G0·G1·…·Gl-1表示将运算G应用于目标量子位ψ01,…,ψl-1的范围运算。
本说明书中所描述的一元迭代量子电路可以被扩展并用于使用附加累加器量子位(例如,累加器量子位802)来实现此类范围索引运算。每次计算最后控制量子位804时,在附加累加器量子位802与最后控制量子位804之间执行受控非运算,其中最后控制量子位804用作控件。因此,累加器量子位802将保持在接通状态,直到lth最后控制量子位804将其切换为关闭。然后,累加器量子位802将保持在关闭状态。通过调节对累加器量子位802而不是最后控制量子位804进行索引运算,电路可以执行范围索引运算。
电路800的各种扩展是可能的。例如,在某些情况下,多个累加器量子位可以用于在不同范围内执行多个运算。作为另一示例,在某些情况下,一元迭代量子电路可以执行范围索引运算和索引运算,如图8B的电路850所示。由于无需重复一元迭代过程即可清除累加器量子位,因此执行范围索引运算和索引运算不会增加T计数。
用于执行索引运算的方法
图9是用于使用一元迭代量子电路来执行索引运算的示例性过程900的流程图。为了方便起见,将过程900描述为由与位于一个或多个位置的一个或多个经典计算设备通信的量子计算设备执行。例如,根据本说明书适当地编程的图12的系统1200可以执行过程900。
系统在包括一个或多个索引量子位的索引寄存器中对索引值进行编码(步骤902)。例如,如上文参考图5所示,系统可以包括具有N个量子位的索引寄存器,并且对索引值l进行编码,其中0≤l≤2N-1。在某些情况下,索引寄存器可能不会对超出范围的值l≥2N进行编码。
系统在包括多个控制量子位的控制寄存器中对索引值进行编码(步骤904)。在控制寄存器中对索引值进行编码可以包括:迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以将最低有效索引量子位的逆与存储前一逻辑与运算的结果的倒数第二控制量子位之间的逻辑与运算的结果存储在最后控制量子位中。
例如,如上文关于图5所示,索引量子位可以与控制量子位交错,其中第一控制量子位在组合寄存器的顶部,之后是最高有效索引量子位,之后是第二控制量子位,之后是第二高有效索引量子位等,直到倒数第二控制量子位之后是最低有效索引量子位,然后是最后控制量子位。在这种情况下,迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以存储最低有效索引量子位的逆与存储前一逻辑与运算的结果的控制量子位之间的逻辑与运算的结果可以包括:对于第一迭代,在组合寄存器的顶部处的第一控制量子位(可选地以接通状态准备)与最高有效索引量子位的逆之间执行逻辑与运算。逻辑与运算的结果然后可以存储在第二控制量子位中。以这种方式,使多个控制量子位依次而不是并行地可用,并且对应于所存储索引值的独热编码。
对于随后的迭代,计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以存储最低有效索引量子位的逆与存储前一逻辑与运算的结果的控制量子位之间的逻辑与运算的结果可以包括:在存储前一迭代的逻辑与运算的结果的控制量子位与所述迭代的索引量子位的逆之间执行逻辑与运算,并且将逻辑与运算的结果存储在随后的控制量子位中。例如,对于第二迭代,这可以包括在第二控制量子位与第二高有效索引量子位的逆之间执行逻辑与运算。逻辑与运算的结果然后可以存储在第三控制量子位中。对于最后迭代,这可以包括在倒数第二控制量子位与最低有效索引量子位的逆之间执行逻辑与运算。逻辑与运算的结果然后可以存储在最后控制量子位中。
如上文参考图5所描述且上文参考图2所示,在一些实现方式中,执行逻辑与运算可以包括:执行根据Toffoli门和Clifford+T门定义并且需要4个T门的临时与运算。
系统重复地计算和撤销计算控制量子位,以根据控制量子位的状态对与索引值相对应的目标量子位执行运算(步骤906)。计算和撤销计算一个或多个控制量子位可以包括:依次对于每个目标量子位,重复地
a)确定最后控制量子位是否处于接通状态,并且响应于确定最后控制量子位处于接通状态而对目标量子位执行运算;
b)确定要执行的参考步骤904所描述的迭代地计算的逻辑与运算的撤销计算的数量;
c)执行所确定数量的撤销计算;
d)在与最后一个撤销计算的逻辑与运算相对应的控制量子位与下一个最高控制量子位之间执行受控非运算,其中下一个最高控制量子位用作针对受控非运算的控件;
e)如上文参考步骤904所描述迭代地计算多个逻辑与运算,以重新计算最后控制量子位。
确定要执行的参考步骤904所描述的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在将与最后控制量子位相对应的索引值的二进制表示改变为下一个(或,等效地,在结果变为非整数之前可以将以10为底的索引值除以2的次数)时翻转了多少位。然后要执行的撤销计算的数量等于所确定的所需位翻转数量减1。替代地,要执行的撤销计算的数量等于在获得非整数结果之前下一个索引值的值可以除以2的次数。
例如,在每个偶数索引值之后,仅需要一个位翻转即可将偶数索引值的二进制表示改变为下一个奇数值。因此,在每个偶数索引值之后,不执行撤销计算,并且上述方法包括仅步骤a)和d)。
在每个奇数索引值之后,需要不同数量的位翻转以将奇数索引值的二进制表示改变为下一个偶数值。例如,为了将索引值3→011的位表示改变为4→100,需要进行三个位翻转。因此,在上面的步骤b)和c)处确定并执行的撤销计算的数量等于2。替代地,在获得非整数结果之前,值4可以除以2的次数为2。
在一些实现方式中,如图5所示,上述步骤a)至e)可以针对电路中的最后一个目标量子位而变化。例如,如图5所示,在留下最后位翻转的情况下,例如,在该示例中,为了将索引值9变为10,针对目标量子位9的步骤d)和e)以及针对目标量子位10的步骤a)、b)和c)可以有所不同。这是因为电路在索引值10处被截断—不存在与索引值12至15相对应的目标量子位—因此不需要针对先前的索引值将相同量的信息编码到最后控制量子位中。实际上,第二低有效位中的编码信息就足够了,并且执行较少的与计算/撤销计算可以进一步减少T计数。
最后一个问题在某种程度上也得到了回答。另外,您在这里使用倒数第二个是因为可以这样,因为由于没有X11,所以没有必要进行额外的区分。换句话说,在此特定情况下,第二低有效位的值已经足够。然后,如果可能的话,您也想这样做,因为它可以节省一个或多个与计算,而这些计算需要昂贵的T门。
在一些实现方式中,系统可以进一步撤销计算成对的相应控制量子位和索引量子位之间的迭代地计算的多个逻辑与运算(如上文参考步骤902所描述的),以重置索引寄存器以便对索引值进行编码。
如上文参考图5所描述,在执行索引运算的一元迭代电路中所包括的与运算的总数等于对目标量子位的不同运算的总数2N减1。因此,在执行与运算的实现方式中,每个与运算需要4个T门,一元迭代电路的T计数为4(2N-1)。
一元迭代在数据加载中的应用:
图10示出了示例性数据加载量子电路1000。为了方便起见,示例性数据加载量子电路1000被示出为被配置为加载8个数据项,但是在某些情况下,所述电路可以被扩展(或减少)并且被配置为加载任意数量的数据项。
示例性数据加载量子电路1000包括索引寄存器1002,所述索引寄存器包括三个索引量子位。最上部索引量子位表示最高有效位,而最下部索引量子位表示最低有效位。索引寄存器1002被配置为存储索引值。如上文参考图5所描述,在一些实现方式中,索引寄存器可被配置为仅对范围内索引值(即,小于L的索引值)进行编码。
示例性数据加载量子电路1000包括控制寄存器1004,所述控制寄存器包括四个控制量子位。在该描述中(并且如上文参考图5所描述),最下部控制量子位被称为最后控制量子位。示例性数据加载量子电路1000还包括数据寄存器1006,所述数据寄存器包括八个数据量子位。
控制寄存器1004经由在成对的相应控制量子位和索引量子位之间执行的多个逻辑与运算的迭代级联来对在索引寄存器1002中编码的索引值进行编码,其中每个控制量子位可依次而非并行的供运算的级联使用。上文参考图5描述该过程。在迭代级联结束时,将表示最低有效位的索引量子位的逆与存储前一逻辑与运算的结果的倒数第二控制量子位之间的逻辑与运算的结果存储在最后控制量子位中。可以使用以上参考图2描述的电路来实现每个逻辑与运算。
示例性数据加载量子电路1000重复地计算和撤销计算控制量子位以将数据项(例如数据项d0-d7,中与索引值相对应的一者)加载到数据量子位的数据寄存器。在每次重复之间,在最后一个撤销计算的控制量子位与第二高控制量子位之间执行受控非运算,其中第二高控制量子位用作控件。例如,在重复1与重复2之间,在第三控制量子位与第二控制量子位之间执行受控非门1008,其中第二控制量子位用作控件。在重复2和3之间,在第二控制量子位与第一控制量子位之间执行受控非门,其中第一控制量子位用作控件。
数据加载量子电路中所包括的重复次数取决于不同数据加载操作的数量和/或索引寄存器中的索引量子位的数量。例如,示例性数据加载量子电路1000包括三个索引量子位和八个不同的数据加载操作。因此,在这种情况下,计算/撤销计算重复的次数等于4。
计算和撤销计算控制量子位的重复包括:迭代地计算成对的控制量子位和索引量子位之间的一个或多个逻辑与运算,以将计算结果存储在最后控制量子位中。如果最后控制量子位处于接通状态,则对数据寄存器量子位执行多目标受控非运算,其中最后控制量子位用作针对多目标受控非运算的控件。多目标受控非运算取决于数据项的二进制编码。例如,如果数据项的二进制表示为10000001,则多目标受控非运算可以包括由最后控制量子位控制的多目标受控非运算,所述多目标受控非运算针对数据寄存器中偏移0和7处的量子位,即,将受控非应用于数据寄存器中的第一量子位和最后一个量子位。作为另一示例,如果数据项的二进制表示为00001111,则多目标受控非运算可以包括由最后控制量子位控制的多目标受控非运算,所述多目标受控非运算针对数据寄存器中的最后四个量子位。
然后在最后控制量子位与倒数第二控制量子位之间执行受控非运算,其中倒数第二控制量子位用作针对受控非运算的控件。然后,如果最后控制量子位处于接通状态,则对数据寄存器量子位执行多目标受控非运算,同样地其中多目标受控非运算取决于数据项的二进制编码。然后迭代地撤销计算成对的控制量子位和索引量子位。
重复中所执行的迭代计算和撤销计算的次数取决于正在执行哪个重复。上文参考图5描述该构思。
数据加载量子电路1000通过使用撤销计算的第二级联撤销计算逻辑与运算的迭代计算的级联来结束。使每个控制量子位依次而不是并行地可用于撤销计算的级联。
上面描述的数据加载量子电路1000及其变型可以用于构造“只读”类型的QRAM(在本文中称为QROM)。QROM可以使用数据加载量子电路来读取由量子寄存器索引的经典数据,即执行以下等式(3)中给出的变换,
Figure BDA0002689640000000201
在等式(3)中,l表示要读取的索引,并且dl表示在包含L个字(数据项)的经典列表d中的偏移l处的字,其中每个字由D位组成,并且al是任意幅度。等式(3)的左手侧描述了在第二寄存器处于状态|0>的情况下索引寄存器的L个可能值上的任意叠加,并且QROMd的左乘法指示QROM电路的应用。等式(3)的右手侧描述了由于应用了QROM电路而导致的状态,所述QROM电路使第二寄存器中的数据位dl与第一寄存器的每个可能的计算基础状态纠缠在一起。
由于来自QROM的L个字或数据项中的每一者中的D位中的每一个确定受控非门是否存在,并且可能已设置所有QROM位,因此数据加载量子电路1000(以及因此QROM构造)的门复杂度为O(L D)。然而,由于受控非是Clifford运算,因此易于应用。对于多目标受控非运算尤其如此,其在表面代码中可以组合成单个编织操作。电路的T计数完全来自一元迭代过程(并且与数据项大小无关),其T计数的上限为4L-4。
此外,由于T计数与数据项大小无关,因此可以(人为地)增大数据项大小,而不用通过读取d′l=concat(d2l,d2l+1)而非dl来影响T计数。这会将T计数从4L改变为2L+4D,只要D小于L/2,这就是有益的。
用于执行数据加载的示例性方法
图11是用于使用一元迭代技术(例如,上文参考图5至图9描述的技术)来加载数据的示例性过程1100的流程图。为了方便起见,将过程1100描述为由与位于一个或多个位置的一个或多个经典计算设备通信的量子计算设备执行。例如,根据本说明书适当地编程的图12的系统1200可以执行过程1100。
系统在包括一个或多个索引量子位的索引寄存器中对索引值进行编码(步骤1102),其中索引值可以通过某一更大的量子计算的过程来获得。例如,如上文参考图10所示,系统可以包括具有N个量子位的索引寄存器,并且对索引值l进行编码,其中0≤l<2N-1。在某些情况下,索引寄存器可能不会对超出范围的值l≥2N-1进行编码。
系统在包括多个控制量子位的控制寄存器中对索引值进行编码(步骤1104)。在控制寄存器中对索引值进行编码可以包括:迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以将最低有效索引量子位的逆与存储前一逻辑与运算的结果的倒数第二控制量子位之间的逻辑与运算的结果存储在最后控制量子位中,如上文图9的步骤904处详细描述的。
系统重复地计算和撤销计算控制量子位,以根据控制量子位的状态将与索引值相对应的数据项加载到数据量子位的数据寄存器(步骤1106)。计算和撤销计算一个或多个控制量子位可以包括重复如下:
a)确定最后控制量子位是否处于接通状态,并且响应于确定最后控制量子位处于接通状态而对数据寄存器量子位执行多目标受控非运算,其中多目标受控非运算取决于数据项的二进制编码,并且最后控制量子位用作针对多目标受控非运算的控件;
b)确定要执行的参考步骤904所描述的迭代地计算的逻辑与运算的撤销计算的数量;
c)执行所确定数量的撤销计算;
d)在与最后一个撤销计算的逻辑与运算相对应的控制量子位与下一个最高控制量子位之间执行受控非运算,其中下一个最高控制量子位用作针对受控非运算的控件;
e)如上文参考步骤904所描述迭代地计算多个逻辑与运算,以重新计算最后控制量子位。
如上文参考图9所描述,确定要执行的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在将与最后控制量子位相对应的索引值的二进制表示改变为下一个(或,等效地,在结果变为非整数之前可以将以10为底的索引值除以2的次数)时翻转了多少位。然后要执行的撤销计算的数量等于所确定的所需位翻转数量减1。替代地,要执行的撤销计算的数量等于在获得非整数结果之前下一个索引值的值可以除以2的次数。
例如,对于第一重复,如果最后控制量子位处于接通状态,则对数据寄存器量子位1006执行多目标受控非运算1010,其中多目标受控非运算1010取决于数据项d0的二进制编码并且最后控制量子位用作针对多目标受控非运算1010的控件。然后不执行撤销计算。然后在最后控制量子位与倒数第二控制量子位之间执行受控非运算1012。然后不执行逻辑与运算。
作为另一示例,对于第六重复,如果最后控制量子位处于接通状态,则对数据寄存器量子位1006执行多目标受控非运算1014,其中多目标受控非运算1014取决于数据项d5的二进制编码并且最后控制量子位用作针对多目标受控非运算1014的控件。然后执行一次撤销计算。然后在倒数第二控制量子位与下一个最高控制量子位之间执行受控非运算1016。然后执行一个逻辑与运算。
在一些实现方式中,系统可以进一步撤销计算成对的相应控制量子位和索引量子位之间的迭代地计算的多个逻辑与运算(如上文参考步骤1102所描述的),以重置索引寄存器以便对索引值进行编码。
示例性硬件
图12描绘了用于实现一元迭代量子电路和数据加载量子电路的示例性系统1200。系统1200是在一个或多个位置中的一个或多个量子计算设备或经典计算机上被实现为量子或经典计算机程序的系统的示例,在其中可以实现下文描述的系统、组件和技术。
系统1200包括与一个或多个经典处理器1204进行数据通信的量子计算设备1202。为了方便起见,量子计算设备1202和经典处理器1204被示出为单独的实体,但是在一些实现方式中,一个或多个经典处理器可以被包括在量子计算设备1202中。
量子计算设备1202包括用于执行量子计算的组件。例如,量子计算设备1202包括量子电路1206、控制设备1208和T工厂1210。
量子电路1206包括用于实现一元迭代量子电路1212的组件。例如,量子电路可以包括量子系统,所述量子系统包括一个或多个多级量子子系统,例如,量子位的寄存器1214。系统1200所利用的多级量子子系统的类型可以变化。例如,在一些实现方式中,多级量子子系统可以是超导量子位,例如,Gmon或Xmon量子位。在某些情况下,包括附接到一个或多个超导量子位的一个或多个谐振器可能很方便。在其他情况下,可以使用离子阱、光子器件或超导腔(无需量子位就可以准备状态)。多级量子子系统的实现的其他示例包括通量量子位、硅量子点或磷杂质量子位。
可以使用量子电路1206来构造包括不同的量子逻辑运算的量子电路,例如,单个量子位门、两个量子位门和三个量子位门,诸如上文参考图2所描述的逻辑与运算。可以使用控制设备1208操作/实现所构造的量子电路。量子系统中所包括的控制设备1208的类型取决于量子计算设备中所包括的量子位的类型。例如,在某些情况下,控制设备1208可以包括控制量子电路1206中所包括的量子位的频率的设备、激励脉冲发生器以及将量子位耦合到激励脉冲发生器的控制线路。然后,控制设备可以使每个量子位的频率朝向或远离对应控制传动系上的激励脉冲的量子门频率进行调整。控制设备1208还可以包括测量设备,例如读出谐振器。可以将经由测量设备获得的测量结果提供给经典处理器1204以进行处理和分析。
本说明书中所描述的数字和/或量子主题以及数字功能运算和量子运算的实现方式可以在数字电子电路、合适的量子电路(或更具体地为量子计算系统)中实现,在有形地体现的数字和/或量子计算机软件或固件中实现,在数字和/或量子计算机硬件中实现,其包括在本申请中公开的结构及其等同结构,或者在它们中的一个或多个的组合中实现。术语“量子计算系统”可以包括但不限于量子计算机、量子信息处理系统、量子密码系统或量子模拟器。
本说明书中所描述的数字和/或量子主题的实现方式可以实现为一个或多个数字和/或量子计算机程序,即,在有形的非暂时性存储介质上编码的数字和/或量子计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。数字和/或量子计算机存储介质可以是机器可读存储设备、机器可读存储衬底、随机或串行存取存储设备、一个或多个量子位、或它们中的一个或多个的组合中。替代地或另外地,程序指令可以被编码在能够对数字和/或量子信息进行编码的人工生成的传播信号上,例如机器生成的电信号、光信号或电磁信号上,所述信号被生成来对数字和/或量子信息进行编码以传输到合适的接收器装置,以由数据处理装置执行。
术语量子信息和量子数据是指由量子系统所携带、保持或存储的信息或数据,其中最小的非平凡系统是量子位,即定义量子信息单位的系统。应当理解,术语“量子位”涵盖了在对应的上下文中可以适当地近似为两级系统的所有量子系统。此类量子系统可以包括例如具有两个或更多个级别的多级系统。举例来说,此类系统可以包括原子、电子、光子、离子或超导量子位。在许多实现方式中,计算基础状态被识别成具有基态和第一激发态,但是应理解,其他设置是可能的,在所述其他设置中,计算状态被识别成具有较高级激发态。
术语“数据处理装置”是指数字和/或量子数据处理硬件,并且涵盖了用于处理数字和/或量子数据的各种装置、设备和机器,例如包括可编程数字处理器、可编程量子处理器、数字计算机、量子计算机、多个数字和量子处理器或计算机及其组合。装置还可以是或还包括专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或量子模拟器,即设计用于模拟或产生有关特定量子系统的信息的量子数据处理装置。特别地,量子模拟器是专用量子计算机,它不具有执行通用量子计算的能力。除了硬件之外,装置可以附加地包括为数字和/或量子计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
数字计算机程序(也可以称为或描述为程序、软件、软件应用程序、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,其包括编译或解释语言或声明性或过程性语言,并且它可以以任何形式部署,其包括作为独立程序或作为模块、组件、子例程或适合在数字计算环境中使用的其它单元。量子计算机程序(也可以称为或描述为程序、软件、软件应用程序、应用程序、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,其包括编译或解释语言或声明性或过程性语言,并且翻译成合适的量子编程语言,或者可以量子编程语言(例如,QCL或Quipper)写入。
数字和/或量子计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。数字和/或量子计算机程序可以部署为在一个数字或一个量子计算机上执行,或者在位于一个站点或分布在多个站点之间并通过数字和/或量子数据通信网络互连的多个数字和/或量子计算机上执行。量子数据通信网络应理解为可以使用量子系统(例如,量子位)来传输量子数据的网络。通常,数字数据通信网络不能传输量子数据,但是量子数据通信网络可以传输量子数据和数字数据。
本说明书中所描述的过程和逻辑流程可以由一个或多个可编程数字和/或量子计算机执行,利用一个或多个数字和/或量子处理器适当地操作,执行一个或多个数字和/或量子计算机程序以通过对输入的数字和量子数据进行操作并生成输出来执行功能。过程和逻辑流程还可以由专用逻辑电路(例如,FPGA或ASIC或量子模拟器)执行并且装置还可以被实现为所述专用逻辑电路,或者由专用逻辑电路或量子模拟器和一个或多个编程的数字和/或量子计算机的组合来执行。
对于待“配置成”执行特定操作或动作的一个或多个数字和/或量子计算机的系统,这意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作时导致系统执行这些操作或动作。对于待配置成执行特定操作或动作的一个或多个数字和/或量子计算机程序,这意味着一个或多个程序包括指令,该指令在由数字和/或量子数据处理装置执行时使所述装置执行该操作或动作。量子计算机可以从数字计算机接收指令,所述指令在由量子计算装置执行时使所述装置执行操作或动作。
适用于执行数字和/或量子计算机程序的数字和/或量子计算机可以基于通用或专用数字和/或量子处理器或两者,或任何其他种类的中央数字和/或量子处理单元。通常,中央数字和/或量子处理单元将从只读存储器、随机存取存储器或适合于传输量子数据(例如,光子)的量子系统或其组合接收指令以及数字和/或量子数据。
数字和/或量子计算机的基本元件是用于运行或执行指令的中央处理单元和用于存储指令以及数字和/或量子数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路或量子模拟器补充或并入专用逻辑电路或量子模拟器中。通常,数字和/或量子计算机还将包括或可操作地耦合以从一个或多个大容量存储设备接收数字和/或量子数据,或将数字和/或量子数据传送到一个或多个大容量存储设备(例如,磁盘、磁光盘、光盘或适于存储量子信息的量子系统)以便存储数字和/或量子数据。然而,数字和/或量子计算机不需要具有此类设备。
适于存储数字和/或量子计算机程序指令和数字和/或量子数据的数字和/或量子计算机可读介质包括所有形式的非易失性数字和/或量子存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可装卸磁盘;磁光盘;以及CD ROM和DVD-ROM光盘;以及量子系统,例如所俘获原子或电子。可以理解,量子存储器是能够以高保真度和效率长时间存储量子数据的设备,例如光-物质界面,其中光用于传输,并且物质用于存储和保存量子数据的量子特征,诸如叠加或量子相干性。
本说明书中所描述的各种系统或其部分的控制可以在数字和/或量子计算机程序产品中实现,所述产品包括存储在一个或多个非暂时性机器可读存储介质上的指令,并且可以在一个或多个数字和/或量子处理设备上执行。本说明书中所描述的系统或其部分可以各自实现为一种装置、方法或系统,其可以包括一个或多个数字和/或量子处理设备以及用于存储可执行指令以执行本说明书中所述操作的存储器。
尽管本申请包含许多特定的实施细节,但是这些细节不应解释为对所要求保护的范围的限制,而应解释为对特定实现方式而言可能特定的特征的描述。在单独的实现方式上下文中在本申请中描述的某些特征也可以在单个实现方式中组合实现。与此相反,在单一实现方式的背景下描述的不同特征也可以在多个实现方式中分开地或以任何适合的子组合来实现。此外,尽管特征可以在上文描述为在某些组合中起作用并且甚至如最初要求保护的那样,但在一些情况下,所要求保护的组合中的一个或多个特征可以从组合中删除,并且所要求保护的组合可以指向子组合或子组合的变化。
类似地,虽然在附图中按特定顺序描绘操作,但这不应被理解为要求此类操作以所示出的特定顺序或按先后顺序执行,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上文描述的实现方式中的各种系统模块和组件的分离不应理解为在所有的实现方式中都要求此类分离,而应理解的是,通常可以将所描述的程序组件和系统一起集成到单一软件产品中或打包到多个软件产品中。
已经描述了主题的特定实现方式。其它实现方式在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中所描绘过程不一定需要所示出的特定顺序或顺次顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。

Claims (32)

1.一种用于使用一元迭代量子电路执行一元迭代以实现索引运算的方法,所述方法包括:
在包括索引量子位的索引寄存器中对索引值进行编码;
在包括多个控制量子位的控制寄存器中对所述索引值进行编码;以及
重复地计算和撤销计算所述控制量子位,以根据所述控制量子位的状态对与所述索引值相对应的一个或多个目标量子位执行所述运算,其中在所述编码、所述计算和所述撤销计算期间:
所述多个控制量子位依次可用,并且
所述多个控制量子位对应于所编码索引值的独热编码。
2.根据权利要求1所述的方法,其中在包括多个控制量子位的所述控制寄存器中对所述索引值进行编码包括:
迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以将最低有效索引量子位的逆与存储前一逻辑与运算的结果的倒数第二控制量子位之间的逻辑与运算的结果存储在最后控制量子位中。
3.根据权利要求2所述的方法,其中迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以存储所述最低有效索引量子位的逆与存储前一逻辑与运算的所述结果的控制量子位之间的逻辑与运算的结果包括:
对于第一迭代,在第一控制量子位与最高有效索引量子位的逆之间执行逻辑与运算,并且将所述逻辑与运算的所述结果存储在第二控制量子位中;以及
对于随后的迭代,在存储前一迭代的逻辑与运算的结果的控制量子位与所述迭代的所述索引量子位的逆之间执行逻辑与运算,并且将所述逻辑与运算的所述结果存储在随后的控制量子位中。
4.根据权利要求3所述的方法,其中所述第一控制量子位最初被设置成接通状态。
5.根据权利要求1至4中任一项所述的方法,其中重复地计算和撤销计算所述控制量子位包括:对于每个目标量子位依次重复地:
确定所述最后控制量子位是否处于接通状态,并且响应于确定所述最后控制量子位处于接通状态而对所述目标量子位执行运算;
确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量;
迭代地执行所确定数量的撤销计算;
在与最后一个撤销计算的逻辑与运算相对应的控制量子位与下一个最高控制量子位之间执行受控非运算,其中所述下一个最高控制量子位用作针对所述受控非运算的控件;
迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以重新计算所述最后控制量子位。
6.根据权利要求5所述的方法,其中确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:
确定在将与最后控制量子位相对应的索引值的二进制表示改变为下一个时翻转了多少位;以及
将所述撤销计算的数量确定为所确定的位翻转数量减一。
7.根据权利要求5所述的方法,其中确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在获得非整数之前可以将以10为底的所述索引值除以2的次数。
8.根据权利要求1所述的方法,还包括:撤销计算成对的相应控制量子位和索引量子位之间的迭代地计算的多个逻辑与运算,以重置所述索引寄存器以便对所述索引值进行编码。
9.根据权利要求2至8中任一项所述的方法,其中所述多个逻辑与包括根据Toffoli门和Clifford+T门定义的临时与运算。
10.根据权利要求9所述的方法,其中每个逻辑与运算需要4个T门。
11.根据权利要求1所述的方法,其中所述一元迭代电路中所包括的与运算的总数等于目标量子位的总数N减1。
12.根据权利要求11所述的方法,其中执行所述索引运算的T计数为4(L-1)。
13.根据权利要求3所述的方法,还包括:合并所述受控非运算以产生经优化的一元迭代电路以用于执行所述索引运算。
14.根据权利要求1所述的方法,其中所述索引运算包括范围索引运算,并且其中所述一元迭代量子电路还包括累加器量子位。
15.根据权利要求13所述的方法,其中执行范围索引运算包括:在累加器量子位与每个迭代的最后控制量子位之间应用受控非运算,所述迭代的最后控制量子位用作控件。
16.根据任一前述权利要求所述的方法,其中所述一元迭代电路通过以下来构造:
定义用于实现所述索引运算的总控制电路;
将一组变换应用于所述总控制电路以产生第一经变换电路,包括:
对于每个可能的索引,当应用于所述索引和2b的按位或算符的结果大于或等于L并且应用于L-1和2b的按位与算符的结果等于2b时,去除表示2b的索引量子位上的控件,其中b表示二进制索引;以及
将其余控件扩展到嵌套与运算中;
将一组优化应用于所述第一经变换电路以产生所述一元迭代电路,包括:
如果所述控件类型匹配,则去除与运算的相邻撤销计算和重新计算;
如果所述控件类型不匹配,则用受控非和非运算代替与运算的相邻撤销计算和重新计算。
17.根据权利要求16所述的方法,其中所述嵌套与运算被嵌套成使得较低控件在较高控件内侧。
18.根据权利要求16所述的方法,其中在所述其余控件的扩展期间,同与运算相关联的控制量子位被直接放置在其最低输入量子位下方。
19.一种装置,包括:
一元迭代量子电路,所述一元迭代量子电路包括:
索引寄存器,其包括多个索引量子位;
控制寄存器,其包括多个控制量子位;
系统寄存器,其包括多个目标量子位;
一个或多个控制设备,被配置为操作量子电路并且致使所述量子电路执行任一前述权利要求所述的方法。
20.一种用于操作量子只读存储器的方法,所述方法包括:
在包括一个或多个索引量子位的索引寄存器中对索引值进行编码;
在包括多个控制量子位的控制寄存器中对所述索引值进行编码;以及
重复地计算和撤销计算所述控制量子位,以根据所述控制量子位的状态将与所述索引值相对应的数据项加载到数据量子位的数据寄存器,其中在所述编码、计算和撤销计算期间:
使所述多个控制量子位依次可用,并且
所述多个控制量子位对应于存储的索引的独热编码。
21.根据权利要求20所述的方法,其中在包括多个控制量子位的所述控制寄存器中对所述索引值进行编码包括:
迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以将最低有效索引量子位的逆与存储前一逻辑与运算的结果的倒数第二控制量子位之间的逻辑与运算的结果存储在最后控制量子位中。
22.根据权利要求21所述的方法,其中迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以存储所述最低有效索引量子位的逆与存储前一逻辑与运算的所述结果的控制量子位之间的逻辑与运算的结果包括:
对于第一迭代,在第一控制量子位与最高有效索引量子位的逆之间执行逻辑与运算,并且将所述逻辑与运算的结果存储在第二控制量子位中;以及
对于随后的迭代,在存储前一迭代的逻辑与运算的结果的控制量子位与所述迭代的所述索引量子位的逆之间执行逻辑与运算,并且将所述逻辑与运算的结果存储在随后的控制量子位中。
23.根据权利要求22所述的方法,其中所述第一控制量子位最初被设置成接通状态。
24.根据权利要求20至23中任一项所述的方法,其中重复地计算和撤销计算所述控制量子位包括:对于每次重复:
确定所述最后控制量子位是否处于接通状态;
响应于确定所述最后控制量子位处于接通状态而对数据寄存器量子位执行多目标受控非运算,其中所述多目标受控非运算取决于所述数据项的二进制编码并且由所述最后控制量子位控制;
确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量;
迭代地执行所确定数量的撤销计算;
在与最后一个撤销计算的逻辑与运算相对应的控制量子位与下一个最高控制量子位之间执行受控非运算,其中所述下一个最高控制量子位用作针对所述受控非运算的控件;
迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以重新计算所述最后控制量子位。
25.根据权利要求24所述的方法,其中确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:
确定在将与最后控制量子位相对应的索引值的二进制表示改变为下一个时翻转了多少位;以及
将所述撤销计算的数量确定为所确定的位翻转数量减一。
26.根据权利要求24所述的方法,其中确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在获得非整数之前可以将以10为底的所述索引值除以2的次数。
27.根据权利要求20所述的方法,还包括:撤销计算成对的相应控制量子位和索引量子位之间的迭代地计算的多个逻辑与运算,以重置所述索引寄存器以便对所述索引值进行编码。
28.根据权利要求21至27中任一项所述的方法,其中所述多个逻辑与运算包括根据Toffoli门和Clifford+T门定义的临时与运算。
29.根据权利要求21所述的方法,其中每个逻辑与运算需要4个T门。
30.根据权利要求20所述的方法,其中量子只读存储器电路中所包括的与运算的总数等于数据寄存器量子位的总数L减1。
31.根据权利要求20所述的方法,其中加载所述数据项的T计数为4(L-1)。
32.一种装置,包括:
量子只读存储器,包括:
索引寄存器,其包括多个索引量子位;
控制寄存器,其包括多个控制量子位;
数据寄存器,其包括多个数据量子位;
一个或多个控制设备,被配置为操作所述量子只读存储器并且致使所述量子只读存储器执行权利要求20至31中任一项所述的方法。
CN201980020442.3A 2018-04-20 2019-04-19 执行么正迭代和索引运算 Pending CN111902828A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862660494P 2018-04-20 2018-04-20
US62/660,494 2018-04-20
PCT/US2019/028227 WO2019204678A1 (en) 2018-04-20 2019-04-19 Performing unitary iteration and indexed operations

Publications (1)

Publication Number Publication Date
CN111902828A true CN111902828A (zh) 2020-11-06

Family

ID=66429615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980020442.3A Pending CN111902828A (zh) 2018-04-20 2019-04-19 执行么正迭代和索引运算

Country Status (5)

Country Link
US (2) US11675763B2 (zh)
EP (1) EP3782088B1 (zh)
CN (1) CN111902828A (zh)
CA (1) CA3093713C (zh)
WO (1) WO2019204678A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593697B2 (en) * 2020-03-10 2023-02-28 QC Ware Corp. Method for amplitude estimation with noisy intermediate-scale quantum computers
CN112000673A (zh) * 2020-08-31 2020-11-27 合肥本源量子计算科技有限责任公司 一种利用量子线路查询交易元素的方法及装置
US11983605B2 (en) 2020-10-28 2024-05-14 International Business Machines Corporation Partitioned template matching and symbolic peephole optimization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040000666A1 (en) * 2002-04-04 2004-01-01 Daniel Lidar Encoding and error suppression for superconducting quantum computers
US20110231462A1 (en) * 2009-06-17 2011-09-22 D-Wave Systems Inc. Systems and methods for solving computational problems
CN103109261A (zh) * 2010-09-24 2013-05-15 英特尔公司 用于通用逻辑操作的方法和设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4700413B2 (ja) 2005-05-31 2011-06-15 日本電信電話株式会社 量子演算装置及び量子回路を用いた量子演算方法
JP4921103B2 (ja) * 2006-10-13 2012-04-25 インターナショナル・ビジネス・マシーンズ・コーポレーション ブール式を可視化するための装置、方法およびプログラム
US10417574B2 (en) * 2013-11-05 2019-09-17 President And Fellows Of Harvard College Embedding electronic structure in controllable quantum systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040000666A1 (en) * 2002-04-04 2004-01-01 Daniel Lidar Encoding and error suppression for superconducting quantum computers
US20110231462A1 (en) * 2009-06-17 2011-09-22 D-Wave Systems Inc. Systems and methods for solving computational problems
CN103109261A (zh) * 2010-09-24 2013-05-15 英特尔公司 用于通用逻辑操作的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANDREW M. CHILDS等: "Toward the first quantum simulation with quantum speedup", 《ARXIV》, 29 November 2017 (2017-11-29), pages 43 - 52 *

Also Published As

Publication number Publication date
EP3782088A1 (en) 2021-02-24
US20230394019A1 (en) 2023-12-07
WO2019204678A1 (en) 2019-10-24
US11675763B2 (en) 2023-06-13
CA3093713C (en) 2023-04-11
CA3093713A1 (en) 2019-10-24
EP3782088B1 (en) 2024-06-05
US20210157781A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
AU2021200999B2 (en) Quantum circuits with reduced t gate count
US11531923B2 (en) Measurement based uncomputation for quantum circuit optimization
US20230394019A1 (en) Performing unitary iteration and indexed operations
US20220029625A1 (en) Magic state factory constructions for producing ccz and t states
US11941488B2 (en) Methods and apparatus for performing phase operations
EP3841532B1 (en) Error corrected variational algorithms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination