一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

量子算法的编译的制作方法

2021-10-24 11:23:00 来源:中国专利 TAG:量子 用于 地说 算法 计算方法


1.本发明一般地涉及用于量子计算的方法。更具体地说,本发明涉及一种用于量子算法的编译的方法。


背景技术:

2.在下文中,除非在使用时明确区分,否则短语的词中的“q”前缀指示在量子计算上下文中引用该词或短语。
3.分子和亚原子粒子遵循量子力学的定律,量子力学是探索物理世界如何在最基本的水平上工作的物理分支。在这个水平,粒子以奇怪的方式表现,同时呈现多于一个状态,并且与非常远的其他粒子相互作用。量子计算利用这些量子现象来处理信息。
4.我们现在使用的计算机被称为经典计算机(这里也称为“传统”计算机或传统节点,或“cn”)。传统的计算机使用传统的处理器,该处理器使用半导体材料和技术、半导体存储器和磁或固态存储设备来制造,这被称为冯诺依曼架构。特别地,传统计算机中的处理器是二进制处理器,即,对以1和0表示的二进制数据进行操作。
5.量子处理器(q处理器)使用纠缠量子位器件(在本文中被紧凑地称为“量子位”,多个“量子位”)的奇数性质来执行计算任务。在量子力学工作的特定领域,物质粒子可以以多种状态存在,例如“开”状态、“关”状态以及同时“开”和“关”状态。在使用半导体处理器的二进制计算限于仅使用开和关状态(等效于二进制码中的1和0)的情况下,量子处理器利用这些物质的量子状态来输出可用于数据计算的信号。
6.传统计算机以比特对信息进行编码。每一位可以取1或0的值,这些1和0用作最终驱动计算机功能的开/关开关。另一方面,量子计算机基于量子位,量子位根据量子物理学的两个关键原理来操作:叠加和纠缠。叠加意味着每个量子位可以同时表示1和0。纠缠意味着叠加中的量子位可以以非经典方式彼此相关;即,一个的状态(是否是1或0或两者)可以取决于另一个的状态,并且当两个量子位纠缠时比当它们被单独处理时有更多可以被确定的关于这两个量子位的信息。
7.使用这两个原理,量子位作为更复杂的信息处理器来运行,使量子计算机能以允许它们解决使用传统计算机难以处理的难题的方式起作用。ibm已经成功地构建并证明了使用超导量子位的量子处理器的可操作性(ibm是国际商业机器公司在美国和其它国家的注册商标)。
8.一种超导量子位包括一个约瑟夫逊结。约瑟夫逊结是通过用非超导材料分离两个薄膜超导金属层而形成的。当超导层中的金属变成超导时,例如通过将金属的温度降低到特定的低温温度,电子对可以从一个超导层通过非超导层隧穿到另一个超导层。在量子位中,约瑟夫逊结

其用作色散非线性电感器

与形成非线性微波振荡器的一个或多个电容性器件并联电耦合。振荡器具有由量子位电路中的电感和电容的值确定的谐振/跃迁频率。对术语“量子位”的任何提及是对采用约瑟夫逊结的超导量子位电路的提及,除非在使用时明确地进行区分。
9.由量子位处理的信息以微波频率范围内的微波信号/光子的形式被携带或传输。捕获、处理和分析微波信号,以便解密在其中编码的量子信息。读出电路是与量子位耦合的电路,用于捕获、读取和测量量子位的量子状态。读出电路的输出是可由q处理器使用以执行计算的信息。
10.超导量子位具有两个量子态

|0>和|1>。这两个状态可以是原子的两个能态,例如,超导人工原子(超导量子位)的基态(|g>)和第一激发态(|e>)。其它实例包括核或电子自旋的自旋向上和自旋向下、晶体缺陷的两个位置和量子点的两个状态。由于系统具有量子特性,因此两个状态的任何组合都是允许的和有效的。
11.为了使用量子位的量子计算是可靠的,量子电路,例如量子位本身、与量子位相关联的读出电路、以及量子处理器的其他部分,必须不以任何显著的方式改变量子位的能量状态,例如通过注入或耗散能量,或者影响量子位的|0>与|1>状态之间的相对相位。对利用量子信息操作的任何电路的这种操作约束使得在制造用于这种电路中的半导体和超导结构时需要特别考虑。
12.在传统电路中,连续布置的布尔逻辑门操纵一系列位。用于优化二进制计算的门逻辑的技术是公知的。传统电路的电路优化软件的目的在于提高效率并降低传统电路的复杂度。用于传统电路的电路优化软件部分地通过将传统电路的整体期望行为分解成更简单的功能来运行。传统的电路优化软件更容易地操纵和处理更简单的功能。电路优化软件在传统电路上生成设计元件的有效布局。结果,用于传统电路的电路优化软件显著地减少了资源需求,从而提高了效率并降低了复杂性。
13.说明性实施例认识到,在量子电路中,量子门操纵量子位以执行量子计算。量子门是作用于量子位的酉矩阵变换。由于量子位的叠加和纠缠,量子门代表2
n
×2n
矩阵,其中n是量子门操纵的量子位的数量。说明性实施例认识到,由于矩阵变换的大小随着量子位的数量呈指数增加,所以这种矩阵变换的分解迅速变得太复杂而不能手工执行。例如,具有2量子位的量子计算机需要4乘4矩阵算子来用于量子门表示。具有10量子位的量子计算机需要1024
×
1024的矩阵算子用于量子门表示。作为指数增加的结果,随着量子位的数量增加,手动量子逻辑门矩阵变换迅速变得不可管理。
14.用于量子电路的电路优化取决于所选择的功能、资源要求和用于量子电路的其他设计标准。例如,量子电路通常被优化以与特定器件一起工作。因此,需要用于量子电路的编译方法的改进方法。
15.量子算法表示要在量子计算机上执行的一组指令。说明性实施例认识到,量子算法可以被建模为量子电路。量子电路是由一组量子逻辑门形成的计算模型,该一组组量子逻辑门执行相应量子算法的步骤。
16.在常规计算中,如果编译器确定给定变量在所有指令中是恒定的,则可以简化经典算法。常量合并是在编译时间识别和求值常量表达式而不是在运行时计算常量表达式的过程。传统计算机中的常量合并涉及标识常量表达式并用来自编译时的计算值替换常量表达式,以及移除冗余操作以节省计算资源。
17.死码消除是从经典算法中移除不影响结果的代码的过程。死代码的消除避免了执行不相关的操作,并减少了运行时间,从而提高了传统电路的效率。
18.说明性实施例认识到,通过将量子位置于基态|0>来初始化所有量子位。量子逻辑
门操纵量子位并且改变量子位的状态。说明性实施例进一步认识到,这些量子位的操纵可以致使该量子位的状态处于这些基态之一,|0>或|1>。说明性实施例还认识到,使量子位的状态处于基态之一的逻辑门组可以从量子电路中去除(如果基态是|0>)或用pauli

x门代替(如果基态是|1>),以便将量子位从初始化的状态翻转为新的基态。
19.量子保真度是两个量子态的“接近”或重叠的量度。量子保真度用作测试以确定一个量子态是否将通过测试以识别为另一量子态。说明性实施例认识到,某些量子门提供了对量子态的非常少的操纵。例如,两个量子位状态的量子保真度可以是百分之九十七或更多,一个量子位状态在量子门之前,一个量子位状态在量子门之后。
20.说明性实施例还认识到,量子门包含影响量子算法的计算的错误率。每个量子门将量子噪声引入量子系统,这影响量子位的状态。量子门误差对应于量子处理器控制量子门所作用的(多个)量子位的状态的叠加的准确程度。说明性实施例还认识到,量子门误差可以超过在量子门之前和之后的量子态的量子保真度。
21.说明性实施例认识到用于量子处理器的硬件资源是有限的。说明性实施方案进一步认识到,将一个量子算法变换成一个量子电路以便在一个量子处理器上执行的编译器旨在创建在功能上与该量子算法等效但在该量子硬件上以最大效率运行的电路。说明性实施例还认识到,消除无关或不必要的操作简化并创建了更有效的量子电路。


技术实现要素:

22.说明性实施例提供了一种用于量子算法编译的常量合并的方法。实施例的方法包括形成第一组量子门,该第一组量子门被布置为模拟量子算法。在一个实施例中,该方法进一步包括在执行该第一组量子门的第一子集之后,确定量子处理器的量子位的状态。
23.在一个实施例中,该方法进一步包括将该量子位的状态与可接受性标准进行比较。在一个实施例中,该方法还包括响应于确定状态满足可接受性标准而移除该一组量子门的第二子集。在一个实施例中,该方法还包括响应于移除该一组量子门的第二子集而形成第二组量子门,该第二组量子门被布置为模拟量子算法。
24.在一个实施例中,该方法还包括移除第一组量子门的第一子集以形成第二组量子门。在一个实施例中,该方法还包括移除第一组量子门的子集以形成第二组量子门。
25.在一个实施例中,该方法还包括响应于确定该状态满足可接受性标准,确定第一组量子门的子集是无关量子门。在一个实施例中,该方法还包括从第一组量子门中去除量子门的子集。
26.在一个实施例中,该方法还包括利用第二组量子门执行量子算法。在一个实施例中,可接受性标准是用于第一组量子门中的量子门的条件语句。
27.实施例包括计算机可用程序产品。计算机可用程序产品包括计算机可读存储设备和存储在存储设备上的程序指令。
28.在一个实施例中,计算机可用代码存储在数据处理系统中的计算机可读存储设备中,并且其中计算机可用代码通过网络从远程数据处理系统传送。在一个实施例中,计算机可用代码存储在服务器数据处理系统中的计算机可读存储设备中,并且其中计算机可用代码通过网络下载到远程数据处理系统,以便在与远程数据处理系统相关联的计算机可读存储设备中使用。
29.实施例包括计算机系统。该计算机系统包括处理器、计算机可读存储器、计算机可读存储设备以及存储在存储设备上以供处理器经由存储器执行的程序指令。
附图说明
30.在所附权利要求中阐述了被认为是本发明的特性的新颖特征。然而,通过参考以下结合附图对说明性实施例的详细描述,将最好地理解本发明本身及其优选使用模式、进一步的目的和优点,其中:
31.图1描述了可以实现说明性实施例的数据处理系统的网络的框图;
32.图2描绘了可以实现说明性实施例的数据处理系统的框图;
33.图3描绘了根据说明性实施例的用于量子算法编译的常量合并的示例配置;
34.图4描绘了根据说明性实施例的示例重新配置步骤;
35.图5描绘了根据说明性实施例的示例重新配置步骤;
36.图6描绘了根据说明性实施例的用于量子算法编译的常量合并的示例方法的流程图。
具体实施方式
37.用于描述本发明的这些说明性实施方案总体上解决并处理了上述用于减少在一个量子处理器中的量子位和量子门上的冗余操作的需要。说明性实施例提供了一种用于量子算法编译的常量合并的方法。
38.一个实施方案提供了一种用于使用混合经典量子计算系统来改进量子算法的量子电路模型的编译的方法。另一个实施方案提供了一种传统的或量子计算机可用的程序产品,该程序产品包括计算机可读存储设备、以及存储在该存储设备上的程序指令,所存储的程序指令包括一种用于使用混合经典

量子计算系统来改进量子电路模型的编译的方法。指令可使用传统或量子处理器来执行。另一个实施例提供了一种计算机系统,该计算机系统包括传统的或量子处理器、计算机可读存储器、以及计算机可读存储设备,并且程序指令被存储在该存储设备上以便由该处理器经由该存储器执行,所存储的程序指令包括用于使用混合经典

量子计算系统来改进量子电路模型的编译的方法。
39.一个或多个实施例提供了一种混合经典和量子方法,其模拟与量子算法相对应的量子电路。在该实施例中,模拟给出了在每个执行步骤处量子算法的状态的理想化说明。在该实施例中,量子电路对应于执行量子算法的步骤的一组量子逻辑门。
40.在该实施例中,所有量子位的状态都被初始化为基态|0>。在该实施例中,在模拟的量子电路的每个步骤处,量子逻辑门操纵量子位的状态。
41.量子电路的深度是执行与量子电路相对应的量子算法所需的时间步长的数量。说明性实施例认识到,可以通过减小量子电路的深度来使量子计算机中的误差传播最小化。
42.说明性实施例认识到,减小量子电路的深度的有效方式是消除不必要的操作。例如,一个受控非门是作用于两个量子位、一个控制量子位以及一个目标量子位的一个量子逻辑门。当且仅当该控制量子位处于状态|1>时,一个受控非门翻转该目标量子位。在相同的两个量子位上背对背地发生的两个受控非门导致目标量子位没有变化。然而,在该量子处理器上执行这两个受控的非门允许这些量子逻辑门的对应误差累积。
43.在一个实施例中,量子算法被提供给量子电路编译器应用,并且量子电路编译器应用创建执行算法的步骤的量子电路的模拟。在该实施例中,量子电路的模拟包括作用于一组量子位的一组量子逻辑门。在实施例中,量子电路的模拟跟踪量子电路的状态向量。量子电路的状态向量包括在给定步骤量子电路中的所有量子位的状态。在该实施例中,随着模拟器移动通过量子电路的步骤,状态向量根据量子逻辑门的集合对量子位的集合执行的操作而改变。
44.在该实施例中,量子电路编译器应用从量子逻辑门的集合中识别不相关或无关的量子逻辑门,并且从模拟的量子电路中移除所识别的量子逻辑门。
45.在一个实施例中,该量子电路编译器应用为执行该量子算法的量子处理器的一组量子位识别一组初始化的基态。在一个实施例中,量子位集合被初始化为基态|0>。在该实施例中,量子电路编译器应用模拟作用于量子位集合的一组量子逻辑门。在该实施方案中,该组量子逻辑门操纵该组量子位的状态。
46.在该实施方案中,量子电路编译器应用确定在该组量子逻辑门的子集之后的该组量子位中的至少一个的状态。在多个具体实施例中,该量子电路编译器应用从该状态向量确定该组量子位中的至少一个量子位的状态。在该实施例中,该量子电路编译器应用将该至少一个量子位的所确定的状态与该至少一个量子位的初始化的状态进行比较。在该实施例中,量子电路编译器应用识别该组量子位中的量子位,该量子位具有与该量子位的初始化状态相同或相似的确定状态。在一个实施方案中,量子电路编译器应用比较量子位在量子门之前和之后的状态。
47.在该实施例中,量子电路编译器应用响应于量子位具有与量子位的初始化状态相同或相似的确定状态而从量子电路移除该组量子逻辑门的子集。在该实施例中,量子电路编译器应用变换执行量子算法的步骤的新的量子电路,该新的量子电路包括比模拟量子电路更少的量子逻辑门。
48.为了描述的清楚,并且不暗示对其的任何限制,使用一些示例配置来描述说明性实施例。根据本公开,本领域的普通技术人员将能够构思出用于实现所述目的所述构造的许多变更、适应和修改,并且这些都被认为在示例性实施例的范围内。
49.此外,在附图和说明性实施例中使用了示例性逻辑门、量子位和其他电路组件的简化图。在实际的制造或电路中,在不背离说明性实施例的范围的情况下,可以存在未在本文中示出或描述的附加结构或组件,或者与所示出的结构或组件不同但具有与本文描述的类似功能的结构或组件。
50.仅作为示例,关于某些类型的量子逻辑门、量子位、量子处理器、量子电路和应用来描述说明性实施例。这些和其它类似的制品的任何特定表现形式不是要限制本发明。可以在示例性实施例的范围内选择这些和其它类似制品的任何适当表现。
51.本公开中的示例仅用于清楚描述,而不是限制于说明性实施例。本文列出的任何优点仅是示例,并且不旨在限制说明性实施例。通过特定的说明性实施例可以实现附加的或不同的优点。此外,特定说明性实施例可具有上文所列优点中的一些、全部或不具有上文所列优点。
52.参考附图,并且具体参考图1和2,这些附图是可以实现说明性实施例的数据处理环境的示例图。图1和2仅仅是示例,并且不旨在断言或暗示关于其中可以实现不同实施例
的环境的任何限制。特定实现可以基于以下描述对所描绘的环境进行许多修改。
53.图1描述了可以实现说明性实施例的数据处理系统的网络的框图。数据处理环境100是其中可以实现说明性实施例的计算机的网络。数据处理环境100包括网络102。网络102是用于在数据处理环境100内连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光纤电缆的连接。
54.客户端或服务器仅是连接到网络102的某些数据处理系统的示例角色,并且不旨在排除这些数据处理系统的其他配置或角色。经典处理系统104耦合到网络102。经典处理系统104是经典处理系统。软件应用可以在数据处理环境100中的任何量子数据处理系统上执行。被描述为在图1中的经典处理系统104中执行的任何软件应用可被配置成以类似的方式在另一数据处理系统中执行。在图1中的经典处理系统104中存储或产生的任何数据或信息可以被配置为以类似的方式在另一数据处理系统中存储或产生。诸如经典处理系统104等的经典数据处理系统可包含数据,并可具有在其上执行经典计算过程的软件应用或软件工具。
55.服务器106与存储单元108一起耦合到网络102。存储单元108包括数据库109,其被配置为存储状态向量、量子算法、量子位参数、量子门参数和量子电路模型。服务器106是传统的数据处理系统。量子处理系统140耦合到网络102。量子处理系统140是量子数据处理系统。软件应用可以在数据处理环境100中的任何量子数据处理系统上执行。被描述为在图1中的量子处理系统140中执行的任何软件应用可以被配置为以类似的方式在另一量子数据处理系统中执行。在图1中的量子处理系统140中存储或产生的任何数据或信息可以被配置成以类似的方式在另一个量子数据处理系统中存储或产生。诸如量子处理系统140的量子数据处理系统可以包含数据并且可以具有在其上执行量子计算过程的软件应用或软件工具。
56.客户端110、112和114也耦合到网络102。诸如服务器106或客户端110、112或114的传统数据处理系统可包含数据,并可具有在其上执行常规计算过程的软件应用或软件工具。
57.仅作为示例,而不暗示对这样的体系结构的任何限制,图1描绘了可在实施例的示例实现中使用的某些组件。例如,服务器106和客户端110、112、114被描绘为服务器,而客户端仅作为示例,并不暗示对客户端

服务器架构的限制。作为另一个例子,一个实施例可以分布在如图所示的几个传统的数据处理系统、量子数据处理系统、和数据网络上,而另一个实施例可以在说明性实施例的范围内在单个传统的数据处理系统或单个量子数据处理系统上实现。传统数据处理系统106、110、112和114还表示适于实现实施例的集群、分区和其它配置中的示例节点。
58.设备132是本文描述的常规计算设备的示例。例如,设备132可以采取智能电话、平板计算机、膝上型计算机、固定或便携式形式的客户端110、可穿戴计算设备或任何其他合适的设备的形式。被描述为在图1中的另一传统数据处理系统中执行的任何软件应用可以被配置为以类似的方式在设备132中执行。在图1中的另一传统数据处理系统中存储或产生的任何数据或信息可以被配置为以类似的方式在设备132中存储或产生。
59.服务器106、存储单元108、经典处理系统104、量子处理系统140以及客户端110、112和114以及设备132可以使用有线连接、无线通信协议或其他合适的数据连接耦合到网
络102。客户机110、112和114可以是例如个人计算机或网络计算机。
60.在所描述的示例中,服务器106可以向客户端110、112和114提供数据,例如引导文件、操作系统映像和应用。在该示例中,客户端110、112和114可以是服务器106的客户端。客户端110、112、114或其某种组合可以包括它们自己的数据、引导文件、操作系统映像和应用。数据处理环境100可以包括未示出的附加服务器、客户端和其他设备。
61.在所描绘的示例中,存储器124可以向经典处理器122提供数据,诸如引导文件、操作系统映像和应用。经典处理器122可以包括其自己的数据、引导文件、操作系统映像和应用。数据处理环境100可以包括未示出的附加存储器、量子处理器和其他设备。存储器124包括应用105,其可以被配置为实现本文描述的一个或多个经典处理器功能,用于根据一个或多个实施例在混合经典量子计算系统上编译量子算法。
62.在所描绘的实例中,存储器144可以向量子处理器142提供数据,如引导文件、操作系统镜像、以及应用。量子处理器142可以包括它自己的数据、引导文件、操作系统映像和应用。数据处理环境100可以包括未示出的附加存储器、量子处理器和其他设备。存储器144包括应用146,该应用可以被配置成用于实现本文描述的根据一个或多个实施例的量子处理器功能中的一个或多个。
63.在所描述的示例中,数据处理环境100可以是因特网。网络102可以表示使用传输控制协议/网际协议(tcp/ip)和其它协议来彼此通信的网络和网关的集合。在因特网的核心是主节点或主机计算机之间的数据通信链路的主干,包括路由数据和消息的数千个商业、政府、教育和其它计算机系统。当然,数据处理环境100也可以实现为许多不同类型的网络,诸如例如内联网、局域网(lan)或广域网(wan)。图1旨在作为示例,而不是作为对不同说明性实施例的架构限制。
64.除了其他用途之外,数据处理环境100可以用于实现其中可以实现示例性实施例的客户端

服务器环境。客户端

服务器环境使得软件应用和数据能够分布在网络上,以便应用通过使用传统客户端数据处理系统和传统服务器数据处理系统之间的交互性来起作用。数据处理环境100还可以采用面向服务的体系结构,其中分布在网络上的可互操作的软件组件可以被打包在一起作为一致的业务应用。数据处理环境100还可以采取云的形式,并且采用服务递送的云计算模型以实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。
65.参考图2,该图描述了可以实现说明性实施例的数据处理系统的框图。数据处理系统200是传统计算机的示例,诸如图1中的经典处理系统104、服务器106或客户端110、112和114,或者是另一类型的设备,其中可以为说明性实施例定位实现过程的计算机可用程序代码或指令。
66.数据处理系统200还代表传统的数据处理系统或其中的配置,例如图1中的传统的数据处理系统132,其中可以放置实现示例性实施例的过程的计算机可用程序代码或指令。数据处理系统200仅作为示例被描述为计算机,而不限于此。在不脱离本文描述的数据处理系统200的操作和功能的一般描述的情况下,以诸如图1中的设备132的其他设备的形式的实现可以诸如通过添加触摸接口来修改数据处理系统200,并且甚至从数据处理系统200中去除某些描绘的组件。
67.在所描述的例子中,数据处理系统200采用集线器体系结构,包括北桥和存储器控制器集线器(nb/mch)202以及南桥和输入/输出(i/o)控制器集线器(sb/ich)204。处理单元206、主存储器208和图形处理器210耦合到北桥和存储器控制器集线器(nb/mch)202。处理单元206可以包含一个或多个处理器,并且可以使用一个或多个异构处理器系统来实现。处理单元206可以是多核处理器。在某些实现中,图形处理器210可以通过加速图形端口(agp)耦合到nb/mch 202。
68.在所描述的例子中,局域网(lan)适配器212耦合到南桥和i/o控制器集线器(sb/ich)204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(rom)224、通用串行总线(usb)和其它端口232、以及pci/pcie设备234通过总线238耦合到南桥和i/o控制器集线器204。硬盘驱动器(hdd)或固态驱动器(ssd)226和cd

rom 230通过总线240耦合到南桥和i/o控制器集线器204。pci/pcie设备234可以包括例如以太网适配器、附加卡和用于笔记本计算机的pc卡。pci使用卡总线控制器,而pcie不使用。rom 224可以是例如闪存二进制输入/输出系统(bios)。硬盘驱动器226和cd

rom 230可使用例如集成驱动电子(ide)、串行高级技术附件(sata)接口或诸如外部sata(esata)和微sata(msata)的变体。超级i/o(sio)设备236可以通过总线238耦合到南桥和i/o控制器集线器(sb/ich)204。
69.存储器,例如主存储器208、rom 224或闪存(未示出),是计算机可用存储设备的一些示例。硬盘驱动器或固态驱动器226、cd

rom 230和其它类似可用的设备是包括计算机可用存储介质的计算机可用存储设备的一些示例。
70.操作系统在处理单元206上运行。操作系统协调并提供对图2中的数据处理系统200内的各种组件的控制,操作系统可以是用于任何类型的计算平台的商业上可用的操作系统,包括但不限于服务器系统、个人计算机和移动设备。面向对象或其它类型的编程系统可以与操作系统一起操作,并且提供从在数据处理系统200上执行的程序或应用对操作系统的调用。
71.用于操作系统、面向对象的编程系统以及诸如图1中的应用105之类的应用或程序的指令位于存储设备上,诸如以硬盘驱动器226上的代码226a的形式,并且可以被加载到诸如主存储器208之类的一个或多个存储器中的至少一个中,以便由处理单元206执行。说明性实施例的过程可以由处理单元206使用计算机实现的指令来执行,所述指令可以位于存储器中,例如主存储器208、只读存储器224,或者位于一个或多个外围设备中。
72.此外,在一种情况下,代码226a可以通过网络201a从远程系统201b下载,其中类似的代码201c存储在存储设备201d上。在另一种情况下,代码226a可以通过网络201a下载到远程系统201b,其中下载的代码201c存储在存储设备201d上。
73.图1

2中的硬件可以根据实现而变化。除了图1

2中描述的硬件之外,或者作为其替代,可以使用诸如闪存、等效的非易失性存储器或光盘驱动器等的其它内部硬件或外围设备。此外,说明性实施例的过程可以应用于多处理器数据处理系统。
74.在一些说明性示例中,数据处理系统200可以是个人数字助理(pda),其通常配置有闪存以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括一个或多个总线,例如系统总线、i/o总线和pci总线。当然,总线系统可以使用任何类型的通信结构或体系结构来实现,所述通信结构或体系结构提供在附接到该结构或体系结构的不同组件或设备之间的数据传递。
75.通信单元可以包括一个或多个用于发送和接收数据的设备,例如调制解调器或网络适配器。存储器可以是例如主存储器208或高速缓存,诸如在北桥和存储器控制器集线器202中发现的高速缓存。处理单元可以包括一个或多个处理器或cpu。
76.图1

2中所描述的例子和上述例子不意味着暗示体系结构限制。例如,数据处理系统200除了采取移动或可穿戴设备的形式之外,还可以是平板计算机、膝上型计算机或电话设备。
77.在计算机或数据处理系统被描述为虚拟机、虚拟设备或虚拟组件的情况下,虚拟机、虚拟设备或虚拟组件使用数据处理系统200中所描绘的一些或所有组件的虚拟化表现来以数据处理系统200的方式操作。例如,在虚拟机、虚拟设备或虚拟组件中,处理单元206被表现为主机数据处理系统中可用的所有或一些数量的硬件处理单元206的虚拟化实例,主存储器208被表现为主机数据处理系统中可用的主存储器208的所有或一些部分的虚拟化实例,并且盘226被表现为主机数据处理系统中可用的盘226的所有或一些部分的虚拟化实例。在这种情况下,主机数据处理系统由数据处理系统200表示。
78.参考图3,该图描绘了根据说明性实施例的用于量子算法编译的常量合并的示例配置。示例实施例包括应用302。在特定实施例中,应用302是图1中的应用105的示例,应用302包括量子电路构造组件304。量子电路构造组件306根据本文描述的示例方法编译输出量子电路设计318。编译器组件306被配置成将输入量子算法316变换成优化的量子电路设计318。组件306包括算法变换组件308、量子电路模拟组件310和量子电路重新配置组件314。
79.组件308将量子算法代码变换成与由量子算法执行的运算相对应的第一量子电路设计。在一个实施例中,组件308分析第一量子电路以确定在第一量子电路中使用的一组量子位和一组量子门。例如,组件308可以执行校准操作。在一个实施例中,一个校准操作对该量子处理器的多个量子位q1、q2、q3、...、qn执行一组操作。在一个实施例中,校准操作对多个量子位执行随机化基准测试的方法。例如,校准操作可以对该量子处理器的多个量子位执行一组预定操作。该组预定操作响应于执行该组预定操作而生成用于每个量子位的一组值。在一个实施例中,校准操作器将每个量子位的该组值与该组预定操作中的至少一个的预期答案进行比较。
80.在一个实施方案中,校准操作返回用于该量子处理器的多个量子位的一组量子位参数值。例如,量子位相干时间、量子位弛豫时间、测量误差、以及其他量子位参数值可以通过校准操作来确定。该量子处理器的每个量子位可以包括该组参数值的一个子集。例如,量子位q1可以包括相关联的参数值p1、p2、...、pn等。量子位参数值的这些例子不是限制性的。根据本公开,本领域普通技术人员将能够设想适合于校准一组量子位的许多其他量子位参数值,并且在说明性实施方案的范围内可以预期相同的参数值。
81.在一个实施例中,校准操作返回一组量子门参数。例如,校准操作可以返回一个参数,该参数对应于该量子处理器中的每个量子门的错误率。在一个实施方案中,校准操作返回一个参数,该参数对应于该量子处理器中的每一和两个量子位门(原始门)的一个错误率。
82.组件308分析一组量子门参数。在一个实施方案中,量子门参数对应于形成该量子门的一组量子位以及这些量子位在该量子处理器上的布局。在一个实施方案中,校准操作
返回用于该量子处理器的多个量子门的一组量子门参数值。例如,可以通过校准操作确定门错误率、门速度、门串扰矩阵和其它量子门参数值。该量子处理器的每个量子门可以包括该组量子门参数值的一个子集。这些量子门参数的例子不是限制性的。根据本公开,本领域普通技术人员将能够设想适于校准一组量子门的许多其它量子门参数值,并且在示例性实施例的范围内可以设想相同的参数值。
83.组件314根据一组可接受性标准中的至少一个来重新配置量子电路。在一个实施例中,组件314确定量子位状态在可接受状态的阈值量子保真度内。例如,组件314可以确定第一量子位包括与基态|0>在百分之九十七量子保真度内的一种状态。在一个实施例中,组件314确定量子逻辑门满足可接受性标准之前和之后的量子位状态的量子保真度。例如,组件314可以在量子逻辑门满足至少百分之九十五的阈值量子保真度标准之前确定量子位状态,其中量子位状态在量子逻辑门之后。
84.响应于确定量子位状态满足可接受性标准,组件314从该组量子逻辑门中移除无关门。在一个实施例中,组件314移除该组量子逻辑门的子集。例如,组件314可以移除所确定的量子位状态与初始化状态之间的所有量子逻辑门。
85.在一个实施例中,组件314确定第二确定的量子位状态不满足可接受性标准。响应于确定量子位状态未能满足可接受性标准,组件314保持该组量子门不变。在另一个实施方案中,组件314确定第二确定的量子位状态。
86.参考图4,该图描绘了根据说明性实施例的示例重新配置步骤。配置400包括第一电路图402和第二电路图404。在一个实施例中,应用105将量子算法变换成电路图402、404。在实施例中,组件310模拟电路图402。q0和q1都在电路图402中的状态|0>下被初始化。哈达玛门作用于一个量子位,并将状态|0>旋转为状态的叠加。一个受控的非门作用于两个量子位,一个控制量子位和一个目标量子位。当且仅当该控制量子位处于该状态|0>时,一个受控非门翻转该目标量子位。pauli x门作用于一个量子位并且将该量子位从基态|0>翻转到基态|1>,反之亦然。
87.哈达玛门作用于q0和q1,以将q0和q1的状态从状态|0>轮换到状态接下来,一个受控的非门作用于q0、目标量子位、以及q1、控制量子位。由于q1不处于状态|1>,所以受控非门不翻转量子位q0。接下来,哈达玛门作用于q0和q1,以将q0和q1的状态从状态轮换到状态|0>。在电路图402的这个阶段,q0处于状态|0>,相同的状态q0处于在被任何门作用之前。接下来,pauli x门作用于量子位q0以将状态从状态|0>翻转到状态|1>。
88.在第一电路图402的模拟期间,组件312确定量子位中的至少一个的状态。例如,组件312可以确定量子位q0在第二组哈达玛门之后处于基态|0>。组件314分析所确定的状态以确定所确定的状态是否满足可接受标准。例如,组件314可以将所确定的状态与基础状态进行比较。在另一示例中,组件314可确定所确定的状态是否在基态的阈值量子保真度内,诸如至少百分之九十七的量子保真度。
89.响应于所确定的状态满足可接受性标准,组件314重新配置用于量子算法的量子
电路图。例如,组件314可确定q0处于第二组哈达玛门之后的状态|0>。组件314确定量子位q0处于与哈达玛门之前相同的状态。组件314确定所有的哈达玛门,并且受控not门是无关的门,因为q0处于与该组无关的量子逻辑门之前相同的状态。组件314通过去除该组无关的量子逻辑门来重新配置第一电路图402,从而产生第二电路图404。
90.量子逻辑门的这些示例不旨在是限制性的。根据本公开,本领域普通技术人员将能够设想适合于操纵量子位的状态的许多其它量子逻辑门,并且在说明性实施例的范围内设想了相同的量子逻辑门。
91.参考图5,该图描绘了根据说明性实施例的示例重新配置步骤。配置500包括第一电路图502和第二电路图504。在一个实施例中,应用105将量子算法变换成电路图502、504。在实施例中,组件310模拟电路图502。q0和q1都被初始化在电路图502中的状态|0>。pauli z门作用于一个量子位,并且将基态|1>轮换

|1>,而使基态|0>不变。测量将状态写入经典位,即将|1>写入1和将|0>写入0。托夫利门作用于三个量子位,两个控制量子位和一个目标量子位。当且仅当两个控制量子位处于状态|1>时,托夫利门翻转目标量子位。
92.哈达玛门作用于q0,以将q0的状态从状态|0>轮换到状态接下来,pauli z门作用于q1。由于q1处于该状态|0>,pauli z门保持q1的状态不变。接下来,在q1上进行测量。在电路图402的这个阶段,q1处于该状态|0>,因此测量返回值为0的经典比特,在实施例中,应用105将测量的值写入经典比特c。接下来,托夫利门作用于目标量子位q0。在一个实施例中,如果c的值为1,则托夫利门仅作用于q0。
93.在一个实施例中,编译器306确定c的值将由于初始化状态和pauli z门而总是为0。组件314分析所确定的状态以确定所确定的状态是否满足可接受标准。例如,组件314可以将测量与条件语句相比较。例如,未能匹配条件语句满足可接受标准。
94.响应于所确定的状态满足可接受性标准,组件314重新配置用于量子算法的量子电路图。例如,组件314可确定q1总是处于测量之后的状态|0>。组件314确定托夫利门是无关的门,因为q1总是处于测量之后的状态|0>,所以条件语句不满足。组件314通过移除该组无关的量子逻辑门来重新配置第一电路图502,从而产生第二电路图504。
95.量子逻辑门的这些示例不旨在是限制性的。根据本公开,本领域普通技术人员将能够设想适合于操纵量子位的状态的许多其它量子逻辑门,并且在说明性实施例的范围内设想了相同的量子逻辑门。
96.参考图6,该图描绘了根据说明性实施例的用于量子算法编译的常量合并的示例方法的流程图。在一个实施例中,应用105执行方法600。在框602中,应用105模拟量子算法,该量子算法形成执行量子算法的运算的一组量子门。在框604中,应用105确定执行该组量子门中的至少一个的量子位的状态。在框606中,应用105将该量子位的状态与可接受性标准进行比较。在框608中,应用105确定该量子位的状态是否满足一个可接受性标准。响应于确定量子位的状态未能满足可接受性标准(框608的否路径),应用105返回到框604以确定同一量子位的另一状态或另一量子位的状态。响应于确定状态满足可接受标准(框608的“是”路径),应用105移动到框610。在框610中,应用105将量子算法变换成第二组量子门,第二组量子门具有比第一组量子门更少的量子门总数。此后,应用105结束过程600。
97.在此参考相关附图描述本发明的各种实施例。在不脱离本发明的范围的情况下,
可以设计出替代实施例。尽管在以下描述和附图中阐述了元件之间的各种连接和位置关系(例如上方、下方、相邻等),但是本领域技术人员将认识到,当即使改变了取向也保持了所描述的功能时,本文描述的许多位置关系是与取向无关的。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明并不旨在在这方面进行限制。因此,实体的偶联可以指直接或间接偶联,并且实体之间的位置关系可以是直接或间接位置关系。作为间接位置关系的一个例子,本说明书中提到在层“b”上形成层“a”包括这样的情况,其中一个或多个中间层(例如层“c”)在层“a”和层“b”之间,只要层“a”和层“b”的相关特性和功能基本上不被中间层改变。
98.以下定义和缩写用于解释权利要求和说明书。如本文所用,术语“包含”、“包含有”、“包括”、“包括有”、“具有”、“具有的”、“含有”、“含有的”或其任何其它变型旨在涵盖非排他性的包括。例如,包括一系列要素的组合物、混合物、工艺、方法、制品或装置不一定仅限于那些要素,而是可以包括未明确列出的或此类组合物、混合物、工艺、方法、制品或装置固有的其他要素。
99.另外,术语“说明性”在本文中用于表示“充当示例、实例或说明”。在此描述为“说明性”的任何实施例或设计不一定被解释为比其它实施例或设计更优选或有利。术语“至少一个”和“一个或多个”被理解为包括大于或等于一的任何整数,即一、二、三、四等。术语“多个”应理解为包括大于或等于二的任何整数,即二、三、四、五等。术语“连接”可以包括间接“连接”和直接“连接”。
100.说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以包括或者可以不包括该特定特征、结构或特性。此外,这些短语不一定是指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其它实施例来影响这种特征、结构或特性是在本领域技术人员的知识范围内的,而不管是否明确描述。
101.术语“约”、“基本上”、“大约”及其变体旨在包括与基于提交本技术时可用的设备的特定量的测量相关联的误差度。例如,“约”可以包括给定值的
±
8%或5%或2%的范围。
102.已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上发现的技术的技术改进,或使本领域的其他普通技术人员能够理解本文所描述的实施例。
103.已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上发现的技术的技术改进,或使本领域的其他普通技术人员能够理解本文所描述的实施例。
104.因此,在说明性实施例中提供了一种计算机实现的方法、系统或装置以及计算机程序产品,用于管理在线社区的参与以及其他相关特征、功能或操作。在关于一种类型的设备描述实施例或其一部分的情况下,计算机实现的方法、系统或装置、计算机程序产品或其一部分被适配或配置成与该类型的设备的适当且可比较的表现一起使用。
105.在实施例被描述为在应用中实现的情况下,在说明性实施例的范围内,可以设想在软件即服务(saas)模型中的应用的递送。在saas模型中,通过在云基础设施中执行应用,向用户提供实现实施例的应用的能力。用户可以通过诸如web浏览器(例如,基于web的电子邮件)或其他轻量客户端应用之类的瘦客户端接口使用各种客户端设备来访问应用。用户不管理或控制底层云基础设施,包括网络、服务器、操作系统或云基础设施的存储。在一些情况下,用户甚至可能不管理或控制saas应用的能力。在一些其它情况下,应用的saas实施方案可允许有限的用户特定应用配置设定的可能例外。
106.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
107.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd

rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
108.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
109.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c 等和过程编程语言,例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
110.在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图描述本发明的各方面。将理解,流程图说明和/或框图的每个框以及流程图和/或
框图中的框的组合可以由计算机可读程序指令来实现。
111.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图中的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个框中指定的功能/动作的各方面的指令。
112.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的一个或多个框中指定的功能/动作。
113.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜