量子算法的验证和估计运行时间的制作方法

文档序号:27299056发布日期:2021-11-06 05:17阅读:88来源:国知局
量子算法的验证和估计运行时间的制作方法

1.本发明一般涉及一种用于编译量子算法的方法。更具体地说,本发明涉及一种用于量子算法的验证和估计运行时间的方法。


背景技术:

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

其用作色散非线性电感器

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

|0>和|1>。这两个状态可以是原子的两个能态,例如,超导人工原子(超导量子位)的基态(|g>)和第一激发态(|e>)。其它实例包括核或电子自旋的自旋向上(spin

up)和自旋向下(spin

down)、晶体缺陷的两个位置和量子点的两个状态。由于系统具有量子特性,因此两个状态的任何组合都是允许的和有效的。
11.为了使用量子位的量子计算是可靠的,量子电路,例如量子位本身、与量子位相关联的读出电路、以及量子处理器的其他部分,必须不以任何显著的方式改变量子位的能量状态,例如通过注入或耗散能量,或者影响量子位的|0>与|1>状态之间的相对相位。对利用量子信息操作的任何电路的这种操作约束使得在制造用于这种电路中的半导体和超导结构时需要特别考虑。
12.在传统电路中,连续布置的布尔逻辑门操纵一系列位。用于优化二进制计算的门逻辑的技术是公知的。传统电路的电路优化软件的目的在于提高效率并降低传统电路的复杂度。用于传统电路的电路优化软件部分地通过将传统电路的整体期望行为分解成更简单的功能来运行。传统的电路优化软件更容易地操纵和处理更简单的功能。电路优化软件在传统电路上生成设计元件的有效布局。结果,用于传统电路的电路优化软件显著地减少了资源需求,从而提高了效率并降低了复杂性。
13.说明性实施例认识到,在量子电路中,量子门操纵量子位以执行量子计算。量子门是作用于量子位的酉矩阵变换。由于量子位的叠加和纠缠,量子门代表2
n
×2n
矩阵,其中n是量子门操纵的量子位的数量。说明性实施例认识到,由于矩阵变换的大小随着量子位的数量呈指数增加,所以这种矩阵变换的分解迅速变得太复杂而不能手工执行。例如,具有2量子位的量子计算机需要4乘4矩阵算子来用于量子门表示。具有10量子位的量子计算机需要1024
×
1024的矩阵算子用于量子门表示。作为指数增加的结果,随着量子位的数量增加,手动量子逻辑门矩阵变换迅速变得不可管理。
14.量子算法表示要在量子计算机上执行的一组指令。说明性实施例认识到,量子算法可以被建模为量子电路。量子电路是由量子逻辑门集合形成的计算模型,该量子逻辑门集合执行相应量子算法的步骤。
15.量子处理器可以是云访问设备。量子处理器的供应商为用户提供一个前端软件以创建用于后端量子处理器执行的量子算法。
16.说明性实施例还认识到,量子门包含影响量子算法的计算的错误率。每个量子门将量子噪声引入量子系统,这影响量子位的状态。量子门误差对应于量子处理器控制量子门所作用的量子位的状态的叠加的准确程度。
17.说明性实施例认识到量子处理器在一段时间内表现出变化的物理特性。说明性实施例认识到,量子处理器的校准确定量子处理器的相关联的量子位和量子门的错误率。说明性实施例进一步认识到量子处理器通常每天仅被校准一次或两次。说明性实施例进一步认识到,由于相关联的量子位和量子门的特定错误率,某些量子算法可能不在一个给定的
量子处理器上执行。
18.说明性实施例认识到用于量子处理器的硬件资源是有限的。说明性实施例进一步认识到,将量子算法变换成量子电路以便在量子处理器上执行的多个编译器旨在创建在功能上与该量子算法等效但在该量子硬件上以最大效率运行的多个电路。说明性实施例还认识到,消除无关或不必要的操作简化并创建了更有效的量子电路。
19.说明性实施例认识到用于量子处理器的硬件资源是有限的。说明性实施例进一步认识到,将量子算法变换成量子电路以便在量子处理器上执行的多个编译器旨在创建在功能上与该量子算法等效但在该量子硬件上以增加的效率运行的多个电路。


技术实现要素:

20.说明性实施例提供了一种用于量子算法的验证和运行时间估计的方法。一种用于量子算法的验证和运行时间估计的方法,包括接收量子算法并模拟所述量子算法,所述量子算法形成量子门集合。在一个实施例中,该方法包括分析所述量子门集合的第一参数集合。
21.在一个实施例中,该方法包括分析执行所述量子门集合的量子位集合的第二参数集合。在一个实施例中,该方法包括响应于确定所述第一参数集合或所述第二参数集合中的至少一个满足可接受标准而将所述量子算法变换成第二量子门集合。
22.在一个实施例中,该方法包括将所述量子算法与存储的量子算法进行比较以估计量子算法的运行时间。在一个实施例中,该方法包括响应于确定所述第一参数集合或所述第二参数集合中的至少一个参数满足可接受标准而产生验证票证(ticket),所述验证票证对应于执行经验证的量子算法的量子处理器的量子算法队列中的位置。
23.在一个实施例中,该方法包括响应于由用户提交的量子算法集合的总运行时间超过阈值运行时间而撤销验证票证。在一个实施例中,该方法包括响应于确定所述第一参数集合或所述第二参数集合中的至少一个参数不满足可接受标准而通知用户失败的至少一个参数。
24.在一个实施例中,该方法包括利用所述第二量子门集合执行所述量子算法。在一个实施例中,所述可接受标准是量子门的阈值错误率。在一个实施例中,所述可接受标准是量子位的阈值相干时间。
25.实施例包括计算机可用程序产品。计算机可用程序产品包括计算机可读存储设备和存储在存储设备上的程序指令。
26.在一个实施例中,计算机可用代码存储在数据处理系统中的计算机可读存储设备中,并且其中计算机可用代码通过网络从远程数据处理系统传送。在一个实施例中,计算机可用代码存储在服务器数据处理系统中的计算机可读存储设备中,并且其中计算机可用代码通过网络下载到远程数据处理系统,以便在与远程数据处理系统相关联的计算机可读存储设备中使用。
27.实施例包括计算机系统。该计算机系统包括处理器、计算机可读存储器、计算机可读存储设备以及存储在存储设备上以供处理器经由存储器执行的程序指令。
附图说明
28.在所附权利要求中阐述了被认为是本发明的特性的新颖特征。然而,通过参考以下结合附图对说明性实施例的详细描述,将最好地理解本发明本身及其优选使用模式、进一步的目的和优点,其中:
29.图1示出了可以实现说明性实施例的数据处理系统的网络的框图;
30.图2示出了其中可以实现说明性实施例的数据处理系统的框图
31.图3示出了根据说明性实施例的用于量子算法编译的常量折叠的示例配置;
32.图4示出了用于量子算法编译的验证和运行时间估计的示例配置;以及
33.图5示出了根据说明性实施例的用于量子算法的验证和运行时间估计的示例方法的流程图。
具体实施方式
34.说明性实施例提供了一种用于验证和估计量子算法的运行时间的方法。用于描述本发明的说明性实施例一般地说明和解决了上述对量子算法编译的需要。说明性实施例提供了一种用于量子算法的验证和运行时间估计的方法。
35.一个实施方案提供了一种用于使用混合经典量子计算系统来改进量子算法的量子电路模型的编译的方法。另一个实施例提供了一种传统的或量子计算机可用的程序产品,该程序产品包括一个计算机可读存储装置、以及存储在该存储装置上的程序指令,所存储的程序指令包括一种用于使用混合经典

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

量子计算系统来改进量子电路模型的编译的方法。
36.一个或多个实施例提供了一种混合经典和量子方法,其模拟与量子算法相对应的量子电路。在该实施例中,模拟给出了在每个执行步骤量子算法的状态的理想化说明。在该实施例中,量子电路对应于执行量子算法的步骤的量子逻辑门集合(a set of quantum logic gates)。在该实施例中,在模拟的量子电路的每个步骤处,量子逻辑门操纵量子位的状态。
37.在一个实施例中,向量子电路编译应用程序提供量子算法。在该实施例中,量子电路编译应用程序形成具有与量子算法的步骤相对应的量子逻辑门集合的量子电路。在该实施方案中,该量子电路编译应用程序为量子处理器上的量子位集合(a set of qubits)确定量子位参数集合(a set of qubit parameters)。在该实施例中,量子电路编译应用程序确定用于量子逻辑门集合的量子逻辑门参数集合(a set of quantum logic gate parameters)。在该实施例中,量子电路编译应用程序确定用于量子电路的量子电路参数集合(a set of quantum circuit parameters)。
38.在该实施例中,量子电路编译应用将量子电路参数集合中的至少一个与量子位参数集合中的至少一个进行比较。在该实施例中,量子电路编译应用程序将量子电路参数集合中的至少一个与量子逻辑门参数集合中的至少一个进行比较。
39.为了描述的清楚,并且不暗示对其的任何限制,使用一些示例配置来描述说明性
实施例。根据本公开,本领域的普通技术人员将能够构思出用于实现所述目的所述构造的许多变更、适应和修改,并且这些都被认为在示例性实施例的范围内。
40.此外,在附图和说明性实施例中使用了示例性逻辑门、量子位和其他电路部件的简化图。在实际的制造或电路中,在不背离说明性实施例的范围的情况下,可以存在未在此示出或描述的附加结构或组件,或者与所示出的结构或组件不同但具有与在此描述的类似功能的结构或组件。
41.仅作为示例,关于某些类型的量子逻辑门、量子位、量子处理器、量子电路和应用来描述说明性实施例。这些和其它类似的人为因素的任何特定表现形式不是要限制本发明。可以在示例性实施例的范围内选择这些和其它类似产物的任何适当表现。
42.本公开中的示例仅用于清楚描述,而不是限制于说明性实施例。本文列出的任何优点仅是示例,并且不旨在限制说明性实施例。通过特定的说明性实施例可以实现附加的或不同的优点。此外,特定说明性实施例可具有上文所列优点中的一些、全部或不具有上文所列优点。
43.参考附图,并且具体参考图1和2,这些附图是可以实现说明性实施例的数据处理环境的示例图。图1和图2仅仅是示例,并且不旨在断言或暗示关于其中可以实现不同实施例的环境的任何限制。特定实现可以基于以下描述对所描述的环境进行许多修改。
44.图1描述了可以实现说明性实施例的数据处理系统的网络的框图。数据处理环境100是其中可以实现说明性实施例的计算机网络。数据处理环境100包括网络102。网络102是用于在数据处理环境100内连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光纤电缆的连接。
45.客户机或服务器仅是连接到网络102的某些数据处理系统的示例角色,并且不旨在排除这些数据处理系统的其他配置或角色。经典处理系统104耦合到网络102。经典处理系统104是经典处理系统。软件应用可以在数据处理环境100中的任何量子数据处理系统上执行。被描述为在图1中的经典处理系统104中执行的任何软件应用程序可被配置成以类似的方式在另一数据处理系统中执行。在图1中的经典处理系统104中存储或产生的任何数据或信息可以被配置为以类似的方式在另一数据处理系统中存储或产生。诸如经典处理系统104等经典数据处理系统可包含数据,并可具有在其上执行经典计算过程的软件应用程序或软件工具。
46.服务器106与存储单元108一起耦合到网络102。存储单元108包括数据库109,其被配置为存储量子电路设计、量子门参数、量子算法和量子位参数。服务器106是传统的数据处理系统。量子处理系统140耦合到网络102。量子处理系统140是量子数据处理系统。软件应用可以在数据处理环境100中的任何量子数据处理系统上执行。被描述为在图1中的量子处理系统140中执行的任何软件应用可以被配置为以类似的方式在另一量子数据处理系统中执行。在图1中的量子处理系统140中存储或产生的任何数据或信息可以被配置成以类似的方式在另一个量子数据处理系统中存储或产生。诸如量子处理系统140的量子数据处理系统可以包含数据并且可以具有在其上执行量子计算过程的软件应用或软件工具。
47.客户机110、112和114也耦合到网络102。诸如服务器106或客户机110、112或114的传统数据处理系统可包含数据,并可具有在其上执行传统计算过程的软件应用程序或软件工具。
48.仅作为示例,而不暗示对这样的体系结构的任何限制,图1描述了可在实施例的示例实现中使用的某些组件。例如,服务器106和客户机110、112、114被描述为服务器,而客户机仅作为示例,并不暗示对客户机

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

服务器环境。客户机

服务器环境使得软件应用程序和数据能够分布在网络上,以便应用程序通过使用传统客户机数据处理系统和传统服务器数据处理系统之间的交互性来工作。数据处理环境100还可以采用面向服务的体系结构,其中分布在网络上的可互操
作的软件组件可以被打包在一起作为一致的业务应用。数据处理环境100还可以采取云的形式,并且采用服务递送的云计算模型以实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。
56.参考图2,该图描述了可以实现说明性实施例的数据处理系统的框图。数据处理系统200是传统计算机的示例,诸如图1中的传统处理系统104、服务器106或客户机110、112和114,或者是另一类型的设备,其中可以为说明性实施例定位实现过程的计算机可用程序代码或指令。
57.数据处理系统200还代表传统数据处理系统或其中的配置,例如图1中的传统数据处理系统132,其中可以放置实现示例性实施例的处理的计算机可用程序代码或指令。数据处理系统200仅作为示例被描述为计算机,而不限于此。在不脱离这里描述的数据处理系统200的操作和功能的一般描述的情况下,以诸如图1中的设备132的其他设备的形式的实现可以诸如通过添加触摸接口来修改数据处理系统200,并且甚至从数据处理系统200中去除某些描述的组件。
58.在所描述的例子中,数据处理系统200采用集线器体系结构,包括北桥和存储器控制器集线器(nb/mch)202以及南桥和输入/输出(i/o)控制器集线器(sb/ich)204。处理单元206、主存储器208和图形处理器210耦合到北桥和存储器控制器集线器(nb/mch)202。处理单元206可以包含一个或多个处理器,并且可以使用一个或多个异构处理器系统来实现。处理单元206可以是多核处理器。在某些实现中,图形处理器210可以通过加速图形端口(agp)耦合到nb/mch 202。
59.在所描述的例子中,局域网(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不使用。rom224可以是例如闪存二进制输入/输出系统(bios)。硬盘驱动器226和cd

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

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

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

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

图2中所描述的例子和上述例子不意味着暗示体系结构限制。例如,数据处理系统200除了采取移动或可穿戴设备的形式之外,还可以是平板计算机、膝上型计算机或电话设备。
68.在计算机或数据处理系统被描述为虚拟机、虚拟设备或虚拟组件的情况下,虚拟机、虚拟设备或虚拟组件使用数据处理系统200中所描述的一些或所有组件的虚拟化表现来以数据处理系统200的方式操作。例如,在虚拟机、虚拟设备或虚拟组件中,处理单元206被表现为主机数据处理系统中可用的所有或一些数量的硬件处理单元206的虚拟化实例,主存储器208被表现为主机数据处理系统中可用的主存储器208的所有或一些部分的虚拟化实例,并且磁盘226被表现为主机数据处理系统中可用的磁盘226的所有或一些部分的虚拟化实例。在这种情况下,主机数据处理系统由数据处理系统200表示。
69.参考图3,该图描述了根据一个说明性实施例用于校准量子处理器的一种示例配置。示例实施例包括应用程序302。在特定实施例中,应用程序302是图1中的应用程序105的实例。
70.应用程序302包括校准组件304。组件304包括校准操作器组件306、量子位参数分析组件308、以及量子门参数分析组件310。应用程序302接收校准操作312。
71.校准操作器306执行校准操作312。在一个实施例中,校准操作312对量子处理器314的多个量子位q1、q2、q3、...、qn执行一组操作。在一个实施例中,校准操作312对多个量子位执行随机化基准测试的方法。例如,校准操作312可以对量子处理器314的多个量子位执行一组预定的操作。该组预定操作响应于执行该组预定操作而生成用于每个量子位的值的集合。在一个实施例中,校准操作312将每个量子位的值的集合与该组预定操作中的至少一个的预期答案进行比较。
72.在一个实施例中,校准操作312返回用于量子处理器314的多个量子位的量子位参
数值集合316。例如,量子位相干时间、量子位弛豫时间、测量误差、以及其他量子位参数值可以通过校准操作来确定。量子处理器314的每个量子位可以包括该参数值集合的一个子集。例如,量子位q1可以包括相关联的参数值p1、p2、...、pn等。量子位参数值的这些例子不是限制性的。根据本公开,本领域普通技术人员将能够设想适合于校准量子位集合的许多其他量子位参数值,并且在说明性实施例的范围内预期相同的。
73.在一个实施例中,校准操作312返回量子门参数集合。例如,校准操作312可以返回一个参数,该参数对应于该量子处理器314中的每个量子门的错误率。在一个实施例中,校准操作312返回一个参数,该参数对应于量子处理器314中的每一个和两个量子位门(原始门)的错误率。
74.组件308分析量子位参数值集合316。在一个实施例中,组件308根据量子位集合可接受标准318中的至少一个来分析量子位参数值集合316。例如,组件308可以将量子位的参数值与量子位可接受标准进行比较。例如,组件308可以确定量子位的相干时间未能满足阈值相干时间来执行一组操作。作为另一个示例,组件308可以确定另一个量子位的相干时间满足阈值相干时间以便执行该组操作。
75.组件310分析量子门参数集合。在一个实施例中,量子门参数对应于形成该量子门的量子位集合以及这些量子位在该量子处理器上的布局。在一个实施例中,校准操作312返回用于量子处理器314的多个量子门的量子门参数值集合。例如,可以通过校准操作确定门错误率、门速度、门串扰矩阵和其它量子门参数值。量子处理器314的每个量子门可以包括量子门参数值集合的一个子集。这些量子门参数的例子不是限制性的。根据本公开,本领域普通技术人员将能够设想适于校准量子门集合的许多其它量子门参数值,并且在示例性实施例的范围内可以设想这些参数值。
76.组件310分析量子门参数值集合。在一个实施例中,组件310根据量子门集合可接受标准320中的至少一个来分析量子门参数值集合。例如,组件310可以将量子门的参数值与量子门可接受标准进行比较。例如,组件310可以确定量子门的门错误率未能满足阈值错误率来执行量子门。
77.在一个实施例中,组件310根据原始门错误率集合生成复合门的复合门错误率,该复合门由与原始门错误率相对应的原始门集合形成。在一个实施例中,组件310为使用来自公式公式的三个量子位形成的复合门生成复合门误差率,其中a
xy
和b
xy
分别是在第一校准操作和第二校准操作期间由量子位x和y形成的量子门的原始门误差率。
78.参考图4,该图描述了用于量子算法编译的验证和运行时间估计的示例配置。示例实施例包括应用程序402。在特定实施例中,应用程序402是图1中的应用程序105的示例。应用程序402包括量子电路构造组件404。量子电路构建组件404根据本文描述的示例方法编译输出量子电路设计420。编译器组件406被配置成将输入量子算法418变换成优化的量子电路设计420。组件406包括算法变换部件408、量子电路仿真组件410和量子电路运行时间估计组件416。
79.组件408将量子算法代码变换成与由量子算法执行的运算相对应的第一量子电路设计。组件410将量子算法模拟为量子电路。在一个实施例中,组件412和414分析第一量子
电路以确定在第一量子电路中使用的量子位集合和量子门集合。例如,组件414确定第一量子位和第二量子位形成第一量子门。在一个实施例中,组件412确定第一量子位执行一组操作。
80.组件412确定至少一个量子位是否满足来自量子位集合可接受标准的至少一个标准。例如,组件412可以确定量子位的相干时间未能满足阈值相干时间以执行一组操作。该量子电路根据可接受标准集合中的至少一个可接受标准。
81.组件414分析量子门参数值集合。在一个实施例中,组件414根据量子门可接受标准集合中的至少一个来分析量子门参数值集合。例如,组件414可以将量子门的参数值与量子门可接受标准进行比较。例如,组件414可以确定量子门的门错误率未能满足阈值错误率来执行量子门。
82.响应于确定所模拟的量子电路满足量子门可接受标准集合的子集和量子位可接受标准集合的第二子集,应用程序402将量子算法变换成量子电路420,量子电路420执行量子算法的运算。应用程序402输出验证票证(validation ticket)422并通知用户验证。验证票证422对应于用于执行经验证的量子算法的量子处理器的量子算法队列中的一个位置。
83.量子电路运行时间估计组件416估计用于执行输出量子电路420的运行时间。在一个实施例中,组件416将提交的量子算法与存储的量子算法进行比较,以估计提交的量子算法的运行时间。例如,组件416可以比较量子门的数量、量子门的类型、以及量子门参数,以确定所提交的量子算法的运行时间。组件416确定由单个用户提交的所有量子算法的总运行时间。组件416将总运行时间与阈值运行时间(例如,一小时)进行比较。例如,组件416可以确定由单个用户提交的量子算法的总运行时间是两个小时。组件416确定总运行时间超过阈值运行时间。组件416响应于总运行时超过阈值运行时间而撤销票证422。
84.参考图5,该图描述了根据说明性实施例的用于量子算法的验证和运行时间估计的示例方法的流程图。在一个实施例中,应用程序105执行方法500。在框502中,应用程序105从用户接收量子算法和用户参数集合。在框504中,应用程序105模拟量子算法,以形成执行量子算法的运算的量子门集合。在框506中,应用程序105分析量子门集合的参数集合。在框508中,应用程序105分析执行量子门集合的量子位集合的第二参数集合。在框510中,应用程序105确定参数中的至少一个是否满足可接受标准。响应于确定所述至少一个参数未能满足可接受标准(框510的“否”路径),应用程序105移动到框516以通知用户参数失败。此后,应用程序105结束过程500。
85.响应于确定所述至少一个参数满足可接受标准(框510的“是”路径),应用程序105移动到框512。在框512中,应用程序105估计量子算法的运行时间。在框514中,应用程序105将量子算法变换成第二量子门集合。此后,应用程序105结束过程500。
86.在此参考相关附图描述本发明的各种实施例。在不脱离本发明的范围的情况下,可以设计出替代实施例。尽管在以下描述和附图中阐述了元件之间的各种连接和位置关系(例如上方、下方、相邻等),但是本领域技术人员将认识到,当即使改变了取向也保持了所描述的功能时,本文描述的许多位置关系是与取向无关的。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明并不旨在在这方面进行限制。因此,实体的耦合可以指直接或间接耦合,并且实体之间的位置关系可以是直接或间接位置关系。作为间接位置关系的一个例子,本说明书中提到在层“b”上形成层“a”包括这样的情况,其中一个
或多个中间层(例如层“c”)在层“a”和层“b”之间,只要层“a”和层“b”的相关特性和功能基本上不被中间层改变。
87.以下定义和缩写用于解释权利要求和说明书。如本文所用,术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”、“包括(including)”、“具有(has)”、“具有(having)”、“包含(contains)”、“包含(containing)”或其任何其它变型旨在涵盖非排他性的包括。例如,包括一系列要素的组合物、混合物、工艺、方法、制品或装置不一定仅限于那些要素,而是可以包括未明确列出的或此类组合物、混合物、工艺、方法、制品或装置固有的其他要素。
88.另外,术语“说明性”在本文中用于表示“充当实例、例子或说明”。在此描述为“说明性”的任何实施例或设计不一定被解释为比其它实施例或设计更优选或有利。术语“至少一个”和“一个或多个”被理解为包括大于或等于一的任何整数,即一、二、三、四等。术语“多个”应理解为包括大于或等于二的任何整数,即二、三、四、五等。术语“连接”可以包括间接“连接”和直接“连接”。“89.说明书中对“一个实施例(one embodiment)”、“一个实施例(an embodiment)”、“示例实施例(an example embodiment)”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以包括或者可以不包括该特定特征、结构或特性。此外,这些短语不一定是指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其它实施例来影响这种特征、结构或特性是在本领域技术人员的知识范围内的,而不管是否明确描述。
90.术语“约”、“基本上”、“大约”及其变体旨在包括与基于提交本技术时可用的设备的特定量的测量相关联的误差度。例如,“大约”可以包括给定值的
±
8%或5%或2%的范围。
91.已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所描述的实施例。
92.已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所描述的实施例。
93.因此,在说明性实施例中提供了一种计算机实现的方法、系统或装置以及计算机程序产品,用于管理在线社区的参与以及其他相关特征、功能或操作。在关于一种类型的设备描述实施例或其一部分的情况下,计算机实现的方法、系统或装置、计算机程序产品或其一部分被适配或配置成与该类型的设备的适当且可比较的表现一起使用。
94.在实施例被描述为在应用程序中实现的情况下,在说明性实施例的范围内,可以设想在软件即服务(saas)模型中的应用程序的递送。在saas模型中,通过在云基础设施中执行应用程序,向用户提供实现实施例的应用程序的能力。用户可以通过诸如web浏览器
(例如,基于web的电子邮件)或其他轻量客户端应用之类的瘦客户端接口使用各种客户端设备来访问应用程序。用户不管理或控制底层云基础设施,包括网络、服务器、操作系统或云基础设施的存储。在一些情况下,用户甚至可能不管理或控制saas应用程序的能力。在一些其它情况下,应用程序的saas实施方案可允许有限的用户特定应用程序配置设定的可能例外。
95.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
96.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd

rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
97.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
98.用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
99.这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
100.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
101.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
102.附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1