背景技术:
1、量子电路是用于量子计算的模型,在所述量子电路中,计算是一系列量子逻辑门——对n-量子位(n-qubit)寄存器的可逆变换。
技术实现思路
1、本说明书的主题涉及用于产生量子电路的技术,诸如用于执行索引运算的量子电路,在本文中被称为么正迭代(unitary iteration)量子电路。
2、通常,本说明书中所描述的主题的一个创新方面可以通过一种用于执行一元迭代以使用一元迭代量子电路来实现索引运算的方法来实现,所述方法包括:在包括索引量子位的索引寄存器中对索引值进行编码;在包括多个控制量子位的控制寄存器中对索引值进行编码;以及重复地计算和撤销计算控制量子位,以根据控制量子位的状态对与索引值相对应的一个或多个目标量子位执行运算,其中在编码、计算和撤销计算期间:多个控制量子位依次可用,并且多个控制量子位对应于所编码索引值的独热(one-hot)编码。
3、该方面的其他实现方式包括对应的经典或量子计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,每个都配置为执行方法的动作。一个或多个经典或量子计算机的系统可以被配置为通过在系统上安装软件、固件、硬件或其组合来执行特定操作或动作,所述软件、固件、硬件或其组合在操作中致使系统执行这些动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定操作或动作,所述指令在由数据处理装置执行时致使所述装置执行动作。
4、前述和其他实现方式可各自可选地包括单独或组合的以下特征中的一个或多个。在一些实现方式中,在包括多个控制量子位的控制寄存器中对索引值进行编码包括:迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算(and operation),以将最低有效索引量子位的逆与存储前一逻辑与运算的结果的倒数第二控制量子位之间的逻辑与运算的结果存储在最后控制量子位中。
5、在一些实现方式中,迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以存储最低有效索引量子位的逆与存储前一逻辑与运算的结果的控制量子位之间的逻辑与运算的结果包括:对于第一迭代,在第一控制量子位与最高有效索引量子位的逆之间执行逻辑与运算,并且将逻辑与运算的结果存储在第二控制量子位中;以及对于随后的迭代,在存储前一迭代的逻辑与运算的结果的控制量子位与所述迭代的索引量子位的逆之间执行逻辑与运算,并且将逻辑与运算的结果存储在随后的控制量子位中。
6、在一些实现方式中,第一控制量子位最初被设置成接通状态。
7、在一些实现方式中,重复地计算和撤销计算所述控制量子位包括:对于每个目标量子位依次重复地:确定最后控制量子位是否处于接通状态,并且响应于确定最后控制量子位处于接通状态而对目标量子位执行运算;确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量;迭代地执行所确定数量的撤销计算;在与最后一个撤销计算的逻辑与运算相对应的控制量子位与下一个最高控制量子位之间执行受控非(cnot)运算,其中下一个最高控制量子位用作针对受控非运算的控件(control);迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以重新计算最后控制量子位。
8、在一些实现方式中,确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在将与最后控制量子位相对应的索引值的二进制表示改变为下一个时翻转了多少位;以及将撤销计算的数量确定为所确定的位翻转数量减一。
9、在一些实现方式中,确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在获得非整数之前可以将以10为底的索引值除以2的次数。
10、在一些实现方式中,所述方法还包括:撤销计算成对的相应控制量子位和索引量子位之间的迭代地计算的多个逻辑与运算,以重置索引寄存器以便对索引值进行编码。
11、在一些实现方式中,多个逻辑与包括根据toffoli门和clifford+t门定义的临时与运算。
12、在一些实现方式中,每个逻辑与运算需要4个t门。
13、在一些实现方式中,一元迭代电路中所包括的与运算的总数等于目标量子位的总数n减1。
14、在一些实现方式中,执行索引运算的t计数为4(l-1)。
15、在一些实现方式中,所述方法还包括:
16、合并受控非运算以产生经优化的一元迭代电路以用于执行索引运算。在一些实现方式中,索引运算包括范围索引运算,并且其中一元迭代量子电路还包括累加器量子位。
17、在一些实现方式中,执行范围索引运算包括:在累加器量子位与每个迭代的最后控制量子位之间应用受控非运算,迭代的最后控制量子位用作控件。
18、在一些实现方式中,一元迭代电路通过以下来构造:定义用于实现索引运算的总控制电路;将一组变换应用于所述总控制电路以产生第一经变换电路,包括:对于每个可能的索引,当应用于索引和2b的按位或算符的结果大于或等于l并且应用于l-1和2b的按位与算符的结果等于2b时,去除表示2b的索引量子位上的控件,其中b表示二进制索引;以及将其余控件扩展到嵌套与运算中;将一组优化应用于第一经变换电路以产生一元迭代电路,包括:如果控件类型匹配,则去除与运算的相邻撤销计算和重新计算;如果控件类型不匹配,则用受控非和非运算代替与运算的相邻撤销计算和重新计算。
19、在一些实现方式中,嵌套与运算被嵌套成使得较低控件在较高控件内侧。
20、在一些实现方式中,在其余控件的扩展期间,同与运算相关联的控制量子位被直接放置在其最低输入量子位下方。
21、通常,本说明书中所描述的主题的另一个创新方面可以通过一种用于操作量子只读存储器的方法来实现,所述方法包括:在包括一个或多个索引量子位的索引寄存器中对索引值进行编码;在包括多个控制量子位的控制寄存器中对索引值进行编码;以及重复地计算和撤销计算控制量子位,以根据控制量子位的状态将与索引值相对应的数据项加载到数据量子位的数据寄存器,其中在编码、计算和撤销计算期间:使多个控制量子位依次可用,并且多个控制量子位对应于存储的索引的独热编码。
22、该方面的其他实现方式包括记录在一个或多个计算机存储设备上的对应的经典或量子计算机系统、装置和计算机程序,每个计算机存储设备被配置为执行方法的动作。一个或多个经典或量子计算机的系统可以被配置为通过在系统上安装软件、固件、硬件或其组合来执行特定操作或动作,所述软件、固件、硬件或其组合在操作中致使系统执行这些动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定操作或动作,所述指令在由数据处理装置执行时致使所述装置执行动作。
23、前述和其他实现方式可各自可选地包括单独或组合的以下特征中的一个或多个。在一些实现方式中,包括多个控制量子位的控制寄存器中的索引值包括:迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以将最低有效索引量子位的逆与存储前一逻辑与运算的结果的倒数第二控制量子位之间的逻辑与运算的结果存储在最后控制量子位中。
24、在一些实现方式中,迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以存储最低有效索引量子位的逆与存储前一逻辑与运算的结果的控制量子位之间的逻辑与运算的结果包括:对于第一迭代,在第一控制量子位与最高有效索引量子位的逆之间执行逻辑与运算,并且将逻辑与运算的结果存储在第二控制量子位中;以及对于随后的迭代,在存储前一迭代的逻辑与运算的结果的控制量子位与所述迭代的索引量子位的逆之间执行逻辑与运算,并且将逻辑与运算的结果存储在随后的控制量子位中。
25、在一些实现方式中,第一控制量子位最初被设置成接通状态。
26、在一些实现方式中,重复地计算和撤销计算所述控制量子位包括:对于每次重复:确定最后控制量子位是否处于接通状态;响应于确定最后控制量子位处于接通状态而对数据寄存器量子位执行多目标受控非运算,其中多目标受控非运算取决于数据项的二进制编码并且由最后控制量子位控制;确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量;迭代地执行所确定数量的撤销计算;在与最后一个撤销计算的逻辑与运算相对应的控制量子位与下一个最高控制量子位之间执行受控非运算,其中下一个最高控制量子位用作针对受控非运算的控件;迭代地计算成对的相应控制量子位和索引量子位之间的多个逻辑与运算,以重新计算最后控制量子位。
27、在一些实现方式中,确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在将与最后控制量子位相对应的索引值的二进制表示改变为下一个时翻转了多少位;以及将撤销计算的数量确定为所确定的位翻转数量减一。
28、在一些实现方式中,确定要执行的成对的相应控制量子位和索引量子位之间的迭代地计算的逻辑与运算的撤销计算的数量包括:确定在获得非整数之前可以将以10为底的索引值除以2的次数。
29、在一些实现方式中,所述方法还包括:撤销计算成对的相应控制量子位和索引量子位之间的迭代地计算的多个逻辑与运算,以重置索引寄存器以便对索引值进行编码。
30、在一些实现方式中,多个逻辑与包括根据toffoli门和clifford+t门定义的临时与运算。
31、在一些实现方式中,每个逻辑与运算需要4个t门。
32、在一些实现方式中,量子只读存储器电路中所包括的与运算的总数等于数据寄存器量子位的总数l减1。
33、在一些实现方式中,加载数据项的t计数为4(l-1)。
34、可以特定方式实现本说明书中所描述的主题,从而实现以下优点中的一个或多个优点。
35、当前描述的公开内容代表了对现有技术水平的重大且广泛适用的改进,以执行具有低t门计数的索引运算。
36、例如,用于执行索引运算的先前已知的量子电路构造通常转换具有以l个量子位的空间开销在区间[0,l)中存储索引的索引寄存器。相比之下,目前描述的一元迭代构造和技术在空间上成倍地提高了效率,而无需增加t门复杂度,从而仅需要log l个控制量子位。另外,通过利用临时与构造执行逻辑与运算,与执行索引运算的其他量子电路相比,目前描述的一元迭代量子电路所需的t门数量更少——仅需要4(l-1)个t门并且在不增大t计数的情况下需要时可以并行。由于众所周知,t门的制造成本很高,因此,目前描述的一元迭代构造可提供对现有技术的明显改进。
37、目前描述的一元迭代构造可以容易地变换或优化,并且可以应用于多种设置。例如,一元迭代构造可以用于执行特定类型的索引运算,诸如范围索引运算。
38、作为另一示例,一元迭代构造可以形成改进的只读qram(本文称为qrom)的基础。由于qrom中的字或数据项的数量为l,并且位中的字或数据项的大小为d,因此,目前描述的一元迭代构造可用于构造t计数为4(l-1)并且辅助(控制量子位)计数为logl的qrom。另外,可以对qrom构造进行参数化处理,以实现o(n/k+kd)的改进的t计数和o(kd)的辅助计数,其中k表示控制量子位计数与t计数权衡的任意数字。
39、目前描述的qrom的另一个有利特性是,qrom不必存储在量子位中。实际上,使用qrom的量子算法可以将相关的经典数据直接编码到执行所述算法的量子电路中。这使得具有一百个纠错量子位的数量级的近期纠错量子计算机可以使用qrom。
40、目前描述的qrom可以对包括量子模拟、用于量子机器学习算法的数据查找的构造、以及通常包括在叠加下将数据加载到量子计算机中的任何算法的多种应用提供改进。
41、在附图和以下描述中阐述了本说明书的主题的一个或多个实现方式的细节。从说明书、附图和权利要求书中,本主题的其它特征、方面和优点将变得显而易见。