分区模板匹配和符号窥视孔优化的制作方法

未命名 08-13 阅读:126 评论:0

分区模板匹配和符号窥视孔优化


背景技术:

1.本公开涉及clifford电路,更具体地,涉及clifford电路的分区(partitioned)模板匹配和符号窥视孔(symbolic peephole)优化。
2.量子电路是对一组量子位(qubit)进行操作的变换。量子电路可以由酉矩阵(unitary matric)表示(例如,对于任何合适的正整数n,对n个量子位操作的量子电路可以由2
n x 2n酉矩阵表示)。一组量子位的量子状态可以由量子状态向量表示(例如,对于n个量子位,量子状态向量可具有2n个元素),并且量子电路可经由矩阵乘法被应用于量子状态向量。量子电路可经由矩阵乘法串联组合和/或可经由张量积(例如,kronecker积)并联组合。
3.量子计算的长期成功取决于实现至少部分容错。clifford电路是特定类型的量子电路,其与容错量子计算是一体的(例如,毕竟,用于许多量子纠错码的编码电路是clifford电路)。因为clifford电路在量子计算中非常有用,所以可能希望合成实现给定clifford算子的优化的clifford电路。优化clifford电路的目的在于减少clifford电路中的单量子位和/或双量子位门计数,从而可以减少执行clifford电路所需的计算时间和/或计算资源。
4.对渐近优化的clifford电路(例如,高达恒定因子最优的而因此不是精确最优的clifford电路)的合成进行了许多研究。常规地,精确优化的clifford电路的合成即使对于少量的量子位也是极其昂贵的(例如,常规技术可以生成仅用于多达四个量子位的精确优化的clifford电路,并且可以生成多达用于多达五个量子位的输入/输出排列的优化的clifford电路)。优化clifford电路的常规技术包括模板匹配和窥视孔优化。模板匹配涉及利用模板(例如,已知等同于单位(identity)的门的串)来减少给定电路中的门计数。常规的模板匹配是一种与clifford电路和非clifford电路类似地一起工作的通用技术。因此,常规的模板匹配不能利用和/或使用clifford电路的特定结构特性,并且这限制了电路可以被优化的程度。窥视孔优化涉及识别整个clifford电路中的子电路,并利用已知的最优电路库来优化子电路。常规窥视孔优化的技术问题是其需要子电路与clifford电路的其余部分完全隔离。换句话说,如果子电路包含将子电路连接到电路的其余部分的纠缠门,则不能使用常规的窥视孔优化。
5.可期望可以改善和/或解决这些技术问题中的一个或多个的系统和/或技术。


技术实现要素:

6.以下给出了以提供对本发明的一个或多个实施例的基本理解的概述。本概述不旨在标识关键或重要元素,或描绘特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化形式呈现概念,作为稍后呈现的更详细描述的序言。在本文描述的一个或多个实施例中,描述了可以促进clifford电路的分区模板匹配和符号窥视孔优化的设备、系统、计算机实现的方法、装置和/或计算机程序产品。
7.根据一个或多个实施例,提供了一种系统。该系统可以包括可以存储计算机可执行组件的存储器。该系统还可以包括处理器,该处理器可以可操作地耦合到存储器并且可
以执行存储在存储器中的计算机可执行组件。在不同的实施方案中,这些计算机可执行组件可以包括模板组件,该模板组件可以在与一组量子位相关联的clifford电路上执行模板匹配。在各个方面,计算机可执行组件还可以包括分区组件,其可以在模板匹配之前将clifford电路划分为计算级、pauli级和swap级。在各种实例中,可以在计算级执行模板匹配。在各种实施例中,计算机可执行组件还可以包括符号组件,其可以从该组量子位中选择量子位的子集,在计算级重写至少一个纠缠门,使得至少一个纠缠门的目标在量子位的子集中,并且用符号pauli门替换至少一个重新布线的纠缠门。在各种情况下,符号pauli门可以是由符号变量控制的pauli门。在各个方面,计算机可执行组件还可以包括窥视孔组件,其可以通过实现动态编程算法来对具有符号pauli门的量子位的子集执行窥视孔优化。
8.根据一个或多个实施例,上述系统可以被实现为计算机实现的方法和/或计算机程序产品。
9.根据一个或多个实施例,提供了一种系统。该系统可以包括可以存储计算机可执行组件的存储器。该系统还可以包括处理器,该处理器可以可操作地耦合到存储器并且可以执行存储在存储器中的计算机可执行组件。在各种实施例中,计算机可执行组件可以包括窥视孔组件,其可以对与一组量子位相关联的clifford电路执行窥视孔优化。在各种实例中,计算机可执行组件还可包括符号组件,该符号组件可在窥视孔优化之前从该组量子位中选择量子位的子集,在clifford电路中重新布线至少一个纠缠门,使得该至少一个纠缠门的目标在量子位的子集中,并用符号pauli门替换该至少一个重新布线的纠缠门。在各个方面,计算机可执行组件还可以包括分区组件,其可以将clifford电路划分为计算级、pauli级和swap级。在各种情况下,计算机可执行组件还可以包括模板组件,其可以在对至少一个纠缠门重新布线之前在计算级上执行模板匹配。
10.根据一个或多个实施例,上述系统可以被实现为计算机实现的方法和/或计算机程序产品。
附图说明
11.图1示出了根据本文描述的一个或多个实施例的促进分区模板匹配和/或符号窥视孔优化的示例非限制性系统的框图。
12.图2-3示出了根据本文描述的一个或多个实施例的促进分区模板匹配和/或符号窥视孔优化的示例非限制性计算机实现的方法的流程图。
13.图4示出了根据本文描述的一个或多个实施例的示例非限制表格和示例非限制编译算法。
14.图5示出了根据本文描述的一个或多个实施例的促进分区模板匹配和/或符号窥视孔优化的包括计算级、pauli级和swap级的示例非限制性系统的框图。
15.图6根据本文描述的一个或多个实施例的以示例非限制性方式示出了如何将pauli门推到clifford电路的一端。
16.图7示出了根据本文描述的一个或多个实施例的被分区的示例非限制性clifford电路。
17.图8示出了根据本文描述的一个或多个实施例的促进分区模板匹配和/或符号窥视孔优化的包括模板库的示例非限制性系统的框图。
18.图9示出了根据本文描述的一个或多个实施例的可被用于模板匹配的示例非限制性模板。
19.图10示出了根据本文描述的一个或多个实施例的可在模板匹配期间被用于hadamard(哈达玛)和/或相位(phase)推的示例非限制性模板。
20.图11示出根据本文描述的一个或多个实施例的包括促进分区模板匹配和/或符号窥视孔优化的浮动门转换规则的示例非限制性系统的框图。
21.图12示出了根据本文描述的一个或多个实施例的用于在浮动门推之后将pauli算子转换回hadamard和/或相位门的示例非限制规则。
22.图13根据本文中所描述的一个或多个实施例以示例非限制性方式示出了可如何使用浮动门推从模板匹配范围移除阻挡门。
23.图14示出了根据本文描述的一个或多个实施例的促进分区模板匹配和/或符号窥视孔优化的包括swap等价关系的示例非限制性系统的框图。
24.图15根据本文描述的一个或多个实施例以示例非限制性方式示出了如何以一个纠缠门为代价来优化swap门。
25.图16示出了根据本文描述的一个或多个实施例的促进分区模板匹配和/或符号窥视孔优化的包括符号pauli门的示例非限制性系统的框图。
26.图17根据本文描述的一个或多个实施例以示例非限制性方式示出了如何对跨接(straddling)门重新布线。
27.图18根据本文描述的一个或多个实施例以示例非限制性方式示出了可如何使用符号pauli门来改进窥视孔优化。
28.图19示出了根据本文描述的一个或多个实施例的促进分区模板匹配和/或符号窥视孔优化的包括最优子电路的库的示例非限制性系统的框图。
29.图20-21示出了根据本文描述的一个或多个实施例的促进分区模板匹配和/或符号窥视孔优化的示例非限制性计算机实现的方法的流程图。
30.图22示出了其中可促进本文所描述的一个或多个实施例的示例非限制性操作环境的框图。
31.图23示出了根据本文描述的一个或多个实施例的示例非限制性云计算环境。
32.图24示出了根据本文描述的一个或多个实施例的示例非限制性抽象模型层。
具体实施方式
33.以下详细描述仅是说明性的,并且不旨在限制实施例和/或实施例的应用或使用。此外,并不意图受前面的背景技术或发明内容部分或具体实施方式部分中呈现的任何明示或暗示的信息的约束。
34.现在参考附图描述一个或多个实施例,其中相同的附图标记始终用于表示相同的元件。在以下描述中,出于解释的目的,为了提供对一个或多个实施例的更透彻理解阐述了许多具体细节。然而,在各种情况下,显然可在没有这些特定细节的情况下实践该一个或多个实施例。
35.如上所述,量子电路是对一组量子位进行操作的变换。对于任何合适的正整数n,对n个量子位操作的量子电路可以由2nx2n酉矩阵表示。一组n个量子位的量子态可以由具有
2n个元素的向量表示。量子电路可以经由矩阵乘法被应用于量子状态向量。此外,量子电路可以经由矩阵乘法被串联组合和/或可以经由张量积(例如,kronecker积)被并联组合。
36.如上所述,clifford电路是一种重要类型的量子电路(例如,对于实现量子容错很重要)。因此,可能需要改进clifford电路的优化技术,其中优化涉及减少给定clifford电路的门计数,而不改变由给定clifford电路实现的总体功能/变换。
37.clifford电路(也称为稳定器电路)可包括hadamard门(h)、相位门(s,也称为p)、受控非门(cnot)和pauli门(x、y和z),其中:
[0038]38.其中,clifford电路也可以包括单位矩阵(i)。另一个经常考虑的门是受控z门(cz),其可以被构造为hadamard门和cnot的组合:
[0039][0040]
其中,*表示矩阵乘法,并且其中,表示张量积。
[0041]
clifford电路的一个重要特性是clifford门h、s和cnot可以通过共轭将pauli矩阵(和/或pauli矩阵的张量积)映射到它们自己。等价地,这可以被写为pauli门被“推”过该clifford门h、s和cnot。也就是说,
[0042]
hx=zh;hy=-yh;hz=xh;sx=ys;sy=-xs;sz=zs
[0043]
cnot
1,2
x1=x1x2cnot
1,2
;cnot
1,2
x2=x2cnot
1,2

[0044]
cnot
1,2
z2=z1z2cnot
1,2
;gnot
1,2
z1=z1cnot
1,2
[0045]
其中索引定义控制和目标量子位。为了便于解释,这些方程可以被称为pauli-push方程。如这些pauli-push方程中的每一者所示,在clifford门的左侧实现的给定的pauli门等价于在同一clifford门的右侧实现的一些潜在不同的pauli门。因此,pauli可以从clifford门的一侧被“推”到另一侧。
[0046]
如上所述,clifford电路的优化通常是经由模板匹配和窥视孔优化来执行的。这些在下面简要描述。
[0047]
首先,考虑模板匹配。对于任何合适的正整数m,大小m模板是实现单位函数的m个门的序列:
[0048]
t=g0g1...g
m-1
=i
[0049]
其中,t表示模板,并且其中,gj表示所有非负整数j的门。
[0050]
为了查看如何使用模板来减少门计数,观察对于一些索引j和一些0≤p≤m,模板的一些子序列gj...g
j+p-1(mod m)
是否与电路中的门匹配,并且如果电路中的门可以一起移动(例如,使其连续),则电路中的这些门可以用模板的其它m-p门的逆来替换。注意,序列的长度p越大,执行替换就越有益,并且对于任何门计数被减少。模板的应用的准确标准可以取决于目标函数的选择(例如,可以取决于如何测量电路成本,诸如以电路深度、以2量
子位门计数、以总门计数进行测量)。更正式地,对于参数p,其中可以如下在两个方向上应用模板t:
[0051]
前向:
[0052]
反向:
[0053]
其中表示伴随矩阵(例如共轭转置)。注意,酉矩阵/门的伴随矩阵等于酉矩阵/门的逆。
[0054]
在各种情况下,大小为m的模板t可以独立于更小大小的模板(例如,更小模板的应用不能减少t中的门的数量或使其等于另一模板)。使用模板匹配的电路优化是迭代过程,其中在每个步骤,优化开始于电路中的给定门,并且尝试尽可能向后和/或向前地匹配给定模板。如果匹配的门可以一起移动,并且替换是有益的,则可以如上定义地应用模板。然而,如果匹配的门不能一起移动和/或不能以其他方式连续,则不能应用模板。如果匹配的门不连续,则可以说在匹配的门之间存在至少一个阻挡(blocking)门。等价地,可以说在模板匹配范围中存在至少一个阻挡门。在各种情况下,可以针对电路中的所有模板和/或针对所有门重复该步骤,直到满足预定收敛标准(例如,任何合适的预定义收敛标准)。结果可以是减少(例如,优化)电路门计数。
[0055]
如上所述,通常为量子电路定义这种常规的模板匹配。因此,尽管常规模板匹配可应用于clifford电路,但是它没有利用clifford电路的特定属性来进行优化。如这里所解释的,本发明的各种实施例的发明人设计了一种用于改进模板匹配(例如,使模板匹配更有效)的技术,其通过利用clifford电路的特定结构来起作用。
[0056]
接下来,考虑窥视孔优化。与模板匹配类似,窥视孔优化是迭代过程,其通过考虑量子位的小子集上的子电路(量子位的小子集可以被称为a)并且尝试用来自经预先计算的优化电路的数据库/库的优化版本替换该子电路来优化电路。在每个步骤,对于给定的门,考虑包括该门的固定的小数量的量子位(例如|a|=4)上的所有子电路。对于每个子电路,可以计算其成本,并且可以计算由其实现的酉的最优成本(例如,可以从预先计算的最优电路的数据库中取得该最优成本)。如果替换是有益的,则用最优实现来替换子电路。可以对所有门重复该步骤,直到满足任何适当的预定收敛标准。
[0057]
如上所述,这种常规窥视孔优化仅在子电路与电路的其余部分完全解耦时起作用(例如,子电路不能包括将子电路耦合到电路的其余部分的任何跨接的双量子位门)。如在此所解释的,本发明的各种实施例的发明人设计了一种用于即使在子电路未与电路的其余部分完全解耦时也能够在子电路上执行窥视孔优化的技术。
[0058]
本发明的各种实施例可以解决这些技术问题中的一个或多个。具体地,本发明的各种实施例可以提供能够促进分区模板匹配和/或符号窥视孔优化的系统和/或技术,其可以比常规模板匹配和/或常规窥视孔优化更有效地优化clifford电路。在各个方面,本文描述的教导可以相当于clifford电路优化的启发式方法,其可以弥补用于合成精确优化的clifford电路的不可缩放方法与次优(虽然渐近最优)的廉价合成技术之间的差距。在各种实例中,本发明的实施例可以被认为是计算机实现的工具(例如,计算机实现的软件程序),其可以接收次优clifford电路作为输入,并且可以比常规系统和/或技术更高效和/或更有
效地产生这些次优clifford电路的优化版本作为输出。
[0059]
在各个方面,这种计算机实现的工具可以将分区的模板匹配应用于输入的clifford电路,这可以被认为是利用/使用clifford电路的独特属性/结构的模板匹配的改进版本。具体地,分区模板匹配利用了以下观察,即在clifford电路中,pauli门总是可以被“推”到电路的一端(例如,经由上面解释的pauli-push方程),而不改变非pauli clifford门(例如,h、s、cnot)。在各个方面,分区模板匹配可以包括三个步骤。首先,通过将clifford电路中的任何pauli门和任何swap门“推”到clifford电路的一端,可以将clifford电路划分为计算级、pauli级和swap级(本领域普通技术人员可理解,可以以与pauli门被“推”通过clifford电路相同和/或相似的方式将swap门“推”通过clifford电路)。在各种情况下,计算级可以只包括h门、s门和cnot门,pauli级可以只包括pauli门,而swap级可以只包括swap门。其次,可以将模板匹配应用于计算级,以便减少门计数(例如,由于在划分期间将pauli和swap推到电路的一端,所以可以更容易地应用模板;换句话说,pauli和swap被从计算级排除)。第三,可以通过利用以下事实来优化swap级,即如果swap门可以与另一个双量子位门“对准”,则可以以一个双量子位门的有效成本来实现swap门。在一些情况下,如果模板或swap优化的应用在计算级中产生任何pauli门,则可以将这种pauli门推到pauli级(例如,可以对电路进行重新分区)。在一些方面,可以通过阻挡门来防止将模板应用于计算级。如本文所解释,发明人设计了一种新颖的浮动门技术,其可移除阻挡门,因此允许应用模板。换句话说,发明人设计了一种使得能够将模板应用于不能直接一起移动的非连续门的序列的过程。该过程试图通过将单量子位门分解成pauli算子的线性组合并“推”pauli算子直到它们可以被组合回单量子位门(其不再阻止模板应用)来移出(例如,“浮动”)阻止模板应用的单量子位门。
[0060]
换句话说,常规模板匹配简单地将模板直接应用于给定clifford电路,而分区模板匹配可包括:(1)通过将给定clifford电路中的任何pauli门和/或swap门“推”到给定clifford电路的一端,将给定clifford电路分区为三级(例如,计算、pauli和swap);(2)将模板应用于三个分区中的一个(例如,计算级);以及(3)通过将swap与双量子位门对准来实现swap优化。同样如上文所提及,本发明的各种实施例可实施浮动门技术,该浮动门技术可使得模板能够应用于非连续的门的序列。如本文所解释的,浮动门技术可涉及将阻挡门重写为pauli的线性组合,然后将pauli“推”出期望的模板匹配范围,从而允许应用期望的模板。常规模板匹配仅既不包括该分区也不包括该浮动门技术。
[0061]
在各种实例中,根据本发明的各种实施例的计算机实现的工具可对给定电路应用符号窥视孔优化,这可被认为是窥视孔优化的改进版本,其甚至可在没有完全的子电路解耦的情况下起作用。具体地,当考虑通过跨接门来耦合/纠缠到电路的其余部分的子电路时,该跨接门可以被重写,使得跨接门的目标在子电路中(例如,这通常可以通过应用各种hadamard门和/或相位门来完成),并且重写的跨接门然后可以被如本文所定义的符号pauli门替换和/或表示。如下所述,符号pauli门是由符号变量而不是由另一量子位控制的pauli门。其可以根据需要通过去除控制并用pauli门代替目标而从双量子位门获得。因此,符号pauli门可以被看作单量子位门。然后,可以使用动态编程和/或预先计算的最优电路库来优化具有符号pauli门的子电路。也就是说,当实现符号pauli门时,尽管子电路没有与电路的其余部分完全解耦,子电路可以有效地被视为好像它与电路的其余部分完全解耦。
[0062]
换句话说,常规的窥视孔优化仅涉及识别完全解耦的子电路并且用预先计算的最优电路替换完全解耦的子电路的全部或部分,而符号窥视孔优化可包括:(1)识别任何合适的子电路,无论是否完全解耦;(2)重写任何跨接门,使得跨接门的目标在子电路中(例如,使得重写的跨接门的控制在电路的其余部分中);(3)用符号pauli门(例如,由符号变量控制的pauli门)替换子电路中的每个重写的跨接门;以及(4)用预先计算的最优电路代替具有符号pauli门的子电路的所有或部分。常规的窥视孔优化完全不能处理跨接门。
[0063]
在各种情况下,可以顺序地组合分区模板匹配和符号窥视孔优化,以用于改进的clifford电路的优化(例如,如本文所述的计算机实现的工具可以接收clifford电路作为输入,可以将分区模板匹配应用于输入的clifford电路,并且然后可以应用符号窥视孔优化,从而产生优化的clifford电路作为输出)。
[0064]
可采用本发明的各种实施例以使用硬件和/或软件来解决本质上是高度技术性的问题(例如,以促进clifford电路的分区模板匹配和/或符号窥视孔优化),这些问题不是抽象的并且不能作为人类的一组精神动作来执行。此外,所执行的一些过程可以由专用计算机来执行(例如,由可操作地耦合到处理器的设备在与一组量子位相关联的clifford电路上执行模板匹配;由该设备并且在模板匹配之前将clifford电路划分为计算级、pauli级和swap级,其中在计算级上执行模板匹配;由该设备通过用pauli算子的线性组合替换阻挡门而在计算级中将阻挡门推出模板匹配范围;由该设备从一组量子位中选择量子位的子集;由该设备在计算级中重新布线至少一个纠缠门,使得该至少一个纠缠门的目标在量子位的该子集中;由该设备用符号pauli门替换至少一个重新布线的纠缠门,其中符号pauli门是由符号变量控制的pauli门;以及由该设备对具有符号pauli门的量子位的子集执行窥视孔优化)。这种定义的任务通常不是由人类手动执行的。此外,无论是人脑还是人用笔和纸都不能通过将clifford电路电子地划分为三个不同的级、通过将模板匹配电子地应用于这些级中的一个、和/或通过用符号pauli门电子地替换跨接门来电子地优化clifford电路。相反,本发明的各种实施例固有地并且不可避免地与计算机技术相联系,并且不可在量子计算环境之外实施(例如,本发明的各种实施例针对可以更有效地优化输入的clifford电路的系统和/或计算机实施的方法;该系统和/或计算机实施的方法在量子计算领域中具有很大的效用,并且不能以任何切合实际的方式在计算环境之外实施)。
[0065]
在各种实例中,本发明的实施例可以将关于分区模板匹配和符号窥视孔优化的所公开的教导集成到实际应用中。实际上,如本文所述,可以采用系统和/或计算机实现的方法的形式的本发明的各种实施例可以被认为是计算机化工具,其可以接收clifford电路作为输入,并且可以生成clifford电路的优化版本(例如,具有更低的门计数)作为输出。更具体而言,该计算机化工具可以通过实现分区模板匹配(与常规模板匹配相对地)和通过实现符号窥视孔优化(与常规窥视孔优化相对地)来促进该优化。优化的clifford电路的电子生成当然是计算机的有用和实际应用,尤其是考虑到clifford电路对于容错量子计算有多重要。此外,如上所述,本发明的各种实施例可以解决/处理常规技术所经历的一些技术问题。具体地,常规的模板匹配是通用过程,但是分区的模板匹配可以被认为是模板匹配的clifford特定版本,其比常规的模板匹配允许的更有效地优化clifford电路。另外,如果所考虑的子电路没有与电路的其余部分完全解耦(例如,如果存在跨接门则不工作),则常规的窥视孔优化不工作,但是符号窥视孔优化可以被认为是尽管没有完全解耦也工作的窥视
孔优化的改进版本。总之,该系统和/或技术清楚地构成了clifford电路优化领域中具体的和切实的技术改进。
[0066]
此外,本发明的各种实施例可以基于所公开的教导来控制真实世界的设备。例如,本发明的实施例可以接收真实世界的次优clifford电路作为输入,并且可以通过实现分区模板匹配和符号窥视孔优化来生成次优clifford电路的真实世界优化版本作为输出。在一些情况下,本发明的实施例可以在真实世界量子计算设备上执行次优clifford电路的这种真实世界优化版本。
[0067]
应当理解,附图和本文公开内容是示例性的而非限制性的。
[0068]
图1示出了根据本文描述的一个或多个实施例的可促进分区模板匹配和/或符号窥视孔优化的示例非限制性系统100的框图。如图所示,clifford优化系统102可以经由任何合适的有线和/或无线电子连接接收次优clifford电路104作为输入,并且可以电子地生成优化clifford电路106作为输出。在各个方面,优化的clifford电路106可以在功能上等同于次优clifford电路104(例如,可以实现与次优clifford电路104相同的总体变换),但是可以具有比次优clifford电路104更低的门计数。在各个方面,次优clifford电路104可以对任何适当数量的量子位进行操作。如果次优clifford电路104对任何合适的正整数n的n个量子位进行操作,则优化clifford电路106也可对n个量子位进行操作。
[0069]
在各种实施例中,clifford优化系统102可以包括处理器108(例如,计算机处理单元、微处理器)和可操作地连接到处理器108的计算机可读存储器110。存储器110可以存储计算机可执行指令,这些指令在由处理器108执行时可以使处理器108和/或clifford优化系统102的其它组件(例如,分区组件112、模板组件114、浮动组件116、swap组件118、符号组件120、窥视孔组件122)执行一个或多个动作。在各种实施例中,存储器110可以存储计算机可执行组件(例如,分区组件112、模板组件114、浮动组件116、swap组件118、符号组件120、窥视孔组件122),并且处理器108可以执行计算机可执行组件。
[0070]
在各实施例中,clifford优化系统102可包括分区组件112。在各个方面,分区组件112可以将次优clifford电路104划分(例如,分段)成计算级、pauli级和swap级。在各种情况下,分区组件112可以经由上述pauli-push方程将任何pauli门(例如,x、y和/或z)“推”到次优clifford电路104的一端。类似地,分区组件112可以经由适用于swap门的类似push方程将次优clifford电路104中的任何swap门“推”到次优clifford电路104的一端。结果可能是所有swap门现在位于次优clifford电路104的称为swap级的一部分中,所有pauli门现在位于次优clifford电路104的称为pauli级的不同的部分中,并且其它clifford门(例如,h、s、cnot)位于次优clifford电路104的称为计算级的另外不同的部分中。换句话说,分区组件112可以将次优clifford电路104的不同算子/门移动到次优clifford电路104内的不同位置,而不在功能上改变由次优clifford电路104实现的总体变换。
[0071]
在各种实施例中,clifford优化系统102可以包括模板组件114。在各个方面,模板组件114可以存储、维护和/或以其他方式具有对模板库的任何合适形式的访问。在各种实例中,模板可以是实现和/或等价于标识变换的任何合适的量子门串。在各种情况下,模板组件114可通过利用模板库来促进次优clifford电路104的计算级上的模板匹配。换句话说,模板组件114可将来自模板库的一个或多个模板应用于次优clifford电路104的计算级,以便减少次优clifford电路104的门计数。注意,在一些情况下,将模板应用于计算级可
比将模板应用于次优clifford电路104的未分区版本更容易和/或更有效/高效。也就是说,因为在次优clifford电路104中的所有pauli门和/或swap门被分区组件112“推”向次优clifford电路104的一端,所以这些pauli门和/或swap门不再存在于计算级中,因此不能阻挡和/或以其它方式阻止模板到计算级的应用(例如,在没有分区的情况下,pauli门和/或swap门可能位于模板匹配范围的中间,这可能因此阻挡/阻止模板的应用)。
[0072]
在各种实施例中,clifford优化系统102可以包括浮动组件116。在各个方面中,浮动组件116可以存储、维护和/或以其他方式具有对各种浮动门转换规则的任何合适形式的访问。在各种实例中,如上所述,计算级中的门可能阻挡和/或阻碍模板的应用(例如,非期望的h门和/或非期望的s门可能在模板匹配范围内)。常规地,什么都不做,并且尝试不同的模板。然而,在各个方面,浮动组件116可以解决这个问题。具体地,在各种实例中,浮动组件116可以利用浮动门转换规则来将阻挡门重写和/或转换为pauli门的线性组合(例如,h可以被表示为pauli门的线性组合,而s可以被表示为pauli门的线性组合)。然后,浮动组件116可以经由pauli-push方程将pauli门的线性组合“推”到模板匹配范围之外。因此,从匹配范围中去除阻挡门,并且可以应用模板。在一些情况下,浮动组件116可以利用浮动门转换规则来将被移动的pauli算子的线性组合转换回单量子位门。换言之,分区组件112可将pauli门移出模板匹配范围,而浮动组件116可将hadamard和/或相位门移出模板匹配范围。
[0073]
在各种实施例中,clifford优化系统102可以包括swap组件118。在各个方面,swap组件118可以存储、维护和/或以其他方式具有对各种swap等价关系的任何适当形式的访问。在各个方面,通过将swap门推回/合并回计算级并根据已知的方程/公式将其与双量子位门组合,可以以双量子位门(例如,cnot)的有效成本实现swap门。swap等价关系可以是这些已知的方程/公式。即,swap等价关系可以是各种方程,其指示当swap门与cnot门和/或cz门串行实现时所达到的结果电路和/或结果门串。这样,swap组件118可以替换处于次优clifford电路104的swap级的swap门。
[0074]
在各种实施例中,clifford优化系统102可以包括符号组件120。在各个方面,符号组件120可以执行各种动作,这些动作可以准备用于窥视孔优化的次优clifford电路104的分区和模板匹配版本。具体地,符号组件120可以选择计算级内的任何适当的子电路(例如,对两个量子位和/或三个量子位进行操作的子电路)。在各种实例中,符号组件120然后可以重写任何跨接门,使得它们的目标在子电路中和/或由子电路操作。在各种情况下,跨接门可以是在子电路中恰好具有目标量子位或控制量子位中的一者的双量子位门(例如,cnot和/或cz)。如果跨接门的目标量子位在子电路中和/或由子电路操作,则跨接门的控制量子位在电路的其余部分中和/或由电路的其余部分操作。另一方面,如果跨接门的控制量子位在子电路中和/或由子电路操作,则跨接门的目标量子位在电路的其余部分中和/或由电路的其余部分操作。因此,跨接门将子电路耦合到电路的其余部分。在各个方面,符号组件120可以利用任何适当的数学方程/公式来重新布线跨接门,使得跨接门的目标量子位在子电路中。在各种情况下,符号组件120可以用符号pauli门来代替子电路中重新布线的跨接门。类似于纠缠门(例如,cnot和/或cz),符号pauli门可以是受控pauli门(例如,x、y和/或z)。然而,与纠缠门不同,符号pauli门可以由符号变量而不是由另一量子位控制。在各个方面,符号变量的值可以是0或1,符号变量可以是符号pauli门的幂。因此,如果符号变量具有值1,则符号pauli门可以实现基础pauli。然而,如果符号变量具有值0,则符号pauli门可以改
为实现标识变换。这样,符号pauli门可以模仿受控pauli(例如cnot和/或cz)的行为,但是出于窥视孔优化的目的,可以将其视为单量子位门(例如,可以视为无纠缠门)。
[0075]
在各种实施例中,clifford优化系统102可包括窥视孔组件122。在各个方面,窥视孔组件122可存储、维护和/或以其他方式具有对最优电路库的任何合适形式的访问。在各个方面,窥视孔组件122可利用最优电路库来对具有符号pauli门的子电路执行窥视孔优化(例如,库中预先计算的最优电路可替换子电路中的所有和/或一些门,从而减少门计数)。如上所述,常规的窥视孔优化技术不能简单地在没有完全解耦的子电路上执行。然而,由于符号pauli门,可以在没有完全解耦的子电路上执行符号窥视孔优化。
[0076]
在各个方面,clifford优化系统102可以迭代地执行分区组件112、模板组件114、浮动组件116、swap组件118、符号组件120和/或窥视孔组件122中的全部和/或一些,从而生成优化的clifford电路106作为结果。
[0077]
图2-3示出了根据本文描述的一个或多个实施例的可促进分区模板匹配和/或符号窥视孔优化的示例非限制性计算机实现的方法200和300的流程图。在一些情况下,可由系统100来促进计算机实现的方法200和300。
[0078]
首先考虑计算机实现的方法200。在各种实施例中,动作202可以包括由操作地耦合到处理器的设备接收次优clifford电路(例如,104)。尽管在一些实施例中可直接接收并优化次优clifford电路,但其它实施例可涉及接收clifford酉,经由基于对辛(symplectic)矩阵的高斯消元的技术来编译clifford酉(例如,可称为基线编译),然后优化所编译的电路。
[0079]
在各个方面,动作204可以包括由设备(例如,112)通过将pauli门和/或swap门“推”到次优clifford电路的一端来将次优clifford电路划分为计算级、pauli级和swap级。
[0080]
在各种实例中,动作206可包括由设备执行对计算级的模板匹配(例如,经由114)和/或swap优化(例如,经由118)的传递,直到达到收敛标准。在一些情况下,这可以包括每当模板的应用和/或swap门的合并在计算级中产生pauli门和/或swap门时重新分区次优clifford电路。
[0081]
在各种情况下,动作208可包括由设备(例如,120和122)在计算级上以随机顺序执行符号窥视孔优化的传递。
[0082]
在一些方面,动作210可包括再次由设备(例如,114)在计算级上执行模板匹配的传递,以进一步减少单量子位门计数。
[0083]
在各种实例中,动作212可包括由设备输出实现次优clifford电路的优化的clifford电路(例如,106)。
[0084]
现在,考虑计算机实现的方法300。在各种实施例中,动作302可包括由操作地耦合到处理器的设备接收次优clifford电路(例如,104)。
[0085]
在各个方面中,动作304可包括由设备使用基线编译器(例如,对辛格矩阵的高斯消元)合成次优clifford电路。
[0086]
在各种实例中,动作306可包括由设备执行计算机实现的方法200的动作204-210。
[0087]
在各种情况下,动作308可包括由设备迭代地重复动作304-306任何适当的次数,并且由设备挑选最佳的结果电路。
[0088]
在各个方面中,动作310可包括由设备输出实现次优clifford电路的优化的
clifford电路(例如,106)。
[0089]
如本文所解释的,本发明的各种实施例可以促进分区模板匹配和符号窥视孔优化,这可以被认为是用于clifford电路优化的两种新颖算法。在一些情况下,可以以至少两种方式应用这些新颖的算法。第一,如果输入是clifford酉,则可以通过使用基线编译器(参考图4讨论)合成电路来开始优化,然后优化可以包括通过应用分区模板匹配和/或符号窥视孔优化来减少门计数。第二,如果输入是clifford电路而不是clifford酉,则可以通过重新合成它或直接应用分区模板匹配和/或符号窥视孔优化来开始优化。在一些情况下,可以并行执行这两种方式,并且可以选择最佳结果。如上所述,在一些情况下,可以通过迭代地重复基线编译和优化任何合适的次数并且然后挑选最佳结果来进一步减少门计数。
[0090]
图4示出了根据本文描述的一个或多个实施例的示例非限制性表402和示例非限制性编译算法/电路404。换句话说,图4示出了基线编译器如何工作。
[0091]
令pl(n)表示n个量子位上的pauli算子的集合,而cl(n)表示n个量子位上的clifford算子的集合。据说clifford算子d∈cl(n)是在d-1
od=x1和d-1o′
d=z1的情况下将一对pauli算子o,o

∈pl(n)解耦。注意,这只有在oo

=-o

o时才可能。然后,以下成立:可由一些clifford算子d以cnot成本≤(3/2)n+o(1)将任何一对反交换(anti-commuting)pauli算子o,o

∈pl(n)解耦,其中可在时间o(n)计算算子d(例如,big-o记法)。这可以被称为引理1。
[0092]
假设目标是使用单量子位门和cnot门编译给定clifford算子c∈cl(n)。对于每个量子位j∈[n],令oj=cxjc-1
和o
′j=czjc-1
。注意oj和o
′j反交换(anticommute)。令dj∈cl(n)为将对oj和o
′j解耦的clifford算子。挑选量子位j,使得dj具有最小数量的cnot门,或者,如果使用编译算法的随机化版本,挑选随机量子位。定义
[0093][0094]
然后,与xj和zj交换。这只有当平凡地作用于第j量子位时才是可能的。忽略这个无关紧要的动作,可以将看作更小的clifford集合cl(n-1)中的元素。通过在每个步骤减少量子位的数量来感应地进行,c可以被分解为swap门和解耦算子的产物。每个解耦算子可以使用如上描述的单量子位clifford和cnot门来编译。
[0095]
引理1的证明如下。具体地,如下所示,可以明确地构造解耦算子d,使得d将反交换paulio和o

分别映射到x1和z1。目的可以是最小化d的cnot成本。
[0096]
假设pauli算子o和o’处于标准形式,如果它们对任何量子位j的作用落入图4的表402中所示的五种情况之一。回想起,单量子位clifford集合cl(1)通过排列作用于pauli算子x、y、z。因此,可以通过应用单量子位clifford算子的层将任何pauli对o和o’转换为标准形式。这导致将n个量子位划分成五个不相交的子集[n]=abcde。注意,a具有奇数大小,因为否则o和o

将交换。令a(j)为a的第j量子位。接下来,应用图4中所示的算法/电路404。令d为由与单量子位clifford的初始层组合的编译算法/电路404实现的算子。直接检查表明d具有以上直到符号因子解释的期望解耦特性。后者可以通过应用pauli x1或y1或z1来固定,作为d的最后的门。所得到的电路具有最多(3/2)|a|+|b|+|c|+|d|+o(1)≤(3/2)n+o(1)的cnot计数。
[0097]
注意,上述证明以两种单独的意义使用符号d:作为表示解耦电路(例如,示为算
法/电路404)的方式,并且也作为表示量子位的子集(例如,[n]=abcde)的方式。本领域普通技术人员可理解符号d的这些单独使用。
[0098]
图5示出了根据本文描述的一个或多个实施例的可促进分区模板匹配和/或符号窥视孔优化的示例非限制性系统500的框图,该系统包括计算级、pauli级和swap级。如图所示,在一些情况下,系统500可以包括与系统100相同的组件,并且还可以包括计算级502、pauli级504和swap级506。
[0099]
在各种实施例中,分区组件112可将次优clifford电路104划分成计算级502、pauli级504和swap级506。如上所述,clifford门可以将pauli矩阵的张量积取为pauli矩阵的张量积(例如,经由pauli-push方程)。分区组件112可以利用这一事实。具体来说,分区组件112可利用pauli-push方程来将次优clifford电路104中的任何pauli算子“推”和/或移动到电路中的指定位置,称为pauli级504。以类似的方式,分区组件112可以将次优clifford电路104中的swap门“推”和/或移动到电路中的不同的指定位置,称为swap级506(例如,本领域普通技术人员可理解,swap可以经由类似于pauli-push方程的方程被“推”和/或移动通过电路)。结果可以是pauli级506是次优clifford电路104中的仅包含pauli门(例如,x、y、z)的一部分,swap级506是次优clifford电路104中的仅包含swap门的一部分,而计算级502是次优clifford电路104中的包含其它clifford门(例如,h、s、cnot)的其它部分。图6-7帮助示出这种划分。
[0100]
图6以示例非限制性方式示出了根据本文描述的一个或多个实施例的如何将pauli门“推”到clifford电路的一端。如图所示,图6描绘了双量子位电路602和等价的双量子位电路604。如图所示,双量子位电路602包括两个门:clifford算子608(例如,所示特定示例中的cnot),以及应用于clifford算子608左侧的pauli算子606(例如,所示特定示例中的和/或x0)。通过使用pauli-push方程,双量子位电路602可以被转换为双量子位电路604,其也包括两个门:相同的clifford算子608和应用于clifford算子608的右侧的不同的pauli算子610(例如和/或x0x1)。该非限制性示例示出了可经由pauli-push方程将pauli算子从clifford算子的一侧“推”到另一侧。
[0101]
本领域的普通技术人员可理解,swap门可以类似地被“推”。
[0102]
图7示出了根据本文描述的一个或多个实施例分区的示例非限制性clifford电路700。换言之,图7示出了可经由通过分区组件112进行的分区来获得的示例非限制性结果。电路700可被视为次优clifford电路104的示例非限制性分区版本。如图所示,可利用pauli-push方程(和类似swap-push方程)将次优clifford电路104分区成三个不同的级。具体地,次优clifford电路104中的所有pauli算子可被分区组件112“推”和/或重新定位到特定位置,称为pauli级504。类似地,次优clifford电路104中的所有swap门可以被分区组件112“推”和/或重新定位到不同的特定位置,称为swap级506。在各种方面中,次优clifford电路104的其余部分可被称作计算级502。如图所示,在某些情况下,计算级502可以只包括h门、s门和/或cnot门,在某些情况下,pauli级504可以只包括x门、y门和z门,而在某些情况下,swap级506可以只包括swap门。
[0103]
图8示出了根据本文描述的一个或多个实施例的可促进分区模板匹配和/或符号窥视孔优化的包括模板库的示例非限制性系统800的框图。如图所示,在一些情况下,系统800可以包括与系统500相同的组件,并且还可以包括模板库802。
[0104]
在各种实施例中,模板组件114可以电子地存储、维护和/或以其他方式访问模板库802。如上所述,模板可以是实现标识变换的任何合适的门的串。在各个方面,模板组件114可以通过利用模板库802来对计算级502执行模板匹配。如上所述,模板匹配可涉及将模板中的门的子序列与电路中的门的对应子序列相匹配。只要电路中的门的对应子序列是连续的(例如,只要在模板匹配范围中不存在阻挡门),则电路中的门的子序列可以被模板中的其它门的逆所替换,这因此可以减少电路的门计数。图9示出了可在模板的库802中的各种示例性和非限制性模板。在一些情况下,模板组件114可通过在执行模板匹配之前将计算级502中的所有双量子位门转换成cz门(例如,以引入额外的hadamard为代价)来简化模板匹配。
[0105]
在各个方面,模板组件114可以实现通过双量子位门的hadamard推和/或相位推,以进一步减少单量子位门计数并增加模板应用的机会。假设已经用模板优化计算级502。该思想可以是尽可能将hadamard和相位门“推”到双量子位门的一侧。可以根据其中固定的子序列必须匹配的模板的应用来理解,通过双量子位门“推”单量子位门。图10示出了可以用于hadamard和相位“推”的示例性和非限制性模板。考虑图10中的模板(a)。图10的模板(a)可用于将h门“推”到cnot门的右边。这里,可要求图10的模板(a)的h和cnot必须在电路中匹配(由短划线指示),然后用图10的模板(a)的反向的其他部分替换。在上述讨论模板匹配的标记中,可理解短划线为将图10的模板(a)的应用(例如,其可以被称为“hadamard推模板”)限制到i=0和p=2。注意,如果已经在双量子位门计数方面优化了电路,则可以特别地通过将所使用的模板限制为可减少单量子位门计数而不减少双量子位门计数的子集来将模板匹配应用于单量子位门计数减少。当应用该模板的子集以用其余部分替换一半纠缠门时,该模板的子集可以包括单量子位模板和具有偶数个双量子位门的模板。
[0106]
图11示出了根据本文描述的一个或多个实施例的可促进分区模板匹配和/或符号窥视孔优化的包括浮动门转换规则的示例非限制性系统1100的框图。如图所示,在一些情况下,系统1100可包括与系统800相同的组件,且可进一步包括浮动门转换规则1102。
[0107]
如上所述,常规的模板匹配要求电路中的匹配的门可以通过换向而连续。如果匹配的门不连续,则可以说阻挡门在模板匹配范围内,这可防止应用所考虑的模板。在各个方面,浮动组件116可以解决这个问题。具体地,如果由于阻挡门而模板组件114不能直接应用来自模板库802的模板,则浮动组件116可以采取动作。在各个方面,浮动组件116可以迭代地尝试移出处于模板匹配范围内的单量子位门(例如,可以尝试移开阻挡门)。在各种方面中,这可涉及将阻挡门移动到电路中的最左侧匹配门的左侧或电路中的最右侧匹配门的右侧,直到所有阻挡门被移动到模板匹配范围之外或直到匹配门可一起移动为止。
[0108]
在各个方面,浮动组件116可以电子方式存储、维护和/或以其他方式访问浮动门转换规则1102。在各个方面,浮动门转换规则1102可以包括用于将相位门和/或hadamard门转换为pauli算子的线性组合的规则(例如,等价关系、方程和/或公式),和/或可以包括用于将pauli算子的线性组合转换回单量子位门的规则。具体地,浮动门转换规则1102可以包括以下:
[0109]
[0110][0111]
算子o1和o2可以根据pauli-push方程独立地移动,直到它们被移动到模板匹配范围之外,并且直到o1和o2都是作用于相同的qubit的单量子位pauli(例如,o1和o2的实际值可以在每次“推”和/或移动之后改变)。此时,浮动组件116可以根据图12的表1202和表1204中指定的规则将o1和o2转换回单量子位门。更具体地,表1202可基于o1和o2的最终值来指定用于将浮动相位门转换成单量子位门的规则(例如,s门可以通过上述方程转换成pauli的线性组合,可以通过pauli-push方程来“推”pauli的线性组合,使得pauli的线性组合在模板匹配范围之外并且作用于一个量子位,然后,可取决于被推的pauli的线性组合的值用表1202中所示的结果来代替被推的pauli的线性组合)。类似地,表1204可以基于o1和o2的最终值来指定用于将浮动hadamard门转换为一量子位门的规则(例如,可以通过上述方程将h门转换为pauli的线性组合,可经由pauli-push方程“推”pauli的线性组合,使得pauli的线性组合在模板匹配范围之外并且作用于一个量子位,然后可取决于被推的pauli的线性组合的值用表1204中所示的结果替换被推的pauli的线性组合)。注意,pauli项不能通过被推过clifford门而增加复杂相位,并且在相位门的情况下,第一项o1将总是保持相同。从这些观察结果并且由于转换仅被定义到全局相位,因此可认为表1202和1204是穷举的。在各个方面,浮动门转换规则1102可以包括表1202和1204,从而允许浮动组件116将浮动相位门和浮动hadamard门转换回单量子位门。
[0112]
图13以示例非限制性方式示出根据本文中所描述的一个或多个实施例的可如何用浮动门推(floating gate pushing)从模板匹配范围移除阻挡门。换句话说,图13描绘了浮动组件116可如何工作的示例。
[0113]
如图所示,图13描绘了示例非限制性模板1302和示例非限制性电路1304。注意,模板1302可以等价于图9的模板(e)。如可以看到的,模板1302的前三个门(例如,cnot
2,1
、cnot
3,1
和cnot
3,2
,量子位从上到下的排序)在电路1304中匹配(例如,电路1304也具有以该顺序的cnot
2,1
、cnot
3,1
和cnot
3,2
)。因此,电路1304可以潜在地由模板1302优化。然而,由于s门在电路1304的cnot
2,1
和cnot
3,1
之间,模板1302不能直接应用于电路1304。在这种情况下,可以认为s门是阻挡门(例如,s门处于电路1304中的匹配门之间,使得电路1304中的匹配门不连续;等效地,可以说s门在模板匹配范围内)。常规的模板匹配没有提供对该问题的解决方案;相反,将尝试不同的模板。然而,浮动组件116可以解决这个问题。具体地,浮动组件116可以根据上述方程(例如,根据浮动门转换规则1102)将s门(例如,阻挡门的非限制性示例)转换为pauli算子的线性组合。然后,浮动组件116可以经由pauli-push方程将pauli算子的线性组合独立地推出模板匹配范围(例如,使得s门不再处于cnot
2,1
、cnot
3,1
和cnot
3,2
之间),并且可以继续这种推出,直到pauli算子的线性组合是作用于相同量子位的单量子位门。在这一点上,浮动组件116可以使用浮动门转换规则1102(例如,表1202,因为在该示例中s门是浮动的)来将pauli算子的被移动的线性组合转换回单量子位门。电路1306可以是以这种方式使电路1304的s门浮动的结果。如所示,在电路1306中,cnot
2,1
、cnot
3,1
和cnot
3,2
现在是连续的,这允许应用模板1302。注意,在这种情况下,因为在该示例中仅浮动s门通过cnot
3,1
和cnot
3,2
不导致一个量子位门,所以浮动s门可能必须移动通过第四门(例如,cnot
1,3
)(例如,本领域普通技术人员可理解再次如何经由pauli-push方程来执行该浮
动)。在各个方面,由于在电路1306中匹配的门(例如,cnot
2,1
、cnot
3,1
和cnot
3,2
)是连续的,因此可以应用模板1302来减少门计数。也就是说,电路1306中的匹配门(例如,cnot
2,1
、cnot
3,1
及cnot
3,2
)可由模板1302中的其他门的反转代替。结果可以是优化的电路1308,其可以具有比所示的电路1304更低的门计数。
[0114]
图14示出了根据本文描述的一个或多个实施例的可以促进分区模板匹配和/或符号窥视孔优化的包括swap等价关系的示例非限制性系统1400的框图。如图所示,在一些情况下,系统1400可以包括与系统1100相同的组件,并且还可以包括swap等价关系1402。
[0115]
在各种实施例中,swap组件118可以优化swap级506(例如,在模板组件114和/或浮动组件116促进计算级502上的模板匹配之后)。在各个方面,swap组件118可以电子地存储、维护和/或以其他方式访问swap等价关系1402,并且swap等价关系1402可以用于促进swap优化。具体地,本领域普通技术人员可理解,可由下式给出swap门:
[0116][0117]
如果swap门与双量子位门对准和/或相邻,则可以以一个额外的双量子位门的有效成本来实现swap门。换句话说,当swap门与一些其它的双量子位门(例如,cnot和/或cz)串联实现时,所得到的变换可以等价于一些其它的门的串,其不包括swap门但包括第二双量子位门。在各个方面,swap等价关系1402可以包括该等价关系、方程和/或公式。因此,在各个方面,swap组件118可以将swap门从swap级506
[0118]“推”和/或移动到计算级502中(例如,可以经由swap-push方程将swap门合并回计算级502中),使得swap门与计算级502中的双量子位门对准。此时,swap组件118可以利用swap等价关系1402来代替移动的swap门和与包括两个量子位门的一些其他门的串对准的双量子位门。图15中描绘了这种swap优化的非限制性示例。
[0119]
图15以示例非限制性方式示出了根据本文描述的一个或多个实施例的如何以一个纠缠门的成本来优化swap门。如图所示,图15示出了示例性电路1502和等价示例性电路1504。在各个方面,电路1502包括与swap门对准的cz门(例如,cz门和swap门相邻并且对相同的量子位操作)。在各个方面,与swap门有关的等价关系的应用(例如,swap等价关系1402的应用)可以将电路1502转换为电路1504。如图所示,电路1504不具有swap门,但是具有第二cz门(例如,第二双量子位门)。作为另一示例,图15描绘了示例性电路1506和等价示例性电路1508。在各个方面,电路1506包括与swap门对准的cnot门(例如,cnot门和swap门相邻并对相同的量子位操作)。在各个方面,与swap门有关的等价关系的应用(例如,swap等价关系1402的应用)可以将电路1506转换为电路1508。如图所示,电路1508不具有swap门,但具有第二cnot门(例如,第二两个量子位的门)。这样,swap门可以从swap级506合并回计算级502,并且可以经由swap等价关系1402以附加的双量子位门的成本来替换。
[0120]
图16示出了根据本文描述的一个或多个实施例的可促进分区模板匹配和/或符号窥视孔优化的包括符号pauli门的示例非限制性系统1600的框图。如图所示,在一些情况下,系统1600可包括与系统1400相同的组件,且可进一步包括符号pauli门1602。
[0121]
如上所述,常规的窥视孔优化技术依赖于用于优化更大clifford电路的最优少数量子位clifford电路的数据库。然而,这种常规窥视孔优化技术限于与其它量子位完全解
耦的少数量子位子电路。在各种实施例中,符号组件120可以解决这个问题(例如,即使对于没有与其它量子位完全解耦的少量量子位子电路,也可以实现促进窥视孔优化)。符号组件120可以通过在次优clifford电路104中(例如,在执行分区模板匹配之后的计算级502中)创建符号pauli门1602来这样做。
[0122]
考虑使用标准门组表达的n个量子位上的clifford电路:
[0123]
c={i,x,y,z,h,s,cnot}
[0124]
注意,如果电路包括cz门,则如上所述,可以通过引入hadamard门将cz门转换成cnot门。令cn表示使用门组c表示的所有n量子位电路的组,每个门的成本可以定义为:
[0125]
$(cnot)=1,以及$(x)=$(y)=$(z)=$(h)=$(s)=0
[0126]
可以将电路的成本定义为出现在电路中的所有门的组合成本。可以认为符号窥视孔优化是一种算法,该算法采用电路u∈cn作为输入,并输出优化的电路u

∈cn,该优化的电路实现与u(对总相位取模)相同的clifford算子,并使得$(u

a)=1。注意,符号窥视孔优化因此可以集中在减少双量子位门计数(例如,如上所述,只有cnot门具有非零成本)。这可以很好地补充分区模板匹配,这可以减少如上所述的单量子位门计数。
[0127]
现在,将讨论象征性窥视孔优化的更多细节。考虑电路u∈cn和量子位的小的子集,使得|a|量子位上的优化的clifford电路的数据库是可用的。目的可以是有意义地定义和优化u对a的限制,重点是a没有完全从电路的其它部分解耦的设置。
[0128]
令b=[n]\a为a的补数。据说,如果cnot门耦接a和b,则其是纠缠和/或跨接的。假设不失一般性,每个纠缠/跨接cnot在a中具有其目标量子位。如果不是这种情况,则可以重新布线和/或重写纠缠/跨接cnot门,使得其控制量子位和目标量子位通过添加额外的hadamard门来切换位置。图17中示出了这种情况的示例性非限制性图示。
[0129]
如图17所示,示例性电路1702等价于示例性电路1704。注意,电路1702中的cnot门在a中具有其控制量子位,在b中具有其目标量子位。如图所示,当在cnot门之前和之后并行实现hadamard时,控制量子位和目标量子位可以切换位置。这可产生电路1704,电路1704可具有cnot门,其控制量子位在b中,并且其目标量子位在a中。这样,符号组件120可以经由添加hadamard来重写/重新布线任何跨接门,使得跨接门的目标量子位在a中(例如,期望的子电路)。
[0130]
在所有跨接门被重新布线以使它们的目标在a中后,符号组件120可以将纠缠/跨接的cnot门划分成集合,使得同一集合中的所有cnot具有相同的控制位。令k为集合的数量。将每个纠缠/跨接cnot扩展为可以产生:
[0131][0132]
其中,ua(v)是通过保留作用在a上的所有门并用作用在目标量子位上的pauli门代替第i集合中的每个纠缠/跨接cnot门而从u获得的clifford电路。同样,ub(v)可以是通过保留作用在b上的所有门并且用作用在控制量子位上的映射|vi》《vi|代替来自第i集合的每个纠缠/跨接cnot而从u获得的(非酉的)电路。在各个方面,可将单量子位门和称为符号pauli门(例如,可以是符号pauli门1602)。符号pauli门可以类似于受控pauli门,除了由符号变量vi∈{0,1}代替控制量子位。
[0133]
在各个方面,符号组件120可以将clifford电路族ua={ua(v)}v优化为|a|量子位上的普通clifford电路,下面会进行解释。首先,可使用clifford-plus-symbolic-pauli-gate门组来表示ua。可将成本$(ua)定义为ua中cnot的数量加上ua中的符号pauli门的数量。第二,优化可考虑ua中的符号pauli门的时间顺序。即,如果i<j,则可在由vj控制的任何符号pauli门之前应用由vi控制的所有符号pauli门。第三,优化可保持每个电路ua(v)的总相位以相位因子或为模。符号组件120可以通过应用单量子位门z或s控制纠缠/跨接cnot的量子位来生成相位因子。这三个条件保证可将优化电路u
′a提升到电路u

∈cn,其功能上等价于u。进一步,$(u

)=$(u)-$(ua)+$(u
′a)。
[0134]
在各个方面,符号组件120可以选择要优化的子集a。在一些情况下,符号窥视孔优化的执行可能对量子位子集的排序敏感。从数值实验中,本发明的各种实施例的发明人发现,最成功的策略是随机子集分配。具体地,符号组件120可以生成量子位的所有(例如,n选择2,经由二项式系数函数计算的)对和(例如,n选择3)三元组的列表。符号组件120可以运行传递,直到达到最优成本(例如,对于已知最优成本的电路)或者直到对于两个连续的传递没有改进(例如,改进降到预定阈值以下)。
[0135]
图18示出了如何能够促进符号窥视孔优化的简单示例。如图所示,图18描绘了对n=2量子位操作的示例性电路1802。令a是仅包含第一量子位的子集,并且因此b是a的补集并且仅包含第二量子位。如图所示,电路1802可具有耦合a和b的两个跨接的cnot门。还如所示,这两个跨接cnot门可以使它们的目标量子位在a中。如上解释的,如果不是这种情况,则符号组件120可以经由应用hadamard门来重新布线/重写跨接cnot门,以使目标处于a中。在各种方面,符号组件120可用符号pauli门替换每个跨接cnot门,从而产生电路1804。如图所示,电路1804不再具有跨接cnot门。代替地,电路1804的子电路a具有符号pauli-x门(例如,xv),其中每个跨接cnot门先前位于该位置处。此外,电路1804的其它部分b可以具有非酉门ub(v)(例如,如上所述,这可包括基于符号变量v的各种映射)。如图所示,子电路ua={xvhxvh}v具有一个控制位(例如,k=1)并且包含两个符号pauli门。因此为$(ua)=2。使用标识1806(例如,可以从预先计算的最优电路的任何适当的库/数据库中取得标识1806),符号组件120可以将子电路ua={xvhxvh}v转换为在功能上等价于ua的子电路u
′a={hsx
viv
)v,使得$(u
′a)=1。相位因子iv可由符号组件120经由作用于b的单量子位s门来实现。然后符号组件120可以提升u
′a(例如,用跨接cnot来替换任何符号pauli门),从而产生优化的电路1808。
[0136]
图19示出了根据本文描述的一个或多个实施例的可促进分区模板匹配和/或符号窥视孔优化的包括最优子电路的库的示例非限制性系统1900的框图。如图所示,在一些情况下,系统1900可以包括与系统1600相同的组件,并且还可以包括最优电路的库1902。
[0137]
如上所述,符号组件120可通过重新布线跨接门和/或实现符号pauli门1602来为窥视孔优化准备次优clifford电路104。然后,在各个方面,窥视孔组件122可通过利用最优电路的库1902来对包含符号pauli门1602的子电路执行窥视孔优化(例如,窥视孔组件122可电子地存储、维护和/或以其他方式具有对最优电路的库1902的任何合适形式的访问)。
[0138]
在各个方面,窥视孔组件122和/或符号组件120可以实现动态编程,以优化包括符
号pauli门1602的子电路。在各个方面,该动态编程可以保证找到对于给定的一组固定的量子位(例如,对于子电路)的最大优化。现在将详细描述该动态编程。
[0139]
令pl(n)表示n个量子位上的pauli算子的集合,而cl(n)表示n个量子位上的clifford算子的集合。考虑由clifford门c和符号pauli门pv组成的量子电路,其中v∈{0,1}是形式变量,而p∈pl(n)。包含k个符号pauli门的n个量子位上的clifford-plus-symbolic-pauli-gate算子可以由n个量子位pauli算子p1,...pk,pl(n)的k元组和clifford算子r∈cl(n)来简洁地指定,使得:
[0140]
其中,v∈{0,1}k。
[0141]
实现u(v)的clifford-plus-symbolic-pauli-gate电路具有如下形式:
[0142][0143]
对于一些clifford电路c0,...,ck∈cl(n)和一些pauli算子q1,...,qk∈pl(n),其满足:
[0144]ck
...c2c1c0=r
[0145]
(ck...cj)qj(ck...cj)-1
=pj,其中,j=1,...,k。
[0146]
上述clifford-plus-symbolic-pauli-gate电路的成本被定义为:
[0147][0148]
可以期望最小化函数$(c),其遍及满足上述条件的clifford算子c0,...,ck的所有元组。为了有效地执行该最小化,执行变量的改变:
[0149]bj
=ck...cj,其中,1≤j≤k。
[0150]
然后此外,以及ck=bk。可以使用以下约定:
[0151]
b0≡r和b
k+1
≡i
[0152]
然后,对于所有1≤j≤k,然后实现以下:
[0153][0154]
令为由单量子位clifford门生成的clifford集合的产物子集合。可容易地检查函数f在乘法bj←bj
lj下是不变的,其中lj∈loc(n)。因此,f仅取决于左陪集bj*loc(n)。确定每个左陪集的规范代表,并令
[0155][0156]
是一组规范代表。根据定义,全clifford集合是不相交并集
[0157][0158]
陪集的规范代表可以是陪集的按字典排列的最小元素。以下引理给出了用于计算给定clifford算子的规范代表的有效算法:对于给定clifford算子c∈cl(n),可以计算代表rep(c)=b∈rep(n),使得在时间o(n3)中c*loc(n)=b*loc(n)。这可以被称为引理2。
[0159]
现在,可以使用动态编程方法和针对b∈rep(n)的成本函数$(b)预先计算的查找
表,在b1,...,bk∈rep(n)上最小化函数f。即,定义中间目标函数f1,...,fk:rep(n)
→z+
,其中z
+
表示正整数,使得
[0160]
以及
[0161][0162]
最后,获得以下:
[0163][0164]
可以逐个计算函数f1,...,fk的查找表。构造每个查找表需要在rep(n)上的迭代。这对于n=2,3是可行的。注意,由于依赖于动态编程算法来确保可能发生的所有优化确实发生,所以与常规的窥视孔优化相比,符号窥视孔优化可能是更加资源需求的。即,对于所考虑的每个子电路,与常规窥视孔优化中的一次相比,符号窥视孔优化可以执行|rep(n)|2次查找。查找表的大小可以是|rep(n)|=6720,n=3。然而,符号窥视孔优化提供了被检查子电路不需要完全解耦的益处。
[0165]
现在,考虑引理2的以下证明。用于计算按字典顺序陪集的最小元素的上述算法可以用于特定顺序的选择,如下所述。大小为2n的辛矩阵c可以由形成整数int(c)的4n2位参数化。下面示出了n=2、3、4的int(c)中的位的顺序:
[0166][0167]
这(连同整数的自然顺序)定义了在本发明的各种实施例中使用的clifford算子的排序。目的可以是在单量子位clifford门v1,..,vn上使int(c*v
1v2
...vn)最小化,其中单量子位门vq作用于量子位q。对于每个量子位q,可以跟踪单量子位clifford算子gq的子集,从其中选择vq,使得:
[0168]gq
={h,s,hsh}或gq={hsh}或
[0169]
该算法的每个步骤检查一对条目(c
i,q
,c
i,q+n
),其根据下式参数化单量子位pauli算子:
[0170]
i=(0,0)、x=(1,0)、z=(0,1)、y=(1,1)
[0171]
clifford算子的所选顺序对应于单量子位pauli算子的顺序:
[0172]
i<x<z<y
[0173]
对于辛矩阵c的每行以及对于每个量子位,该算法试图通过分别应用s或h将y或z映射到x。如果这是可能的(例如,门的应用将执行期望的转换,并且对应的门包含在gq中),则该组gq被设置为gq←
{hsh}。如果这是不可能的,则算法试图通过应用hsh将y映射到z。如果这是可能的,则该组被更新到可以容易地检查该算法确实返回陪集c*loc(n)的最小元素。每个乘法c

csq、c

chq和c

chqs
qhq
需要时间o(n)。由于该乘法的数量是o(n2),所以总运行时间是o(n3)。
[0174]
图20-21示出了根据本文描述的一个或多个实施例的可促进分区模板匹配和/或符号窥视孔优化的示例非限制性计算机实现的方法2000和2100的流程图。
[0175]
首先,考虑计算机实现的方法2000。在不同的实施例中,动作2002可以包括通过操作地耦合到处理器的设备(例如,114)在与一组量子位相关联的clifford电路(例如,104)上执行模板匹配。
[0176]
在各个方面,动作2004可以包括由设备(例如,112)并且在模板匹配之前将clifford电路划分为计算级(例如,502)、pauli级(例如,504)和swap级(例如,506),其中可以在计算级上执行模板匹配(例如,图7中所示的划分的示例)。
[0177]
在不同的实例中,动作2006可以包括由设备(例如,120)从该组量子位中选择量子位的子集(例如,a)。
[0178]
在各种情况下,动作2008可以包括由设备(例如120)在计算级中对至少一个纠缠门(例如cnot和/或cz)重新布线,使得至少一个纠缠门的目标在量子位的该子集中(例如,经由应用如图17所示的hadamard)。
[0179]
在各个方面,动作2010可以包括由设备(例如,120)用符号pauli门(例如,1602)替换至少一个重新布线的纠缠门,其中符号pauli门是由符号变量控制的pauli门(例如,图18中所示的该替换的示例)。
[0180]
在各种实例中,动作2012可以包括由设备(例如,122)通过实现动态编程算法对具有符号pauli门的量子位的子集执行(例如,通过利用最优电路的库1902)窥视孔优化。对于经历通过窥视孔优化的固定的一组量子位,可以由上述动态编程算法指导优化本身。
[0181]
尽管图20中未示出,但是在一些情况下,计算机实现的方法2000还可以包括由设备(例如,116)通过用pauli算子的线性组合替换阻挡门来将阻挡门(例如,图13中的s)推出计算级中的模板匹配范围。
[0182]
尽管图20中未示出,但是在一些情况下,计算机实现的方法2000还可以包括当在计算级中执行模板匹配在计算级中产生pauli门或swap门时,由设备(例如,112)重新划分clifford电路。
[0183]
接下来,考虑计算机实现的方法2100。在不同的实施例中,动作2102可以包括通过操作性地耦合到处理器的设备(例如,122)在与一组量子位相关联的clifford电路(例如,104)上执行窥视孔优化。
[0184]
在不同的方面,动作2104可以包括由设备(例如,120)从该组量子位中选择量子位的子集。
[0185]
在各种实例中,动作2106可以包括由设备(例如,120)在clifford电路中对至少一个纠缠门(例如cnot和/或cz)重新布线,使得至少一个纠缠门的目标在量子位的子集中(例如,经由应用如图17所示的hadamard)。
[0186]
在各种情况下,动作2108可包括由设备(例如,120)并在窥视孔优化之前,用符号pauli门(例如,图18所示的1602)替换至少一个重新布线的纠缠门。
[0187]
在各个方面,动作2110可以包括由设备(例如,112)将clifford电路划分为计算级(例如,502)、pauli级(例如,504)和swap级(例如,506)。
[0188]
在各种实例中,动作2112可以包括由设备(例如,114)并且在对至少一个纠缠门重新布线之前在计算级上执行模板匹配。
[0189]
尽管在图21中未示出,但是在一些情况下,计算机实现的方法2100还可以包括由设备(例如,116)通过用pauli算子的线性组合替换阻挡门来将阻挡门(例如,图13中的s)推
出计算级中的模板匹配范围。
[0190]
尽管在图21中未示出,但是在一些情况下,计算机实现的方法2100还可以包括当在计算级中执行模板匹配在计算级中产生pauli门或swap门时由设备(例如,112)重新划分clifford电路。
[0191]
本发明的各种实施例的发明人进行了各种实验和/或数值模拟,其结果证实本发明的实施例优于常规clifford优化技术。实验/仿真涉及生成993个均匀采样的随机clifford酉,其中cnot成本在5和15之间。对于从5到14的成本,对于每个成本值,发明人考虑了99个电路。对于成本=15,仅存在3个clifford电路(在左侧和右侧上模单量子位clifford以及模量子位置换)。对于每个clifford酉,发明人使用上述基线编译器和9个随机化编译器来合成它,总共得到10个不同的初始电路。然后,对这10个电路执行优化(例如,分区模板匹配和符号窥视孔优化),并且挑选最佳结果。发明人发现,对于90.2%的电路实现了精确的最优成本,而平均仅引入cnot成本中的约1%的开销。
[0192]
发明人还将所描述的优化技术应用于量子纠错码(qecc)的编码电路,以查看本发明的实施例将如何工作于实际的、实际上相关的电路。通过从代码的稳定器生成器开始并使用clifford电路合成算法来生成对应的电路,来获得用于qecc的编码电路。使用基线编译器重新编译这些电路,然后执行优化(例如,分区模板匹配和符号窥视孔优化)。发明人发现,由于通过浮动门技术实现的附加模板应用,浮动门技术的引入导致了双量子位门计数的平均改进为约2.6%。此外,实现了相对于参考电路的64.5%的平均改进和相对于使用基线编译器合成的电路的35.4%的平均改进。发明人还注意到,由本发明的各种实施例产生的改进的质量不随问题大小而恶化(例如,即使对于量子位的数量大于12,相对于基线编译器的改进稳定在大约35%)。发明人还发现,本文描述的组合算法对于少量量子位可能仅花费数秒(例如,对于n=5,平均运行时间为2.42秒),对于大量量子位可能花费高达数十分钟。
[0193]
总之,可认为本发明的各种实施例是用于clifford电路优化的两种新颖算法:(1)分区模板匹配;和(2)符号窥视孔优化。可认为分区模板匹配为常规模板匹配的clifford特定扩展,其利用clifford的独特性质来进一步减少门计数。具体地,分区模板匹配可以包括将clifford电路划分为三个不同的级(例如,计算、pauli和swap),对这些不同的级中的一级(例如,计算)执行模板匹配,以及经由与其他两个量子位门对准来消除swap门。此外,本发明的各种实施例可包括浮动门技术,其可用于从所期望的模板匹配范围移除阻挡门。可认为符号窥视孔优化是不需要完全解耦来起作用的窥视孔优化的改进版本。具体地,符号窥视孔优化可以包括识别期望的子电路,对任何跨接门重新布线,使得它们的目标在子电路中,并且然后用由符号变量而不是由其他量子位控制的符号pauli门来替换重新布线的跨接门。
[0194]
在整个公开中,使用各种变量、符号和/或数学标记来帮助描述本发明的实施例。在一些情况下,当在本说明书的不同部分中使用时,相同的变量/符号可具有不同的含义(例如,在一些位置,i用于表示虚数,并且在其他位置,i用于表示索引;在一些位置,d用于表示特定算法和/或函数,并且在其他位置,d用于表示量子位的子集;在一些情况下,c用于表示各种clifford电路和/或clifford门组,并且在其他位置,c用于表示量子位的子集;等等)。本领域普通技术人员可理解,当在不同的上下文/方式中使用相同的变量/符号时,相
同的变量/符号可具有不同的含义。
[0195]
为了提供用于本文描述的各种实施例的附加上下文,图22和以下讨论旨在提供合适的计算环境2200的简要的概括描述,在计算环境2200中可实现本文描述的实施例的各种实施例。以上在可在一个或多个计算机上运行的计算机可执行指令的一般上下文中描述了各实施例,而本领域的技术人员将认识到,各实施例也可结合其它程序模块和/或作为硬件和软件的组合来实现。
[0196]
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域的技术人员可以理解,本发明的方法可以用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、小型机、大型计算机、物联网(iot)设备、分布式计算系统、以及个人计算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其每一个都可以操作上耦合到一个或多个相关联的设备。
[0197]
这里的实施例的所示实施例也可以在分布式计算环境中实践,其中某些任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
[0198]
计算设备通常包括各种介质,其可以包括计算机可读存储介质、机器可读存储介质和/或通信介质,这两个术语在本文中如下彼此不同地使用。计算机可读存储介质或机器可读存储介质可以是可由计算机访问的任何可用存储介质,并且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读存储介质或机器可读存储介质可结合用于存储诸如计算机可读或机器可读指令、程序模块、结构化数据或非结构化数据等信息的任何方法或技术来实现。
[0199]
计算机可读存储介质可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存或其他存储器技术、光盘只读存储器(cd rom)、数字多功能盘(dvd)、蓝光盘(bd)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、固态驱动器或其他固态存储设备、或可以用于存储期望信息的其他有形和/或非暂时性介质。就这一点而言,如应用于存储装置、存储器或计算机可读介质的本文的术语“有形”或“非暂时性”将被理解为仅排除传播暂时性信号本身作为修饰语,并且不放弃对不仅传播暂时性信号本身的所有标准存储装置、存储器或计算机可读介质的权利。
[0200]
可以由一个或多个本地或远程计算设备例如经由访问请求、查询或其他数据取得协议来访问计算机可读存储介质,以便针对由介质存储的信息进行各种操作。
[0201]
通信介质通常以诸如调制的数据信号等数据信号,例如载波或其它传输机制来体现计算机可读指令、数据结构、程序模块或其它结构化或非结构化数据,并包括任何信息传递或传输介质。术语“调制的数据信号”或信号指以在一个或多个信号中编码信息的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、rf、红外和其它无线介质。
[0202]
再次参考图22,用于实现本文描述的各方面的各实施例的示例环境2200包括计算机2202,计算机2202包括处理单元2204、系统存储器2206和系统总线2208。系统总线2208将包括但不限于系统存储器2206的系统组件耦合到处理单元2204。处理单元2204可以是各种市场上可购买的处理器中的任何一种。双微处理器和其它多处理器体系结构也可用作处理单元2204。
[0203]
系统总线2208可以是若干种总线结构中的任一种,这些总线结构还可互连到存储器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体系结构中的任一种的局部总线。系统存储器2206包括rom 2210和ram 2212。基本输入/输出系统(bios)可以存储在诸如rom、可擦除可编程只读存储器(eprom)、eeprom等非易失性存储器中,其中bios包含帮助诸如在启动期间在计算机2202内的元件之间传输信息的基本例程。ram 2212还可以包括诸如静态ram等高速ram来用于高速缓存数据。
[0204]
计算机2202还包括内部硬盘驱动器(hdd)2214(例如,eide、sata)、一个或多个外部存储设备2216(例如磁软盘驱动器(fdd)2216、记忆棒或闪存驱动器读取器、存储卡读取器等)以及驱动器2220,例如固态驱动器、光盘驱动器,其可从诸如cd-rom盘、dvd、bd等的盘2222读取或写入。可替换地,在涉及固态驱动的位置,可能不包括盘2222,除非分开的。虽然示出内部hdd 2214位于计算机2202内,但是内部hdd 2214也可以被配置成在合适的机箱(未示出)中供外部使用。另外,虽然在环境2200中未示出,但是除了hdd 2214之外或者作为其代替,可以使用固态驱动器(ssd)。hdd 2214、(多个)外部存储设备2216和驱动器2220可以分别通过hdd接口2224、外部存储接口2226和驱动器接口2228连接到系统总线2208。用于外部驱动器实现的接口2224可以包括通用串行总线(usb)和电气和电子工程师协会(ieee)1394接口技术中的至少一个或两者。其它外部驱动器连接技术在本文描述的实施例的考虑范围内。
[0205]
驱动器及其相关联的计算机可读存储介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机2202,驱动器和存储介质容纳合适的数字格式的任何数据的存储。尽管以上对计算机可读存储介质的描述涉及相应类型的存储设备,但本领域的技术人员可理解,计算机可读的其它类型的存储介质(无论是当前存在的还是将来开发的)也可在示例操作环境中使用,并且此外,任何此类存储介质可包括用于执行此处所描述的方法的计算机可执行指令。
[0206]
多个程序模块可存储在驱动器和ram 2212中,包括操作系统2230、一个或多个应用程序2232、其它程序模块2234和程序数据2236。操作系统、应用、模块和/或数据的全部或部分也可被高速缓存在ram 2212中。这里描述的系统和方法可以利用各种商业上可获得的操作系统或操作系统的组合来实现。
[0207]
计算机2202可任选地包括仿真技术。例如,系统管理程序(未示出)或其它中介可为操作系统2230仿真硬件环境,并且所仿真的硬件可任选地与图22所示的硬件不同。在该示例中,操作系统2230可包括在计算机2202处托管的多个虚拟机(vm)中的一个虚拟机。此外,操作系统2230可以提供运行时环境,例如java运行时环境或.net框架,用于应用2232。运行时环境是允许应用2232在包括该运行时环境的任何操作系统上运行的一致执行环境。类似地,操作系统2230可以支持容器,并且应用2232可以是容器的形式,其是包括例如代码、运行时、系统工具、系统库和应用的设置的软件的轻量、独立、可执行包。
[0208]
此外,计算机2202可以用诸如可信处理模块(tpm)的安全模块来启用。例如,利用tpm,引导组件在时间上散列下一个引导组件,并且在加载下一个引导组件之前等待结果与安全值的匹配。该过程可在计算机2202的代码执行栈中的任何层发生,例如,在应用执行级或在操作系统(os)内核级处应用,由此允许任何代码执行级的安全性。
[0209]
用户可以通过一个或多个有线/无线输入设备,例如键盘2238、触摸屏2240和诸如
鼠标2242等指向设备向计算机2202输入命令和信息。其它输入设备(未示出)可包括话筒、红外(ir)遥控器、射频(rf)遥控器、或其它遥控器、操纵杆、虚拟现实控制器和/或虚拟现实头戴式耳机、游戏垫、指示笔、图像输入设备(例如,相机)、姿势传感器输入设备、视觉移动传感器输入设备、情绪或面部检测设备、生物测定输入设备(例如,指纹或虹膜扫描仪)等。这些和其它输入设备通常通过可耦合至系统总线2208的输入设备接口2244连接至处理单元2204,但也可通过其它接口连接,诸如并行端口、ieee 1394串行端口、游戏端口、usb端口、ir接口、蓝牙接口等。
[0210]
监测器2246或其它类型的显示设备也可经由诸如视频适配器2248的接口连接至系统总线2208。除了监测器2246之外,计算机通常包括其它外围输出设备(未示出),诸如扬声器、打印机等。
[0211]
计算机2202可使用经由有线和/或无线通信至一个或多个远程计算机(诸如远程计算机2250)的逻辑连接在网络化环境中操作。远程计算机2250可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其它常见的网络节点,并且通常包括相对于计算机2202描述的许多或所有元件,尽管出于简明的目的仅示出了存储器/存储设备2252。所描绘的逻辑连接包括到局域网(lan)2254和/或更大的网络(例如,广域网(wan)2256)的有线/无线连接。该lan和wan联网环境在办公室和公司中是常见的,并且促进了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
[0212]
当在lan网络环境中使用时,计算机2202可以通过有线和/或无线通信网络接口或适配器2258连接到本地网络2254。适配器2258可促进到lan 2254的有线或无线通信,该lan还可包括其上设置的用于以无线模式与适配器2258通信的无线接入点(ap)。
[0213]
当在wan网络环境中使用时,计算机2202可包括调制解调器2260,或可通过其它装置连接到wan 2256上的通信服务器,以便通过wan 2256(诸如通过因特网)建立通信。调制解调器2260可以是内置或外置的,并且可以是有线或无线设备,它可以经由输入设备接口2244连接到系统总线2208。在网络化环境中,相对于计算机2202或其部分描述的程序模块可以存储在远程存储器/存储设备2252中。可以理解,所示的网络连接是示例,并且可使用在计算机之间建立通信链路的其它装置。
[0214]
当在lan或wan联网环境中使用时,计算机2202可访问云存储系统或其他基于网络的存储系统,作为如上所述的外部存储设备2216的补充或替代,诸如但不限于提供信息的存储或处理的一个或多个方面的网络虚拟机。通常,计算机2202和云存储系统之间的连接可以例如分别通过适配器2258或调制解调器2260在lan 2254或wan 2256上建立。在将计算机2202连接到相关联的云存储系统时,外部存储接口2226可以在适配器2258和/或调制解调器2260的帮助下管理由云存储系统提供的存储,如同它将管理其他类型的外部存储一样。例如,外部存储接口2226可被配置为提供对云存储源的访问,就像这些源被物理地连接到计算机2202一样。
[0215]
计算机2202可以用于与操作上设置在无线通信中的任何无线设备或实体通信,例如打印机、扫描仪、台式和/或便携式计算机、便携式数据助理、通信卫星、与无线可检测标签相关联的任何设备或位置(例如,电话亭、报亭、商店货架等)以及电话。这可以包括无线保真(wi-fi)和蓝牙无线技术。因此,通信可以是如常规网络的预定义结构,或者仅仅是
至少两个设备之间的自组织通信。
[0216]
现在参考图23,描绘了示意性云计算环境2300。如图所示,云计算环境2300包括一个或多个云计算节点2302,云消费者使用的本地计算设备(例如个人数字助理(pda)或蜂窝电话2304、台式计算机2306、膝上型计算机2308和/或汽车计算机系统2310)可以与其通信。节点2302可彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境2300提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图23中所示的计算设备2304-2310的类型仅是示例性的,并且计算节点2302和云计算环境2300可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
[0217]
现在参考图24,示出了由云计算环境2300(图23)提供的一组功能抽象层。为了简洁,省略了在这里描述的其它实施例中采用的类似元件的重复描述。可预先理解,图24中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描述的,提供了下面的层和相应的功能。
[0218]
硬件和软件层2402包括硬件和软件组件。硬件组件的示例包括:主机2404;基于risc(精简指令集计算机)架构的服务器2406;服务器2408;刀片服务器2410;存储设备2412;以及网络和网络组件2414。在一些实施例中,软件组件包括网络应用服务器软件2416和数据库软件2418。
[0219]
虚拟化层2420提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器2422;虚拟存储2424;虚拟网络2426,包括虚拟专用网络;虚拟应用和操作系统2428;以及虚拟客户机2430。
[0220]
在一个示例中,管理层2432可以提供以下描述的功能。资源供应2434提供了计算资源和用于在云计算环境中执行任务的其他资源的动态采购。计量和定价2436提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的记帐或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户2438为消费者和系统管理员提供对云计算环境的访问。服务级别管理2440提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(sla)规划和履行2442提供了云计算资源的预安排和采购,其中根据sla预期未来需求。
[0221]
工作负载层2444提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图绘制和导航2446;软件开发和生命周期管理2448;虚拟教室教育传送2450;数据分析处理2452;交易处理2454;以及差异私有联合学习处理2456。本发明的各种实施例可以利用参考图23和24描述的云计算环境来执行根据这里描述的各种实施例的一个或多个差别私有联合学习过程。
[0222]
本发明可以是任何可能的技术细节集成水平的系统、方法、装置和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),该计算机可读程序指令用于使处理器执行本发明的各方面。计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表还可以包括
以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
[0223]
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c++等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
[0224]
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。可理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作动作,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
[0225]
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实
际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
[0226]
尽管以上在运行在一个和/或多个计算机上的计算机程序产品的计算机可执行指令的一般上下文中描述了本主题,但是本领域的技术人员将认识到,本公开也可以结合其它程序模块来实现或可以结合其它程序模块来实现。通常,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域的技术人员可以理解,本发明的计算机实现的方法可以用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、小型计算设备、大型计算机、以及计算机、手持式计算设备(例如,pda、电话)、基于微处理器的或可编程的消费或工业电子产品等。所示的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。然而,本公开的一些方面,如果不是所有方面,可以在独立计算机上实践。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
[0227]
如本技术中所使用的,术语“组件”、“系统”、“平台”、“接口”等可以指代和/或可以包括计算机相关的实体或与具有一个或多个特定功能的操作机器相关的实体。这里公开的实体可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。在另一示例中,相应组件可从其上存储有各种数据结构的各种计算机可读介质执行。组件可以经由本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号(例如,来自一个组件的数据,该组件经由该信号与本地系统、分布式系统中的另一个组件进行交互和/或通过诸如因特网之类的网络与其它系统进行交互)。作为另一个示例,组件可以是具有由电气或电子电路操作的机械组件提供的特定功能的装置,该电气或电子电路由处理器执行的软件或固件应用操作。在这种情况下,处理器可以在装置的内部或外部,并且可以执行软件或固件应用的至少一部分。作为又一示例,组件可以是通过电子组件而不是机械组件来提供特定功能的装置,其中电子组件可以包括处理器或其他装置以执行至少部分地赋予电子组件的功能的软件或固件。在一方面,组件可经由虚拟机来仿真电子组件,例如在云计算系统内。
[0228]
此外,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另外指定,或者从上下文中清楚,否则“x采用a或b”旨在表示任何自然的包含性排列。也就是说,如果x使用a;x采用b;或者x采用a和b两者,则在任何前述实例下都满足“x采用a或b”。此外,除非另外指定或从上下文中清楚是指单数形式,否则如在本说明书和附图中使用的冠词“一”和“一个”一般应被解释为表示“一个或多个”。如本文所使用的,术语“示例”和/或“示例性的”用于表示用作示例、实例或说明。为了避免疑惑,本文公开的主题不受这些示例限制。此外,本文中描述为“示例”和/或“示例性”的任何方面或设计不一定被解释为比其它方面或设计优选或有利,也不意味着排除本领域普通技术人员已知的等价示例性结构和技术。
[0229]
如在本说明书中所采用的,术语“处理器”可以指基本上任何计算处理单元或设备,包括但不限于单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力的多核处理器;具有硬件多线程技术的多核处理器;平行平台;以及具有分布式共享存储器的并行平台。另外,处理器可以指被设计为执行本文描述的功能的集成电路、专用集成电路(asic)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑控制器(plc)、复杂可编程逻辑器件(cpld)、分立门或晶体管逻辑、分立硬件组件或其任意组合。此外,处理器可以采用纳米级架构,例如但不限于基于分子和量子点的晶体管、开关和门,以便优化空间使用或增强用户设备的性能。处理器也可以实现为计算处理单元的组合。在本公开中,与组件的操作和功能相关的诸如“存储”、“数据库”以及基本上任何其他信息存储组件的术语被用来指代“存储器组件”、“在”存储器“中体现的实体”或包括存储器的组件。应了解,本文所描述的存储器和/或存储器组件可为易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。作为说明而非限制,非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除rom(eeprom)、闪存或非易失性随机存取存储器(ram)(例如,铁电ram(feram)。易失性存储器可包括ram,ram可用作外部高速缓存存储器,例如作为说明而非限制,ram可以许多形式获得,诸如同步ram(sram)、动态ram(dram)、同步dram(sdram)、双倍数据率(ddr sdram)、增强型sdram(esdram)、同步链路dram(sldram)、直接rambus ram(drram)、直接rambus动态ram(drdram)和rambus动态ram(rdram)。另外,本文所公开的计算机实现的方法或系统的存储器组件旨在包括而不限于包括这些和任何其他适合类型的存储器。
[0230]
以上描述的内容仅包括系统和计算机实现的方法的示例。当然,不可能为了描述本公开而描述组件或计算机实现的方法的每个可想到的组合,但是本领域的普通技术人员可以认识到,本公开的许多进一步的组合和置换是可能的。此外,就在详细描述、权利要求书、附录和附图中使用术语“包含”、“具有”、“拥有”等来说,这些术语旨在以与术语“包括”在权利要求书中用作过渡词时所解释的类似的方式为包括性的。
[0231]
已经出于说明的目的呈现了对各种实施例的描述,但是不旨在是穷举的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。

技术特征:
1.一种系统,包括:处理器,其执行存储在计算机可读存储器中的计算机可执行组件,所述计算机可执行组件包括:模板组件,其对与一组量子位相关联的clifford电路执行模板匹配;以及分区组件,其在所述模板匹配之前将所述clifford电路划分为计算级、pauli级和swap级,其中,在所述计算级上执行所述模板匹配。2.根据前一权利要求所述的系统,还包括:浮动组件,其通过用pauli算子的线性组合替换阻挡门而将所述阻挡门推到所述计算级中的模板匹配范围之外。3.根据前述权利要求中任一项所述的系统,其中,当所述计算级中的模板匹配的执行在所述计算级中产生pauli门或swap门时,所述分区组件重新划分所述clifford电路。4.根据前述权利要求中任一项所述的系统,还包括:符号组件,其从所述一组量子位中选择量子位的子集,在所述计算级中对至少一个纠缠门重新布线,使得所述至少一个纠缠门的目标在所述量子位的子集中,并且用符号pauli门替换所述至少一个重新布线的纠缠门,其中,所述符号pauli门是由符号变量控制的pauli门。5.根据前一权利要求所述的系统,还包括:窥视孔组件,其通过实施动态编程算法对具有所述符号pauli门的所述量子位的子集执行窥视孔优化。6.一种计算机实现的方法,包括:通过操作性地耦合到处理器的设备,对与一组量子位相关联的clifford电路执行模板匹配;以及由所述设备在所述模板匹配之前将所述clifford电路划分为计算级、pauli级和swap级,其中,在所述计算级上执行所述模板匹配。7.根据前一权利要求所述的计算机实现的方法,还包括:由所述设备通过用pauli算子的线性组合替换阻挡门而将所述阻挡门推到所述计算级中的模板匹配范围之外。8.根据前述两项权利要求中任一项所述的计算机实现的方法,还包括:当所述计算级中的模板匹配的执行在所述计算级中产生pauli门或swap门时,由所述设备重新划分所述clifford电路。9.根据前述三项权利要求中任一项所述的计算机实现的方法,还包括:由所述设备从所述一组量子位中选择量子位的子集;由所述设备在所述计算级中对至少一个纠缠门重新布线,使得所述至少一个纠缠门的目标在所述量子位的子集中;以及由所述设备用符号pauli门替换所述至少一个重新布线的纠缠门,其中,所述符号pauli门是由符号变量控制的pauli门。10.根据前一权利要求所述的计算机实现的方法,还包括:由所述设备通过实施动态编程算法对具有所述符号pauli门的所述量子位的子集执行窥视孔优化。
11.一种计算机程序产品,其用于促进分区模板匹配和符号窥视孔优化,所述计算机程序产品包括计算机可读存储器,所述计算机可读存储器具有随其体现的程序指令,所述程序指令可由处理器执行以使所述处理器:由所述处理器对与一组量子位相关联的clifford电路执行模板匹配;以及由所述处理器并且在所述模板匹配之前,将所述clifford电路划分为计算级、pauli级和swap级,其中,在所述计算级上执行所述模板匹配。12.根据前一权利要求所述的计算机程序产品,其中,所述程序指令进一步可执行以使所述处理器:由所述处理器通过用pauli算子的线性组合替换阻挡门而将所述阻挡门推到所述计算级中的模板匹配范围之外。13.根据前述两项权利要求中任一项所述的计算机程序产品,其中,所述程序指令进一步可执行以使所述处理器:当所述计算级中的模板匹配的执行在所述计算级中产生pauli门或swap门时,由所述处理器重新划分所述clifford电路。14.根据前述三项权利要求中任一项所述的计算机程序产品,其中,所述程序指令进一步可执行以使所述处理器:由所述处理器从所述一组量子位中选择量子位的子集;由所述处理器在所述计算级中对至少一个纠缠门重新布线,使得所述至少一个纠缠门的目标在所述量子位的子集中;以及由所述处理器用符号pauli门替换所述至少一个重新布线的纠缠门,其中,所述符号pauli门是由符号变量控制的pauli门。15.根据前一权利要求所述的计算机程序产品,其中,所述程序指令进一步可执行以使所述处理器:由所述处理器通过实施动态编程算法对具有所述符号pauli门的所述量子位的子集执行窥视孔优化。16.一种系统,包括:处理器,其执行存储在计算机可读存储器中的计算机可执行组件,所述计算机可执行组件包括:窥视孔组件,其对与一组量子位相关联的clifford电路执行窥视孔优化;以及符号组件,其在所述窥视孔优化之前从所述一组量子位中选择量子位的子集,在所述clifford电路中对至少一个纠缠门重新布线,使得所述至少一个纠缠门的目标在所述量子位的子集中,并且用符号pauli门替换所述至少一个重新布线的纠缠门。17.根据前一权利要求所述的系统,其中,所述符号pauli门是由符号变量控制的pauli-x门,其中,所述符号变量的值是0或1。18.根据前述两项权利要求中任一项所述的系统,还包括:分区组件,其将clifford电路划分为计算级、pauli级和swap级;以及模板组件,其在对所述至少一个纠缠门重新布线之前在所述计算级上执行模板匹配。19.根据前一权利要求所述的系统,还包括:浮动组件,其通过用pauli算子的线性组合替换阻挡门而将所述阻挡门推到所述计算
级中的模板匹配范围之外。20.根据前述两项权利要求中任一项所述的系统,其中,当所述计算级中的模板匹配的执行在所述计算级中产生pauli门或swap门时,所述分区组件重新划分所述clifford电路。21.一种计算机实现的方法,包括:通过操作地耦合到处理器的设备,对与一组量子位相关联的clifford电路执行窥视孔优化;由所述设备从所述一组量子位中选择量子位的子集;由所述设备在所述clifford电路中对至少一个纠缠门重新布线,使得所述至少一个纠缠门的目标在所述量子位的子集中;以及由所述设备并在所述窥视孔优化之前,用符号pauli门替换所述至少一个重新布线的纠缠门。22.根据前一权利要求所述的计算机实现的方法,其中,所述符号pauli门是由符号变量控制的pauli-x门,其中,所述符号变量的值是0或1。23.根据前述两项权利要求中任一项所述的计算机实现的方法,还包括:由所述设备将所述clifford电路划分为计算级、pauli级和swap级;以及由所述设备并且在对所述至少一个纠缠门重新布线之前,在所述计算级上执行模板匹配。24.根据前一权利要求所述的计算机实现的方法,还包括:由所述设备通过用pauli算子的线性组合替换阻挡门而将所述阻挡门推到所述计算级中的模板匹配范围之外。25.根据前述两个权利要求中任一项所述的计算机实现的方法,还包括:当所述计算级中的模板匹配的执行在所述计算级中产生pauli门或swap门时,由所述设备重新划分所述clifford电路。

技术总结
提供了促进分区模板匹配和/或符号窥视孔优化的系统和技术。在各种实施例中,系统可包括模板组件,其可对与一组量子位相关联的Clifford电路执行模板匹配。在各个方面中,系统可包括分区组件,其可在模板匹配之前将Clifford电路划分为计算级、Pauli级和SWAP级。在各种实例中,可以在计算级上执行模板匹配。可以在计算级上执行模板匹配。可以在计算级上执行模板匹配。


技术研发人员:S
受保护的技术使用者:国际商业机器公司
技术研发日:2021.10.25
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐